{
  "type": "File",
  "start": 0,
  "end": 10222,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 261,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 10222,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 261,
        "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": "FunctionDeclaration",
        "start": 288,
        "end": 369,
        "loc": {
          "start": {
            "line": 13,
            "column": 0
          },
          "end": {
            "line": 15,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 297,
          "end": 305,
          "loc": {
            "start": {
              "line": 13,
              "column": 9
            },
            "end": {
              "line": 13,
              "column": 17
            },
            "identifierName": "uniNorm2"
          },
          "name": "uniNorm2"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 306,
            "end": 309,
            "loc": {
              "start": {
                "line": 13,
                "column": 18
              },
              "end": {
                "line": 13,
                "column": 21
              },
              "identifierName": "vec"
            },
            "name": "vec"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 311,
          "end": 369,
          "loc": {
            "start": {
              "line": 13,
              "column": 23
            },
            "end": {
              "line": 15,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 317,
              "end": 367,
              "loc": {
                "start": {
                  "line": 14,
                  "column": 4
                },
                "end": {
                  "line": 14,
                  "column": 54
                }
              },
              "argument": {
                "type": "CallExpression",
                "start": 324,
                "end": 366,
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 11
                  },
                  "end": {
                    "line": 14,
                    "column": 53
                  }
                },
                "callee": {
                  "type": "MemberExpression",
                  "start": 324,
                  "end": 332,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 11
                    },
                    "end": {
                      "line": 14,
                      "column": 19
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 324,
                    "end": 328,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 11
                      },
                      "end": {
                        "line": 14,
                        "column": 15
                      },
                      "identifierName": "Math"
                    },
                    "name": "Math"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 329,
                    "end": 332,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 16
                      },
                      "end": {
                        "line": 14,
                        "column": 19
                      },
                      "identifierName": "max"
                    },
                    "name": "max"
                  },
                  "computed": false
                },
                "arguments": [
                  {
                    "type": "CallExpression",
                    "start": 333,
                    "end": 348,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 20
                      },
                      "end": {
                        "line": 14,
                        "column": 35
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 333,
                      "end": 341,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 20
                        },
                        "end": {
                          "line": 14,
                          "column": 28
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 333,
                        "end": 337,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 20
                          },
                          "end": {
                            "line": 14,
                            "column": 24
                          },
                          "identifierName": "Math"
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 338,
                        "end": 341,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 25
                          },
                          "end": {
                            "line": 14,
                            "column": 28
                          },
                          "identifierName": "abs"
                        },
                        "name": "abs"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "MemberExpression",
                        "start": 342,
                        "end": 347,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 29
                          },
                          "end": {
                            "line": 14,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 342,
                          "end": 345,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 29
                            },
                            "end": {
                              "line": 14,
                              "column": 32
                            },
                            "identifierName": "vec"
                          },
                          "name": "vec"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 346,
                          "end": 347,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 33
                            },
                            "end": {
                              "line": 14,
                              "column": 34
                            },
                            "identifierName": "x"
                          },
                          "name": "x"
                        },
                        "computed": false
                      }
                    ]
                  },
                  {
                    "type": "CallExpression",
                    "start": 350,
                    "end": 365,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 37
                      },
                      "end": {
                        "line": 14,
                        "column": 52
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 350,
                      "end": 358,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 37
                        },
                        "end": {
                          "line": 14,
                          "column": 45
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 350,
                        "end": 354,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 37
                          },
                          "end": {
                            "line": 14,
                            "column": 41
                          },
                          "identifierName": "Math"
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 355,
                        "end": 358,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 42
                          },
                          "end": {
                            "line": 14,
                            "column": 45
                          },
                          "identifierName": "abs"
                        },
                        "name": "abs"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "MemberExpression",
                        "start": 359,
                        "end": 364,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 46
                          },
                          "end": {
                            "line": 14,
                            "column": 51
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 359,
                          "end": 362,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 46
                            },
                            "end": {
                              "line": 14,
                              "column": 49
                            },
                            "identifierName": "vec"
                          },
                          "name": "vec"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 363,
                          "end": 364,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 50
                            },
                            "end": {
                              "line": 14,
                              "column": 51
                            },
                            "identifierName": "y"
                          },
                          "name": "y"
                        },
                        "computed": false
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "directives": []
        }
      },
      {
        "type": "FunctionDeclaration",
        "start": 370,
        "end": 407,
        "loc": {
          "start": {
            "line": 16,
            "column": 0
          },
          "end": {
            "line": 18,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 379,
          "end": 382,
          "loc": {
            "start": {
              "line": 16,
              "column": 9
            },
            "end": {
              "line": 16,
              "column": 12
            },
            "identifierName": "sqr"
          },
          "name": "sqr"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 383,
            "end": 384,
            "loc": {
              "start": {
                "line": 16,
                "column": 13
              },
              "end": {
                "line": 16,
                "column": 14
              },
              "identifierName": "x"
            },
            "name": "x"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 386,
          "end": 407,
          "loc": {
            "start": {
              "line": 16,
              "column": 16
            },
            "end": {
              "line": 18,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 392,
              "end": 405,
              "loc": {
                "start": {
                  "line": 17,
                  "column": 4
                },
                "end": {
                  "line": 17,
                  "column": 17
                }
              },
              "argument": {
                "type": "BinaryExpression",
                "start": 399,
                "end": 404,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 11
                  },
                  "end": {
                    "line": 17,
                    "column": 16
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 399,
                  "end": 400,
                  "loc": {
                    "start": {
                      "line": 17,
                      "column": 11
                    },
                    "end": {
                      "line": 17,
                      "column": 12
                    },
                    "identifierName": "x"
                  },
                  "name": "x"
                },
                "operator": "*",
                "right": {
                  "type": "Identifier",
                  "start": 403,
                  "end": 404,
                  "loc": {
                    "start": {
                      "line": 17,
                      "column": 15
                    },
                    "end": {
                      "line": 17,
                      "column": 16
                    },
                    "identifierName": "x"
                  },
                  "name": "x"
                }
              }
            }
          ],
          "directives": []
        }
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 409,
        "end": 10221,
        "loc": {
          "start": {
            "line": 20,
            "column": 0
          },
          "end": {
            "line": 260,
            "column": 1
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 424,
          "end": 10221,
          "loc": {
            "start": {
              "line": 20,
              "column": 15
            },
            "end": {
              "line": 260,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 430,
            "end": 440,
            "loc": {
              "start": {
                "line": 20,
                "column": 21
              },
              "end": {
                "line": 20,
                "column": 31
              },
              "identifierName": "Visualizer"
            },
            "name": "Visualizer"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 441,
            "end": 10221,
            "loc": {
              "start": {
                "line": 20,
                "column": 32
              },
              "end": {
                "line": 260,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 447,
                "end": 996,
                "loc": {
                  "start": {
                    "line": 21,
                    "column": 4
                  },
                  "end": {
                    "line": 32,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 447,
                  "end": 458,
                  "loc": {
                    "start": {
                      "line": 21,
                      "column": 4
                    },
                    "end": {
                      "line": 21,
                      "column": 15
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "static": false,
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 459,
                    "end": 467,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 16
                      },
                      "end": {
                        "line": 21,
                        "column": 24
                      },
                      "identifierName": "sketcher"
                    },
                    "name": "sketcher"
                  },
                  {
                    "type": "Identifier",
                    "start": 469,
                    "end": 477,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 26
                      },
                      "end": {
                        "line": 21,
                        "column": 34
                      },
                      "identifierName": "textures"
                    },
                    "name": "textures"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 479,
                  "end": 996,
                  "loc": {
                    "start": {
                      "line": 21,
                      "column": 36
                    },
                    "end": {
                      "line": 32,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 489,
                      "end": 512,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 8
                        },
                        "end": {
                          "line": 22,
                          "column": 31
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 489,
                        "end": 511,
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 8
                          },
                          "end": {
                            "line": 22,
                            "column": 30
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 489,
                          "end": 498,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 8
                            },
                            "end": {
                              "line": 22,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 489,
                            "end": 493,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 8
                              },
                              "end": {
                                "line": 22,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 494,
                            "end": 498,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 13
                              },
                              "end": {
                                "line": 22,
                                "column": 17
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 501,
                          "end": 511,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 20
                            },
                            "end": {
                              "line": 22,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 501,
                            "end": 505,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 20
                              },
                              "end": {
                                "line": 22,
                                "column": 24
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 506,
                            "end": 511,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 25
                              },
                              "end": {
                                "line": 22,
                                "column": 30
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 521,
                      "end": 546,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 8
                        },
                        "end": {
                          "line": 23,
                          "column": 33
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 521,
                        "end": 545,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 8
                          },
                          "end": {
                            "line": 23,
                            "column": 32
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 521,
                          "end": 534,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 8
                            },
                            "end": {
                              "line": 23,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 521,
                            "end": 525,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 8
                              },
                              "end": {
                                "line": 23,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 526,
                            "end": 534,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 13
                              },
                              "end": {
                                "line": 23,
                                "column": 21
                              },
                              "identifierName": "sketcher"
                            },
                            "name": "sketcher"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 537,
                          "end": 545,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 24
                            },
                            "end": {
                              "line": 23,
                              "column": 32
                            },
                            "identifierName": "sketcher"
                          },
                          "name": "sketcher"
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
                          "start": 555,
                          "end": 628,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 81
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 637,
                      "end": 666,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 8
                        },
                        "end": {
                          "line": 25,
                          "column": 37
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 637,
                        "end": 665,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 8
                          },
                          "end": {
                            "line": 25,
                            "column": 36
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 637,
                          "end": 653,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 8
                            },
                            "end": {
                              "line": 25,
                              "column": 24
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 637,
                            "end": 641,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 8
                              },
                              "end": {
                                "line": 25,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 642,
                            "end": 653,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 13
                              },
                              "end": {
                                "line": 25,
                                "column": 24
                              },
                              "identifierName": "constraints"
                            },
                            "name": "constraints"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 656,
                          "end": 665,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 27
                            },
                            "end": {
                              "line": 25,
                              "column": 36
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 660,
                            "end": 663,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 31
                              },
                              "end": {
                                "line": 25,
                                "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": 555,
                          "end": 628,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 81
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Reverse mapping from entities to constraints",
                          "start": 675,
                          "end": 722,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 55
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 731,
                      "end": 758,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 8
                        },
                        "end": {
                          "line": 27,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 731,
                        "end": 757,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 8
                          },
                          "end": {
                            "line": 27,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 731,
                          "end": 745,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 8
                            },
                            "end": {
                              "line": 27,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 731,
                            "end": 735,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 8
                              },
                              "end": {
                                "line": 27,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 736,
                            "end": 745,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 13
                              },
                              "end": {
                                "line": 27,
                                "column": 22
                              },
                              "identifierName": "entityFor"
                            },
                            "name": "entityFor"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 748,
                          "end": 757,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 25
                            },
                            "end": {
                              "line": 27,
                              "column": 34
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 752,
                            "end": 755,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 29
                              },
                              "end": {
                                "line": 27,
                                "column": 32
                              },
                              "identifierName": "Map"
                            },
                            "name": "Map"
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Reverse mapping from entities to constraints",
                          "start": 675,
                          "end": 722,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 55
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " For each constraint, its based entity is stored (where icon is rendered)",
                          "start": 767,
                          "end": 842,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 8
                            },
                            "end": {
                              "line": 28,
                              "column": 83
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 851,
                      "end": 882,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 8
                        },
                        "end": {
                          "line": 29,
                          "column": 39
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 851,
                        "end": 881,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 8
                          },
                          "end": {
                            "line": 29,
                            "column": 38
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 851,
                          "end": 869,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 8
                            },
                            "end": {
                              "line": 29,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 851,
                            "end": 855,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 8
                              },
                              "end": {
                                "line": 29,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 856,
                            "end": 869,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 13
                              },
                              "end": {
                                "line": 29,
                                "column": 26
                              },
                              "identifierName": "baseEntityFor"
                            },
                            "name": "baseEntityFor"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 872,
                          "end": 881,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 29
                            },
                            "end": {
                              "line": 29,
                              "column": 38
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 876,
                            "end": 879,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 33
                              },
                              "end": {
                                "line": 29,
                                "column": 36
                              },
                              "identifierName": "Map"
                            },
                            "name": "Map"
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " For each constraint, its based entity is stored (where icon is rendered)",
                          "start": 767,
                          "end": 842,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 8
                            },
                            "end": {
                              "line": 28,
                              "column": 83
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " If set to true, constraints would be repositioned next frame",
                          "start": 891,
                          "end": 954,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 8
                            },
                            "end": {
                              "line": 30,
                              "column": 71
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 963,
                      "end": 990,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 8
                        },
                        "end": {
                          "line": 31,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 963,
                        "end": 989,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 8
                          },
                          "end": {
                            "line": 31,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 963,
                          "end": 981,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 8
                            },
                            "end": {
                              "line": 31,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 963,
                            "end": 967,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 8
                              },
                              "end": {
                                "line": 31,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 968,
                            "end": 981,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 13
                              },
                              "end": {
                                "line": 31,
                                "column": 26
                              },
                              "identifierName": "graphicsDirty"
                            },
                            "name": "graphicsDirty"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "BooleanLiteral",
                          "start": 984,
                          "end": 989,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 29
                            },
                            "end": {
                              "line": 31,
                              "column": 34
                            }
                          },
                          "value": false
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " If set to true, constraints would be repositioned next frame",
                          "start": 891,
                          "end": 954,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 8
                            },
                            "end": {
                              "line": 30,
                              "column": 71
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1002,
                "end": 1087,
                "loc": {
                  "start": {
                    "line": 34,
                    "column": 4
                  },
                  "end": {
                    "line": 37,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1002,
                  "end": 1009,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 4
                    },
                    "end": {
                      "line": 34,
                      "column": 11
                    },
                    "identifierName": "refresh"
                  },
                  "name": "refresh"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 1012,
                  "end": 1087,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 14
                    },
                    "end": {
                      "line": 37,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 1022,
                      "end": 1048,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 8
                        },
                        "end": {
                          "line": 35,
                          "column": 34
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1022,
                        "end": 1047,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 8
                          },
                          "end": {
                            "line": 35,
                            "column": 33
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1022,
                          "end": 1040,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 8
                            },
                            "end": {
                              "line": 35,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1022,
                            "end": 1026,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 8
                              },
                              "end": {
                                "line": 35,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1027,
                            "end": 1040,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 13
                              },
                              "end": {
                                "line": 35,
                                "column": 26
                              },
                              "identifierName": "graphicsDirty"
                            },
                            "name": "graphicsDirty"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "BooleanLiteral",
                          "start": 1043,
                          "end": 1047,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 29
                            },
                            "end": {
                              "line": 35,
                              "column": 33
                            }
                          },
                          "value": true
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1057,
                      "end": 1081,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 8
                        },
                        "end": {
                          "line": 36,
                          "column": 32
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1057,
                        "end": 1080,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 8
                          },
                          "end": {
                            "line": 36,
                            "column": 31
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1057,
                          "end": 1078,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1057,
                            "end": 1070,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 8
                              },
                              "end": {
                                "line": 36,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1057,
                              "end": 1061,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 8
                                },
                                "end": {
                                  "line": 36,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1062,
                              "end": 1070,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 13
                                },
                                "end": {
                                  "line": 36,
                                  "column": 21
                                },
                                "identifierName": "sketcher"
                              },
                              "name": "sketcher"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1071,
                            "end": 1078,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 22
                              },
                              "end": {
                                "line": 36,
                                "column": 29
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1093,
                "end": 1190,
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 4
                  },
                  "end": {
                    "line": 41,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1093,
                  "end": 1103,
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 4
                    },
                    "end": {
                      "line": 39,
                      "column": 14
                    },
                    "identifierName": "isSelected"
                  },
                  "name": "isSelected"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1104,
                    "end": 1106,
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 15
                      },
                      "end": {
                        "line": 39,
                        "column": 17
                      },
                      "identifierName": "id"
                    },
                    "name": "id"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1108,
                  "end": 1190,
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 19
                    },
                    "end": {
                      "line": 41,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 1118,
                      "end": 1184,
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 8
                        },
                        "end": {
                          "line": 40,
                          "column": 74
                        }
                      },
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 1125,
                        "end": 1183,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 15
                          },
                          "end": {
                            "line": 40,
                            "column": 73
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 1125,
                          "end": 1176,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 15
                            },
                            "end": {
                              "line": 40,
                              "column": 66
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1125,
                            "end": 1172,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 15
                              },
                              "end": {
                                "line": 40,
                                "column": 62
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 1125,
                              "end": 1164,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 15
                                },
                                "end": {
                                  "line": 40,
                                  "column": 54
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1125,
                                "end": 1162,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 52
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 1125,
                                  "end": 1147,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 1125,
                                    "end": 1138,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1125,
                                      "end": 1129,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1130,
                                      "end": 1138,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 28
                                        },
                                        "identifierName": "sketcher"
                                      },
                                      "name": "sketcher"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1139,
                                    "end": 1147,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 37
                                      },
                                      "identifierName": "selector"
                                    },
                                    "name": "selector"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1148,
                                  "end": 1162,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 52
                                    },
                                    "identifierName": "getSelectedIds"
                                  },
                                  "name": "getSelectedIds"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1165,
                              "end": 1172,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 55
                                },
                                "end": {
                                  "line": 40,
                                  "column": 62
                                },
                                "identifierName": "indexOf"
                              },
                              "name": "indexOf"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1173,
                              "end": 1175,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 63
                                },
                                "end": {
                                  "line": 40,
                                  "column": 65
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            }
                          ]
                        },
                        "operator": "!==",
                        "right": {
                          "type": "UnaryExpression",
                          "start": 1181,
                          "end": 1183,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 71
                            },
                            "end": {
                              "line": 40,
                              "column": 73
                            }
                          },
                          "operator": "-",
                          "prefix": true,
                          "argument": {
                            "type": "NumericLiteral",
                            "start": 1182,
                            "end": 1183,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 72
                              },
                              "end": {
                                "line": 40,
                                "column": 73
                              }
                            },
                            "extra": {
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "value": 1
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1196,
                "end": 1491,
                "loc": {
                  "start": {
                    "line": 43,
                    "column": 4
                  },
                  "end": {
                    "line": 48,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1196,
                  "end": 1209,
                  "loc": {
                    "start": {
                      "line": 43,
                      "column": 4
                    },
                    "end": {
                      "line": 43,
                      "column": 17
                    },
                    "identifierName": "setVisibility"
                  },
                  "name": "setVisibility"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1210,
                    "end": 1212,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 18
                      },
                      "end": {
                        "line": 43,
                        "column": 20
                      },
                      "identifierName": "id"
                    },
                    "name": "id"
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 1214,
                    "end": 1234,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 22
                      },
                      "end": {
                        "line": 43,
                        "column": 42
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 1214,
                      "end": 1222,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 22
                        },
                        "end": {
                          "line": 43,
                          "column": 30
                        },
                        "identifierName": "newValue"
                      },
                      "name": "newValue"
                    },
                    "right": {
                      "type": "Identifier",
                      "start": 1225,
                      "end": 1234,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 33
                        },
                        "end": {
                          "line": 43,
                          "column": 42
                        },
                        "identifierName": "undefined"
                      },
                      "name": "undefined"
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1236,
                  "end": 1491,
                  "loc": {
                    "start": {
                      "line": 43,
                      "column": 44
                    },
                    "end": {
                      "line": 48,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1246,
                      "end": 1311,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 8
                        },
                        "end": {
                          "line": 44,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1250,
                        "end": 1272,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 12
                          },
                          "end": {
                            "line": 44,
                            "column": 34
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 1250,
                          "end": 1258,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 12
                            },
                            "end": {
                              "line": 44,
                              "column": 20
                            },
                            "identifierName": "newValue"
                          },
                          "name": "newValue"
                        },
                        "operator": "===",
                        "right": {
                          "type": "Identifier",
                          "start": 1263,
                          "end": 1272,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 25
                            },
                            "end": {
                              "line": 44,
                              "column": 34
                            },
                            "identifierName": "undefined"
                          },
                          "name": "undefined"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 1274,
                        "end": 1311,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 36
                          },
                          "end": {
                            "line": 44,
                            "column": 73
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1274,
                          "end": 1310,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 36
                            },
                            "end": {
                              "line": 44,
                              "column": 72
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 1274,
                            "end": 1282,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 36
                              },
                              "end": {
                                "line": 44,
                                "column": 44
                              },
                              "identifierName": "newValue"
                            },
                            "name": "newValue"
                          },
                          "right": {
                            "type": "BinaryExpression",
                            "start": 1285,
                            "end": 1310,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 47
                              },
                              "end": {
                                "line": 44,
                                "column": 72
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 1285,
                              "end": 1294,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 47
                                },
                                "end": {
                                  "line": 44,
                                  "column": 56
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1285,
                                "end": 1289,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 47
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 51
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1290,
                                "end": 1294,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 52
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 56
                                  },
                                  "identifierName": "mode"
                                },
                                "name": "mode"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "MemberExpression",
                              "start": 1299,
                              "end": 1310,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 61
                                },
                                "end": {
                                  "line": 44,
                                  "column": 72
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1299,
                                "end": 1303,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 65
                                  },
                                  "identifierName": "Mode"
                                },
                                "name": "Mode"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1304,
                                "end": 1310,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 72
                                  },
                                  "identifierName": "Always"
                                },
                                "name": "Always"
                              },
                              "computed": false
                            }
                          }
                        },
                        "trailingComments": null
                      },
                      "alternate": null,
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "note: we forbid hiding selected constraints",
                          "start": 1320,
                          "end": 1365,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 8
                            },
                            "end": {
                              "line": 45,
                              "column": 53
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 1374,
                      "end": 1419,
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 8
                        },
                        "end": {
                          "line": 46,
                          "column": 53
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 1378,
                        "end": 1410,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 12
                          },
                          "end": {
                            "line": 46,
                            "column": 44
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 1378,
                          "end": 1387,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 12
                            },
                            "end": {
                              "line": 46,
                              "column": 21
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 1379,
                            "end": 1387,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 13
                              },
                              "end": {
                                "line": 46,
                                "column": 21
                              },
                              "identifierName": "newValue"
                            },
                            "name": "newValue",
                            "leadingComments": null
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          },
                          "leadingComments": null
                        },
                        "operator": "&&",
                        "right": {
                          "type": "CallExpression",
                          "start": 1391,
                          "end": 1410,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 25
                            },
                            "end": {
                              "line": 46,
                              "column": 44
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1391,
                            "end": 1406,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 25
                              },
                              "end": {
                                "line": 46,
                                "column": 40
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1391,
                              "end": 1395,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 25
                                },
                                "end": {
                                  "line": 46,
                                  "column": 29
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1396,
                              "end": 1406,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 30
                                },
                                "end": {
                                  "line": 46,
                                  "column": 40
                                },
                                "identifierName": "isSelected"
                              },
                              "name": "isSelected"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1407,
                              "end": 1409,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 41
                                },
                                "end": {
                                  "line": 46,
                                  "column": 43
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            }
                          ]
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 1412,
                        "end": 1419,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 46
                          },
                          "end": {
                            "line": 46,
                            "column": 53
                          }
                        },
                        "argument": null
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "note: we forbid hiding selected constraints",
                          "start": 1320,
                          "end": 1365,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 8
                            },
                            "end": {
                              "line": 45,
                              "column": 53
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1428,
                      "end": 1485,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 8
                        },
                        "end": {
                          "line": 47,
                          "column": 65
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1428,
                        "end": 1484,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 8
                          },
                          "end": {
                            "line": 47,
                            "column": 64
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1428,
                          "end": 1473,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 53
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1428,
                            "end": 1465,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 8
                              },
                              "end": {
                                "line": 47,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "NewExpression",
                              "start": 1428,
                              "end": 1456,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 8
                                },
                                "end": {
                                  "line": 47,
                                  "column": 36
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1432,
                                "end": 1437,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 17
                                  },
                                  "identifierName": "Ccref"
                                },
                                "name": "Ccref"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1438,
                                  "end": 1451,
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 31
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1438,
                                    "end": 1442,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1443,
                                    "end": 1451,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 31
                                      },
                                      "identifierName": "sketcher"
                                    },
                                    "name": "sketcher"
                                  },
                                  "computed": false
                                },
                                {
                                  "type": "Identifier",
                                  "start": 1453,
                                  "end": 1455,
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 35
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1457,
                              "end": 1465,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 37
                                },
                                "end": {
                                  "line": 47,
                                  "column": 45
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1466,
                            "end": 1473,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 46
                              },
                              "end": {
                                "line": 47,
                                "column": 53
                              },
                              "identifierName": "visible"
                            },
                            "name": "visible"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 1476,
                          "end": 1484,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 56
                            },
                            "end": {
                              "line": 47,
                              "column": 64
                            },
                            "identifierName": "newValue"
                          },
                          "name": "newValue"
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1497,
                "end": 1986,
                "loc": {
                  "start": {
                    "line": 50,
                    "column": 4
                  },
                  "end": {
                    "line": 60,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1497,
                  "end": 1510,
                  "loc": {
                    "start": {
                      "line": 50,
                      "column": 4
                    },
                    "end": {
                      "line": 50,
                      "column": 17
                    },
                    "identifierName": "addConstraint"
                  },
                  "name": "addConstraint"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1511,
                    "end": 1521,
                    "loc": {
                      "start": {
                        "line": 50,
                        "column": 18
                      },
                      "end": {
                        "line": 50,
                        "column": 28
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1523,
                  "end": 1986,
                  "loc": {
                    "start": {
                      "line": 50,
                      "column": 30
                    },
                    "end": {
                      "line": 60,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1533,
                      "end": 1598,
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 8
                        },
                        "end": {
                          "line": 51,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 1537,
                        "end": 1589,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 12
                          },
                          "end": {
                            "line": 51,
                            "column": 64
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "BinaryExpression",
                          "start": 1539,
                          "end": 1588,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 14
                            },
                            "end": {
                              "line": 51,
                              "column": 63
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 1539,
                            "end": 1558,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 14
                              },
                              "end": {
                                "line": 51,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1539,
                              "end": 1549,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 14
                                },
                                "end": {
                                  "line": 51,
                                  "column": 24
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1550,
                              "end": 1558,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 25
                                },
                                "end": {
                                  "line": 51,
                                  "column": 33
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          },
                          "operator": "instanceof",
                          "right": {
                            "type": "Identifier",
                            "start": 1570,
                            "end": 1588,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 45
                              },
                              "end": {
                                "line": 51,
                                "column": 63
                              },
                              "identifierName": "ConstraintGraphics"
                            },
                            "name": "ConstraintGraphics"
                          },
                          "extra": {
                            "parenthesized": true,
                            "parenStart": 1538
                          }
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 1591,
                        "end": 1598,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 66
                          },
                          "end": {
                            "line": 51,
                            "column": 73
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1607,
                      "end": 1643,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 8
                        },
                        "end": {
                          "line": 52,
                          "column": 44
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1607,
                        "end": 1642,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 8
                          },
                          "end": {
                            "line": 52,
                            "column": 43
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1607,
                          "end": 1627,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 8
                            },
                            "end": {
                              "line": 52,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1607,
                            "end": 1623,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 8
                              },
                              "end": {
                                "line": 52,
                                "column": 24
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1607,
                              "end": 1611,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 8
                                },
                                "end": {
                                  "line": 52,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1612,
                              "end": 1623,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 13
                                },
                                "end": {
                                  "line": 52,
                                  "column": 24
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1624,
                            "end": 1627,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 25
                              },
                              "end": {
                                "line": 52,
                                "column": 28
                              },
                              "identifierName": "add"
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1628,
                            "end": 1641,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 29
                              },
                              "end": {
                                "line": 52,
                                "column": 42
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1628,
                              "end": 1638,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 29
                                },
                                "end": {
                                  "line": 52,
                                  "column": 39
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1639,
                              "end": 1641,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 40
                                },
                                "end": {
                                  "line": 52,
                                  "column": 42
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1652,
                      "end": 1701,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 8
                        },
                        "end": {
                          "line": 53,
                          "column": 57
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1652,
                        "end": 1700,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 8
                          },
                          "end": {
                            "line": 53,
                            "column": 56
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1652,
                          "end": 1674,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 8
                            },
                            "end": {
                              "line": 53,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1652,
                            "end": 1670,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 8
                              },
                              "end": {
                                "line": 53,
                                "column": 26
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1652,
                              "end": 1656,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 8
                                },
                                "end": {
                                  "line": 53,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1657,
                              "end": 1670,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 13
                                },
                                "end": {
                                  "line": 53,
                                  "column": 26
                                },
                                "identifierName": "baseEntityFor"
                              },
                              "name": "baseEntityFor"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1671,
                            "end": 1674,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 27
                              },
                              "end": {
                                "line": 53,
                                "column": 30
                              },
                              "identifierName": "set"
                            },
                            "name": "set"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1675,
                            "end": 1688,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 31
                              },
                              "end": {
                                "line": 53,
                                "column": 44
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1675,
                              "end": 1685,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 31
                                },
                                "end": {
                                  "line": 53,
                                  "column": 41
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1686,
                              "end": 1688,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 42
                                },
                                "end": {
                                  "line": 53,
                                  "column": 44
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          },
                          {
                            "type": "Identifier",
                            "start": 1690,
                            "end": 1699,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 46
                              },
                              "end": {
                                "line": 53,
                                "column": 55
                              },
                              "identifierName": "undefined"
                            },
                            "name": "undefined"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 1710,
                      "end": 1913,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 8
                        },
                        "end": {
                          "line": 57,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 1715,
                        "end": 1725,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 13
                          },
                          "end": {
                            "line": 54,
                            "column": 23
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1719,
                            "end": 1725,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 17
                              },
                              "end": {
                                "line": 54,
                                "column": 23
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1719,
                              "end": 1725,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 17
                                },
                                "end": {
                                  "line": 54,
                                  "column": 23
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 1729,
                        "end": 1754,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 27
                          },
                          "end": {
                            "line": 54,
                            "column": 52
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 1729,
                          "end": 1739,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 27
                            },
                            "end": {
                              "line": 54,
                              "column": 37
                            },
                            "identifierName": "constraint"
                          },
                          "name": "constraint"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1740,
                          "end": 1754,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 38
                            },
                            "end": {
                              "line": 54,
                              "column": 52
                            },
                            "identifierName": "mergedEntities"
                          },
                          "name": "mergedEntities"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 1756,
                        "end": 1913,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 54
                          },
                          "end": {
                            "line": 57,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "IfStatement",
                            "start": 1770,
                            "end": 1840,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 12
                              },
                              "end": {
                                "line": 55,
                                "column": 82
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 1774,
                              "end": 1804,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 16
                                },
                                "end": {
                                  "line": 55,
                                  "column": 46
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 1775,
                                "end": 1804,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1775,
                                  "end": 1793,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 1775,
                                    "end": 1789,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 31
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1775,
                                      "end": 1779,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1780,
                                      "end": 1789,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 31
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1790,
                                    "end": 1793,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 35
                                      },
                                      "identifierName": "has"
                                    },
                                    "name": "has"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1794,
                                    "end": 1803,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1794,
                                      "end": 1800,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 42
                                        },
                                        "identifierName": "entity"
                                      },
                                      "name": "entity"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1801,
                                      "end": 1803,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 45
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    },
                                    "computed": false
                                  }
                                ]
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 1806,
                              "end": 1840,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 48
                                },
                                "end": {
                                  "line": 55,
                                  "column": 82
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 1806,
                                "end": 1839,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 81
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1806,
                                  "end": 1824,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 66
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 1806,
                                    "end": 1820,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 48
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 62
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1806,
                                      "end": 1810,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1811,
                                      "end": 1820,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 53
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 62
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1821,
                                    "end": 1824,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 63
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 66
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1825,
                                    "end": 1834,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 67
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 76
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1825,
                                      "end": 1831,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 73
                                        },
                                        "identifierName": "entity"
                                      },
                                      "name": "entity"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1832,
                                      "end": 1834,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 74
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 76
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 1836,
                                    "end": 1838,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 78
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 80
                                      }
                                    },
                                    "elements": []
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 1853,
                            "end": 1903,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 12
                              },
                              "end": {
                                "line": 56,
                                "column": 62
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 1853,
                              "end": 1902,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 12
                                },
                                "end": {
                                  "line": 56,
                                  "column": 61
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1853,
                                "end": 1887,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 46
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 1853,
                                  "end": 1882,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 41
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1853,
                                    "end": 1871,
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 30
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 1853,
                                      "end": 1867,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 26
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1853,
                                        "end": 1857,
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1858,
                                        "end": 1867,
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 26
                                          },
                                          "identifierName": "entityFor"
                                        },
                                        "name": "entityFor"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1868,
                                      "end": 1871,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 30
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1872,
                                      "end": 1881,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 40
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1872,
                                        "end": 1878,
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 37
                                          },
                                          "identifierName": "entity"
                                        },
                                        "name": "entity"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1879,
                                        "end": 1881,
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 40
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    }
                                  ]
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1883,
                                  "end": 1887,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 46
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1888,
                                  "end": 1901,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 60
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1888,
                                    "end": 1898,
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 57
                                      },
                                      "identifierName": "constraint"
                                    },
                                    "name": "constraint"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1899,
                                    "end": 1901,
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 60
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1922,
                      "end": 1956,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 8
                        },
                        "end": {
                          "line": 58,
                          "column": 42
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1922,
                        "end": 1955,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 8
                          },
                          "end": {
                            "line": 58,
                            "column": 41
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1922,
                          "end": 1940,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 8
                            },
                            "end": {
                              "line": 58,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1922,
                            "end": 1926,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 8
                              },
                              "end": {
                                "line": 58,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1927,
                            "end": 1940,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 13
                              },
                              "end": {
                                "line": 58,
                                "column": 26
                              },
                              "identifierName": "setVisibility"
                            },
                            "name": "setVisibility"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1941,
                            "end": 1954,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 27
                              },
                              "end": {
                                "line": 58,
                                "column": 40
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1941,
                              "end": 1951,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 27
                                },
                                "end": {
                                  "line": 58,
                                  "column": 37
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1952,
                              "end": 1954,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 38
                                },
                                "end": {
                                  "line": 58,
                                  "column": 40
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1965,
                      "end": 1980,
                      "loc": {
                        "start": {
                          "line": 59,
                          "column": 8
                        },
                        "end": {
                          "line": 59,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1965,
                        "end": 1979,
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 8
                          },
                          "end": {
                            "line": 59,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1965,
                          "end": 1977,
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 8
                            },
                            "end": {
                              "line": 59,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1965,
                            "end": 1969,
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 8
                              },
                              "end": {
                                "line": 59,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1970,
                            "end": 1977,
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 13
                              },
                              "end": {
                                "line": 59,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1992,
                "end": 2915,
                "loc": {
                  "start": {
                    "line": 62,
                    "column": 4
                  },
                  "end": {
                    "line": 80,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1992,
                  "end": 2008,
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 4
                    },
                    "end": {
                      "line": 62,
                      "column": 20
                    },
                    "identifierName": "removeConstraint"
                  },
                  "name": "removeConstraint"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2009,
                    "end": 2019,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 21
                      },
                      "end": {
                        "line": 62,
                        "column": 31
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 2021,
                    "end": 2045,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 33
                      },
                      "end": {
                        "line": 62,
                        "column": 57
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 2021,
                      "end": 2026,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 33
                        },
                        "end": {
                          "line": 62,
                          "column": 38
                        },
                        "identifierName": "state"
                      },
                      "name": "state"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 2029,
                      "end": 2045,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 41
                        },
                        "end": {
                          "line": 62,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2029,
                        "end": 2039,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 41
                          },
                          "end": {
                            "line": 62,
                            "column": 51
                          },
                          "identifierName": "constraint"
                        },
                        "name": "constraint"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2040,
                        "end": 2045,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 52
                          },
                          "end": {
                            "line": 62,
                            "column": 57
                          },
                          "identifierName": "state"
                        },
                        "name": "state"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2047,
                  "end": 2915,
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 59
                    },
                    "end": {
                      "line": 80,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 2057,
                      "end": 2122,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 8
                        },
                        "end": {
                          "line": 63,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 2061,
                        "end": 2113,
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 12
                          },
                          "end": {
                            "line": 63,
                            "column": 64
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "BinaryExpression",
                          "start": 2063,
                          "end": 2112,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 14
                            },
                            "end": {
                              "line": 63,
                              "column": 63
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 2063,
                            "end": 2082,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 14
                              },
                              "end": {
                                "line": 63,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2063,
                              "end": 2073,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 14
                                },
                                "end": {
                                  "line": 63,
                                  "column": 24
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2074,
                              "end": 2082,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 25
                                },
                                "end": {
                                  "line": 63,
                                  "column": 33
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          },
                          "operator": "instanceof",
                          "right": {
                            "type": "Identifier",
                            "start": 2094,
                            "end": 2112,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 45
                              },
                              "end": {
                                "line": 63,
                                "column": 63
                              },
                              "identifierName": "ConstraintGraphics"
                            },
                            "name": "ConstraintGraphics"
                          },
                          "extra": {
                            "parenthesized": true,
                            "parenStart": 2062
                          }
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2115,
                        "end": 2122,
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 66
                          },
                          "end": {
                            "line": 63,
                            "column": 73
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 2131,
                      "end": 2159,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 8
                        },
                        "end": {
                          "line": 64,
                          "column": 36
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2137,
                          "end": 2158,
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 14
                            },
                            "end": {
                              "line": 64,
                              "column": 35
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2137,
                            "end": 2153,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 14
                              },
                              "end": {
                                "line": 64,
                                "column": 30
                              },
                              "identifierName": "possibleEntities"
                            },
                            "name": "possibleEntities"
                          },
                          "init": {
                            "type": "ArrayExpression",
                            "start": 2156,
                            "end": 2158,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 33
                              },
                              "end": {
                                "line": 64,
                                "column": 35
                              }
                            },
                            "elements": []
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 2168,
                      "end": 2487,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 2173,
                        "end": 2190,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 13
                          },
                          "end": {
                            "line": 65,
                            "column": 30
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2177,
                            "end": 2190,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 17
                              },
                              "end": {
                                "line": 65,
                                "column": 30
                              }
                            },
                            "id": {
                              "type": "ObjectPattern",
                              "start": 2177,
                              "end": 2190,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 17
                                },
                                "end": {
                                  "line": 65,
                                  "column": 30
                                }
                              },
                              "properties": [
                                {
                                  "type": "ObjectProperty",
                                  "start": 2179,
                                  "end": 2188,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 28
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 2179,
                                    "end": 2184,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 24
                                      },
                                      "identifierName": "value"
                                    },
                                    "name": "value"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 2186,
                                    "end": 2188,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 28
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                }
                              ]
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 2194,
                        "end": 2224,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 34
                          },
                          "end": {
                            "line": 65,
                            "column": 64
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 2194,
                          "end": 2216,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 34
                            },
                            "end": {
                              "line": 65,
                              "column": 56
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2194,
                            "end": 2207,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 34
                              },
                              "end": {
                                "line": 65,
                                "column": 47
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2194,
                              "end": 2199,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 34
                                },
                                "end": {
                                  "line": 65,
                                  "column": 39
                                },
                                "identifierName": "state"
                              },
                              "name": "state"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2200,
                              "end": 2207,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 40
                                },
                                "end": {
                                  "line": 65,
                                  "column": 47
                                },
                                "identifierName": "members"
                              },
                              "name": "members"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2208,
                            "end": 2216,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 48
                              },
                              "end": {
                                "line": 65,
                                "column": 56
                              },
                              "identifierName": "entities"
                            },
                            "name": "entities"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2217,
                          "end": 2224,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 57
                            },
                            "end": {
                              "line": 65,
                              "column": 64
                            },
                            "identifierName": "members"
                          },
                          "name": "members"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 2226,
                        "end": 2487,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 66
                          },
                          "end": {
                            "line": 70,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 2240,
                            "end": 2266,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 12
                              },
                              "end": {
                                "line": 66,
                                "column": 38
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 2240,
                              "end": 2265,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 12
                                },
                                "end": {
                                  "line": 66,
                                  "column": 37
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2240,
                                "end": 2261,
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2240,
                                  "end": 2256,
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 28
                                    },
                                    "identifierName": "possibleEntities"
                                  },
                                  "name": "possibleEntities"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2257,
                                  "end": 2261,
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 33
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 2262,
                                  "end": 2264,
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 36
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                }
                              ]
                            },
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": " this constraint could have had mergedEntity but it could have already been deleted",
                                "start": 2279,
                                "end": 2364,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 97
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 2377,
                            "end": 2415,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 12
                              },
                              "end": {
                                "line": 68,
                                "column": 50
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 2383,
                                "end": 2414,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 49
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 2383,
                                  "end": 2389,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 24
                                    },
                                    "identifierName": "estate"
                                  },
                                  "name": "estate",
                                  "leadingComments": null
                                },
                                "init": {
                                  "type": "MemberExpression",
                                  "start": 2392,
                                  "end": 2414,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 49
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2392,
                                    "end": 2410,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 2392,
                                      "end": 2405,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 40
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2392,
                                        "end": 2396,
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2397,
                                        "end": 2405,
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 40
                                          },
                                          "identifierName": "sketcher"
                                        },
                                        "name": "sketcher"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2406,
                                      "end": 2410,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 45
                                        },
                                        "identifierName": "tree"
                                      },
                                      "name": "tree"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2411,
                                    "end": 2413,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 48
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  "computed": true
                                },
                                "leadingComments": null
                              }
                            ],
                            "kind": "const",
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " this constraint could have had mergedEntity but it could have already been deleted",
                                "start": 2279,
                                "end": 2364,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 97
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "IfStatement",
                            "start": 2428,
                            "end": 2477,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 12
                              },
                              "end": {
                                "line": 69,
                                "column": 61
                              }
                            },
                            "test": {
                              "type": "Identifier",
                              "start": 2432,
                              "end": 2438,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 16
                                },
                                "end": {
                                  "line": 69,
                                  "column": 22
                                },
                                "identifierName": "estate"
                              },
                              "name": "estate"
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 2440,
                              "end": 2477,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 24
                                },
                                "end": {
                                  "line": 69,
                                  "column": 61
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 2440,
                                "end": 2476,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 60
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2440,
                                  "end": 2461,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 45
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2440,
                                    "end": 2456,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 40
                                      },
                                      "identifierName": "possibleEntities"
                                    },
                                    "name": "possibleEntities"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2457,
                                    "end": 2461,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 45
                                      },
                                      "identifierName": "push"
                                    },
                                    "name": "push"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 2462,
                                    "end": 2475,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 59
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2462,
                                      "end": 2468,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 52
                                        },
                                        "identifierName": "estate"
                                      },
                                      "name": "estate"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2469,
                                      "end": 2475,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 53
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 59
                                        },
                                        "identifierName": "parent"
                                      },
                                      "name": "parent"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 2496,
                      "end": 2787,
                      "loc": {
                        "start": {
                          "line": 71,
                          "column": 8
                        },
                        "end": {
                          "line": 76,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 2501,
                        "end": 2507,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 13
                          },
                          "end": {
                            "line": 71,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2505,
                            "end": 2507,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 17
                              },
                              "end": {
                                "line": 71,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2505,
                              "end": 2507,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 17
                                },
                                "end": {
                                  "line": 71,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 2511,
                        "end": 2527,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 23
                          },
                          "end": {
                            "line": 71,
                            "column": 39
                          },
                          "identifierName": "possibleEntities"
                        },
                        "name": "possibleEntities"
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 2529,
                        "end": 2787,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 41
                          },
                          "end": {
                            "line": 76,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 2543,
                            "end": 2592,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 12
                              },
                              "end": {
                                "line": 72,
                                "column": 61
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 2549,
                                "end": 2591,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 60
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 2549,
                                  "end": 2560,
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 29
                                    },
                                    "identifierName": "constraints"
                                  },
                                  "name": "constraints"
                                },
                                "init": {
                                  "type": "LogicalExpression",
                                  "start": 2563,
                                  "end": 2591,
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 60
                                    }
                                  },
                                  "left": {
                                    "type": "CallExpression",
                                    "start": 2563,
                                    "end": 2585,
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 54
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 2563,
                                      "end": 2581,
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 50
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 2563,
                                        "end": 2577,
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 46
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 2563,
                                          "end": 2567,
                                          "loc": {
                                            "start": {
                                              "line": 72,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 72,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 2568,
                                          "end": 2577,
                                          "loc": {
                                            "start": {
                                              "line": 72,
                                              "column": 37
                                            },
                                            "end": {
                                              "line": 72,
                                              "column": 46
                                            },
                                            "identifierName": "entityFor"
                                          },
                                          "name": "entityFor"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2578,
                                        "end": 2581,
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 50
                                          },
                                          "identifierName": "get"
                                        },
                                        "name": "get"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 2582,
                                        "end": 2584,
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 53
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      }
                                    ]
                                  },
                                  "operator": "||",
                                  "right": {
                                    "type": "ArrayExpression",
                                    "start": 2589,
                                    "end": 2591,
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 60
                                      }
                                    },
                                    "elements": []
                                  }
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 2605,
                            "end": 2652,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 12
                              },
                              "end": {
                                "line": 73,
                                "column": 59
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 2611,
                                "end": 2651,
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 58
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 2611,
                                  "end": 2614,
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 21
                                    },
                                    "identifierName": "idx"
                                  },
                                  "name": "idx"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 2617,
                                  "end": 2651,
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 58
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2617,
                                    "end": 2636,
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 43
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2617,
                                      "end": 2628,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 35
                                        },
                                        "identifierName": "constraints"
                                      },
                                      "name": "constraints"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2629,
                                      "end": 2636,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 43
                                        },
                                        "identifierName": "indexOf"
                                      },
                                      "name": "indexOf"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 2637,
                                      "end": 2650,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 57
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 2637,
                                        "end": 2647,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 54
                                          },
                                          "identifierName": "constraint"
                                        },
                                        "name": "constraint"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2648,
                                        "end": 2650,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 57
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "IfStatement",
                            "start": 2665,
                            "end": 2708,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 12
                              },
                              "end": {
                                "line": 74,
                                "column": 55
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 2669,
                              "end": 2679,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 16
                                },
                                "end": {
                                  "line": 74,
                                  "column": 26
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 2669,
                                "end": 2672,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 19
                                  },
                                  "identifierName": "idx"
                                },
                                "name": "idx"
                              },
                              "operator": "!==",
                              "right": {
                                "type": "UnaryExpression",
                                "start": 2677,
                                "end": 2679,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 26
                                  }
                                },
                                "operator": "-",
                                "prefix": true,
                                "argument": {
                                  "type": "NumericLiteral",
                                  "start": 2678,
                                  "end": 2679,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 26
                                    }
                                  },
                                  "extra": {
                                    "rawValue": 1,
                                    "raw": "1"
                                  },
                                  "value": 1
                                },
                                "extra": {
                                  "parenthesizedArgument": false
                                }
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 2681,
                              "end": 2708,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 28
                                },
                                "end": {
                                  "line": 74,
                                  "column": 55
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 2681,
                                "end": 2707,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 54
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2681,
                                  "end": 2699,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 46
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2681,
                                    "end": 2692,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 39
                                      },
                                      "identifierName": "constraints"
                                    },
                                    "name": "constraints"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2693,
                                    "end": 2699,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 46
                                      },
                                      "identifierName": "splice"
                                    },
                                    "name": "splice"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 2700,
                                    "end": 2703,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 50
                                      },
                                      "identifierName": "idx"
                                    },
                                    "name": "idx"
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 2705,
                                    "end": 2706,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 53
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "value": 1
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          },
                          {
                            "type": "IfStatement",
                            "start": 2721,
                            "end": 2777,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 12
                              },
                              "end": {
                                "line": 75,
                                "column": 68
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 2725,
                              "end": 2749,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 16
                                },
                                "end": {
                                  "line": 75,
                                  "column": 40
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 2725,
                                "end": 2743,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 34
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2725,
                                  "end": 2736,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 27
                                    },
                                    "identifierName": "constraints"
                                  },
                                  "name": "constraints"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2737,
                                  "end": 2743,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 34
                                    },
                                    "identifierName": "length"
                                  },
                                  "name": "length"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "NumericLiteral",
                                "start": 2748,
                                "end": 2749,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 40
                                  }
                                },
                                "extra": {
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                "value": 0
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 2751,
                              "end": 2777,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 42
                                },
                                "end": {
                                  "line": 75,
                                  "column": 68
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 2751,
                                "end": 2776,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 67
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2751,
                                  "end": 2772,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 63
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2751,
                                    "end": 2765,
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 56
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2751,
                                      "end": 2755,
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2756,
                                      "end": 2765,
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 56
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2766,
                                    "end": 2772,
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 57
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 63
                                      },
                                      "identifierName": "delete"
                                    },
                                    "name": "delete"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 2773,
                                    "end": 2775,
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 64
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 66
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2796,
                      "end": 2835,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 8
                        },
                        "end": {
                          "line": 77,
                          "column": 47
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2796,
                        "end": 2834,
                        "loc": {
                          "start": {
                            "line": 77,
                            "column": 8
                          },
                          "end": {
                            "line": 77,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2796,
                          "end": 2819,
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 8
                            },
                            "end": {
                              "line": 77,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2796,
                            "end": 2812,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 8
                              },
                              "end": {
                                "line": 77,
                                "column": 24
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2796,
                              "end": 2800,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 8
                                },
                                "end": {
                                  "line": 77,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2801,
                              "end": 2812,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 13
                                },
                                "end": {
                                  "line": 77,
                                  "column": 24
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2813,
                            "end": 2819,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 25
                              },
                              "end": {
                                "line": 77,
                                "column": 31
                              },
                              "identifierName": "delete"
                            },
                            "name": "delete"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 2820,
                            "end": 2833,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 32
                              },
                              "end": {
                                "line": 77,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2820,
                              "end": 2830,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 32
                                },
                                "end": {
                                  "line": 77,
                                  "column": 42
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2831,
                              "end": 2833,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 43
                                },
                                "end": {
                                  "line": 77,
                                  "column": 45
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2844,
                      "end": 2885,
                      "loc": {
                        "start": {
                          "line": 78,
                          "column": 8
                        },
                        "end": {
                          "line": 78,
                          "column": 49
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2844,
                        "end": 2884,
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 8
                          },
                          "end": {
                            "line": 78,
                            "column": 48
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2844,
                          "end": 2869,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 8
                            },
                            "end": {
                              "line": 78,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2844,
                            "end": 2862,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 8
                              },
                              "end": {
                                "line": 78,
                                "column": 26
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2844,
                              "end": 2848,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 8
                                },
                                "end": {
                                  "line": 78,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2849,
                              "end": 2862,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 13
                                },
                                "end": {
                                  "line": 78,
                                  "column": 26
                                },
                                "identifierName": "baseEntityFor"
                              },
                              "name": "baseEntityFor"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2863,
                            "end": 2869,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 27
                              },
                              "end": {
                                "line": 78,
                                "column": 33
                              },
                              "identifierName": "delete"
                            },
                            "name": "delete"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 2870,
                            "end": 2883,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 34
                              },
                              "end": {
                                "line": 78,
                                "column": 47
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2870,
                              "end": 2880,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 34
                                },
                                "end": {
                                  "line": 78,
                                  "column": 44
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2881,
                              "end": 2883,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 45
                                },
                                "end": {
                                  "line": 78,
                                  "column": 47
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2894,
                      "end": 2909,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 8
                        },
                        "end": {
                          "line": 79,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2894,
                        "end": 2908,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 8
                          },
                          "end": {
                            "line": 79,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2894,
                          "end": 2906,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 8
                            },
                            "end": {
                              "line": 79,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2894,
                            "end": 2898,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 8
                              },
                              "end": {
                                "line": 79,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2899,
                            "end": 2906,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 13
                              },
                              "end": {
                                "line": 79,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "trailingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: must be called if constraint has changed",
                    "start": 2921,
                    "end": 2969,
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 4
                      },
                      "end": {
                        "line": 82,
                        "column": 52
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 2974,
                "end": 3034,
                "loc": {
                  "start": {
                    "line": 83,
                    "column": 4
                  },
                  "end": {
                    "line": 85,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2974,
                  "end": 2990,
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 4
                    },
                    "end": {
                      "line": 83,
                      "column": 20
                    },
                    "identifierName": "updateConstraint"
                  },
                  "name": "updateConstraint",
                  "leadingComments": null
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2991,
                    "end": 3001,
                    "loc": {
                      "start": {
                        "line": 83,
                        "column": 21
                      },
                      "end": {
                        "line": 83,
                        "column": 31
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3003,
                  "end": 3034,
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 33
                    },
                    "end": {
                      "line": 85,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 3013,
                      "end": 3028,
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 8
                        },
                        "end": {
                          "line": 84,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3013,
                        "end": 3027,
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 8
                          },
                          "end": {
                            "line": 84,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3013,
                          "end": 3025,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 8
                            },
                            "end": {
                              "line": 84,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3013,
                            "end": 3017,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 8
                              },
                              "end": {
                                "line": 84,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3018,
                            "end": 3025,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 13
                              },
                              "end": {
                                "line": 84,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: must be called if constraint has changed",
                    "start": 2921,
                    "end": 2969,
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 4
                      },
                      "end": {
                        "line": 82,
                        "column": 52
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: must be called if entity of constraint has changed",
                    "start": 3039,
                    "end": 3097,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 4
                      },
                      "end": {
                        "line": 86,
                        "column": 62
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 3102,
                "end": 3206,
                "loc": {
                  "start": {
                    "line": 87,
                    "column": 4
                  },
                  "end": {
                    "line": 90,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3102,
                  "end": 3114,
                  "loc": {
                    "start": {
                      "line": 87,
                      "column": 4
                    },
                    "end": {
                      "line": 87,
                      "column": 16
                    },
                    "identifierName": "updateEntity"
                  },
                  "name": "updateEntity",
                  "leadingComments": null
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 3115,
                    "end": 3121,
                    "loc": {
                      "start": {
                        "line": 87,
                        "column": 17
                      },
                      "end": {
                        "line": 87,
                        "column": 23
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3123,
                  "end": 3206,
                  "loc": {
                    "start": {
                      "line": 87,
                      "column": 25
                    },
                    "end": {
                      "line": 90,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 3133,
                      "end": 3176,
                      "loc": {
                        "start": {
                          "line": 88,
                          "column": 8
                        },
                        "end": {
                          "line": 88,
                          "column": 51
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 3137,
                        "end": 3167,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 12
                          },
                          "end": {
                            "line": 88,
                            "column": 42
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "CallExpression",
                          "start": 3138,
                          "end": 3167,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 13
                            },
                            "end": {
                              "line": 88,
                              "column": 42
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3138,
                            "end": 3156,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 13
                              },
                              "end": {
                                "line": 88,
                                "column": 31
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 3138,
                              "end": 3152,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 13
                                },
                                "end": {
                                  "line": 88,
                                  "column": 27
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3138,
                                "end": 3142,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 17
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3143,
                                "end": 3152,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 27
                                  },
                                  "identifierName": "entityFor"
                                },
                                "name": "entityFor"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3153,
                              "end": 3156,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 28
                                },
                                "end": {
                                  "line": 88,
                                  "column": 31
                                },
                                "identifierName": "has"
                              },
                              "name": "has"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 3157,
                              "end": 3166,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 32
                                },
                                "end": {
                                  "line": 88,
                                  "column": 41
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3157,
                                "end": 3163,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 38
                                  },
                                  "identifierName": "entity"
                                },
                                "name": "entity"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3164,
                                "end": 3166,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 41
                                  },
                                  "identifierName": "id"
                                },
                                "name": "id"
                              },
                              "computed": false
                            }
                          ]
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3169,
                        "end": 3176,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 44
                          },
                          "end": {
                            "line": 88,
                            "column": 51
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3185,
                      "end": 3200,
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 8
                        },
                        "end": {
                          "line": 89,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3185,
                        "end": 3199,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 8
                          },
                          "end": {
                            "line": 89,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3185,
                          "end": 3197,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 8
                            },
                            "end": {
                              "line": 89,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3185,
                            "end": 3189,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 8
                              },
                              "end": {
                                "line": 89,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3190,
                            "end": 3197,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 13
                              },
                              "end": {
                                "line": 89,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: must be called if entity of constraint has changed",
                    "start": 3039,
                    "end": 3097,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 4
                      },
                      "end": {
                        "line": 86,
                        "column": 62
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 3212,
                "end": 3582,
                "loc": {
                  "start": {
                    "line": 92,
                    "column": 4
                  },
                  "end": {
                    "line": 101,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3212,
                  "end": 3217,
                  "loc": {
                    "start": {
                      "line": 92,
                      "column": 4
                    },
                    "end": {
                      "line": 92,
                      "column": 9
                    },
                    "identifierName": "hover"
                  },
                  "name": "hover"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 3218,
                    "end": 3224,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 10
                      },
                      "end": {
                        "line": 92,
                        "column": 16
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  },
                  {
                    "type": "Identifier",
                    "start": 3226,
                    "end": 3231,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 18
                      },
                      "end": {
                        "line": 92,
                        "column": 23
                      },
                      "identifierName": "first"
                    },
                    "name": "first"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3233,
                  "end": 3582,
                  "loc": {
                    "start": {
                      "line": 92,
                      "column": 25
                    },
                    "end": {
                      "line": 101,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 3243,
                      "end": 3280,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 8
                        },
                        "end": {
                          "line": 93,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 3247,
                        "end": 3271,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 12
                          },
                          "end": {
                            "line": 93,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 3247,
                          "end": 3256,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 12
                            },
                            "end": {
                              "line": 93,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3247,
                            "end": 3251,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 12
                              },
                              "end": {
                                "line": 93,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3252,
                            "end": 3256,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 17
                              },
                              "end": {
                                "line": 93,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 3261,
                          "end": 3271,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 26
                            },
                            "end": {
                              "line": 93,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3261,
                            "end": 3265,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 26
                              },
                              "end": {
                                "line": 93,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3266,
                            "end": 3271,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 31
                              },
                              "end": {
                                "line": 93,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3273,
                        "end": 3280,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 38
                          },
                          "end": {
                            "line": 93,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 3289,
                      "end": 3323,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 8
                        },
                        "end": {
                          "line": 94,
                          "column": 42
                        }
                      },
                      "test": {
                        "type": "CallExpression",
                        "start": 3293,
                        "end": 3314,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 12
                          },
                          "end": {
                            "line": 94,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3293,
                          "end": 3312,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 12
                            },
                            "end": {
                              "line": 94,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3293,
                            "end": 3299,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 12
                              },
                              "end": {
                                "line": 94,
                                "column": 18
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3300,
                            "end": 3312,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 19
                              },
                              "end": {
                                "line": 94,
                                "column": 31
                              },
                              "identifierName": "isConstraint"
                            },
                            "name": "isConstraint"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3316,
                        "end": 3323,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 35
                          },
                          "end": {
                            "line": 94,
                            "column": 42
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 3332,
                      "end": 3361,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 8
                        },
                        "end": {
                          "line": 95,
                          "column": 37
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 3336,
                        "end": 3341,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 12
                          },
                          "end": {
                            "line": 95,
                            "column": 17
                          },
                          "identifierName": "first"
                        },
                        "name": "first"
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 3343,
                        "end": 3361,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 19
                          },
                          "end": {
                            "line": 95,
                            "column": 37
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 3343,
                          "end": 3360,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 19
                            },
                            "end": {
                              "line": 95,
                              "column": 36
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3343,
                            "end": 3358,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 19
                              },
                              "end": {
                                "line": 95,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3343,
                              "end": 3347,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 19
                                },
                                "end": {
                                  "line": 95,
                                  "column": 23
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3348,
                              "end": 3358,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 24
                                },
                                "end": {
                                  "line": 95,
                                  "column": 34
                                },
                                "identifierName": "unhoverAll"
                              },
                              "name": "unhoverAll"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 3370,
                      "end": 3552,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 8
                        },
                        "end": {
                          "line": 99,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 3375,
                        "end": 3381,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 13
                          },
                          "end": {
                            "line": 96,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 3379,
                            "end": 3381,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 17
                              },
                              "end": {
                                "line": 96,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3379,
                              "end": 3381,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 17
                                },
                                "end": {
                                  "line": 96,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "LogicalExpression",
                        "start": 3385,
                        "end": 3420,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 23
                          },
                          "end": {
                            "line": 96,
                            "column": 58
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 3385,
                          "end": 3414,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 23
                            },
                            "end": {
                              "line": 96,
                              "column": 52
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3385,
                            "end": 3403,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 23
                              },
                              "end": {
                                "line": 96,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 3385,
                              "end": 3399,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 23
                                },
                                "end": {
                                  "line": 96,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3385,
                                "end": 3389,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 27
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3390,
                                "end": 3399,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 37
                                  },
                                  "identifierName": "entityFor"
                                },
                                "name": "entityFor"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3400,
                              "end": 3403,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 38
                                },
                                "end": {
                                  "line": 96,
                                  "column": 41
                                },
                                "identifierName": "get"
                              },
                              "name": "get"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 3404,
                              "end": 3413,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 42
                                },
                                "end": {
                                  "line": 96,
                                  "column": 51
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3404,
                                "end": 3410,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 48
                                  },
                                  "identifierName": "entity"
                                },
                                "name": "entity"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3411,
                                "end": 3413,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 51
                                  },
                                  "identifierName": "id"
                                },
                                "name": "id"
                              },
                              "computed": false
                            }
                          ]
                        },
                        "operator": "||",
                        "right": {
                          "type": "ArrayExpression",
                          "start": 3418,
                          "end": 3420,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 56
                            },
                            "end": {
                              "line": 96,
                              "column": 58
                            }
                          },
                          "elements": []
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 3422,
                        "end": 3552,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 60
                          },
                          "end": {
                            "line": 99,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 3436,
                            "end": 3465,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 12
                              },
                              "end": {
                                "line": 97,
                                "column": 41
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 3436,
                              "end": 3464,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 12
                                },
                                "end": {
                                  "line": 97,
                                  "column": 40
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 3436,
                                "end": 3454,
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 30
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3436,
                                  "end": 3440,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3441,
                                  "end": 3454,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 30
                                    },
                                    "identifierName": "setVisibility"
                                  },
                                  "name": "setVisibility"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 3455,
                                  "end": 3457,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 33
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                },
                                {
                                  "type": "BooleanLiteral",
                                  "start": 3459,
                                  "end": 3463,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 39
                                    }
                                  },
                                  "value": true
                                }
                              ]
                            }
                          },
                          {
                            "type": "IfStatement",
                            "start": 3478,
                            "end": 3542,
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 12
                              },
                              "end": {
                                "line": 98,
                                "column": 76
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 3482,
                              "end": 3502,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 16
                                },
                                "end": {
                                  "line": 98,
                                  "column": 36
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 3483,
                                "end": 3502,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3483,
                                  "end": 3498,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 3483,
                                    "end": 3487,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3488,
                                    "end": 3498,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 32
                                      },
                                      "identifierName": "isSelected"
                                    },
                                    "name": "isSelected"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3499,
                                    "end": 3501,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 35
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                ]
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 3504,
                              "end": 3542,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 38
                                },
                                "end": {
                                  "line": 98,
                                  "column": 76
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3504,
                                "end": 3541,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 75
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3504,
                                  "end": 3526,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 60
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 3504,
                                    "end": 3522,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 56
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 3504,
                                      "end": 3508,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 42
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3509,
                                      "end": 3522,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 56
                                        },
                                        "identifierName": "baseEntityFor"
                                      },
                                      "name": "baseEntityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3523,
                                    "end": 3526,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 57
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 60
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3527,
                                    "end": 3529,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 61
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 63
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 3531,
                                    "end": 3540,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 65
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 74
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3531,
                                      "end": 3537,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 65
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 71
                                        },
                                        "identifierName": "entity"
                                      },
                                      "name": "entity"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3538,
                                      "end": 3540,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 72
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 74
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3561,
                      "end": 3576,
                      "loc": {
                        "start": {
                          "line": 100,
                          "column": 8
                        },
                        "end": {
                          "line": 100,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3561,
                        "end": 3575,
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 8
                          },
                          "end": {
                            "line": 100,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3561,
                          "end": 3573,
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 8
                            },
                            "end": {
                              "line": 100,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3561,
                            "end": 3565,
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 8
                              },
                              "end": {
                                "line": 100,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3566,
                            "end": 3573,
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 13
                              },
                              "end": {
                                "line": 100,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 3588,
                "end": 3729,
                "loc": {
                  "start": {
                    "line": 103,
                    "column": 4
                  },
                  "end": {
                    "line": 107,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3588,
                  "end": 3595,
                  "loc": {
                    "start": {
                      "line": 103,
                      "column": 4
                    },
                    "end": {
                      "line": 103,
                      "column": 11
                    },
                    "identifierName": "unhover"
                  },
                  "name": "unhover"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 3596,
                    "end": 3602,
                    "loc": {
                      "start": {
                        "line": 103,
                        "column": 12
                      },
                      "end": {
                        "line": 103,
                        "column": 18
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  },
                  {
                    "type": "Identifier",
                    "start": 3604,
                    "end": 3609,
                    "loc": {
                      "start": {
                        "line": 103,
                        "column": 20
                      },
                      "end": {
                        "line": 103,
                        "column": 25
                      },
                      "identifierName": "first"
                    },
                    "name": "first"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3611,
                  "end": 3729,
                  "loc": {
                    "start": {
                      "line": 103,
                      "column": 27
                    },
                    "end": {
                      "line": 107,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 3621,
                      "end": 3658,
                      "loc": {
                        "start": {
                          "line": 104,
                          "column": 8
                        },
                        "end": {
                          "line": 104,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 3625,
                        "end": 3649,
                        "loc": {
                          "start": {
                            "line": 104,
                            "column": 12
                          },
                          "end": {
                            "line": 104,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 3625,
                          "end": 3634,
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 12
                            },
                            "end": {
                              "line": 104,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3625,
                            "end": 3629,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 12
                              },
                              "end": {
                                "line": 104,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3630,
                            "end": 3634,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 17
                              },
                              "end": {
                                "line": 104,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 3639,
                          "end": 3649,
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 26
                            },
                            "end": {
                              "line": 104,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3639,
                            "end": 3643,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 26
                              },
                              "end": {
                                "line": 104,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3644,
                            "end": 3649,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 31
                              },
                              "end": {
                                "line": 104,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3651,
                        "end": 3658,
                        "loc": {
                          "start": {
                            "line": 104,
                            "column": 38
                          },
                          "end": {
                            "line": 104,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 3667,
                      "end": 3701,
                      "loc": {
                        "start": {
                          "line": 105,
                          "column": 8
                        },
                        "end": {
                          "line": 105,
                          "column": 42
                        }
                      },
                      "test": {
                        "type": "CallExpression",
                        "start": 3671,
                        "end": 3692,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 12
                          },
                          "end": {
                            "line": 105,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3671,
                          "end": 3690,
                          "loc": {
                            "start": {
                              "line": 105,
                              "column": 12
                            },
                            "end": {
                              "line": 105,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3671,
                            "end": 3677,
                            "loc": {
                              "start": {
                                "line": 105,
                                "column": 12
                              },
                              "end": {
                                "line": 105,
                                "column": 18
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3678,
                            "end": 3690,
                            "loc": {
                              "start": {
                                "line": 105,
                                "column": 19
                              },
                              "end": {
                                "line": 105,
                                "column": 31
                              },
                              "identifierName": "isConstraint"
                            },
                            "name": "isConstraint"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3694,
                        "end": 3701,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 35
                          },
                          "end": {
                            "line": 105,
                            "column": 42
                          }
                        },
                        "argument": null,
                        "leadingComments": null,
                        "trailingComments": null
                      },
                      "alternate": null,
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " do nothing",
                          "start": 3710,
                          "end": 3723,
                          "loc": {
                            "start": {
                              "line": 106,
                              "column": 8
                            },
                            "end": {
                              "line": 106,
                              "column": 21
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 3735,
                "end": 3916,
                "loc": {
                  "start": {
                    "line": 109,
                    "column": 4
                  },
                  "end": {
                    "line": 114,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3735,
                  "end": 3745,
                  "loc": {
                    "start": {
                      "line": 109,
                      "column": 4
                    },
                    "end": {
                      "line": 109,
                      "column": 14
                    },
                    "identifierName": "unhoverAll"
                  },
                  "name": "unhoverAll"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 3748,
                  "end": 3916,
                  "loc": {
                    "start": {
                      "line": 109,
                      "column": 17
                    },
                    "end": {
                      "line": 114,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 3758,
                      "end": 3795,
                      "loc": {
                        "start": {
                          "line": 110,
                          "column": 8
                        },
                        "end": {
                          "line": 110,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 3762,
                        "end": 3786,
                        "loc": {
                          "start": {
                            "line": 110,
                            "column": 12
                          },
                          "end": {
                            "line": 110,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 3762,
                          "end": 3771,
                          "loc": {
                            "start": {
                              "line": 110,
                              "column": 12
                            },
                            "end": {
                              "line": 110,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3762,
                            "end": 3766,
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 12
                              },
                              "end": {
                                "line": 110,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3767,
                            "end": 3771,
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 17
                              },
                              "end": {
                                "line": 110,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 3776,
                          "end": 3786,
                          "loc": {
                            "start": {
                              "line": 110,
                              "column": 26
                            },
                            "end": {
                              "line": 110,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3776,
                            "end": 3780,
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 26
                              },
                              "end": {
                                "line": 110,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3781,
                            "end": 3786,
                            "loc": {
                              "start": {
                                "line": 110,
                                "column": 31
                              },
                              "end": {
                                "line": 110,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 3788,
                        "end": 3795,
                        "loc": {
                          "start": {
                            "line": 110,
                            "column": 38
                          },
                          "end": {
                            "line": 110,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 3804,
                      "end": 3886,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 8
                        },
                        "end": {
                          "line": 112,
                          "column": 42
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 3809,
                        "end": 3815,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 13
                          },
                          "end": {
                            "line": 111,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 3813,
                            "end": 3815,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 17
                              },
                              "end": {
                                "line": 111,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3813,
                              "end": 3815,
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 17
                                },
                                "end": {
                                  "line": 111,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 3819,
                        "end": 3842,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 23
                          },
                          "end": {
                            "line": 111,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3819,
                          "end": 3840,
                          "loc": {
                            "start": {
                              "line": 111,
                              "column": 23
                            },
                            "end": {
                              "line": 111,
                              "column": 44
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3819,
                            "end": 3835,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 23
                              },
                              "end": {
                                "line": 111,
                                "column": 39
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3819,
                              "end": 3823,
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 23
                                },
                                "end": {
                                  "line": 111,
                                  "column": 27
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3824,
                              "end": 3835,
                              "loc": {
                                "start": {
                                  "line": 111,
                                  "column": 28
                                },
                                "end": {
                                  "line": 111,
                                  "column": 39
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3836,
                            "end": 3840,
                            "loc": {
                              "start": {
                                "line": 111,
                                "column": 40
                              },
                              "end": {
                                "line": 111,
                                "column": 44
                              },
                              "identifierName": "keys"
                            },
                            "name": "keys"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "start": 3856,
                        "end": 3886,
                        "loc": {
                          "start": {
                            "line": 112,
                            "column": 12
                          },
                          "end": {
                            "line": 112,
                            "column": 42
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 3856,
                          "end": 3885,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 12
                            },
                            "end": {
                              "line": 112,
                              "column": 41
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3856,
                            "end": 3874,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 12
                              },
                              "end": {
                                "line": 112,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3856,
                              "end": 3860,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 12
                                },
                                "end": {
                                  "line": 112,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3861,
                              "end": 3874,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 17
                                },
                                "end": {
                                  "line": 112,
                                  "column": 30
                                },
                                "identifierName": "setVisibility"
                              },
                              "name": "setVisibility"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 3875,
                              "end": 3877,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 31
                                },
                                "end": {
                                  "line": 112,
                                  "column": 33
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            {
                              "type": "BooleanLiteral",
                              "start": 3879,
                              "end": 3884,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 35
                                },
                                "end": {
                                  "line": 112,
                                  "column": 40
                                }
                              },
                              "value": false
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3895,
                      "end": 3910,
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 8
                        },
                        "end": {
                          "line": 113,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3895,
                        "end": 3909,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 8
                          },
                          "end": {
                            "line": 113,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3895,
                          "end": 3907,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 8
                            },
                            "end": {
                              "line": 113,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3895,
                            "end": 3899,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 8
                              },
                              "end": {
                                "line": 113,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3900,
                            "end": 3907,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 13
                              },
                              "end": {
                                "line": 113,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "trailingComments": [
                  {
                    "type": "CommentLine",
                    "value": "called when constraint visualizer mode changes + on init",
                    "start": 3922,
                    "end": 3980,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 4
                      },
                      "end": {
                        "line": 116,
                        "column": 62
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 3985,
                "end": 4154,
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 4
                  },
                  "end": {
                    "line": 122,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3985,
                  "end": 3994,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 4
                    },
                    "end": {
                      "line": 117,
                      "column": 13
                    },
                    "identifierName": "updateAll"
                  },
                  "name": "updateAll",
                  "leadingComments": null
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 3995,
                    "end": 4011,
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 14
                      },
                      "end": {
                        "line": 117,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 3995,
                      "end": 3999,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 14
                        },
                        "end": {
                          "line": 117,
                          "column": 18
                        },
                        "identifierName": "mode"
                      },
                      "name": "mode"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 4002,
                      "end": 4011,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 21
                        },
                        "end": {
                          "line": 117,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "ThisExpression",
                        "start": 4002,
                        "end": 4006,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 21
                          },
                          "end": {
                            "line": 117,
                            "column": 25
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4007,
                        "end": 4011,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 26
                          },
                          "end": {
                            "line": 117,
                            "column": 30
                          },
                          "identifierName": "mode"
                        },
                        "name": "mode"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 4013,
                  "end": 4154,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 32
                    },
                    "end": {
                      "line": 122,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 4023,
                      "end": 4040,
                      "loc": {
                        "start": {
                          "line": 118,
                          "column": 8
                        },
                        "end": {
                          "line": 118,
                          "column": 25
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 4023,
                        "end": 4039,
                        "loc": {
                          "start": {
                            "line": 118,
                            "column": 8
                          },
                          "end": {
                            "line": 118,
                            "column": 24
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 4023,
                          "end": 4032,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 8
                            },
                            "end": {
                              "line": 118,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4023,
                            "end": 4027,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 8
                              },
                              "end": {
                                "line": 118,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4028,
                            "end": 4032,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 13
                              },
                              "end": {
                                "line": 118,
                                "column": 17
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 4035,
                          "end": 4039,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 20
                            },
                            "end": {
                              "line": 118,
                              "column": 24
                            },
                            "identifierName": "mode"
                          },
                          "name": "mode"
                        }
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 4049,
                      "end": 4124,
                      "loc": {
                        "start": {
                          "line": 119,
                          "column": 8
                        },
                        "end": {
                          "line": 120,
                          "column": 35
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 4054,
                        "end": 4060,
                        "loc": {
                          "start": {
                            "line": 119,
                            "column": 13
                          },
                          "end": {
                            "line": 119,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4058,
                            "end": 4060,
                            "loc": {
                              "start": {
                                "line": 119,
                                "column": 17
                              },
                              "end": {
                                "line": 119,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4058,
                              "end": 4060,
                              "loc": {
                                "start": {
                                  "line": 119,
                                  "column": 17
                                },
                                "end": {
                                  "line": 119,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 4064,
                        "end": 4087,
                        "loc": {
                          "start": {
                            "line": 119,
                            "column": 23
                          },
                          "end": {
                            "line": 119,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4064,
                          "end": 4085,
                          "loc": {
                            "start": {
                              "line": 119,
                              "column": 23
                            },
                            "end": {
                              "line": 119,
                              "column": 44
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4064,
                            "end": 4080,
                            "loc": {
                              "start": {
                                "line": 119,
                                "column": 23
                              },
                              "end": {
                                "line": 119,
                                "column": 39
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4064,
                              "end": 4068,
                              "loc": {
                                "start": {
                                  "line": 119,
                                  "column": 23
                                },
                                "end": {
                                  "line": 119,
                                  "column": 27
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4069,
                              "end": 4080,
                              "loc": {
                                "start": {
                                  "line": 119,
                                  "column": 28
                                },
                                "end": {
                                  "line": 119,
                                  "column": 39
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4081,
                            "end": 4085,
                            "loc": {
                              "start": {
                                "line": 119,
                                "column": 40
                              },
                              "end": {
                                "line": 119,
                                "column": 44
                              },
                              "identifierName": "keys"
                            },
                            "name": "keys"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "start": 4101,
                        "end": 4124,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 12
                          },
                          "end": {
                            "line": 120,
                            "column": 35
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 4101,
                          "end": 4123,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 12
                            },
                            "end": {
                              "line": 120,
                              "column": 34
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 4101,
                            "end": 4119,
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 12
                              },
                              "end": {
                                "line": 120,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4101,
                              "end": 4105,
                              "loc": {
                                "start": {
                                  "line": 120,
                                  "column": 12
                                },
                                "end": {
                                  "line": 120,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4106,
                              "end": 4119,
                              "loc": {
                                "start": {
                                  "line": 120,
                                  "column": 17
                                },
                                "end": {
                                  "line": 120,
                                  "column": 30
                                },
                                "identifierName": "setVisibility"
                              },
                              "name": "setVisibility"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 4120,
                              "end": 4122,
                              "loc": {
                                "start": {
                                  "line": 120,
                                  "column": 31
                                },
                                "end": {
                                  "line": 120,
                                  "column": 33
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4133,
                      "end": 4148,
                      "loc": {
                        "start": {
                          "line": 121,
                          "column": 8
                        },
                        "end": {
                          "line": 121,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4133,
                        "end": 4147,
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 8
                          },
                          "end": {
                            "line": 121,
                            "column": 22
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4133,
                          "end": 4145,
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 8
                            },
                            "end": {
                              "line": 121,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4133,
                            "end": 4137,
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 8
                              },
                              "end": {
                                "line": 121,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4138,
                            "end": 4145,
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 13
                              },
                              "end": {
                                "line": 121,
                                "column": 20
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "called when constraint visualizer mode changes + on init",
                    "start": 3922,
                    "end": 3980,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 4
                      },
                      "end": {
                        "line": 116,
                        "column": 62
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: called before each frame is rendered",
                    "start": 4160,
                    "end": 4204,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 4
                      },
                      "end": {
                        "line": 124,
                        "column": 48
                      }
                    }
                  },
                  {
                    "type": "CommentLine",
                    "value": "sets proper positions for all constraint graphics",
                    "start": 4209,
                    "end": 4260,
                    "loc": {
                      "start": {
                        "line": 125,
                        "column": 4
                      },
                      "end": {
                        "line": 125,
                        "column": 55
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 4265,
                "end": 9122,
                "loc": {
                  "start": {
                    "line": 126,
                    "column": 4
                  },
                  "end": {
                    "line": 230,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 4265,
                  "end": 4271,
                  "loc": {
                    "start": {
                      "line": 126,
                      "column": 4
                    },
                    "end": {
                      "line": 126,
                      "column": 10
                    },
                    "identifierName": "render"
                  },
                  "name": "render",
                  "leadingComments": null
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 4274,
                  "end": 9122,
                  "loc": {
                    "start": {
                      "line": 126,
                      "column": 13
                    },
                    "end": {
                      "line": 230,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 4284,
                      "end": 4316,
                      "loc": {
                        "start": {
                          "line": 127,
                          "column": 8
                        },
                        "end": {
                          "line": 127,
                          "column": 40
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 4288,
                        "end": 4307,
                        "loc": {
                          "start": {
                            "line": 127,
                            "column": 12
                          },
                          "end": {
                            "line": 127,
                            "column": 31
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 4289,
                          "end": 4307,
                          "loc": {
                            "start": {
                              "line": 127,
                              "column": 13
                            },
                            "end": {
                              "line": 127,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4289,
                            "end": 4293,
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 13
                              },
                              "end": {
                                "line": 127,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4294,
                            "end": 4307,
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 18
                              },
                              "end": {
                                "line": 127,
                                "column": 31
                              },
                              "identifierName": "graphicsDirty"
                            },
                            "name": "graphicsDirty"
                          },
                          "computed": false
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 4309,
                        "end": 4316,
                        "loc": {
                          "start": {
                            "line": 127,
                            "column": 33
                          },
                          "end": {
                            "line": 127,
                            "column": 40
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4325,
                      "end": 4352,
                      "loc": {
                        "start": {
                          "line": 128,
                          "column": 8
                        },
                        "end": {
                          "line": 128,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 4325,
                        "end": 4351,
                        "loc": {
                          "start": {
                            "line": 128,
                            "column": 8
                          },
                          "end": {
                            "line": 128,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 4325,
                          "end": 4343,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 8
                            },
                            "end": {
                              "line": 128,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 4325,
                            "end": 4329,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 8
                              },
                              "end": {
                                "line": 128,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4330,
                            "end": 4343,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 13
                              },
                              "end": {
                                "line": 128,
                                "column": 26
                              },
                              "identifierName": "graphicsDirty"
                            },
                            "name": "graphicsDirty"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "BooleanLiteral",
                          "start": 4346,
                          "end": 4351,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 29
                            },
                            "end": {
                              "line": 128,
                              "column": 34
                            }
                          },
                          "value": false
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 4361,
                      "end": 4409,
                      "loc": {
                        "start": {
                          "line": 129,
                          "column": 8
                        },
                        "end": {
                          "line": 129,
                          "column": 56
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4367,
                          "end": 4408,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 14
                            },
                            "end": {
                              "line": 129,
                              "column": 55
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4367,
                            "end": 4375,
                            "loc": {
                              "start": {
                                "line": 129,
                                "column": 14
                              },
                              "end": {
                                "line": 129,
                                "column": 22
                              },
                              "identifierName": "iconSize"
                            },
                            "name": "iconSize"
                          },
                          "init": {
                            "type": "BinaryExpression",
                            "start": 4378,
                            "end": 4408,
                            "loc": {
                              "start": {
                                "line": 129,
                                "column": 25
                              },
                              "end": {
                                "line": 129,
                                "column": 55
                              }
                            },
                            "left": {
                              "type": "NumericLiteral",
                              "start": 4378,
                              "end": 4379,
                              "loc": {
                                "start": {
                                  "line": 129,
                                  "column": 25
                                },
                                "end": {
                                  "line": 129,
                                  "column": 26
                                }
                              },
                              "extra": {
                                "rawValue": 3,
                                "raw": "3"
                              },
                              "value": 3
                            },
                            "operator": "*",
                            "right": {
                              "type": "MemberExpression",
                              "start": 4382,
                              "end": 4408,
                              "loc": {
                                "start": {
                                  "line": 129,
                                  "column": 29
                                },
                                "end": {
                                  "line": 129,
                                  "column": 55
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4382,
                                "end": 4395,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 42
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 4382,
                                  "end": 4386,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 33
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4387,
                                  "end": 4395,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 42
                                    },
                                    "identifierName": "sketcher"
                                  },
                                  "name": "sketcher"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4396,
                                "end": 4408,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 55
                                  },
                                  "identifierName": "graphicScale"
                                },
                                "name": "graphicScale"
                              },
                              "computed": false
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "determine for each base entity the array of all constraints drawn near it",
                          "start": 4419,
                          "end": 4494,
                          "loc": {
                            "start": {
                              "line": 131,
                              "column": 8
                            },
                            "end": {
                              "line": 131,
                              "column": 83
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 4503,
                      "end": 4534,
                      "loc": {
                        "start": {
                          "line": 132,
                          "column": 8
                        },
                        "end": {
                          "line": 132,
                          "column": 39
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4507,
                          "end": 4533,
                          "loc": {
                            "start": {
                              "line": 132,
                              "column": 12
                            },
                            "end": {
                              "line": 132,
                              "column": 38
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4507,
                            "end": 4521,
                            "loc": {
                              "start": {
                                "line": 132,
                                "column": 12
                              },
                              "end": {
                                "line": 132,
                                "column": 26
                              },
                              "identifierName": "perEntityLists"
                            },
                            "name": "perEntityLists",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 4524,
                            "end": 4533,
                            "loc": {
                              "start": {
                                "line": 132,
                                "column": 29
                              },
                              "end": {
                                "line": 132,
                                "column": 38
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 4528,
                              "end": 4531,
                              "loc": {
                                "start": {
                                  "line": 132,
                                  "column": 33
                                },
                                "end": {
                                  "line": 132,
                                  "column": 36
                                },
                                "identifierName": "Map"
                              },
                              "name": "Map"
                            },
                            "arguments": []
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "let",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "determine for each base entity the array of all constraints drawn near it",
                          "start": 4419,
                          "end": 4494,
                          "loc": {
                            "start": {
                              "line": 131,
                              "column": 8
                            },
                            "end": {
                              "line": 131,
                              "column": 83
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 4543,
                      "end": 4891,
                      "loc": {
                        "start": {
                          "line": 133,
                          "column": 8
                        },
                        "end": {
                          "line": 140,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 4548,
                        "end": 4557,
                        "loc": {
                          "start": {
                            "line": 133,
                            "column": 13
                          },
                          "end": {
                            "line": 133,
                            "column": 22
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4552,
                            "end": 4557,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 17
                              },
                              "end": {
                                "line": 133,
                                "column": 22
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4552,
                              "end": 4557,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 17
                                },
                                "end": {
                                  "line": 133,
                                  "column": 22
                                },
                                "identifierName": "conId"
                              },
                              "name": "conId"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 4561,
                        "end": 4584,
                        "loc": {
                          "start": {
                            "line": 133,
                            "column": 26
                          },
                          "end": {
                            "line": 133,
                            "column": 49
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4561,
                          "end": 4582,
                          "loc": {
                            "start": {
                              "line": 133,
                              "column": 26
                            },
                            "end": {
                              "line": 133,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4561,
                            "end": 4577,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 26
                              },
                              "end": {
                                "line": 133,
                                "column": 42
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4561,
                              "end": 4565,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 26
                                },
                                "end": {
                                  "line": 133,
                                  "column": 30
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4566,
                              "end": 4577,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 31
                                },
                                "end": {
                                  "line": 133,
                                  "column": 42
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4578,
                            "end": 4582,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 43
                              },
                              "end": {
                                "line": 133,
                                "column": 47
                              },
                              "identifierName": "keys"
                            },
                            "name": "keys"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 4586,
                        "end": 4891,
                        "loc": {
                          "start": {
                            "line": 133,
                            "column": 51
                          },
                          "end": {
                            "line": 140,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 4600,
                            "end": 4645,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 12
                              },
                              "end": {
                                "line": 134,
                                "column": 57
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 4604,
                                "end": 4644,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 56
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 4604,
                                  "end": 4610,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 22
                                    },
                                    "identifierName": "constr"
                                  },
                                  "name": "constr"
                                },
                                "init": {
                                  "type": "NewExpression",
                                  "start": 4613,
                                  "end": 4644,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 56
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 4617,
                                    "end": 4622,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 34
                                      },
                                      "identifierName": "Ccref"
                                    },
                                    "name": "Ccref"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 4623,
                                      "end": 4636,
                                      "loc": {
                                        "start": {
                                          "line": 134,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 134,
                                          "column": 48
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 4623,
                                        "end": 4627,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 4628,
                                        "end": 4636,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 48
                                          },
                                          "identifierName": "sketcher"
                                        },
                                        "name": "sketcher"
                                      },
                                      "computed": false
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 4638,
                                      "end": 4643,
                                      "loc": {
                                        "start": {
                                          "line": 134,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 134,
                                          "column": 55
                                        },
                                        "identifierName": "conId"
                                      },
                                      "name": "conId"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "IfStatement",
                            "start": 4658,
                            "end": 4697,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 12
                              },
                              "end": {
                                "line": 135,
                                "column": 51
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 4662,
                              "end": 4686,
                              "loc": {
                                "start": {
                                  "line": 135,
                                  "column": 16
                                },
                                "end": {
                                  "line": 135,
                                  "column": 40
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 4663,
                                "end": 4686,
                                "loc": {
                                  "start": {
                                    "line": 135,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 135,
                                    "column": 40
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 4663,
                                  "end": 4678,
                                  "loc": {
                                    "start": {
                                      "line": 135,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 135,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4663,
                                    "end": 4669,
                                    "loc": {
                                      "start": {
                                        "line": 135,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 135,
                                        "column": 23
                                      },
                                      "identifierName": "constr"
                                    },
                                    "name": "constr"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4670,
                                    "end": 4678,
                                    "loc": {
                                      "start": {
                                        "line": 135,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 135,
                                        "column": 32
                                      },
                                      "identifierName": "graphics"
                                    },
                                    "name": "graphics"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4679,
                                  "end": 4686,
                                  "loc": {
                                    "start": {
                                      "line": 135,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 135,
                                      "column": 40
                                    },
                                    "identifierName": "visible"
                                  },
                                  "name": "visible"
                                },
                                "computed": false
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ContinueStatement",
                              "start": 4688,
                              "end": 4697,
                              "loc": {
                                "start": {
                                  "line": 135,
                                  "column": 42
                                },
                                "end": {
                                  "line": 135,
                                  "column": 51
                                }
                              },
                              "label": null
                            },
                            "alternate": null
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 4711,
                            "end": 4752,
                            "loc": {
                              "start": {
                                "line": 137,
                                "column": 12
                              },
                              "end": {
                                "line": 137,
                                "column": 53
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 4715,
                                "end": 4751,
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 137,
                                    "column": 52
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 4715,
                                  "end": 4721,
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 137,
                                      "column": 22
                                    },
                                    "identifierName": "baseId"
                                  },
                                  "name": "baseId"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 4724,
                                  "end": 4751,
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 137,
                                      "column": 52
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 4724,
                                    "end": 4744,
                                    "loc": {
                                      "start": {
                                        "line": 137,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 137,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 4724,
                                      "end": 4728,
                                      "loc": {
                                        "start": {
                                          "line": 137,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 137,
                                          "column": 29
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4729,
                                      "end": 4744,
                                      "loc": {
                                        "start": {
                                          "line": 137,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 137,
                                          "column": 45
                                        },
                                        "identifierName": "getBaseEntityId"
                                      },
                                      "name": "getBaseEntityId"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 4745,
                                      "end": 4750,
                                      "loc": {
                                        "start": {
                                          "line": 137,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 137,
                                          "column": 51
                                        },
                                        "identifierName": "conId"
                                      },
                                      "name": "conId"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "IfStatement",
                            "start": 4765,
                            "end": 4829,
                            "loc": {
                              "start": {
                                "line": 138,
                                "column": 12
                              },
                              "end": {
                                "line": 138,
                                "column": 76
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 4769,
                              "end": 4796,
                              "loc": {
                                "start": {
                                  "line": 138,
                                  "column": 16
                                },
                                "end": {
                                  "line": 138,
                                  "column": 43
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 4770,
                                "end": 4796,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 43
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4770,
                                  "end": 4788,
                                  "loc": {
                                    "start": {
                                      "line": 138,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 138,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4770,
                                    "end": 4784,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 31
                                      },
                                      "identifierName": "perEntityLists"
                                    },
                                    "name": "perEntityLists"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4785,
                                    "end": 4788,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 35
                                      },
                                      "identifierName": "has"
                                    },
                                    "name": "has"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 4789,
                                    "end": 4795,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 42
                                      },
                                      "identifierName": "baseId"
                                    },
                                    "name": "baseId"
                                  }
                                ]
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 4798,
                              "end": 4829,
                              "loc": {
                                "start": {
                                  "line": 138,
                                  "column": 45
                                },
                                "end": {
                                  "line": 138,
                                  "column": 76
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 4798,
                                "end": 4828,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 75
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4798,
                                  "end": 4816,
                                  "loc": {
                                    "start": {
                                      "line": 138,
                                      "column": 45
                                    },
                                    "end": {
                                      "line": 138,
                                      "column": 63
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4798,
                                    "end": 4812,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 45
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 59
                                      },
                                      "identifierName": "perEntityLists"
                                    },
                                    "name": "perEntityLists"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4813,
                                    "end": 4816,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 63
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 4817,
                                    "end": 4823,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 64
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 70
                                      },
                                      "identifierName": "baseId"
                                    },
                                    "name": "baseId"
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 4825,
                                    "end": 4827,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 72
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 74
                                      }
                                    },
                                    "elements": []
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 4842,
                            "end": 4881,
                            "loc": {
                              "start": {
                                "line": 139,
                                "column": 12
                              },
                              "end": {
                                "line": 139,
                                "column": 51
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 4842,
                              "end": 4880,
                              "loc": {
                                "start": {
                                  "line": 139,
                                  "column": 12
                                },
                                "end": {
                                  "line": 139,
                                  "column": 50
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4842,
                                "end": 4873,
                                "loc": {
                                  "start": {
                                    "line": 139,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 139,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 4842,
                                  "end": 4868,
                                  "loc": {
                                    "start": {
                                      "line": 139,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 139,
                                      "column": 38
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 4842,
                                    "end": 4860,
                                    "loc": {
                                      "start": {
                                        "line": 139,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 139,
                                        "column": 30
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4842,
                                      "end": 4856,
                                      "loc": {
                                        "start": {
                                          "line": 139,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 139,
                                          "column": 26
                                        },
                                        "identifierName": "perEntityLists"
                                      },
                                      "name": "perEntityLists"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4857,
                                      "end": 4860,
                                      "loc": {
                                        "start": {
                                          "line": 139,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 139,
                                          "column": 30
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 4861,
                                      "end": 4867,
                                      "loc": {
                                        "start": {
                                          "line": 139,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 139,
                                          "column": 37
                                        },
                                        "identifierName": "baseId"
                                      },
                                      "name": "baseId"
                                    }
                                  ]
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4869,
                                  "end": 4873,
                                  "loc": {
                                    "start": {
                                      "line": 139,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 139,
                                      "column": 43
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 4874,
                                  "end": 4879,
                                  "loc": {
                                    "start": {
                                      "line": 139,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 139,
                                      "column": 49
                                    },
                                    "identifierName": "conId"
                                  },
                                  "name": "conId"
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "IfStatement",
                      "start": 4900,
                      "end": 4938,
                      "loc": {
                        "start": {
                          "line": 141,
                          "column": 8
                        },
                        "end": {
                          "line": 141,
                          "column": 46
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 4904,
                        "end": 4929,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 12
                          },
                          "end": {
                            "line": 141,
                            "column": 37
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 4904,
                          "end": 4923,
                          "loc": {
                            "start": {
                              "line": 141,
                              "column": 12
                            },
                            "end": {
                              "line": 141,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 4904,
                            "end": 4918,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 12
                              },
                              "end": {
                                "line": 141,
                                "column": 26
                              },
                              "identifierName": "perEntityLists"
                            },
                            "name": "perEntityLists"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4919,
                            "end": 4923,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 27
                              },
                              "end": {
                                "line": 141,
                                "column": 31
                              },
                              "identifierName": "size"
                            },
                            "name": "size"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "NumericLiteral",
                          "start": 4928,
                          "end": 4929,
                          "loc": {
                            "start": {
                              "line": 141,
                              "column": 36
                            },
                            "end": {
                              "line": 141,
                              "column": 37
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 4931,
                        "end": 4938,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 39
                          },
                          "end": {
                            "line": 141,
                            "column": 46
                          }
                        },
                        "argument": null,
                        "leadingComments": null,
                        "trailingComments": null
                      },
                      "alternate": null,
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "create rectangle filled with constraints icons for each base entity",
                          "start": 4948,
                          "end": 5017,
                          "loc": {
                            "start": {
                              "line": 143,
                              "column": 8
                            },
                            "end": {
                              "line": 143,
                              "column": 77
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 5026,
                      "end": 5257,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 8
                        },
                        "end": {
                          "line": 150,
                          "column": 11
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5030,
                          "end": 5256,
                          "loc": {
                            "start": {
                              "line": 144,
                              "column": 12
                            },
                            "end": {
                              "line": 150,
                              "column": 10
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5030,
                            "end": 5040,
                            "loc": {
                              "start": {
                                "line": 144,
                                "column": 12
                              },
                              "end": {
                                "line": 144,
                                "column": 22
                              },
                              "identifierName": "rectangles"
                            },
                            "name": "rectangles",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 5043,
                            "end": 5256,
                            "loc": {
                              "start": {
                                "line": 144,
                                "column": 25
                              },
                              "end": {
                                "line": 150,
                                "column": 10
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5043,
                              "end": 5080,
                              "loc": {
                                "start": {
                                  "line": 144,
                                  "column": 25
                                },
                                "end": {
                                  "line": 144,
                                  "column": 62
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5043,
                                "end": 5076,
                                "loc": {
                                  "start": {
                                    "line": 144,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 144,
                                    "column": 58
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5043,
                                  "end": 5053,
                                  "loc": {
                                    "start": {
                                      "line": 144,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 144,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5043,
                                    "end": 5048,
                                    "loc": {
                                      "start": {
                                        "line": 144,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 144,
                                        "column": 30
                                      },
                                      "identifierName": "Array"
                                    },
                                    "name": "Array"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5049,
                                    "end": 5053,
                                    "loc": {
                                      "start": {
                                        "line": 144,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 144,
                                        "column": 35
                                      },
                                      "identifierName": "from"
                                    },
                                    "name": "from"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "CallExpression",
                                    "start": 5054,
                                    "end": 5075,
                                    "loc": {
                                      "start": {
                                        "line": 144,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 144,
                                        "column": 57
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 5054,
                                      "end": 5073,
                                      "loc": {
                                        "start": {
                                          "line": 144,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 144,
                                          "column": 55
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5054,
                                        "end": 5068,
                                        "loc": {
                                          "start": {
                                            "line": 144,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 144,
                                            "column": 50
                                          },
                                          "identifierName": "perEntityLists"
                                        },
                                        "name": "perEntityLists"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5069,
                                        "end": 5073,
                                        "loc": {
                                          "start": {
                                            "line": 144,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 144,
                                            "column": 55
                                          },
                                          "identifierName": "keys"
                                        },
                                        "name": "keys"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  }
                                ]
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5077,
                                "end": 5080,
                                "loc": {
                                  "start": {
                                    "line": 144,
                                    "column": 59
                                  },
                                  "end": {
                                    "line": 144,
                                    "column": 62
                                  },
                                  "identifierName": "map"
                                },
                                "name": "map"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 5081,
                                "end": 5255,
                                "loc": {
                                  "start": {
                                    "line": 144,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 150,
                                    "column": 9
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 5081,
                                    "end": 5083,
                                    "loc": {
                                      "start": {
                                        "line": 144,
                                        "column": 63
                                      },
                                      "end": {
                                        "line": 144,
                                        "column": 65
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 5087,
                                  "end": 5255,
                                  "loc": {
                                    "start": {
                                      "line": 144,
                                      "column": 69
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 9
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ReturnStatement",
                                      "start": 5101,
                                      "end": 5245,
                                      "loc": {
                                        "start": {
                                          "line": 145,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 149,
                                          "column": 14
                                        }
                                      },
                                      "argument": {
                                        "type": "ObjectExpression",
                                        "start": 5108,
                                        "end": 5244,
                                        "loc": {
                                          "start": {
                                            "line": 145,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 149,
                                            "column": 13
                                          }
                                        },
                                        "properties": [
                                          {
                                            "type": "ObjectProperty",
                                            "start": 5126,
                                            "end": 5128,
                                            "loc": {
                                              "start": {
                                                "line": 146,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 146,
                                                "column": 18
                                              }
                                            },
                                            "method": false,
                                            "shorthand": true,
                                            "computed": false,
                                            "key": {
                                              "type": "Identifier",
                                              "start": 5126,
                                              "end": 5128,
                                              "loc": {
                                                "start": {
                                                  "line": 146,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 146,
                                                  "column": 18
                                                },
                                                "identifierName": "id"
                                              },
                                              "name": "id"
                                            },
                                            "value": {
                                              "type": "Identifier",
                                              "start": 5126,
                                              "end": 5128,
                                              "loc": {
                                                "start": {
                                                  "line": 146,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 146,
                                                  "column": 18
                                                },
                                                "identifierName": "id"
                                              },
                                              "name": "id"
                                            },
                                            "extra": {
                                              "shorthand": true
                                            }
                                          },
                                          {
                                            "type": "ObjectProperty",
                                            "start": 5146,
                                            "end": 5177,
                                            "loc": {
                                              "start": {
                                                "line": 147,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 147,
                                                "column": 47
                                              }
                                            },
                                            "method": false,
                                            "shorthand": false,
                                            "computed": false,
                                            "key": {
                                              "type": "Identifier",
                                              "start": 5146,
                                              "end": 5152,
                                              "loc": {
                                                "start": {
                                                  "line": 147,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 147,
                                                  "column": 22
                                                },
                                                "identifierName": "keyPos"
                                              },
                                              "name": "keyPos"
                                            },
                                            "value": {
                                              "type": "CallExpression",
                                              "start": 5154,
                                              "end": 5177,
                                              "loc": {
                                                "start": {
                                                  "line": 147,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 147,
                                                  "column": 47
                                                }
                                              },
                                              "callee": {
                                                "type": "MemberExpression",
                                                "start": 5154,
                                                "end": 5173,
                                                "loc": {
                                                  "start": {
                                                    "line": 147,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 147,
                                                    "column": 43
                                                  }
                                                },
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "start": 5154,
                                                  "end": 5158,
                                                  "loc": {
                                                    "start": {
                                                      "line": 147,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 147,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 5159,
                                                  "end": 5173,
                                                  "loc": {
                                                    "start": {
                                                      "line": 147,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 147,
                                                      "column": 43
                                                    },
                                                    "identifierName": "getKeyPosition"
                                                  },
                                                  "name": "getKeyPosition"
                                                },
                                                "computed": false
                                              },
                                              "arguments": [
                                                {
                                                  "type": "Identifier",
                                                  "start": 5174,
                                                  "end": 5176,
                                                  "loc": {
                                                    "start": {
                                                      "line": 147,
                                                      "column": 44
                                                    },
                                                    "end": {
                                                      "line": 147,
                                                      "column": 46
                                                    },
                                                    "identifierName": "id"
                                                  },
                                                  "name": "id"
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            "type": "ObjectProperty",
                                            "start": 5195,
                                            "end": 5229,
                                            "loc": {
                                              "start": {
                                                "line": 148,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 148,
                                                "column": 50
                                              }
                                            },
                                            "method": false,
                                            "shorthand": false,
                                            "computed": false,
                                            "key": {
                                              "type": "Identifier",
                                              "start": 5195,
                                              "end": 5198,
                                              "loc": {
                                                "start": {
                                                  "line": 148,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 148,
                                                  "column": 19
                                                },
                                                "identifierName": "cnt"
                                              },
                                              "name": "cnt"
                                            },
                                            "value": {
                                              "type": "MemberExpression",
                                              "start": 5200,
                                              "end": 5229,
                                              "loc": {
                                                "start": {
                                                  "line": 148,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 148,
                                                  "column": 50
                                                }
                                              },
                                              "object": {
                                                "type": "CallExpression",
                                                "start": 5200,
                                                "end": 5222,
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 43
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 5200,
                                                  "end": 5218,
                                                  "loc": {
                                                    "start": {
                                                      "line": 148,
                                                      "column": 21
                                                    },
                                                    "end": {
                                                      "line": 148,
                                                      "column": 39
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 5200,
                                                    "end": 5214,
                                                    "loc": {
                                                      "start": {
                                                        "line": 148,
                                                        "column": 21
                                                      },
                                                      "end": {
                                                        "line": 148,
                                                        "column": 35
                                                      },
                                                      "identifierName": "perEntityLists"
                                                    },
                                                    "name": "perEntityLists"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 5215,
                                                    "end": 5218,
                                                    "loc": {
                                                      "start": {
                                                        "line": 148,
                                                        "column": 36
                                                      },
                                                      "end": {
                                                        "line": 148,
                                                        "column": 39
                                                      },
                                                      "identifierName": "get"
                                                    },
                                                    "name": "get"
                                                  },
                                                  "computed": false
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "start": 5219,
                                                    "end": 5221,
                                                    "loc": {
                                                      "start": {
                                                        "line": 148,
                                                        "column": 40
                                                      },
                                                      "end": {
                                                        "line": 148,
                                                        "column": 42
                                                      },
                                                      "identifierName": "id"
                                                    },
                                                    "name": "id"
                                                  }
                                                ]
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 5223,
                                                "end": 5229,
                                                "loc": {
                                                  "start": {
                                                    "line": 148,
                                                    "column": 44
                                                  },
                                                  "end": {
                                                    "line": 148,
                                                    "column": 50
                                                  },
                                                  "identifierName": "length"
                                                },
                                                "name": "length"
                                              },
                                              "computed": false
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            ]
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "let",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "create rectangle filled with constraints icons for each base entity",
                          "start": 4948,
                          "end": 5017,
                          "loc": {
                            "start": {
                              "line": 143,
                              "column": 8
                            },
                            "end": {
                              "line": 143,
                              "column": 77
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "sort base entities (for stability)",
                          "start": 5266,
                          "end": 5302,
                          "loc": {
                            "start": {
                              "line": 151,
                              "column": 8
                            },
                            "end": {
                              "line": 151,
                              "column": 44
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5311,
                      "end": 5382,
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 8
                        },
                        "end": {
                          "line": 154,
                          "column": 11
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5311,
                        "end": 5381,
                        "loc": {
                          "start": {
                            "line": 152,
                            "column": 8
                          },
                          "end": {
                            "line": 154,
                            "column": 10
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5311,
                          "end": 5326,
                          "loc": {
                            "start": {
                              "line": 152,
                              "column": 8
                            },
                            "end": {
                              "line": 152,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5311,
                            "end": 5321,
                            "loc": {
                              "start": {
                                "line": 152,
                                "column": 8
                              },
                              "end": {
                                "line": 152,
                                "column": 18
                              },
                              "identifierName": "rectangles"
                            },
                            "name": "rectangles",
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5322,
                            "end": 5326,
                            "loc": {
                              "start": {
                                "line": 152,
                                "column": 19
                              },
                              "end": {
                                "line": 152,
                                "column": 23
                              },
                              "identifierName": "sort"
                            },
                            "name": "sort"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 5327,
                            "end": 5380,
                            "loc": {
                              "start": {
                                "line": 152,
                                "column": 24
                              },
                              "end": {
                                "line": 154,
                                "column": 9
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": false,
                            "async": false,
                            "params": [
                              {
                                "type": "Identifier",
                                "start": 5328,
                                "end": 5329,
                                "loc": {
                                  "start": {
                                    "line": 152,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 152,
                                    "column": 26
                                  },
                                  "identifierName": "a"
                                },
                                "name": "a"
                              },
                              {
                                "type": "Identifier",
                                "start": 5331,
                                "end": 5332,
                                "loc": {
                                  "start": {
                                    "line": 152,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 152,
                                    "column": 29
                                  },
                                  "identifierName": "b"
                                },
                                "name": "b"
                              }
                            ],
                            "body": {
                              "type": "BlockStatement",
                              "start": 5337,
                              "end": 5380,
                              "loc": {
                                "start": {
                                  "line": 152,
                                  "column": 34
                                },
                                "end": {
                                  "line": 154,
                                  "column": 9
                                }
                              },
                              "body": [
                                {
                                  "type": "ReturnStatement",
                                  "start": 5351,
                                  "end": 5370,
                                  "loc": {
                                    "start": {
                                      "line": 153,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 153,
                                      "column": 31
                                    }
                                  },
                                  "argument": {
                                    "type": "BinaryExpression",
                                    "start": 5358,
                                    "end": 5369,
                                    "loc": {
                                      "start": {
                                        "line": 153,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 153,
                                        "column": 30
                                      }
                                    },
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 5358,
                                      "end": 5362,
                                      "loc": {
                                        "start": {
                                          "line": 153,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 153,
                                          "column": 23
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5358,
                                        "end": 5359,
                                        "loc": {
                                          "start": {
                                            "line": 153,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 153,
                                            "column": 20
                                          },
                                          "identifierName": "a"
                                        },
                                        "name": "a"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5360,
                                        "end": 5362,
                                        "loc": {
                                          "start": {
                                            "line": 153,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 153,
                                            "column": 23
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    },
                                    "operator": "-",
                                    "right": {
                                      "type": "MemberExpression",
                                      "start": 5365,
                                      "end": 5369,
                                      "loc": {
                                        "start": {
                                          "line": 153,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 153,
                                          "column": 30
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5365,
                                        "end": 5366,
                                        "loc": {
                                          "start": {
                                            "line": 153,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 153,
                                            "column": 27
                                          },
                                          "identifierName": "b"
                                        },
                                        "name": "b"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5367,
                                        "end": 5369,
                                        "loc": {
                                          "start": {
                                            "line": 153,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 153,
                                            "column": 30
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    }
                                  }
                                }
                              ],
                              "directives": []
                            }
                          }
                        ],
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "sort base entities (for stability)",
                          "start": 5266,
                          "end": 5302,
                          "loc": {
                            "start": {
                              "line": 151,
                              "column": 8
                            },
                            "end": {
                              "line": 151,
                              "column": 44
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "minimal distance between rectangles (in iconSize units)",
                          "start": 5392,
                          "end": 5449,
                          "loc": {
                            "start": {
                              "line": 156,
                              "column": 8
                            },
                            "end": {
                              "line": 156,
                              "column": 65
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 5458,
                      "end": 5477,
                      "loc": {
                        "start": {
                          "line": 157,
                          "column": 8
                        },
                        "end": {
                          "line": 157,
                          "column": 27
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5464,
                          "end": 5476,
                          "loc": {
                            "start": {
                              "line": 157,
                              "column": 14
                            },
                            "end": {
                              "line": 157,
                              "column": 26
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5464,
                            "end": 5470,
                            "loc": {
                              "start": {
                                "line": 157,
                                "column": 14
                              },
                              "end": {
                                "line": 157,
                                "column": 20
                              },
                              "identifierName": "colEps"
                            },
                            "name": "colEps",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "NumericLiteral",
                            "start": 5473,
                            "end": 5476,
                            "loc": {
                              "start": {
                                "line": 157,
                                "column": 23
                              },
                              "end": {
                                "line": 157,
                                "column": 26
                              }
                            },
                            "extra": {
                              "rawValue": 0.5,
                              "raw": "0.5"
                            },
                            "value": 0.5
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "const",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "minimal distance between rectangles (in iconSize units)",
                          "start": 5392,
                          "end": 5449,
                          "loc": {
                            "start": {
                              "line": 156,
                              "column": 8
                            },
                            "end": {
                              "line": 156,
                              "column": 65
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "minimal vertical distance from key position to rectangle's center (in iconSize units)",
                          "start": 5486,
                          "end": 5573,
                          "loc": {
                            "start": {
                              "line": 158,
                              "column": 8
                            },
                            "end": {
                              "line": 158,
                              "column": 95
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 5582,
                      "end": 5606,
                      "loc": {
                        "start": {
                          "line": 159,
                          "column": 8
                        },
                        "end": {
                          "line": 159,
                          "column": 32
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5588,
                          "end": 5605,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 14
                            },
                            "end": {
                              "line": 159,
                              "column": 31
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5588,
                            "end": 5598,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 14
                              },
                              "end": {
                                "line": 159,
                                "column": 24
                              },
                              "identifierName": "minOffsetH"
                            },
                            "name": "minOffsetH",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "NumericLiteral",
                            "start": 5601,
                            "end": 5605,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 27
                              },
                              "end": {
                                "line": 159,
                                "column": 31
                              }
                            },
                            "extra": {
                              "rawValue": 0.75,
                              "raw": "0.75"
                            },
                            "value": 0.75
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "const",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "minimal vertical distance from key position to rectangle's center (in iconSize units)",
                          "start": 5486,
                          "end": 5573,
                          "loc": {
                            "start": {
                              "line": 158,
                              "column": 8
                            },
                            "end": {
                              "line": 158,
                              "column": 95
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "set positions for all entity lists (each one is rectangle)",
                          "start": 5616,
                          "end": 5676,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 8
                            },
                            "end": {
                              "line": 161,
                              "column": 68
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ForStatement",
                      "start": 5685,
                      "end": 8441,
                      "loc": {
                        "start": {
                          "line": 162,
                          "column": 8
                        },
                        "end": {
                          "line": 214,
                          "column": 9
                        }
                      },
                      "init": {
                        "type": "VariableDeclaration",
                        "start": 5690,
                        "end": 5699,
                        "loc": {
                          "start": {
                            "line": 162,
                            "column": 13
                          },
                          "end": {
                            "line": 162,
                            "column": 22
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 5694,
                            "end": 5699,
                            "loc": {
                              "start": {
                                "line": 162,
                                "column": 17
                              },
                              "end": {
                                "line": 162,
                                "column": 22
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 5694,
                              "end": 5695,
                              "loc": {
                                "start": {
                                  "line": 162,
                                  "column": 17
                                },
                                "end": {
                                  "line": 162,
                                  "column": 18
                                },
                                "identifierName": "i"
                              },
                              "name": "i",
                              "leadingComments": null
                            },
                            "init": {
                              "type": "NumericLiteral",
                              "start": 5698,
                              "end": 5699,
                              "loc": {
                                "start": {
                                  "line": 162,
                                  "column": 21
                                },
                                "end": {
                                  "line": 162,
                                  "column": 22
                                }
                              },
                              "extra": {
                                "rawValue": 0,
                                "raw": "0"
                              },
                              "value": 0
                            },
                            "leadingComments": null
                          }
                        ],
                        "kind": "let",
                        "leadingComments": null
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 5701,
                        "end": 5722,
                        "loc": {
                          "start": {
                            "line": 162,
                            "column": 24
                          },
                          "end": {
                            "line": 162,
                            "column": 45
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 5701,
                          "end": 5702,
                          "loc": {
                            "start": {
                              "line": 162,
                              "column": 24
                            },
                            "end": {
                              "line": 162,
                              "column": 25
                            },
                            "identifierName": "i"
                          },
                          "name": "i"
                        },
                        "operator": "<",
                        "right": {
                          "type": "MemberExpression",
                          "start": 5705,
                          "end": 5722,
                          "loc": {
                            "start": {
                              "line": 162,
                              "column": 28
                            },
                            "end": {
                              "line": 162,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5705,
                            "end": 5715,
                            "loc": {
                              "start": {
                                "line": 162,
                                "column": 28
                              },
                              "end": {
                                "line": 162,
                                "column": 38
                              },
                              "identifierName": "rectangles"
                            },
                            "name": "rectangles"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5716,
                            "end": 5722,
                            "loc": {
                              "start": {
                                "line": 162,
                                "column": 39
                              },
                              "end": {
                                "line": 162,
                                "column": 45
                              },
                              "identifierName": "length"
                            },
                            "name": "length"
                          },
                          "computed": false
                        }
                      },
                      "update": {
                        "type": "UpdateExpression",
                        "start": 5724,
                        "end": 5727,
                        "loc": {
                          "start": {
                            "line": 162,
                            "column": 47
                          },
                          "end": {
                            "line": 162,
                            "column": 50
                          }
                        },
                        "operator": "++",
                        "prefix": false,
                        "argument": {
                          "type": "Identifier",
                          "start": 5724,
                          "end": 5725,
                          "loc": {
                            "start": {
                              "line": 162,
                              "column": 47
                            },
                            "end": {
                              "line": 162,
                              "column": 48
                            },
                            "identifierName": "i"
                          },
                          "name": "i"
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 5729,
                        "end": 8441,
                        "loc": {
                          "start": {
                            "line": 162,
                            "column": 52
                          },
                          "end": {
                            "line": 214,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 5743,
                            "end": 5771,
                            "loc": {
                              "start": {
                                "line": 163,
                                "column": 12
                              },
                              "end": {
                                "line": 163,
                                "column": 40
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5747,
                                "end": 5770,
                                "loc": {
                                  "start": {
                                    "line": 163,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 163,
                                    "column": 39
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5747,
                                  "end": 5754,
                                  "loc": {
                                    "start": {
                                      "line": 163,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 163,
                                      "column": 23
                                    },
                                    "identifierName": "newRect"
                                  },
                                  "name": "newRect"
                                },
                                "init": {
                                  "type": "MemberExpression",
                                  "start": 5757,
                                  "end": 5770,
                                  "loc": {
                                    "start": {
                                      "line": 163,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 163,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5757,
                                    "end": 5767,
                                    "loc": {
                                      "start": {
                                        "line": 163,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 163,
                                        "column": 36
                                      },
                                      "identifierName": "rectangles"
                                    },
                                    "name": "rectangles"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5768,
                                    "end": 5769,
                                    "loc": {
                                      "start": {
                                        "line": 163,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 163,
                                        "column": 38
                                      },
                                      "identifierName": "i"
                                    },
                                    "name": "i"
                                  },
                                  "computed": true
                                }
                              }
                            ],
                            "kind": "let",
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": "position of rectangle center, which is closest to key point",
                                "start": 5785,
                                "end": 5846,
                                "loc": {
                                  "start": {
                                    "line": 165,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 165,
                                    "column": 73
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 5859,
                            "end": 5882,
                            "loc": {
                              "start": {
                                "line": 166,
                                "column": 12
                              },
                              "end": {
                                "line": 166,
                                "column": 35
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5863,
                                "end": 5881,
                                "loc": {
                                  "start": {
                                    "line": 166,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 166,
                                    "column": 34
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5863,
                                  "end": 5874,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 27
                                    },
                                    "identifierName": "bestDistSqr"
                                  },
                                  "name": "bestDistSqr",
                                  "leadingComments": null
                                },
                                "init": {
                                  "type": "NumericLiteral",
                                  "start": 5877,
                                  "end": 5881,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 34
                                    }
                                  },
                                  "extra": {
                                    "rawValue": 1e+50,
                                    "raw": "1e50"
                                  },
                                  "value": 1e+50
                                },
                                "leadingComments": null
                              }
                            ],
                            "kind": "let",
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": "position of rectangle center, which is closest to key point",
                                "start": 5785,
                                "end": 5846,
                                "loc": {
                                  "start": {
                                    "line": 165,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 165,
                                    "column": 73
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 5895,
                            "end": 5912,
                            "loc": {
                              "start": {
                                "line": 167,
                                "column": 12
                              },
                              "end": {
                                "line": 167,
                                "column": 29
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5899,
                                "end": 5904,
                                "loc": {
                                  "start": {
                                    "line": 167,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 167,
                                    "column": 21
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5899,
                                  "end": 5904,
                                  "loc": {
                                    "start": {
                                      "line": 167,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 167,
                                      "column": 21
                                    },
                                    "identifierName": "bestX"
                                  },
                                  "name": "bestX"
                                },
                                "init": null
                              },
                              {
                                "type": "VariableDeclarator",
                                "start": 5906,
                                "end": 5911,
                                "loc": {
                                  "start": {
                                    "line": 167,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 167,
                                    "column": 28
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5906,
                                  "end": 5911,
                                  "loc": {
                                    "start": {
                                      "line": 167,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 167,
                                      "column": 28
                                    },
                                    "identifierName": "bestY"
                                  },
                                  "name": "bestY"
                                },
                                "init": null
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "LabeledStatement",
                            "start": 5926,
                            "end": 8293,
                            "loc": {
                              "start": {
                                "line": 169,
                                "column": 12
                              },
                              "end": {
                                "line": 210,
                                "column": 17
                              }
                            },
                            "body": {
                              "type": "ForStatement",
                              "start": 5946,
                              "end": 8293,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 32
                                },
                                "end": {
                                  "line": 210,
                                  "column": 17
                                }
                              },
                              "init": {
                                "type": "VariableDeclaration",
                                "start": 5951,
                                "end": 5961,
                                "loc": {
                                  "start": {
                                    "line": 169,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 169,
                                    "column": 47
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 5955,
                                    "end": 5961,
                                    "loc": {
                                      "start": {
                                        "line": 169,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 169,
                                        "column": 47
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 5955,
                                      "end": 5957,
                                      "loc": {
                                        "start": {
                                          "line": 169,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 169,
                                          "column": 43
                                        },
                                        "identifierName": "vk"
                                      },
                                      "name": "vk"
                                    },
                                    "init": {
                                      "type": "NumericLiteral",
                                      "start": 5960,
                                      "end": 5961,
                                      "loc": {
                                        "start": {
                                          "line": 169,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 169,
                                          "column": 47
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 0,
                                        "raw": "0"
                                      },
                                      "value": 0
                                    }
                                  }
                                ],
                                "kind": "let"
                              },
                              "test": null,
                              "update": {
                                "type": "UpdateExpression",
                                "start": 5965,
                                "end": 5969,
                                "loc": {
                                  "start": {
                                    "line": 169,
                                    "column": 51
                                  },
                                  "end": {
                                    "line": 169,
                                    "column": 55
                                  }
                                },
                                "operator": "++",
                                "prefix": false,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 5965,
                                  "end": 5967,
                                  "loc": {
                                    "start": {
                                      "line": 169,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 169,
                                      "column": 53
                                    },
                                    "identifierName": "vk"
                                  },
                                  "name": "vk"
                                }
                              },
                              "body": {
                                "type": "ForStatement",
                                "start": 5987,
                                "end": 8293,
                                "loc": {
                                  "start": {
                                    "line": 170,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 210,
                                    "column": 17
                                  }
                                },
                                "init": {
                                  "type": "VariableDeclaration",
                                  "start": 5992,
                                  "end": 6002,
                                  "loc": {
                                    "start": {
                                      "line": 170,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 170,
                                      "column": 31
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 5996,
                                      "end": 6002,
                                      "loc": {
                                        "start": {
                                          "line": 170,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 170,
                                          "column": 31
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 5996,
                                        "end": 5998,
                                        "loc": {
                                          "start": {
                                            "line": 170,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 170,
                                            "column": 27
                                          },
                                          "identifierName": "vs"
                                        },
                                        "name": "vs"
                                      },
                                      "init": {
                                        "type": "NumericLiteral",
                                        "start": 6001,
                                        "end": 6002,
                                        "loc": {
                                          "start": {
                                            "line": 170,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 170,
                                            "column": 31
                                          }
                                        },
                                        "extra": {
                                          "rawValue": 1,
                                          "raw": "1"
                                        },
                                        "value": 1
                                      }
                                    }
                                  ],
                                  "kind": "let"
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 6004,
                                  "end": 6012,
                                  "loc": {
                                    "start": {
                                      "line": 170,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 170,
                                      "column": 41
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 6004,
                                    "end": 6006,
                                    "loc": {
                                      "start": {
                                        "line": 170,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 170,
                                        "column": 35
                                      },
                                      "identifierName": "vs"
                                    },
                                    "name": "vs"
                                  },
                                  "operator": ">=",
                                  "right": {
                                    "type": "UnaryExpression",
                                    "start": 6010,
                                    "end": 6012,
                                    "loc": {
                                      "start": {
                                        "line": 170,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 170,
                                        "column": 41
                                      }
                                    },
                                    "operator": "-",
                                    "prefix": true,
                                    "argument": {
                                      "type": "NumericLiteral",
                                      "start": 6011,
                                      "end": 6012,
                                      "loc": {
                                        "start": {
                                          "line": 170,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 170,
                                          "column": 41
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 1,
                                        "raw": "1"
                                      },
                                      "value": 1
                                    },
                                    "extra": {
                                      "parenthesizedArgument": false
                                    }
                                  }
                                },
                                "update": {
                                  "type": "AssignmentExpression",
                                  "start": 6014,
                                  "end": 6021,
                                  "loc": {
                                    "start": {
                                      "line": 170,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 170,
                                      "column": 50
                                    }
                                  },
                                  "operator": "-=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 6014,
                                    "end": 6016,
                                    "loc": {
                                      "start": {
                                        "line": 170,
                                        "column": 43
                                      },
                                      "end": {
                                        "line": 170,
                                        "column": 45
                                      },
                                      "identifierName": "vs"
                                    },
                                    "name": "vs"
                                  },
                                  "right": {
                                    "type": "NumericLiteral",
                                    "start": 6020,
                                    "end": 6021,
                                    "loc": {
                                      "start": {
                                        "line": 170,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 170,
                                        "column": 50
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 2,
                                      "raw": "2"
                                    },
                                    "value": 2
                                  }
                                },
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6023,
                                  "end": 8293,
                                  "loc": {
                                    "start": {
                                      "line": 170,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 210,
                                      "column": 17
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "start": 6103,
                                      "end": 6180,
                                      "loc": {
                                        "start": {
                                          "line": 172,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 172,
                                          "column": 97
                                        }
                                      },
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "start": 6107,
                                          "end": 6179,
                                          "loc": {
                                            "start": {
                                              "line": 172,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 172,
                                              "column": 96
                                            }
                                          },
                                          "id": {
                                            "type": "Identifier",
                                            "start": 6107,
                                            "end": 6109,
                                            "loc": {
                                              "start": {
                                                "line": 172,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 172,
                                                "column": 26
                                              },
                                              "identifierName": "cy"
                                            },
                                            "name": "cy",
                                            "leadingComments": null
                                          },
                                          "init": {
                                            "type": "BinaryExpression",
                                            "start": 6112,
                                            "end": 6179,
                                            "loc": {
                                              "start": {
                                                "line": 172,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 172,
                                                "column": 96
                                              }
                                            },
                                            "left": {
                                              "type": "MemberExpression",
                                              "start": 6112,
                                              "end": 6128,
                                              "loc": {
                                                "start": {
                                                  "line": 172,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 172,
                                                  "column": 45
                                                }
                                              },
                                              "object": {
                                                "type": "MemberExpression",
                                                "start": 6112,
                                                "end": 6126,
                                                "loc": {
                                                  "start": {
                                                    "line": 172,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 172,
                                                    "column": 43
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 6112,
                                                  "end": 6119,
                                                  "loc": {
                                                    "start": {
                                                      "line": 172,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 172,
                                                      "column": 36
                                                    },
                                                    "identifierName": "newRect"
                                                  },
                                                  "name": "newRect"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 6120,
                                                  "end": 6126,
                                                  "loc": {
                                                    "start": {
                                                      "line": 172,
                                                      "column": 37
                                                    },
                                                    "end": {
                                                      "line": 172,
                                                      "column": 43
                                                    },
                                                    "identifierName": "keyPos"
                                                  },
                                                  "name": "keyPos"
                                                },
                                                "computed": false
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 6127,
                                                "end": 6128,
                                                "loc": {
                                                  "start": {
                                                    "line": 172,
                                                    "column": 44
                                                  },
                                                  "end": {
                                                    "line": 172,
                                                    "column": 45
                                                  },
                                                  "identifierName": "y"
                                                },
                                                "name": "y"
                                              },
                                              "computed": false
                                            },
                                            "operator": "+",
                                            "right": {
                                              "type": "BinaryExpression",
                                              "start": 6131,
                                              "end": 6179,
                                              "loc": {
                                                "start": {
                                                  "line": 172,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 172,
                                                  "column": 96
                                                }
                                              },
                                              "left": {
                                                "type": "BinaryExpression",
                                                "start": 6131,
                                                "end": 6168,
                                                "loc": {
                                                  "start": {
                                                    "line": 172,
                                                    "column": 48
                                                  },
                                                  "end": {
                                                    "line": 172,
                                                    "column": 85
                                                  }
                                                },
                                                "left": {
                                                  "type": "Identifier",
                                                  "start": 6131,
                                                  "end": 6133,
                                                  "loc": {
                                                    "start": {
                                                      "line": 172,
                                                      "column": 48
                                                    },
                                                    "end": {
                                                      "line": 172,
                                                      "column": 50
                                                    },
                                                    "identifierName": "vs"
                                                  },
                                                  "name": "vs"
                                                },
                                                "operator": "*",
                                                "right": {
                                                  "type": "BinaryExpression",
                                                  "start": 6137,
                                                  "end": 6167,
                                                  "loc": {
                                                    "start": {
                                                      "line": 172,
                                                      "column": 54
                                                    },
                                                    "end": {
                                                      "line": 172,
                                                      "column": 84
                                                    }
                                                  },
                                                  "left": {
                                                    "type": "Identifier",
                                                    "start": 6137,
                                                    "end": 6147,
                                                    "loc": {
                                                      "start": {
                                                        "line": 172,
                                                        "column": 54
                                                      },
                                                      "end": {
                                                        "line": 172,
                                                        "column": 64
                                                      },
                                                      "identifierName": "minOffsetH"
                                                    },
                                                    "name": "minOffsetH"
                                                  },
                                                  "operator": "+",
                                                  "right": {
                                                    "type": "BinaryExpression",
                                                    "start": 6150,
                                                    "end": 6167,
                                                    "loc": {
                                                      "start": {
                                                        "line": 172,
                                                        "column": 67
                                                      },
                                                      "end": {
                                                        "line": 172,
                                                        "column": 84
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 6150,
                                                      "end": 6152,
                                                      "loc": {
                                                        "start": {
                                                          "line": 172,
                                                          "column": 67
                                                        },
                                                        "end": {
                                                          "line": 172,
                                                          "column": 69
                                                        },
                                                        "identifierName": "vk"
                                                      },
                                                      "name": "vk"
                                                    },
                                                    "operator": "*",
                                                    "right": {
                                                      "type": "BinaryExpression",
                                                      "start": 6156,
                                                      "end": 6166,
                                                      "loc": {
                                                        "start": {
                                                          "line": 172,
                                                          "column": 73
                                                        },
                                                        "end": {
                                                          "line": 172,
                                                          "column": 83
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "NumericLiteral",
                                                        "start": 6156,
                                                        "end": 6157,
                                                        "loc": {
                                                          "start": {
                                                            "line": 172,
                                                            "column": 73
                                                          },
                                                          "end": {
                                                            "line": 172,
                                                            "column": 74
                                                          }
                                                        },
                                                        "extra": {
                                                          "rawValue": 1,
                                                          "raw": "1"
                                                        },
                                                        "value": 1
                                                      },
                                                      "operator": "+",
                                                      "right": {
                                                        "type": "Identifier",
                                                        "start": 6160,
                                                        "end": 6166,
                                                        "loc": {
                                                          "start": {
                                                            "line": 172,
                                                            "column": 77
                                                          },
                                                          "end": {
                                                            "line": 172,
                                                            "column": 83
                                                          },
                                                          "identifierName": "colEps"
                                                        },
                                                        "name": "colEps"
                                                      },
                                                      "extra": {
                                                        "parenthesized": true,
                                                        "parenStart": 6155
                                                      }
                                                    }
                                                  },
                                                  "extra": {
                                                    "parenthesized": true,
                                                    "parenStart": 6136
                                                  }
                                                }
                                              },
                                              "operator": "*",
                                              "right": {
                                                "type": "Identifier",
                                                "start": 6171,
                                                "end": 6179,
                                                "loc": {
                                                  "start": {
                                                    "line": 172,
                                                    "column": 88
                                                  },
                                                  "end": {
                                                    "line": 172,
                                                    "column": 96
                                                  },
                                                  "identifierName": "iconSize"
                                                },
                                                "name": "iconSize"
                                              }
                                            }
                                          },
                                          "leadingComments": null
                                        }
                                      ],
                                      "kind": "let",
                                      "leadingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": "try to put into the vertical slice:",
                                          "start": 6045,
                                          "end": 6082,
                                          "loc": {
                                            "start": {
                                              "line": 171,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 171,
                                              "column": 57
                                            }
                                          }
                                        }
                                      ],
                                      "trailingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": "loop termination criterion",
                                          "start": 6201,
                                          "end": 6229,
                                          "loc": {
                                            "start": {
                                              "line": 173,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 173,
                                              "column": 48
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    {
                                      "type": "IfStatement",
                                      "start": 6250,
                                      "end": 6322,
                                      "loc": {
                                        "start": {
                                          "line": 174,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 174,
                                          "column": 92
                                        }
                                      },
                                      "test": {
                                        "type": "BinaryExpression",
                                        "start": 6254,
                                        "end": 6295,
                                        "loc": {
                                          "start": {
                                            "line": 174,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 174,
                                            "column": 65
                                          }
                                        },
                                        "left": {
                                          "type": "CallExpression",
                                          "start": 6254,
                                          "end": 6280,
                                          "loc": {
                                            "start": {
                                              "line": 174,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 174,
                                              "column": 50
                                            }
                                          },
                                          "callee": {
                                            "type": "Identifier",
                                            "start": 6254,
                                            "end": 6257,
                                            "loc": {
                                              "start": {
                                                "line": 174,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 174,
                                                "column": 27
                                              },
                                              "identifierName": "sqr"
                                            },
                                            "name": "sqr",
                                            "leadingComments": null
                                          },
                                          "arguments": [
                                            {
                                              "type": "BinaryExpression",
                                              "start": 6258,
                                              "end": 6279,
                                              "loc": {
                                                "start": {
                                                  "line": 174,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 174,
                                                  "column": 49
                                                }
                                              },
                                              "left": {
                                                "type": "Identifier",
                                                "start": 6258,
                                                "end": 6260,
                                                "loc": {
                                                  "start": {
                                                    "line": 174,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 174,
                                                    "column": 30
                                                  },
                                                  "identifierName": "cy"
                                                },
                                                "name": "cy"
                                              },
                                              "operator": "-",
                                              "right": {
                                                "type": "MemberExpression",
                                                "start": 6263,
                                                "end": 6279,
                                                "loc": {
                                                  "start": {
                                                    "line": 174,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 174,
                                                    "column": 49
                                                  }
                                                },
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "start": 6263,
                                                  "end": 6277,
                                                  "loc": {
                                                    "start": {
                                                      "line": 174,
                                                      "column": 33
                                                    },
                                                    "end": {
                                                      "line": 174,
                                                      "column": 47
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 6263,
                                                    "end": 6270,
                                                    "loc": {
                                                      "start": {
                                                        "line": 174,
                                                        "column": 33
                                                      },
                                                      "end": {
                                                        "line": 174,
                                                        "column": 40
                                                      },
                                                      "identifierName": "newRect"
                                                    },
                                                    "name": "newRect"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 6271,
                                                    "end": 6277,
                                                    "loc": {
                                                      "start": {
                                                        "line": 174,
                                                        "column": 41
                                                      },
                                                      "end": {
                                                        "line": 174,
                                                        "column": 47
                                                      },
                                                      "identifierName": "keyPos"
                                                    },
                                                    "name": "keyPos"
                                                  },
                                                  "computed": false
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 6278,
                                                  "end": 6279,
                                                  "loc": {
                                                    "start": {
                                                      "line": 174,
                                                      "column": 48
                                                    },
                                                    "end": {
                                                      "line": 174,
                                                      "column": 49
                                                    },
                                                    "identifierName": "y"
                                                  },
                                                  "name": "y"
                                                },
                                                "computed": false
                                              }
                                            }
                                          ],
                                          "leadingComments": null
                                        },
                                        "operator": ">=",
                                        "right": {
                                          "type": "Identifier",
                                          "start": 6284,
                                          "end": 6295,
                                          "loc": {
                                            "start": {
                                              "line": 174,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 174,
                                              "column": 65
                                            },
                                            "identifierName": "bestDistSqr"
                                          },
                                          "name": "bestDistSqr"
                                        },
                                        "leadingComments": null
                                      },
                                      "consequent": {
                                        "type": "BreakStatement",
                                        "start": 6297,
                                        "end": 6322,
                                        "loc": {
                                          "start": {
                                            "line": 174,
                                            "column": 67
                                          },
                                          "end": {
                                            "line": 174,
                                            "column": 92
                                          }
                                        },
                                        "label": {
                                          "type": "Identifier",
                                          "start": 6303,
                                          "end": 6321,
                                          "loc": {
                                            "start": {
                                              "line": 174,
                                              "column": 73
                                            },
                                            "end": {
                                              "line": 174,
                                              "column": 91
                                            },
                                            "identifierName": "rectanglePlaceLoop"
                                          },
                                          "name": "rectanglePlaceLoop"
                                        },
                                        "trailingComments": null
                                      },
                                      "alternate": null,
                                      "leadingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": "loop termination criterion",
                                          "start": 6201,
                                          "end": 6229,
                                          "loc": {
                                            "start": {
                                              "line": 173,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 173,
                                              "column": 48
                                            }
                                          }
                                        }
                                      ],
                                      "trailingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": "try both direction for horizontal moving",
                                          "start": 6344,
                                          "end": 6386,
                                          "loc": {
                                            "start": {
                                              "line": 176,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 176,
                                              "column": 62
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    {
                                      "type": "ForStatement",
                                      "start": 6407,
                                      "end": 8275,
                                      "loc": {
                                        "start": {
                                          "line": 177,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 209,
                                          "column": 21
                                        }
                                      },
                                      "init": {
                                        "type": "VariableDeclaration",
                                        "start": 6412,
                                        "end": 6422,
                                        "loc": {
                                          "start": {
                                            "line": 177,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 177,
                                            "column": 35
                                          }
                                        },
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "start": 6416,
                                            "end": 6422,
                                            "loc": {
                                              "start": {
                                                "line": 177,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 177,
                                                "column": 35
                                              }
                                            },
                                            "id": {
                                              "type": "Identifier",
                                              "start": 6416,
                                              "end": 6418,
                                              "loc": {
                                                "start": {
                                                  "line": 177,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 177,
                                                  "column": 31
                                                },
                                                "identifierName": "hs"
                                              },
                                              "name": "hs",
                                              "leadingComments": null
                                            },
                                            "init": {
                                              "type": "NumericLiteral",
                                              "start": 6421,
                                              "end": 6422,
                                              "loc": {
                                                "start": {
                                                  "line": 177,
                                                  "column": 34
                                                },
                                                "end": {
                                                  "line": 177,
                                                  "column": 35
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 1,
                                                "raw": "1"
                                              },
                                              "value": 1
                                            },
                                            "leadingComments": null
                                          }
                                        ],
                                        "kind": "let",
                                        "leadingComments": null
                                      },
                                      "test": {
                                        "type": "BinaryExpression",
                                        "start": 6424,
                                        "end": 6432,
                                        "loc": {
                                          "start": {
                                            "line": 177,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 177,
                                            "column": 45
                                          }
                                        },
                                        "left": {
                                          "type": "Identifier",
                                          "start": 6424,
                                          "end": 6426,
                                          "loc": {
                                            "start": {
                                              "line": 177,
                                              "column": 37
                                            },
                                            "end": {
                                              "line": 177,
                                              "column": 39
                                            },
                                            "identifierName": "hs"
                                          },
                                          "name": "hs"
                                        },
                                        "operator": ">=",
                                        "right": {
                                          "type": "UnaryExpression",
                                          "start": 6430,
                                          "end": 6432,
                                          "loc": {
                                            "start": {
                                              "line": 177,
                                              "column": 43
                                            },
                                            "end": {
                                              "line": 177,
                                              "column": 45
                                            }
                                          },
                                          "operator": "-",
                                          "prefix": true,
                                          "argument": {
                                            "type": "NumericLiteral",
                                            "start": 6431,
                                            "end": 6432,
                                            "loc": {
                                              "start": {
                                                "line": 177,
                                                "column": 44
                                              },
                                              "end": {
                                                "line": 177,
                                                "column": 45
                                              }
                                            },
                                            "extra": {
                                              "rawValue": 1,
                                              "raw": "1"
                                            },
                                            "value": 1
                                          },
                                          "extra": {
                                            "parenthesizedArgument": false
                                          }
                                        }
                                      },
                                      "update": {
                                        "type": "AssignmentExpression",
                                        "start": 6434,
                                        "end": 6441,
                                        "loc": {
                                          "start": {
                                            "line": 177,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 177,
                                            "column": 54
                                          }
                                        },
                                        "operator": "-=",
                                        "left": {
                                          "type": "Identifier",
                                          "start": 6434,
                                          "end": 6436,
                                          "loc": {
                                            "start": {
                                              "line": 177,
                                              "column": 47
                                            },
                                            "end": {
                                              "line": 177,
                                              "column": 49
                                            },
                                            "identifierName": "hs"
                                          },
                                          "name": "hs"
                                        },
                                        "right": {
                                          "type": "NumericLiteral",
                                          "start": 6440,
                                          "end": 6441,
                                          "loc": {
                                            "start": {
                                              "line": 177,
                                              "column": 53
                                            },
                                            "end": {
                                              "line": 177,
                                              "column": 54
                                            }
                                          },
                                          "extra": {
                                            "rawValue": 2,
                                            "raw": "2"
                                          },
                                          "value": 2
                                        }
                                      },
                                      "body": {
                                        "type": "BlockStatement",
                                        "start": 6443,
                                        "end": 8275,
                                        "loc": {
                                          "start": {
                                            "line": 177,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 209,
                                            "column": 21
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "VariableDeclaration",
                                            "start": 6469,
                                            "end": 6495,
                                            "loc": {
                                              "start": {
                                                "line": 178,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 178,
                                                "column": 50
                                              }
                                            },
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "start": 6473,
                                                "end": 6494,
                                                "loc": {
                                                  "start": {
                                                    "line": 178,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 178,
                                                    "column": 49
                                                  }
                                                },
                                                "id": {
                                                  "type": "Identifier",
                                                  "start": 6473,
                                                  "end": 6475,
                                                  "loc": {
                                                    "start": {
                                                      "line": 178,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 178,
                                                      "column": 30
                                                    },
                                                    "identifierName": "cx"
                                                  },
                                                  "name": "cx"
                                                },
                                                "init": {
                                                  "type": "MemberExpression",
                                                  "start": 6478,
                                                  "end": 6494,
                                                  "loc": {
                                                    "start": {
                                                      "line": 178,
                                                      "column": 33
                                                    },
                                                    "end": {
                                                      "line": 178,
                                                      "column": 49
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "MemberExpression",
                                                    "start": 6478,
                                                    "end": 6492,
                                                    "loc": {
                                                      "start": {
                                                        "line": 178,
                                                        "column": 33
                                                      },
                                                      "end": {
                                                        "line": 178,
                                                        "column": 47
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 6478,
                                                      "end": 6485,
                                                      "loc": {
                                                        "start": {
                                                          "line": 178,
                                                          "column": 33
                                                        },
                                                        "end": {
                                                          "line": 178,
                                                          "column": 40
                                                        },
                                                        "identifierName": "newRect"
                                                      },
                                                      "name": "newRect"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 6486,
                                                      "end": 6492,
                                                      "loc": {
                                                        "start": {
                                                          "line": 178,
                                                          "column": 41
                                                        },
                                                        "end": {
                                                          "line": 178,
                                                          "column": 47
                                                        },
                                                        "identifierName": "keyPos"
                                                      },
                                                      "name": "keyPos"
                                                    },
                                                    "computed": false
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 6493,
                                                    "end": 6494,
                                                    "loc": {
                                                      "start": {
                                                        "line": 178,
                                                        "column": 48
                                                      },
                                                      "end": {
                                                        "line": 178,
                                                        "column": 49
                                                      },
                                                      "identifierName": "x"
                                                    },
                                                    "name": "x"
                                                  },
                                                  "computed": false
                                                }
                                              }
                                            ],
                                            "kind": "let"
                                          },
                                          {
                                            "type": "DoWhileStatement",
                                            "start": 6521,
                                            "end": 7793,
                                            "loc": {
                                              "start": {
                                                "line": 180,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 199,
                                                "column": 40
                                              }
                                            },
                                            "body": {
                                              "type": "BlockStatement",
                                              "start": 6524,
                                              "end": 7778,
                                              "loc": {
                                                "start": {
                                                  "line": 180,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 199,
                                                  "column": 25
                                                }
                                              },
                                              "body": [
                                                {
                                                  "type": "VariableDeclaration",
                                                  "start": 6554,
                                                  "end": 6572,
                                                  "loc": {
                                                    "start": {
                                                      "line": 181,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 181,
                                                      "column": 46
                                                    }
                                                  },
                                                  "declarations": [
                                                    {
                                                      "type": "VariableDeclarator",
                                                      "start": 6558,
                                                      "end": 6571,
                                                      "loc": {
                                                        "start": {
                                                          "line": 181,
                                                          "column": 32
                                                        },
                                                        "end": {
                                                          "line": 181,
                                                          "column": 45
                                                        }
                                                      },
                                                      "id": {
                                                        "type": "Identifier",
                                                        "start": 6558,
                                                        "end": 6563,
                                                        "loc": {
                                                          "start": {
                                                            "line": 181,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 181,
                                                            "column": 37
                                                          },
                                                          "identifierName": "moved"
                                                        },
                                                        "name": "moved"
                                                      },
                                                      "init": {
                                                        "type": "BooleanLiteral",
                                                        "start": 6566,
                                                        "end": 6571,
                                                        "loc": {
                                                          "start": {
                                                            "line": 181,
                                                            "column": 40
                                                          },
                                                          "end": {
                                                            "line": 181,
                                                            "column": 45
                                                          }
                                                        },
                                                        "value": false
                                                      }
                                                    }
                                                  ],
                                                  "kind": "var"
                                                },
                                                {
                                                  "type": "ForStatement",
                                                  "start": 6601,
                                                  "end": 7642,
                                                  "loc": {
                                                    "start": {
                                                      "line": 182,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 197,
                                                      "column": 29
                                                    }
                                                  },
                                                  "init": {
                                                    "type": "VariableDeclaration",
                                                    "start": 6606,
                                                    "end": 6615,
                                                    "loc": {
                                                      "start": {
                                                        "line": 182,
                                                        "column": 33
                                                      },
                                                      "end": {
                                                        "line": 182,
                                                        "column": 42
                                                      }
                                                    },
                                                    "declarations": [
                                                      {
                                                        "type": "VariableDeclarator",
                                                        "start": 6610,
                                                        "end": 6615,
                                                        "loc": {
                                                          "start": {
                                                            "line": 182,
                                                            "column": 37
                                                          },
                                                          "end": {
                                                            "line": 182,
                                                            "column": 42
                                                          }
                                                        },
                                                        "id": {
                                                          "type": "Identifier",
                                                          "start": 6610,
                                                          "end": 6611,
                                                          "loc": {
                                                            "start": {
                                                              "line": 182,
                                                              "column": 37
                                                            },
                                                            "end": {
                                                              "line": 182,
                                                              "column": 38
                                                            },
                                                            "identifierName": "j"
                                                          },
                                                          "name": "j"
                                                        },
                                                        "init": {
                                                          "type": "NumericLiteral",
                                                          "start": 6614,
                                                          "end": 6615,
                                                          "loc": {
                                                            "start": {
                                                              "line": 182,
                                                              "column": 41
                                                            },
                                                            "end": {
                                                              "line": 182,
                                                              "column": 42
                                                            }
                                                          },
                                                          "extra": {
                                                            "rawValue": 0,
                                                            "raw": "0"
                                                          },
                                                          "value": 0
                                                        }
                                                      }
                                                    ],
                                                    "kind": "let"
                                                  },
                                                  "test": {
                                                    "type": "BinaryExpression",
                                                    "start": 6617,
                                                    "end": 6622,
                                                    "loc": {
                                                      "start": {
                                                        "line": 182,
                                                        "column": 44
                                                      },
                                                      "end": {
                                                        "line": 182,
                                                        "column": 49
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 6617,
                                                      "end": 6618,
                                                      "loc": {
                                                        "start": {
                                                          "line": 182,
                                                          "column": 44
                                                        },
                                                        "end": {
                                                          "line": 182,
                                                          "column": 45
                                                        },
                                                        "identifierName": "j"
                                                      },
                                                      "name": "j"
                                                    },
                                                    "operator": "<",
                                                    "right": {
                                                      "type": "Identifier",
                                                      "start": 6621,
                                                      "end": 6622,
                                                      "loc": {
                                                        "start": {
                                                          "line": 182,
                                                          "column": 48
                                                        },
                                                        "end": {
                                                          "line": 182,
                                                          "column": 49
                                                        },
                                                        "identifierName": "i"
                                                      },
                                                      "name": "i"
                                                    }
                                                  },
                                                  "update": {
                                                    "type": "UpdateExpression",
                                                    "start": 6624,
                                                    "end": 6627,
                                                    "loc": {
                                                      "start": {
                                                        "line": 182,
                                                        "column": 51
                                                      },
                                                      "end": {
                                                        "line": 182,
                                                        "column": 54
                                                      }
                                                    },
                                                    "operator": "++",
                                                    "prefix": false,
                                                    "argument": {
                                                      "type": "Identifier",
                                                      "start": 6624,
                                                      "end": 6625,
                                                      "loc": {
                                                        "start": {
                                                          "line": 182,
                                                          "column": 51
                                                        },
                                                        "end": {
                                                          "line": 182,
                                                          "column": 52
                                                        },
                                                        "identifierName": "j"
                                                      },
                                                      "name": "j"
                                                    }
                                                  },
                                                  "body": {
                                                    "type": "BlockStatement",
                                                    "start": 6629,
                                                    "end": 7642,
                                                    "loc": {
                                                      "start": {
                                                        "line": 182,
                                                        "column": 56
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 29
                                                      }
                                                    },
                                                    "body": [
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "start": 6663,
                                                        "end": 6692,
                                                        "loc": {
                                                          "start": {
                                                            "line": 183,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 183,
                                                            "column": 61
                                                          }
                                                        },
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "start": 6667,
                                                            "end": 6691,
                                                            "loc": {
                                                              "start": {
                                                                "line": 183,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 183,
                                                                "column": 60
                                                              }
                                                            },
                                                            "id": {
                                                              "type": "Identifier",
                                                              "start": 6667,
                                                              "end": 6675,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 183,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 183,
                                                                  "column": 44
                                                                },
                                                                "identifierName": "obstRect"
                                                              },
                                                              "name": "obstRect"
                                                            },
                                                            "init": {
                                                              "type": "MemberExpression",
                                                              "start": 6678,
                                                              "end": 6691,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 183,
                                                                  "column": 47
                                                                },
                                                                "end": {
                                                                  "line": 183,
                                                                  "column": 60
                                                                }
                                                              },
                                                              "object": {
                                                                "type": "Identifier",
                                                                "start": 6678,
                                                                "end": 6688,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 183,
                                                                    "column": 47
                                                                  },
                                                                  "end": {
                                                                    "line": 183,
                                                                    "column": 57
                                                                  },
                                                                  "identifierName": "rectangles"
                                                                },
                                                                "name": "rectangles"
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "start": 6689,
                                                                "end": 6690,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 183,
                                                                    "column": 58
                                                                  },
                                                                  "end": {
                                                                    "line": 183,
                                                                    "column": 59
                                                                  },
                                                                  "identifierName": "j"
                                                                },
                                                                "name": "j"
                                                              },
                                                              "computed": true
                                                            }
                                                          }
                                                        ],
                                                        "kind": "let",
                                                        "trailingComments": [
                                                          {
                                                            "type": "CommentLine",
                                                            "value": "check if rectangles collide",
                                                            "start": 6725,
                                                            "end": 6754,
                                                            "loc": {
                                                              "start": {
                                                                "line": 184,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 184,
                                                                "column": 61
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      {
                                                        "type": "IfStatement",
                                                        "start": 6787,
                                                        "end": 6868,
                                                        "loc": {
                                                          "start": {
                                                            "line": 185,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 185,
                                                            "column": 113
                                                          }
                                                        },
                                                        "test": {
                                                          "type": "BinaryExpression",
                                                          "start": 6791,
                                                          "end": 6857,
                                                          "loc": {
                                                            "start": {
                                                              "line": 185,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 185,
                                                              "column": 102
                                                            }
                                                          },
                                                          "left": {
                                                            "type": "CallExpression",
                                                            "start": 6791,
                                                            "end": 6823,
                                                            "loc": {
                                                              "start": {
                                                                "line": 185,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 185,
                                                                "column": 68
                                                              }
                                                            },
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "start": 6791,
                                                              "end": 6799,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 185,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 185,
                                                                  "column": 44
                                                                }
                                                              },
                                                              "object": {
                                                                "type": "Identifier",
                                                                "start": 6791,
                                                                "end": 6795,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 185,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 185,
                                                                    "column": 40
                                                                  },
                                                                  "identifierName": "Math"
                                                                },
                                                                "name": "Math",
                                                                "leadingComments": null
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "start": 6796,
                                                                "end": 6799,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 185,
                                                                    "column": 41
                                                                  },
                                                                  "end": {
                                                                    "line": 185,
                                                                    "column": 44
                                                                  },
                                                                  "identifierName": "abs"
                                                                },
                                                                "name": "abs"
                                                              },
                                                              "computed": false,
                                                              "leadingComments": null
                                                            },
                                                            "arguments": [
                                                              {
                                                                "type": "BinaryExpression",
                                                                "start": 6800,
                                                                "end": 6822,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 185,
                                                                    "column": 45
                                                                  },
                                                                  "end": {
                                                                    "line": 185,
                                                                    "column": 67
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "Identifier",
                                                                  "start": 6800,
                                                                  "end": 6802,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 185,
                                                                      "column": 45
                                                                    },
                                                                    "end": {
                                                                      "line": 185,
                                                                      "column": 47
                                                                    },
                                                                    "identifierName": "cy"
                                                                  },
                                                                  "name": "cy"
                                                                },
                                                                "operator": "-",
                                                                "right": {
                                                                  "type": "MemberExpression",
                                                                  "start": 6805,
                                                                  "end": 6822,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 185,
                                                                      "column": 50
                                                                    },
                                                                    "end": {
                                                                      "line": 185,
                                                                      "column": 67
                                                                    }
                                                                  },
                                                                  "object": {
                                                                    "type": "MemberExpression",
                                                                    "start": 6805,
                                                                    "end": 6820,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 185,
                                                                        "column": 50
                                                                      },
                                                                      "end": {
                                                                        "line": 185,
                                                                        "column": 65
                                                                      }
                                                                    },
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "start": 6805,
                                                                      "end": 6813,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 185,
                                                                          "column": 50
                                                                        },
                                                                        "end": {
                                                                          "line": 185,
                                                                          "column": 58
                                                                        },
                                                                        "identifierName": "obstRect"
                                                                      },
                                                                      "name": "obstRect"
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "start": 6814,
                                                                      "end": 6820,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 185,
                                                                          "column": 59
                                                                        },
                                                                        "end": {
                                                                          "line": 185,
                                                                          "column": 65
                                                                        },
                                                                        "identifierName": "ctrPos"
                                                                      },
                                                                      "name": "ctrPos"
                                                                    },
                                                                    "computed": false
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "start": 6821,
                                                                    "end": 6822,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 185,
                                                                        "column": 66
                                                                      },
                                                                      "end": {
                                                                        "line": 185,
                                                                        "column": 67
                                                                      },
                                                                      "identifierName": "y"
                                                                    },
                                                                    "name": "y"
                                                                  },
                                                                  "computed": false
                                                                }
                                                              }
                                                            ],
                                                            "leadingComments": null
                                                          },
                                                          "operator": ">=",
                                                          "right": {
                                                            "type": "BinaryExpression",
                                                            "start": 6827,
                                                            "end": 6857,
                                                            "loc": {
                                                              "start": {
                                                                "line": 185,
                                                                "column": 72
                                                              },
                                                              "end": {
                                                                "line": 185,
                                                                "column": 102
                                                              }
                                                            },
                                                            "left": {
                                                              "type": "BinaryExpression",
                                                              "start": 6827,
                                                              "end": 6850,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 185,
                                                                  "column": 72
                                                                },
                                                                "end": {
                                                                  "line": 185,
                                                                  "column": 95
                                                                }
                                                              },
                                                              "left": {
                                                                "type": "BinaryExpression",
                                                                "start": 6828,
                                                                "end": 6838,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 185,
                                                                    "column": 73
                                                                  },
                                                                  "end": {
                                                                    "line": 185,
                                                                    "column": 83
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "NumericLiteral",
                                                                  "start": 6828,
                                                                  "end": 6829,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 185,
                                                                      "column": 73
                                                                    },
                                                                    "end": {
                                                                      "line": 185,
                                                                      "column": 74
                                                                    }
                                                                  },
                                                                  "extra": {
                                                                    "rawValue": 1,
                                                                    "raw": "1"
                                                                  },
                                                                  "value": 1
                                                                },
                                                                "operator": "+",
                                                                "right": {
                                                                  "type": "Identifier",
                                                                  "start": 6832,
                                                                  "end": 6838,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 185,
                                                                      "column": 77
                                                                    },
                                                                    "end": {
                                                                      "line": 185,
                                                                      "column": 83
                                                                    },
                                                                    "identifierName": "colEps"
                                                                  },
                                                                  "name": "colEps"
                                                                },
                                                                "extra": {
                                                                  "parenthesized": true,
                                                                  "parenStart": 6827
                                                                }
                                                              },
                                                              "operator": "*",
                                                              "right": {
                                                                "type": "Identifier",
                                                                "start": 6842,
                                                                "end": 6850,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 185,
                                                                    "column": 87
                                                                  },
                                                                  "end": {
                                                                    "line": 185,
                                                                    "column": 95
                                                                  },
                                                                  "identifierName": "iconSize"
                                                                },
                                                                "name": "iconSize"
                                                              }
                                                            },
                                                            "operator": "-",
                                                            "right": {
                                                              "type": "NumericLiteral",
                                                              "start": 6853,
                                                              "end": 6857,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 185,
                                                                  "column": 98
                                                                },
                                                                "end": {
                                                                  "line": 185,
                                                                  "column": 102
                                                                }
                                                              },
                                                              "extra": {
                                                                "rawValue": 1e-9,
                                                                "raw": "1e-9"
                                                              },
                                                              "value": 1e-9
                                                            }
                                                          },
                                                          "leadingComments": null
                                                        },
                                                        "consequent": {
                                                          "type": "ContinueStatement",
                                                          "start": 6859,
                                                          "end": 6868,
                                                          "loc": {
                                                            "start": {
                                                              "line": 185,
                                                              "column": 104
                                                            },
                                                            "end": {
                                                              "line": 185,
                                                              "column": 113
                                                            }
                                                          },
                                                          "label": null
                                                        },
                                                        "alternate": null,
                                                        "leadingComments": [
                                                          {
                                                            "type": "CommentLine",
                                                            "value": "check if rectangles collide",
                                                            "start": 6725,
                                                            "end": 6754,
                                                            "loc": {
                                                              "start": {
                                                                "line": 184,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 184,
                                                                "column": 61
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      {
                                                        "type": "IfStatement",
                                                        "start": 6901,
                                                        "end": 7157,
                                                        "loc": {
                                                          "start": {
                                                            "line": 186,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 190,
                                                            "column": 45
                                                          }
                                                        },
                                                        "test": {
                                                          "type": "BinaryExpression",
                                                          "start": 6942,
                                                          "end": 7077,
                                                          "loc": {
                                                            "start": {
                                                              "line": 187,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 188,
                                                              "column": 99
                                                            }
                                                          },
                                                          "left": {
                                                            "type": "CallExpression",
                                                            "start": 6942,
                                                            "end": 6974,
                                                            "loc": {
                                                              "start": {
                                                                "line": 187,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 187,
                                                                "column": 68
                                                              }
                                                            },
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "start": 6942,
                                                              "end": 6950,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 187,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 187,
                                                                  "column": 44
                                                                }
                                                              },
                                                              "object": {
                                                                "type": "Identifier",
                                                                "start": 6942,
                                                                "end": 6946,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 187,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 187,
                                                                    "column": 40
                                                                  },
                                                                  "identifierName": "Math"
                                                                },
                                                                "name": "Math"
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "start": 6947,
                                                                "end": 6950,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 187,
                                                                    "column": 41
                                                                  },
                                                                  "end": {
                                                                    "line": 187,
                                                                    "column": 44
                                                                  },
                                                                  "identifierName": "abs"
                                                                },
                                                                "name": "abs"
                                                              },
                                                              "computed": false
                                                            },
                                                            "arguments": [
                                                              {
                                                                "type": "BinaryExpression",
                                                                "start": 6951,
                                                                "end": 6973,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 187,
                                                                    "column": 45
                                                                  },
                                                                  "end": {
                                                                    "line": 187,
                                                                    "column": 67
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "Identifier",
                                                                  "start": 6951,
                                                                  "end": 6953,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 187,
                                                                      "column": 45
                                                                    },
                                                                    "end": {
                                                                      "line": 187,
                                                                      "column": 47
                                                                    },
                                                                    "identifierName": "cx"
                                                                  },
                                                                  "name": "cx"
                                                                },
                                                                "operator": "-",
                                                                "right": {
                                                                  "type": "MemberExpression",
                                                                  "start": 6956,
                                                                  "end": 6973,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 187,
                                                                      "column": 50
                                                                    },
                                                                    "end": {
                                                                      "line": 187,
                                                                      "column": 67
                                                                    }
                                                                  },
                                                                  "object": {
                                                                    "type": "MemberExpression",
                                                                    "start": 6956,
                                                                    "end": 6971,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 187,
                                                                        "column": 50
                                                                      },
                                                                      "end": {
                                                                        "line": 187,
                                                                        "column": 65
                                                                      }
                                                                    },
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "start": 6956,
                                                                      "end": 6964,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 187,
                                                                          "column": 50
                                                                        },
                                                                        "end": {
                                                                          "line": 187,
                                                                          "column": 58
                                                                        },
                                                                        "identifierName": "obstRect"
                                                                      },
                                                                      "name": "obstRect"
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "start": 6965,
                                                                      "end": 6971,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 187,
                                                                          "column": 59
                                                                        },
                                                                        "end": {
                                                                          "line": 187,
                                                                          "column": 65
                                                                        },
                                                                        "identifierName": "ctrPos"
                                                                      },
                                                                      "name": "ctrPos"
                                                                    },
                                                                    "computed": false
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "start": 6972,
                                                                    "end": 6973,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 187,
                                                                        "column": 66
                                                                      },
                                                                      "end": {
                                                                        "line": 187,
                                                                        "column": 67
                                                                      },
                                                                      "identifierName": "x"
                                                                    },
                                                                    "name": "x"
                                                                  },
                                                                  "computed": false
                                                                }
                                                              }
                                                            ]
                                                          },
                                                          "operator": ">=",
                                                          "right": {
                                                            "type": "BinaryExpression",
                                                            "start": 7014,
                                                            "end": 7077,
                                                            "loc": {
                                                              "start": {
                                                                "line": 188,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 188,
                                                                "column": 99
                                                              }
                                                            },
                                                            "left": {
                                                              "type": "BinaryExpression",
                                                              "start": 7014,
                                                              "end": 7070,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 188,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 188,
                                                                  "column": 92
                                                                }
                                                              },
                                                              "left": {
                                                                "type": "BinaryExpression",
                                                                "start": 7015,
                                                                "end": 7058,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 188,
                                                                    "column": 37
                                                                  },
                                                                  "end": {
                                                                    "line": 188,
                                                                    "column": 80
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "BinaryExpression",
                                                                  "start": 7015,
                                                                  "end": 7049,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 188,
                                                                      "column": 37
                                                                    },
                                                                    "end": {
                                                                      "line": 188,
                                                                      "column": 71
                                                                    }
                                                                  },
                                                                  "left": {
                                                                    "type": "BinaryExpression",
                                                                    "start": 7016,
                                                                    "end": 7042,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 188,
                                                                        "column": 38
                                                                      },
                                                                      "end": {
                                                                        "line": 188,
                                                                        "column": 64
                                                                      }
                                                                    },
                                                                    "left": {
                                                                      "type": "MemberExpression",
                                                                      "start": 7016,
                                                                      "end": 7027,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 188,
                                                                          "column": 38
                                                                        },
                                                                        "end": {
                                                                          "line": 188,
                                                                          "column": 49
                                                                        }
                                                                      },
                                                                      "object": {
                                                                        "type": "Identifier",
                                                                        "start": 7016,
                                                                        "end": 7023,
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 188,
                                                                            "column": 38
                                                                          },
                                                                          "end": {
                                                                            "line": 188,
                                                                            "column": 45
                                                                          },
                                                                          "identifierName": "newRect"
                                                                        },
                                                                        "name": "newRect"
                                                                      },
                                                                      "property": {
                                                                        "type": "Identifier",
                                                                        "start": 7024,
                                                                        "end": 7027,
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 188,
                                                                            "column": 46
                                                                          },
                                                                          "end": {
                                                                            "line": 188,
                                                                            "column": 49
                                                                          },
                                                                          "identifierName": "cnt"
                                                                        },
                                                                        "name": "cnt"
                                                                      },
                                                                      "computed": false
                                                                    },
                                                                    "operator": "+",
                                                                    "right": {
                                                                      "type": "MemberExpression",
                                                                      "start": 7030,
                                                                      "end": 7042,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 188,
                                                                          "column": 52
                                                                        },
                                                                        "end": {
                                                                          "line": 188,
                                                                          "column": 64
                                                                        }
                                                                      },
                                                                      "object": {
                                                                        "type": "Identifier",
                                                                        "start": 7030,
                                                                        "end": 7038,
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 188,
                                                                            "column": 52
                                                                          },
                                                                          "end": {
                                                                            "line": 188,
                                                                            "column": 60
                                                                          },
                                                                          "identifierName": "obstRect"
                                                                        },
                                                                        "name": "obstRect"
                                                                      },
                                                                      "property": {
                                                                        "type": "Identifier",
                                                                        "start": 7039,
                                                                        "end": 7042,
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 188,
                                                                            "column": 61
                                                                          },
                                                                          "end": {
                                                                            "line": 188,
                                                                            "column": 64
                                                                          },
                                                                          "identifierName": "cnt"
                                                                        },
                                                                        "name": "cnt"
                                                                      },
                                                                      "computed": false
                                                                    },
                                                                    "extra": {
                                                                      "parenthesized": true,
                                                                      "parenStart": 7015
                                                                    }
                                                                  },
                                                                  "operator": "*",
                                                                  "right": {
                                                                    "type": "NumericLiteral",
                                                                    "start": 7046,
                                                                    "end": 7049,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 188,
                                                                        "column": 68
                                                                      },
                                                                      "end": {
                                                                        "line": 188,
                                                                        "column": 71
                                                                      }
                                                                    },
                                                                    "extra": {
                                                                      "rawValue": 0.5,
                                                                      "raw": "0.5"
                                                                    },
                                                                    "value": 0.5
                                                                  }
                                                                },
                                                                "operator": "+",
                                                                "right": {
                                                                  "type": "Identifier",
                                                                  "start": 7052,
                                                                  "end": 7058,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 188,
                                                                      "column": 74
                                                                    },
                                                                    "end": {
                                                                      "line": 188,
                                                                      "column": 80
                                                                    },
                                                                    "identifierName": "colEps"
                                                                  },
                                                                  "name": "colEps"
                                                                },
                                                                "extra": {
                                                                  "parenthesized": true,
                                                                  "parenStart": 7014
                                                                }
                                                              },
                                                              "operator": "*",
                                                              "right": {
                                                                "type": "Identifier",
                                                                "start": 7062,
                                                                "end": 7070,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 188,
                                                                    "column": 84
                                                                  },
                                                                  "end": {
                                                                    "line": 188,
                                                                    "column": 92
                                                                  },
                                                                  "identifierName": "iconSize"
                                                                },
                                                                "name": "iconSize"
                                                              }
                                                            },
                                                            "operator": "-",
                                                            "right": {
                                                              "type": "NumericLiteral",
                                                              "start": 7073,
                                                              "end": 7077,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 188,
                                                                  "column": 95
                                                                },
                                                                "end": {
                                                                  "line": 188,
                                                                  "column": 99
                                                                }
                                                              },
                                                              "extra": {
                                                                "rawValue": 1e-9,
                                                                "raw": "1e-9"
                                                              },
                                                              "value": 1e-9
                                                            }
                                                          }
                                                        },
                                                        "consequent": {
                                                          "type": "ContinueStatement",
                                                          "start": 7148,
                                                          "end": 7157,
                                                          "loc": {
                                                            "start": {
                                                              "line": 190,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 190,
                                                              "column": 45
                                                            }
                                                          },
                                                          "label": null,
                                                          "leadingComments": null,
                                                          "trailingComments": null
                                                        },
                                                        "alternate": null,
                                                        "trailingComments": [
                                                          {
                                                            "type": "CommentLine",
                                                            "value": "do minimal horizontal movement which avoids collision",
                                                            "start": 7190,
                                                            "end": 7245,
                                                            "loc": {
                                                              "start": {
                                                                "line": 191,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 191,
                                                                "column": 87
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "start": 7278,
                                                        "end": 7331,
                                                        "loc": {
                                                          "start": {
                                                            "line": 192,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 192,
                                                            "column": 85
                                                          }
                                                        },
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "start": 7282,
                                                            "end": 7330,
                                                            "loc": {
                                                              "start": {
                                                                "line": 192,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 192,
                                                                "column": 84
                                                              }
                                                            },
                                                            "id": {
                                                              "type": "Identifier",
                                                              "start": 7282,
                                                              "end": 7289,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 192,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 192,
                                                                  "column": 43
                                                                },
                                                                "identifierName": "newSide"
                                                              },
                                                              "name": "newSide",
                                                              "leadingComments": null
                                                            },
                                                            "init": {
                                                              "type": "BinaryExpression",
                                                              "start": 7292,
                                                              "end": 7330,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 192,
                                                                  "column": 46
                                                                },
                                                                "end": {
                                                                  "line": 192,
                                                                  "column": 84
                                                                }
                                                              },
                                                              "left": {
                                                                "type": "Identifier",
                                                                "start": 7292,
                                                                "end": 7294,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 192,
                                                                    "column": 46
                                                                  },
                                                                  "end": {
                                                                    "line": 192,
                                                                    "column": 48
                                                                  },
                                                                  "identifierName": "cx"
                                                                },
                                                                "name": "cx"
                                                              },
                                                              "operator": "+",
                                                              "right": {
                                                                "type": "BinaryExpression",
                                                                "start": 7297,
                                                                "end": 7330,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 192,
                                                                    "column": 51
                                                                  },
                                                                  "end": {
                                                                    "line": 192,
                                                                    "column": 84
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "BinaryExpression",
                                                                  "start": 7297,
                                                                  "end": 7324,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 192,
                                                                      "column": 51
                                                                    },
                                                                    "end": {
                                                                      "line": 192,
                                                                      "column": 78
                                                                    }
                                                                  },
                                                                  "left": {
                                                                    "type": "BinaryExpression",
                                                                    "start": 7297,
                                                                    "end": 7310,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 192,
                                                                        "column": 51
                                                                      },
                                                                      "end": {
                                                                        "line": 192,
                                                                        "column": 64
                                                                      }
                                                                    },
                                                                    "left": {
                                                                      "type": "Identifier",
                                                                      "start": 7297,
                                                                      "end": 7299,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 192,
                                                                          "column": 51
                                                                        },
                                                                        "end": {
                                                                          "line": 192,
                                                                          "column": 53
                                                                        },
                                                                        "identifierName": "hs"
                                                                      },
                                                                      "name": "hs"
                                                                    },
                                                                    "operator": "*",
                                                                    "right": {
                                                                      "type": "Identifier",
                                                                      "start": 7302,
                                                                      "end": 7310,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 192,
                                                                          "column": 56
                                                                        },
                                                                        "end": {
                                                                          "line": 192,
                                                                          "column": 64
                                                                        },
                                                                        "identifierName": "iconSize"
                                                                      },
                                                                      "name": "iconSize"
                                                                    }
                                                                  },
                                                                  "operator": "*",
                                                                  "right": {
                                                                    "type": "MemberExpression",
                                                                    "start": 7313,
                                                                    "end": 7324,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 192,
                                                                        "column": 67
                                                                      },
                                                                      "end": {
                                                                        "line": 192,
                                                                        "column": 78
                                                                      }
                                                                    },
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "start": 7313,
                                                                      "end": 7320,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 192,
                                                                          "column": 67
                                                                        },
                                                                        "end": {
                                                                          "line": 192,
                                                                          "column": 74
                                                                        },
                                                                        "identifierName": "newRect"
                                                                      },
                                                                      "name": "newRect"
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "start": 7321,
                                                                      "end": 7324,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 192,
                                                                          "column": 75
                                                                        },
                                                                        "end": {
                                                                          "line": 192,
                                                                          "column": 78
                                                                        },
                                                                        "identifierName": "cnt"
                                                                      },
                                                                      "name": "cnt"
                                                                    },
                                                                    "computed": false
                                                                  }
                                                                },
                                                                "operator": "*",
                                                                "right": {
                                                                  "type": "NumericLiteral",
                                                                  "start": 7327,
                                                                  "end": 7330,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 192,
                                                                      "column": 81
                                                                    },
                                                                    "end": {
                                                                      "line": 192,
                                                                      "column": 84
                                                                    }
                                                                  },
                                                                  "extra": {
                                                                    "rawValue": 0.5,
                                                                    "raw": "0.5"
                                                                  },
                                                                  "value": 0.5
                                                                }
                                                              }
                                                            },
                                                            "leadingComments": null
                                                          }
                                                        ],
                                                        "kind": "let",
                                                        "leadingComments": [
                                                          {
                                                            "type": "CommentLine",
                                                            "value": "do minimal horizontal movement which avoids collision",
                                                            "start": 7190,
                                                            "end": 7245,
                                                            "loc": {
                                                              "start": {
                                                                "line": 191,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 191,
                                                                "column": 87
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "start": 7364,
                                                        "end": 7434,
                                                        "loc": {
                                                          "start": {
                                                            "line": 193,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 193,
                                                            "column": 102
                                                          }
                                                        },
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "start": 7368,
                                                            "end": 7433,
                                                            "loc": {
                                                              "start": {
                                                                "line": 193,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 193,
                                                                "column": 101
                                                              }
                                                            },
                                                            "id": {
                                                              "type": "Identifier",
                                                              "start": 7368,
                                                              "end": 7376,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 193,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 193,
                                                                  "column": 44
                                                                },
                                                                "identifierName": "obstSide"
                                                              },
                                                              "name": "obstSide"
                                                            },
                                                            "init": {
                                                              "type": "BinaryExpression",
                                                              "start": 7379,
                                                              "end": 7433,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 193,
                                                                  "column": 47
                                                                },
                                                                "end": {
                                                                  "line": 193,
                                                                  "column": 101
                                                                }
                                                              },
                                                              "left": {
                                                                "type": "MemberExpression",
                                                                "start": 7379,
                                                                "end": 7396,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 193,
                                                                    "column": 47
                                                                  },
                                                                  "end": {
                                                                    "line": 193,
                                                                    "column": 64
                                                                  }
                                                                },
                                                                "object": {
                                                                  "type": "MemberExpression",
                                                                  "start": 7379,
                                                                  "end": 7394,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 193,
                                                                      "column": 47
                                                                    },
                                                                    "end": {
                                                                      "line": 193,
                                                                      "column": 62
                                                                    }
                                                                  },
                                                                  "object": {
                                                                    "type": "Identifier",
                                                                    "start": 7379,
                                                                    "end": 7387,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 193,
                                                                        "column": 47
                                                                      },
                                                                      "end": {
                                                                        "line": 193,
                                                                        "column": 55
                                                                      },
                                                                      "identifierName": "obstRect"
                                                                    },
                                                                    "name": "obstRect"
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "start": 7388,
                                                                    "end": 7394,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 193,
                                                                        "column": 56
                                                                      },
                                                                      "end": {
                                                                        "line": 193,
                                                                        "column": 62
                                                                      },
                                                                      "identifierName": "ctrPos"
                                                                    },
                                                                    "name": "ctrPos"
                                                                  },
                                                                  "computed": false
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "start": 7395,
                                                                  "end": 7396,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 193,
                                                                      "column": 63
                                                                    },
                                                                    "end": {
                                                                      "line": 193,
                                                                      "column": 64
                                                                    },
                                                                    "identifierName": "x"
                                                                  },
                                                                  "name": "x"
                                                                },
                                                                "computed": false
                                                              },
                                                              "operator": "-",
                                                              "right": {
                                                                "type": "BinaryExpression",
                                                                "start": 7399,
                                                                "end": 7433,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 193,
                                                                    "column": 67
                                                                  },
                                                                  "end": {
                                                                    "line": 193,
                                                                    "column": 101
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "BinaryExpression",
                                                                  "start": 7399,
                                                                  "end": 7427,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 193,
                                                                      "column": 67
                                                                    },
                                                                    "end": {
                                                                      "line": 193,
                                                                      "column": 95
                                                                    }
                                                                  },
                                                                  "left": {
                                                                    "type": "BinaryExpression",
                                                                    "start": 7399,
                                                                    "end": 7412,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 193,
                                                                        "column": 67
                                                                      },
                                                                      "end": {
                                                                        "line": 193,
                                                                        "column": 80
                                                                      }
                                                                    },
                                                                    "left": {
                                                                      "type": "Identifier",
                                                                      "start": 7399,
                                                                      "end": 7401,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 193,
                                                                          "column": 67
                                                                        },
                                                                        "end": {
                                                                          "line": 193,
                                                                          "column": 69
                                                                        },
                                                                        "identifierName": "hs"
                                                                      },
                                                                      "name": "hs"
                                                                    },
                                                                    "operator": "*",
                                                                    "right": {
                                                                      "type": "Identifier",
                                                                      "start": 7404,
                                                                      "end": 7412,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 193,
                                                                          "column": 72
                                                                        },
                                                                        "end": {
                                                                          "line": 193,
                                                                          "column": 80
                                                                        },
                                                                        "identifierName": "iconSize"
                                                                      },
                                                                      "name": "iconSize"
                                                                    }
                                                                  },
                                                                  "operator": "*",
                                                                  "right": {
                                                                    "type": "MemberExpression",
                                                                    "start": 7415,
                                                                    "end": 7427,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 193,
                                                                        "column": 83
                                                                      },
                                                                      "end": {
                                                                        "line": 193,
                                                                        "column": 95
                                                                      }
                                                                    },
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "start": 7415,
                                                                      "end": 7423,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 193,
                                                                          "column": 83
                                                                        },
                                                                        "end": {
                                                                          "line": 193,
                                                                          "column": 91
                                                                        },
                                                                        "identifierName": "obstRect"
                                                                      },
                                                                      "name": "obstRect"
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "start": 7424,
                                                                      "end": 7427,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 193,
                                                                          "column": 92
                                                                        },
                                                                        "end": {
                                                                          "line": 193,
                                                                          "column": 95
                                                                        },
                                                                        "identifierName": "cnt"
                                                                      },
                                                                      "name": "cnt"
                                                                    },
                                                                    "computed": false
                                                                  }
                                                                },
                                                                "operator": "*",
                                                                "right": {
                                                                  "type": "NumericLiteral",
                                                                  "start": 7430,
                                                                  "end": 7433,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 193,
                                                                      "column": 98
                                                                    },
                                                                    "end": {
                                                                      "line": 193,
                                                                      "column": 101
                                                                    }
                                                                  },
                                                                  "extra": {
                                                                    "rawValue": 0.5,
                                                                    "raw": "0.5"
                                                                  },
                                                                  "value": 0.5
                                                                }
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "let"
                                                      },
                                                      {
                                                        "type": "VariableDeclaration",
                                                        "start": 7467,
                                                        "end": 7522,
                                                        "loc": {
                                                          "start": {
                                                            "line": 194,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 194,
                                                            "column": 87
                                                          }
                                                        },
                                                        "declarations": [
                                                          {
                                                            "type": "VariableDeclarator",
                                                            "start": 7471,
                                                            "end": 7521,
                                                            "loc": {
                                                              "start": {
                                                                "line": 194,
                                                                "column": 36
                                                              },
                                                              "end": {
                                                                "line": 194,
                                                                "column": 86
                                                              }
                                                            },
                                                            "id": {
                                                              "type": "Identifier",
                                                              "start": 7471,
                                                              "end": 7475,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 194,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 194,
                                                                  "column": 40
                                                                },
                                                                "identifierName": "diff"
                                                              },
                                                              "name": "diff"
                                                            },
                                                            "init": {
                                                              "type": "BinaryExpression",
                                                              "start": 7478,
                                                              "end": 7521,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 194,
                                                                  "column": 43
                                                                },
                                                                "end": {
                                                                  "line": 194,
                                                                  "column": 86
                                                                }
                                                              },
                                                              "left": {
                                                                "type": "BinaryExpression",
                                                                "start": 7478,
                                                                "end": 7496,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 194,
                                                                    "column": 43
                                                                  },
                                                                  "end": {
                                                                    "line": 194,
                                                                    "column": 61
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "Identifier",
                                                                  "start": 7478,
                                                                  "end": 7485,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 194,
                                                                      "column": 43
                                                                    },
                                                                    "end": {
                                                                      "line": 194,
                                                                      "column": 50
                                                                    },
                                                                    "identifierName": "newSide"
                                                                  },
                                                                  "name": "newSide"
                                                                },
                                                                "operator": "-",
                                                                "right": {
                                                                  "type": "Identifier",
                                                                  "start": 7488,
                                                                  "end": 7496,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 194,
                                                                      "column": 53
                                                                    },
                                                                    "end": {
                                                                      "line": 194,
                                                                      "column": 61
                                                                    },
                                                                    "identifierName": "obstSide"
                                                                  },
                                                                  "name": "obstSide"
                                                                }
                                                              },
                                                              "operator": "+",
                                                              "right": {
                                                                "type": "BinaryExpression",
                                                                "start": 7499,
                                                                "end": 7521,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 194,
                                                                    "column": 64
                                                                  },
                                                                  "end": {
                                                                    "line": 194,
                                                                    "column": 86
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "BinaryExpression",
                                                                  "start": 7499,
                                                                  "end": 7510,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 194,
                                                                      "column": 64
                                                                    },
                                                                    "end": {
                                                                      "line": 194,
                                                                      "column": 75
                                                                    }
                                                                  },
                                                                  "left": {
                                                                    "type": "Identifier",
                                                                    "start": 7499,
                                                                    "end": 7501,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 194,
                                                                        "column": 64
                                                                      },
                                                                      "end": {
                                                                        "line": 194,
                                                                        "column": 66
                                                                      },
                                                                      "identifierName": "hs"
                                                                    },
                                                                    "name": "hs"
                                                                  },
                                                                  "operator": "*",
                                                                  "right": {
                                                                    "type": "Identifier",
                                                                    "start": 7504,
                                                                    "end": 7510,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 194,
                                                                        "column": 69
                                                                      },
                                                                      "end": {
                                                                        "line": 194,
                                                                        "column": 75
                                                                      },
                                                                      "identifierName": "colEps"
                                                                    },
                                                                    "name": "colEps"
                                                                  }
                                                                },
                                                                "operator": "*",
                                                                "right": {
                                                                  "type": "Identifier",
                                                                  "start": 7513,
                                                                  "end": 7521,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 194,
                                                                      "column": 78
                                                                    },
                                                                    "end": {
                                                                      "line": 194,
                                                                      "column": 86
                                                                    },
                                                                    "identifierName": "iconSize"
                                                                  },
                                                                  "name": "iconSize"
                                                                }
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "kind": "let"
                                                      },
                                                      {
                                                        "type": "ExpressionStatement",
                                                        "start": 7555,
                                                        "end": 7566,
                                                        "loc": {
                                                          "start": {
                                                            "line": 195,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 195,
                                                            "column": 43
                                                          }
                                                        },
                                                        "expression": {
                                                          "type": "AssignmentExpression",
                                                          "start": 7555,
                                                          "end": 7565,
                                                          "loc": {
                                                            "start": {
                                                              "line": 195,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 195,
                                                              "column": 42
                                                            }
                                                          },
                                                          "operator": "+=",
                                                          "left": {
                                                            "type": "Identifier",
                                                            "start": 7555,
                                                            "end": 7557,
                                                            "loc": {
                                                              "start": {
                                                                "line": 195,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 195,
                                                                "column": 34
                                                              },
                                                              "identifierName": "cx"
                                                            },
                                                            "name": "cx"
                                                          },
                                                          "right": {
                                                            "type": "Identifier",
                                                            "start": 7561,
                                                            "end": 7565,
                                                            "loc": {
                                                              "start": {
                                                                "line": 195,
                                                                "column": 38
                                                              },
                                                              "end": {
                                                                "line": 195,
                                                                "column": 42
                                                              },
                                                              "identifierName": "diff"
                                                            },
                                                            "name": "diff"
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "ExpressionStatement",
                                                        "start": 7599,
                                                        "end": 7612,
                                                        "loc": {
                                                          "start": {
                                                            "line": 196,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 196,
                                                            "column": 45
                                                          }
                                                        },
                                                        "expression": {
                                                          "type": "AssignmentExpression",
                                                          "start": 7599,
                                                          "end": 7611,
                                                          "loc": {
                                                            "start": {
                                                              "line": 196,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 196,
                                                              "column": 44
                                                            }
                                                          },
                                                          "operator": "=",
                                                          "left": {
                                                            "type": "Identifier",
                                                            "start": 7599,
                                                            "end": 7604,
                                                            "loc": {
                                                              "start": {
                                                                "line": 196,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 196,
                                                                "column": 37
                                                              },
                                                              "identifierName": "moved"
                                                            },
                                                            "name": "moved"
                                                          },
                                                          "right": {
                                                            "type": "BooleanLiteral",
                                                            "start": 7607,
                                                            "end": 7611,
                                                            "loc": {
                                                              "start": {
                                                                "line": 196,
                                                                "column": 40
                                                              },
                                                              "end": {
                                                                "line": 196,
                                                                "column": 44
                                                              }
                                                            },
                                                            "value": true
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "directives": [],
                                                    "trailingComments": null
                                                  },
                                                  "trailingComments": [
                                                    {
                                                      "type": "CommentLine",
                                                      "value": "note: if something has moved, then we have to recheck everything for collisions",
                                                      "start": 7671,
                                                      "end": 7752,
                                                      "loc": {
                                                        "start": {
                                                          "line": 198,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 198,
                                                          "column": 109
                                                        }
                                                      }
                                                    }
                                                  ]
                                                }
                                              ],
                                              "directives": []
                                            },
                                            "test": {
                                              "type": "Identifier",
                                              "start": 7786,
                                              "end": 7791,
                                              "loc": {
                                                "start": {
                                                  "line": 199,
                                                  "column": 33
                                                },
                                                "end": {
                                                  "line": 199,
                                                  "column": 38
                                                },
                                                "identifierName": "moved"
                                              },
                                              "name": "moved"
                                            }
                                          },
                                          {
                                            "type": "VariableDeclaration",
                                            "start": 7819,
                                            "end": 7889,
                                            "loc": {
                                              "start": {
                                                "line": 201,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 201,
                                                "column": 94
                                              }
                                            },
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "start": 7823,
                                                "end": 7888,
                                                "loc": {
                                                  "start": {
                                                    "line": 201,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 201,
                                                    "column": 93
                                                  }
                                                },
                                                "id": {
                                                  "type": "Identifier",
                                                  "start": 7823,
                                                  "end": 7830,
                                                  "loc": {
                                                    "start": {
                                                      "line": 201,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 201,
                                                      "column": 35
                                                    },
                                                    "identifierName": "distSqr"
                                                  },
                                                  "name": "distSqr"
                                                },
                                                "init": {
                                                  "type": "BinaryExpression",
                                                  "start": 7833,
                                                  "end": 7888,
                                                  "loc": {
                                                    "start": {
                                                      "line": 201,
                                                      "column": 38
                                                    },
                                                    "end": {
                                                      "line": 201,
                                                      "column": 93
                                                    }
                                                  },
                                                  "left": {
                                                    "type": "CallExpression",
                                                    "start": 7833,
                                                    "end": 7859,
                                                    "loc": {
                                                      "start": {
                                                        "line": 201,
                                                        "column": 38
                                                      },
                                                      "end": {
                                                        "line": 201,
                                                        "column": 64
                                                      }
                                                    },
                                                    "callee": {
                                                      "type": "Identifier",
                                                      "start": 7833,
                                                      "end": 7836,
                                                      "loc": {
                                                        "start": {
                                                          "line": 201,
                                                          "column": 38
                                                        },
                                                        "end": {
                                                          "line": 201,
                                                          "column": 41
                                                        },
                                                        "identifierName": "sqr"
                                                      },
                                                      "name": "sqr"
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "BinaryExpression",
                                                        "start": 7837,
                                                        "end": 7858,
                                                        "loc": {
                                                          "start": {
                                                            "line": 201,
                                                            "column": 42
                                                          },
                                                          "end": {
                                                            "line": 201,
                                                            "column": 63
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 7837,
                                                          "end": 7839,
                                                          "loc": {
                                                            "start": {
                                                              "line": 201,
                                                              "column": 42
                                                            },
                                                            "end": {
                                                              "line": 201,
                                                              "column": 44
                                                            },
                                                            "identifierName": "cx"
                                                          },
                                                          "name": "cx"
                                                        },
                                                        "operator": "-",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 7842,
                                                          "end": 7858,
                                                          "loc": {
                                                            "start": {
                                                              "line": 201,
                                                              "column": 47
                                                            },
                                                            "end": {
                                                              "line": 201,
                                                              "column": 63
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "MemberExpression",
                                                            "start": 7842,
                                                            "end": 7856,
                                                            "loc": {
                                                              "start": {
                                                                "line": 201,
                                                                "column": 47
                                                              },
                                                              "end": {
                                                                "line": 201,
                                                                "column": 61
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 7842,
                                                              "end": 7849,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 201,
                                                                  "column": 47
                                                                },
                                                                "end": {
                                                                  "line": 201,
                                                                  "column": 54
                                                                },
                                                                "identifierName": "newRect"
                                                              },
                                                              "name": "newRect"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 7850,
                                                              "end": 7856,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 201,
                                                                  "column": 55
                                                                },
                                                                "end": {
                                                                  "line": 201,
                                                                  "column": 61
                                                                },
                                                                "identifierName": "keyPos"
                                                              },
                                                              "name": "keyPos"
                                                            },
                                                            "computed": false
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 7857,
                                                            "end": 7858,
                                                            "loc": {
                                                              "start": {
                                                                "line": 201,
                                                                "column": 62
                                                              },
                                                              "end": {
                                                                "line": 201,
                                                                "column": 63
                                                              },
                                                              "identifierName": "x"
                                                            },
                                                            "name": "x"
                                                          },
                                                          "computed": false
                                                        }
                                                      }
                                                    ]
                                                  },
                                                  "operator": "+",
                                                  "right": {
                                                    "type": "CallExpression",
                                                    "start": 7862,
                                                    "end": 7888,
                                                    "loc": {
                                                      "start": {
                                                        "line": 201,
                                                        "column": 67
                                                      },
                                                      "end": {
                                                        "line": 201,
                                                        "column": 93
                                                      }
                                                    },
                                                    "callee": {
                                                      "type": "Identifier",
                                                      "start": 7862,
                                                      "end": 7865,
                                                      "loc": {
                                                        "start": {
                                                          "line": 201,
                                                          "column": 67
                                                        },
                                                        "end": {
                                                          "line": 201,
                                                          "column": 70
                                                        },
                                                        "identifierName": "sqr"
                                                      },
                                                      "name": "sqr"
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "BinaryExpression",
                                                        "start": 7866,
                                                        "end": 7887,
                                                        "loc": {
                                                          "start": {
                                                            "line": 201,
                                                            "column": 71
                                                          },
                                                          "end": {
                                                            "line": 201,
                                                            "column": 92
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 7866,
                                                          "end": 7868,
                                                          "loc": {
                                                            "start": {
                                                              "line": 201,
                                                              "column": 71
                                                            },
                                                            "end": {
                                                              "line": 201,
                                                              "column": 73
                                                            },
                                                            "identifierName": "cy"
                                                          },
                                                          "name": "cy"
                                                        },
                                                        "operator": "-",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 7871,
                                                          "end": 7887,
                                                          "loc": {
                                                            "start": {
                                                              "line": 201,
                                                              "column": 76
                                                            },
                                                            "end": {
                                                              "line": 201,
                                                              "column": 92
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "MemberExpression",
                                                            "start": 7871,
                                                            "end": 7885,
                                                            "loc": {
                                                              "start": {
                                                                "line": 201,
                                                                "column": 76
                                                              },
                                                              "end": {
                                                                "line": 201,
                                                                "column": 90
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 7871,
                                                              "end": 7878,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 201,
                                                                  "column": 76
                                                                },
                                                                "end": {
                                                                  "line": 201,
                                                                  "column": 83
                                                                },
                                                                "identifierName": "newRect"
                                                              },
                                                              "name": "newRect"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 7879,
                                                              "end": 7885,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 201,
                                                                  "column": 84
                                                                },
                                                                "end": {
                                                                  "line": 201,
                                                                  "column": 90
                                                                },
                                                                "identifierName": "keyPos"
                                                              },
                                                              "name": "keyPos"
                                                            },
                                                            "computed": false
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 7886,
                                                            "end": 7887,
                                                            "loc": {
                                                              "start": {
                                                                "line": 201,
                                                                "column": 91
                                                              },
                                                              "end": {
                                                                "line": 201,
                                                                "column": 92
                                                              },
                                                              "identifierName": "y"
                                                            },
                                                            "name": "y"
                                                          },
                                                          "computed": false
                                                        }
                                                      }
                                                    ]
                                                  }
                                                }
                                              }
                                            ],
                                            "kind": "let"
                                          },
                                          {
                                            "type": "IfStatement",
                                            "start": 7914,
                                            "end": 8099,
                                            "loc": {
                                              "start": {
                                                "line": 202,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 206,
                                                "column": 25
                                              }
                                            },
                                            "test": {
                                              "type": "BinaryExpression",
                                              "start": 7918,
                                              "end": 7939,
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 202,
                                                  "column": 49
                                                }
                                              },
                                              "left": {
                                                "type": "Identifier",
                                                "start": 7918,
                                                "end": 7929,
                                                "loc": {
                                                  "start": {
                                                    "line": 202,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 202,
                                                    "column": 39
                                                  },
                                                  "identifierName": "bestDistSqr"
                                                },
                                                "name": "bestDistSqr"
                                              },
                                              "operator": ">",
                                              "right": {
                                                "type": "Identifier",
                                                "start": 7932,
                                                "end": 7939,
                                                "loc": {
                                                  "start": {
                                                    "line": 202,
                                                    "column": 42
                                                  },
                                                  "end": {
                                                    "line": 202,
                                                    "column": 49
                                                  },
                                                  "identifierName": "distSqr"
                                                },
                                                "name": "distSqr"
                                              }
                                            },
                                            "consequent": {
                                              "type": "BlockStatement",
                                              "start": 7941,
                                              "end": 8099,
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 51
                                                },
                                                "end": {
                                                  "line": 206,
                                                  "column": 25
                                                }
                                              },
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 7971,
                                                  "end": 7993,
                                                  "loc": {
                                                    "start": {
                                                      "line": 203,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 203,
                                                      "column": 50
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "AssignmentExpression",
                                                    "start": 7971,
                                                    "end": 7992,
                                                    "loc": {
                                                      "start": {
                                                        "line": 203,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 203,
                                                        "column": 49
                                                      }
                                                    },
                                                    "operator": "=",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 7971,
                                                      "end": 7982,
                                                      "loc": {
                                                        "start": {
                                                          "line": 203,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 203,
                                                          "column": 39
                                                        },
                                                        "identifierName": "bestDistSqr"
                                                      },
                                                      "name": "bestDistSqr"
                                                    },
                                                    "right": {
                                                      "type": "Identifier",
                                                      "start": 7985,
                                                      "end": 7992,
                                                      "loc": {
                                                        "start": {
                                                          "line": 203,
                                                          "column": 42
                                                        },
                                                        "end": {
                                                          "line": 203,
                                                          "column": 49
                                                        },
                                                        "identifierName": "distSqr"
                                                      },
                                                      "name": "distSqr"
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 8022,
                                                  "end": 8033,
                                                  "loc": {
                                                    "start": {
                                                      "line": 204,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 204,
                                                      "column": 39
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "AssignmentExpression",
                                                    "start": 8022,
                                                    "end": 8032,
                                                    "loc": {
                                                      "start": {
                                                        "line": 204,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 204,
                                                        "column": 38
                                                      }
                                                    },
                                                    "operator": "=",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 8022,
                                                      "end": 8027,
                                                      "loc": {
                                                        "start": {
                                                          "line": 204,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 204,
                                                          "column": 33
                                                        },
                                                        "identifierName": "bestX"
                                                      },
                                                      "name": "bestX"
                                                    },
                                                    "right": {
                                                      "type": "Identifier",
                                                      "start": 8030,
                                                      "end": 8032,
                                                      "loc": {
                                                        "start": {
                                                          "line": 204,
                                                          "column": 36
                                                        },
                                                        "end": {
                                                          "line": 204,
                                                          "column": 38
                                                        },
                                                        "identifierName": "cx"
                                                      },
                                                      "name": "cx"
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 8062,
                                                  "end": 8073,
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 39
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "AssignmentExpression",
                                                    "start": 8062,
                                                    "end": 8072,
                                                    "loc": {
                                                      "start": {
                                                        "line": 205,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 205,
                                                        "column": 38
                                                      }
                                                    },
                                                    "operator": "=",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 8062,
                                                      "end": 8067,
                                                      "loc": {
                                                        "start": {
                                                          "line": 205,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 205,
                                                          "column": 33
                                                        },
                                                        "identifierName": "bestY"
                                                      },
                                                      "name": "bestY"
                                                    },
                                                    "right": {
                                                      "type": "Identifier",
                                                      "start": 8070,
                                                      "end": 8072,
                                                      "loc": {
                                                        "start": {
                                                          "line": 205,
                                                          "column": 36
                                                        },
                                                        "end": {
                                                          "line": 205,
                                                          "column": 38
                                                        },
                                                        "identifierName": "cy"
                                                      },
                                                      "name": "cy"
                                                    }
                                                  }
                                                }
                                              ],
                                              "directives": [],
                                              "trailingComments": null
                                            },
                                            "alternate": null,
                                            "trailingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": "early cutoff: if no horizontal movement happened",
                                                "start": 8124,
                                                "end": 8174,
                                                "loc": {
                                                  "start": {
                                                    "line": 207,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 207,
                                                    "column": 74
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          {
                                            "type": "IfStatement",
                                            "start": 8199,
                                            "end": 8253,
                                            "loc": {
                                              "start": {
                                                "line": 208,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 208,
                                                "column": 78
                                              }
                                            },
                                            "test": {
                                              "type": "BinaryExpression",
                                              "start": 8203,
                                              "end": 8226,
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 51
                                                }
                                              },
                                              "left": {
                                                "type": "Identifier",
                                                "start": 8203,
                                                "end": 8205,
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 30
                                                  },
                                                  "identifierName": "cx"
                                                },
                                                "name": "cx",
                                                "leadingComments": null
                                              },
                                              "operator": "===",
                                              "right": {
                                                "type": "MemberExpression",
                                                "start": 8210,
                                                "end": 8226,
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 51
                                                  }
                                                },
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "start": 8210,
                                                  "end": 8224,
                                                  "loc": {
                                                    "start": {
                                                      "line": 208,
                                                      "column": 35
                                                    },
                                                    "end": {
                                                      "line": 208,
                                                      "column": 49
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 8210,
                                                    "end": 8217,
                                                    "loc": {
                                                      "start": {
                                                        "line": 208,
                                                        "column": 35
                                                      },
                                                      "end": {
                                                        "line": 208,
                                                        "column": 42
                                                      },
                                                      "identifierName": "newRect"
                                                    },
                                                    "name": "newRect"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 8218,
                                                    "end": 8224,
                                                    "loc": {
                                                      "start": {
                                                        "line": 208,
                                                        "column": 43
                                                      },
                                                      "end": {
                                                        "line": 208,
                                                        "column": 49
                                                      },
                                                      "identifierName": "keyPos"
                                                    },
                                                    "name": "keyPos"
                                                  },
                                                  "computed": false
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 8225,
                                                  "end": 8226,
                                                  "loc": {
                                                    "start": {
                                                      "line": 208,
                                                      "column": 50
                                                    },
                                                    "end": {
                                                      "line": 208,
                                                      "column": 51
                                                    },
                                                    "identifierName": "x"
                                                  },
                                                  "name": "x"
                                                },
                                                "computed": false
                                              },
                                              "leadingComments": null
                                            },
                                            "consequent": {
                                              "type": "BreakStatement",
                                              "start": 8228,
                                              "end": 8253,
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 53
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 78
                                                }
                                              },
                                              "label": {
                                                "type": "Identifier",
                                                "start": 8234,
                                                "end": 8252,
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 59
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 77
                                                  },
                                                  "identifierName": "rectanglePlaceLoop"
                                                },
                                                "name": "rectanglePlaceLoop"
                                              }
                                            },
                                            "alternate": null,
                                            "leadingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": "early cutoff: if no horizontal movement happened",
                                                "start": 8124,
                                                "end": 8174,
                                                "loc": {
                                                  "start": {
                                                    "line": 207,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 207,
                                                    "column": 74
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        ],
                                        "directives": []
                                      },
                                      "leadingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": "try both direction for horizontal moving",
                                          "start": 6344,
                                          "end": 6386,
                                          "loc": {
                                            "start": {
                                              "line": 176,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 176,
                                              "column": 62
                                            }
                                          }
                                        }
                                      ]
                                    }
                                  ],
                                  "directives": [],
                                  "trailingComments": null
                                },
                                "trailingComments": null
                              },
                              "trailingComments": null
                            },
                            "label": {
                              "type": "Identifier",
                              "start": 5926,
                              "end": 5944,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 12
                                },
                                "end": {
                                  "line": 169,
                                  "column": 30
                                },
                                "identifierName": "rectanglePlaceLoop"
                              },
                              "name": "rectanglePlaceLoop"
                            },
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": "place rectangle into found position (not changed later)",
                                "start": 8307,
                                "end": 8364,
                                "loc": {
                                  "start": {
                                    "line": 212,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 212,
                                    "column": 69
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 8377,
                            "end": 8431,
                            "loc": {
                              "start": {
                                "line": 213,
                                "column": 12
                              },
                              "end": {
                                "line": 213,
                                "column": 66
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 8377,
                              "end": 8430,
                              "loc": {
                                "start": {
                                  "line": 213,
                                  "column": 12
                                },
                                "end": {
                                  "line": 213,
                                  "column": 65
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 8377,
                                "end": 8391,
                                "loc": {
                                  "start": {
                                    "line": 213,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 213,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8377,
                                  "end": 8384,
                                  "loc": {
                                    "start": {
                                      "line": 213,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 213,
                                      "column": 19
                                    },
                                    "identifierName": "newRect"
                                  },
                                  "name": "newRect",
                                  "leadingComments": null
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8385,
                                  "end": 8391,
                                  "loc": {
                                    "start": {
                                      "line": 213,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 213,
                                      "column": 26
                                    },
                                    "identifierName": "ctrPos"
                                  },
                                  "name": "ctrPos"
                                },
                                "computed": false,
                                "leadingComments": null
                              },
                              "right": {
                                "type": "NewExpression",
                                "start": 8394,
                                "end": 8430,
                                "loc": {
                                  "start": {
                                    "line": 213,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 213,
                                    "column": 65
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 8398,
                                  "end": 8411,
                                  "loc": {
                                    "start": {
                                      "line": 213,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 213,
                                      "column": 46
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 8398,
                                    "end": 8403,
                                    "loc": {
                                      "start": {
                                        "line": 213,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 213,
                                        "column": 38
                                      },
                                      "identifierName": "THREE"
                                    },
                                    "name": "THREE"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 8404,
                                    "end": 8411,
                                    "loc": {
                                      "start": {
                                        "line": 213,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 213,
                                        "column": 46
                                      },
                                      "identifierName": "Vector3"
                                    },
                                    "name": "Vector3"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 8412,
                                    "end": 8417,
                                    "loc": {
                                      "start": {
                                        "line": 213,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 213,
                                        "column": 52
                                      },
                                      "identifierName": "bestX"
                                    },
                                    "name": "bestX"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 8419,
                                    "end": 8424,
                                    "loc": {
                                      "start": {
                                        "line": 213,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 213,
                                        "column": 59
                                      },
                                      "identifierName": "bestY"
                                    },
                                    "name": "bestY"
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 8426,
                                    "end": 8429,
                                    "loc": {
                                      "start": {
                                        "line": 213,
                                        "column": 61
                                      },
                                      "end": {
                                        "line": 213,
                                        "column": 64
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0.0"
                                    },
                                    "value": 0
                                  }
                                ]
                              },
                              "leadingComments": null
                            },
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": "place rectangle into found position (not changed later)",
                                "start": 8307,
                                "end": 8364,
                                "loc": {
                                  "start": {
                                    "line": 212,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 212,
                                    "column": 69
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": [],
                        "trailingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "set positions for all entity lists (each one is rectangle)",
                          "start": 5616,
                          "end": 5676,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 8
                            },
                            "end": {
                              "line": 161,
                              "column": 68
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "set positions for all constraint icons",
                          "start": 8451,
                          "end": 8491,
                          "loc": {
                            "start": {
                              "line": 216,
                              "column": 8
                            },
                            "end": {
                              "line": 216,
                              "column": 48
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 8500,
                      "end": 9116,
                      "loc": {
                        "start": {
                          "line": 217,
                          "column": 8
                        },
                        "end": {
                          "line": 229,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 8505,
                        "end": 8528,
                        "loc": {
                          "start": {
                            "line": 217,
                            "column": 13
                          },
                          "end": {
                            "line": 217,
                            "column": 36
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 8509,
                            "end": 8528,
                            "loc": {
                              "start": {
                                "line": 217,
                                "column": 17
                              },
                              "end": {
                                "line": 217,
                                "column": 36
                              }
                            },
                            "id": {
                              "type": "ObjectPattern",
                              "start": 8509,
                              "end": 8528,
                              "loc": {
                                "start": {
                                  "line": 217,
                                  "column": 17
                                },
                                "end": {
                                  "line": 217,
                                  "column": 36
                                }
                              },
                              "properties": [
                                {
                                  "type": "ObjectProperty",
                                  "start": 8511,
                                  "end": 8513,
                                  "loc": {
                                    "start": {
                                      "line": 217,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 217,
                                      "column": 21
                                    }
                                  },
                                  "method": false,
                                  "shorthand": true,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 8511,
                                    "end": 8513,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 21
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id",
                                    "leadingComments": null
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 8511,
                                    "end": 8513,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 21
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  "leadingComments": null,
                                  "extra": {
                                    "shorthand": true
                                  }
                                },
                                {
                                  "type": "ObjectProperty",
                                  "start": 8515,
                                  "end": 8521,
                                  "loc": {
                                    "start": {
                                      "line": 217,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 217,
                                      "column": 29
                                    }
                                  },
                                  "method": false,
                                  "shorthand": true,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 8515,
                                    "end": 8521,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 29
                                      },
                                      "identifierName": "ctrPos"
                                    },
                                    "name": "ctrPos"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 8515,
                                    "end": 8521,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 29
                                      },
                                      "identifierName": "ctrPos"
                                    },
                                    "name": "ctrPos"
                                  },
                                  "extra": {
                                    "shorthand": true
                                  }
                                },
                                {
                                  "type": "ObjectProperty",
                                  "start": 8523,
                                  "end": 8526,
                                  "loc": {
                                    "start": {
                                      "line": 217,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 217,
                                      "column": 34
                                    }
                                  },
                                  "method": false,
                                  "shorthand": true,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 8523,
                                    "end": 8526,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 34
                                      },
                                      "identifierName": "cnt"
                                    },
                                    "name": "cnt"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 8523,
                                    "end": 8526,
                                    "loc": {
                                      "start": {
                                        "line": 217,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 217,
                                        "column": 34
                                      },
                                      "identifierName": "cnt"
                                    },
                                    "name": "cnt"
                                  },
                                  "extra": {
                                    "shorthand": true
                                  }
                                }
                              ],
                              "leadingComments": null
                            },
                            "init": null,
                            "leadingComments": null
                          }
                        ],
                        "kind": "let",
                        "leadingComments": null
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 8532,
                        "end": 8542,
                        "loc": {
                          "start": {
                            "line": 217,
                            "column": 40
                          },
                          "end": {
                            "line": 217,
                            "column": 50
                          },
                          "identifierName": "rectangles"
                        },
                        "name": "rectangles"
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 8544,
                        "end": 9116,
                        "loc": {
                          "start": {
                            "line": 217,
                            "column": 52
                          },
                          "end": {
                            "line": 229,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 8558,
                            "end": 8595,
                            "loc": {
                              "start": {
                                "line": 218,
                                "column": 12
                              },
                              "end": {
                                "line": 218,
                                "column": 49
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 8562,
                                "end": 8594,
                                "loc": {
                                  "start": {
                                    "line": 218,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 218,
                                    "column": 48
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 8562,
                                  "end": 8569,
                                  "loc": {
                                    "start": {
                                      "line": 218,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 218,
                                      "column": 23
                                    },
                                    "identifierName": "conList"
                                  },
                                  "name": "conList"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 8572,
                                  "end": 8594,
                                  "loc": {
                                    "start": {
                                      "line": 218,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 218,
                                      "column": 48
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 8572,
                                    "end": 8590,
                                    "loc": {
                                      "start": {
                                        "line": 218,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 218,
                                        "column": 44
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 8572,
                                      "end": 8586,
                                      "loc": {
                                        "start": {
                                          "line": 218,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 218,
                                          "column": 40
                                        },
                                        "identifierName": "perEntityLists"
                                      },
                                      "name": "perEntityLists"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 8587,
                                      "end": 8590,
                                      "loc": {
                                        "start": {
                                          "line": 218,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 218,
                                          "column": 44
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 8591,
                                      "end": 8593,
                                      "loc": {
                                        "start": {
                                          "line": 218,
                                          "column": 45
                                        },
                                        "end": {
                                          "line": 218,
                                          "column": 47
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let",
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": "sort constraint lists (for stability)",
                                "start": 8608,
                                "end": 8647,
                                "loc": {
                                  "start": {
                                    "line": 219,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 219,
                                    "column": 51
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 8660,
                            "end": 8690,
                            "loc": {
                              "start": {
                                "line": 220,
                                "column": 12
                              },
                              "end": {
                                "line": 220,
                                "column": 42
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 8660,
                              "end": 8689,
                              "loc": {
                                "start": {
                                  "line": 220,
                                  "column": 12
                                },
                                "end": {
                                  "line": 220,
                                  "column": 41
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 8660,
                                "end": 8672,
                                "loc": {
                                  "start": {
                                    "line": 220,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 220,
                                    "column": 24
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8660,
                                  "end": 8667,
                                  "loc": {
                                    "start": {
                                      "line": 220,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 220,
                                      "column": 19
                                    },
                                    "identifierName": "conList"
                                  },
                                  "name": "conList",
                                  "leadingComments": null
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8668,
                                  "end": 8672,
                                  "loc": {
                                    "start": {
                                      "line": 220,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 220,
                                      "column": 24
                                    },
                                    "identifierName": "sort"
                                  },
                                  "name": "sort"
                                },
                                "computed": false,
                                "leadingComments": null
                              },
                              "arguments": [
                                {
                                  "type": "ArrowFunctionExpression",
                                  "start": 8673,
                                  "end": 8688,
                                  "loc": {
                                    "start": {
                                      "line": 220,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 220,
                                      "column": 40
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": true,
                                  "async": false,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "start": 8674,
                                      "end": 8675,
                                      "loc": {
                                        "start": {
                                          "line": 220,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 220,
                                          "column": 27
                                        },
                                        "identifierName": "a"
                                      },
                                      "name": "a"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 8677,
                                      "end": 8678,
                                      "loc": {
                                        "start": {
                                          "line": 220,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 220,
                                          "column": 30
                                        },
                                        "identifierName": "b"
                                      },
                                      "name": "b"
                                    }
                                  ],
                                  "body": {
                                    "type": "BinaryExpression",
                                    "start": 8683,
                                    "end": 8688,
                                    "loc": {
                                      "start": {
                                        "line": 220,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 220,
                                        "column": 40
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 8683,
                                      "end": 8684,
                                      "loc": {
                                        "start": {
                                          "line": 220,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 220,
                                          "column": 36
                                        },
                                        "identifierName": "a"
                                      },
                                      "name": "a"
                                    },
                                    "operator": "-",
                                    "right": {
                                      "type": "Identifier",
                                      "start": 8687,
                                      "end": 8688,
                                      "loc": {
                                        "start": {
                                          "line": 220,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 220,
                                          "column": 40
                                        },
                                        "identifierName": "b"
                                      },
                                      "name": "b"
                                    }
                                  }
                                }
                              ],
                              "leadingComments": null
                            },
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": "sort constraint lists (for stability)",
                                "start": 8608,
                                "end": 8647,
                                "loc": {
                                  "start": {
                                    "line": 219,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 219,
                                    "column": 51
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "ForStatement",
                            "start": 8704,
                            "end": 9106,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 12
                              },
                              "end": {
                                "line": 228,
                                "column": 13
                              }
                            },
                            "init": {
                              "type": "VariableDeclaration",
                              "start": 8709,
                              "end": 8718,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 17
                                },
                                "end": {
                                  "line": 222,
                                  "column": 26
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 8713,
                                  "end": 8718,
                                  "loc": {
                                    "start": {
                                      "line": 222,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 222,
                                      "column": 26
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 8713,
                                    "end": 8714,
                                    "loc": {
                                      "start": {
                                        "line": 222,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 222,
                                        "column": 22
                                      },
                                      "identifierName": "i"
                                    },
                                    "name": "i"
                                  },
                                  "init": {
                                    "type": "NumericLiteral",
                                    "start": 8717,
                                    "end": 8718,
                                    "loc": {
                                      "start": {
                                        "line": 222,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 222,
                                        "column": 26
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  }
                                }
                              ],
                              "kind": "let"
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 8720,
                              "end": 8727,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 28
                                },
                                "end": {
                                  "line": 222,
                                  "column": 35
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 8720,
                                "end": 8721,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 29
                                  },
                                  "identifierName": "i"
                                },
                                "name": "i"
                              },
                              "operator": "<",
                              "right": {
                                "type": "Identifier",
                                "start": 8724,
                                "end": 8727,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 35
                                  },
                                  "identifierName": "cnt"
                                },
                                "name": "cnt"
                              }
                            },
                            "update": {
                              "type": "UpdateExpression",
                              "start": 8729,
                              "end": 8732,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 37
                                },
                                "end": {
                                  "line": 222,
                                  "column": 40
                                }
                              },
                              "operator": "++",
                              "prefix": false,
                              "argument": {
                                "type": "Identifier",
                                "start": 8729,
                                "end": 8730,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 38
                                  },
                                  "identifierName": "i"
                                },
                                "name": "i"
                              }
                            },
                            "body": {
                              "type": "BlockStatement",
                              "start": 8734,
                              "end": 9106,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 42
                                },
                                "end": {
                                  "line": 228,
                                  "column": 13
                                }
                              },
                              "body": [
                                {
                                  "type": "VariableDeclaration",
                                  "start": 8752,
                                  "end": 8852,
                                  "loc": {
                                    "start": {
                                      "line": 223,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 223,
                                      "column": 116
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 8756,
                                      "end": 8851,
                                      "loc": {
                                        "start": {
                                          "line": 223,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 223,
                                          "column": 115
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 8756,
                                        "end": 8759,
                                        "loc": {
                                          "start": {
                                            "line": 223,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 223,
                                            "column": 23
                                          },
                                          "identifierName": "pos"
                                        },
                                        "name": "pos"
                                      },
                                      "init": {
                                        "type": "CallExpression",
                                        "start": 8762,
                                        "end": 8851,
                                        "loc": {
                                          "start": {
                                            "line": 223,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 223,
                                            "column": 115
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 8762,
                                          "end": 8780,
                                          "loc": {
                                            "start": {
                                              "line": 223,
                                              "column": 26
                                            },
                                            "end": {
                                              "line": 223,
                                              "column": 44
                                            }
                                          },
                                          "object": {
                                            "type": "CallExpression",
                                            "start": 8762,
                                            "end": 8776,
                                            "loc": {
                                              "start": {
                                                "line": 223,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 223,
                                                "column": 40
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 8762,
                                              "end": 8774,
                                              "loc": {
                                                "start": {
                                                  "line": 223,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 223,
                                                  "column": 38
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 8762,
                                                "end": 8768,
                                                "loc": {
                                                  "start": {
                                                    "line": 223,
                                                    "column": 26
                                                  },
                                                  "end": {
                                                    "line": 223,
                                                    "column": 32
                                                  },
                                                  "identifierName": "ctrPos"
                                                },
                                                "name": "ctrPos"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 8769,
                                                "end": 8774,
                                                "loc": {
                                                  "start": {
                                                    "line": 223,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 223,
                                                    "column": 38
                                                  },
                                                  "identifierName": "clone"
                                                },
                                                "name": "clone"
                                              },
                                              "computed": false
                                            },
                                            "arguments": []
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 8777,
                                            "end": 8780,
                                            "loc": {
                                              "start": {
                                                "line": 223,
                                                "column": 41
                                              },
                                              "end": {
                                                "line": 223,
                                                "column": 44
                                              },
                                              "identifierName": "add"
                                            },
                                            "name": "add"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "CallExpression",
                                            "start": 8781,
                                            "end": 8850,
                                            "loc": {
                                              "start": {
                                                "line": 223,
                                                "column": 45
                                              },
                                              "end": {
                                                "line": 223,
                                                "column": 114
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 8781,
                                              "end": 8840,
                                              "loc": {
                                                "start": {
                                                  "line": 223,
                                                  "column": 45
                                                },
                                                "end": {
                                                  "line": 223,
                                                  "column": 104
                                                }
                                              },
                                              "object": {
                                                "type": "NewExpression",
                                                "start": 8781,
                                                "end": 8825,
                                                "loc": {
                                                  "start": {
                                                    "line": 223,
                                                    "column": 45
                                                  },
                                                  "end": {
                                                    "line": 223,
                                                    "column": 89
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 8785,
                                                  "end": 8798,
                                                  "loc": {
                                                    "start": {
                                                      "line": 223,
                                                      "column": 49
                                                    },
                                                    "end": {
                                                      "line": 223,
                                                      "column": 62
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 8785,
                                                    "end": 8790,
                                                    "loc": {
                                                      "start": {
                                                        "line": 223,
                                                        "column": 49
                                                      },
                                                      "end": {
                                                        "line": 223,
                                                        "column": 54
                                                      },
                                                      "identifierName": "THREE"
                                                    },
                                                    "name": "THREE"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 8791,
                                                    "end": 8798,
                                                    "loc": {
                                                      "start": {
                                                        "line": 223,
                                                        "column": 55
                                                      },
                                                      "end": {
                                                        "line": 223,
                                                        "column": 62
                                                      },
                                                      "identifierName": "Vector3"
                                                    },
                                                    "name": "Vector3"
                                                  },
                                                  "computed": false
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "BinaryExpression",
                                                    "start": 8799,
                                                    "end": 8818,
                                                    "loc": {
                                                      "start": {
                                                        "line": 223,
                                                        "column": 63
                                                      },
                                                      "end": {
                                                        "line": 223,
                                                        "column": 82
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 8799,
                                                      "end": 8800,
                                                      "loc": {
                                                        "start": {
                                                          "line": 223,
                                                          "column": 63
                                                        },
                                                        "end": {
                                                          "line": 223,
                                                          "column": 64
                                                        },
                                                        "identifierName": "i"
                                                      },
                                                      "name": "i"
                                                    },
                                                    "operator": "-",
                                                    "right": {
                                                      "type": "BinaryExpression",
                                                      "start": 8803,
                                                      "end": 8818,
                                                      "loc": {
                                                        "start": {
                                                          "line": 223,
                                                          "column": 67
                                                        },
                                                        "end": {
                                                          "line": 223,
                                                          "column": 82
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "NumericLiteral",
                                                        "start": 8803,
                                                        "end": 8806,
                                                        "loc": {
                                                          "start": {
                                                            "line": 223,
                                                            "column": 67
                                                          },
                                                          "end": {
                                                            "line": 223,
                                                            "column": 70
                                                          }
                                                        },
                                                        "extra": {
                                                          "rawValue": 0.5,
                                                          "raw": "0.5"
                                                        },
                                                        "value": 0.5
                                                      },
                                                      "operator": "*",
                                                      "right": {
                                                        "type": "BinaryExpression",
                                                        "start": 8810,
                                                        "end": 8817,
                                                        "loc": {
                                                          "start": {
                                                            "line": 223,
                                                            "column": 74
                                                          },
                                                          "end": {
                                                            "line": 223,
                                                            "column": 81
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 8810,
                                                          "end": 8813,
                                                          "loc": {
                                                            "start": {
                                                              "line": 223,
                                                              "column": 74
                                                            },
                                                            "end": {
                                                              "line": 223,
                                                              "column": 77
                                                            },
                                                            "identifierName": "cnt"
                                                          },
                                                          "name": "cnt"
                                                        },
                                                        "operator": "-",
                                                        "right": {
                                                          "type": "NumericLiteral",
                                                          "start": 8816,
                                                          "end": 8817,
                                                          "loc": {
                                                            "start": {
                                                              "line": 223,
                                                              "column": 80
                                                            },
                                                            "end": {
                                                              "line": 223,
                                                              "column": 81
                                                            }
                                                          },
                                                          "extra": {
                                                            "rawValue": 1,
                                                            "raw": "1"
                                                          },
                                                          "value": 1
                                                        },
                                                        "extra": {
                                                          "parenthesized": true,
                                                          "parenStart": 8809
                                                        }
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "NumericLiteral",
                                                    "start": 8820,
                                                    "end": 8821,
                                                    "loc": {
                                                      "start": {
                                                        "line": 223,
                                                        "column": 84
                                                      },
                                                      "end": {
                                                        "line": 223,
                                                        "column": 85
                                                      }
                                                    },
                                                    "extra": {
                                                      "rawValue": 0,
                                                      "raw": "0"
                                                    },
                                                    "value": 0
                                                  },
                                                  {
                                                    "type": "NumericLiteral",
                                                    "start": 8823,
                                                    "end": 8824,
                                                    "loc": {
                                                      "start": {
                                                        "line": 223,
                                                        "column": 87
                                                      },
                                                      "end": {
                                                        "line": 223,
                                                        "column": 88
                                                      }
                                                    },
                                                    "extra": {
                                                      "rawValue": 0,
                                                      "raw": "0"
                                                    },
                                                    "value": 0
                                                  }
                                                ]
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 8826,
                                                "end": 8840,
                                                "loc": {
                                                  "start": {
                                                    "line": 223,
                                                    "column": 90
                                                  },
                                                  "end": {
                                                    "line": 223,
                                                    "column": 104
                                                  },
                                                  "identifierName": "multiplyScalar"
                                                },
                                                "name": "multiplyScalar"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 8841,
                                                "end": 8849,
                                                "loc": {
                                                  "start": {
                                                    "line": 223,
                                                    "column": 105
                                                  },
                                                  "end": {
                                                    "line": 223,
                                                    "column": 113
                                                  },
                                                  "identifierName": "iconSize"
                                                },
                                                "name": "iconSize"
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "kind": "let"
                                },
                                {
                                  "type": "VariableDeclaration",
                                  "start": 8869,
                                  "end": 8892,
                                  "loc": {
                                    "start": {
                                      "line": 224,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 224,
                                      "column": 39
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 8873,
                                      "end": 8891,
                                      "loc": {
                                        "start": {
                                          "line": 224,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 224,
                                          "column": 38
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 8873,
                                        "end": 8878,
                                        "loc": {
                                          "start": {
                                            "line": 224,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 224,
                                            "column": 25
                                          },
                                          "identifierName": "conId"
                                        },
                                        "name": "conId"
                                      },
                                      "init": {
                                        "type": "MemberExpression",
                                        "start": 8881,
                                        "end": 8891,
                                        "loc": {
                                          "start": {
                                            "line": 224,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 224,
                                            "column": 38
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 8881,
                                          "end": 8888,
                                          "loc": {
                                            "start": {
                                              "line": 224,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 224,
                                              "column": 35
                                            },
                                            "identifierName": "conList"
                                          },
                                          "name": "conList"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 8889,
                                          "end": 8890,
                                          "loc": {
                                            "start": {
                                              "line": 224,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 224,
                                              "column": 37
                                            },
                                            "identifierName": "i"
                                          },
                                          "name": "i"
                                        },
                                        "computed": true
                                      }
                                    }
                                  ],
                                  "kind": "let"
                                },
                                {
                                  "type": "VariableDeclaration",
                                  "start": 8909,
                                  "end": 8954,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 61
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 8913,
                                      "end": 8953,
                                      "loc": {
                                        "start": {
                                          "line": 225,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 225,
                                          "column": 60
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 8913,
                                        "end": 8919,
                                        "loc": {
                                          "start": {
                                            "line": 225,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 225,
                                            "column": 26
                                          },
                                          "identifierName": "constr"
                                        },
                                        "name": "constr"
                                      },
                                      "init": {
                                        "type": "NewExpression",
                                        "start": 8922,
                                        "end": 8953,
                                        "loc": {
                                          "start": {
                                            "line": 225,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 225,
                                            "column": 60
                                          }
                                        },
                                        "callee": {
                                          "type": "Identifier",
                                          "start": 8926,
                                          "end": 8931,
                                          "loc": {
                                            "start": {
                                              "line": 225,
                                              "column": 33
                                            },
                                            "end": {
                                              "line": 225,
                                              "column": 38
                                            },
                                            "identifierName": "Ccref"
                                          },
                                          "name": "Ccref"
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "start": 8932,
                                            "end": 8945,
                                            "loc": {
                                              "start": {
                                                "line": 225,
                                                "column": 39
                                              },
                                              "end": {
                                                "line": 225,
                                                "column": 52
                                              }
                                            },
                                            "object": {
                                              "type": "ThisExpression",
                                              "start": 8932,
                                              "end": 8936,
                                              "loc": {
                                                "start": {
                                                  "line": 225,
                                                  "column": 39
                                                },
                                                "end": {
                                                  "line": 225,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 8937,
                                              "end": 8945,
                                              "loc": {
                                                "start": {
                                                  "line": 225,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 225,
                                                  "column": 52
                                                },
                                                "identifierName": "sketcher"
                                              },
                                              "name": "sketcher"
                                            },
                                            "computed": false
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 8947,
                                            "end": 8952,
                                            "loc": {
                                              "start": {
                                                "line": 225,
                                                "column": 54
                                              },
                                              "end": {
                                                "line": 225,
                                                "column": 59
                                              },
                                              "identifierName": "conId"
                                            },
                                            "name": "conId"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "kind": "let"
                                },
                                {
                                  "type": "ExpressionStatement",
                                  "start": 8971,
                                  "end": 9016,
                                  "loc": {
                                    "start": {
                                      "line": 226,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 226,
                                      "column": 61
                                    }
                                  },
                                  "expression": {
                                    "type": "CallExpression",
                                    "start": 8971,
                                    "end": 9015,
                                    "loc": {
                                      "start": {
                                        "line": 226,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 226,
                                        "column": 60
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 8971,
                                      "end": 9010,
                                      "loc": {
                                        "start": {
                                          "line": 226,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 226,
                                          "column": 55
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 8971,
                                        "end": 9005,
                                        "loc": {
                                          "start": {
                                            "line": 226,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 226,
                                            "column": 50
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 8971,
                                          "end": 8996,
                                          "loc": {
                                            "start": {
                                              "line": 226,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 226,
                                              "column": 41
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 8971,
                                            "end": 8986,
                                            "loc": {
                                              "start": {
                                                "line": 226,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 226,
                                                "column": 31
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 8971,
                                              "end": 8977,
                                              "loc": {
                                                "start": {
                                                  "line": 226,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 226,
                                                  "column": 22
                                                },
                                                "identifierName": "constr"
                                              },
                                              "name": "constr"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 8978,
                                              "end": 8986,
                                              "loc": {
                                                "start": {
                                                  "line": 226,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 226,
                                                  "column": 31
                                                },
                                                "identifierName": "graphics"
                                              },
                                              "name": "graphics"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 8987,
                                            "end": 8996,
                                            "loc": {
                                              "start": {
                                                "line": 226,
                                                "column": 32
                                              },
                                              "end": {
                                                "line": 226,
                                                "column": 41
                                              },
                                              "identifierName": "localMesh"
                                            },
                                            "name": "localMesh"
                                          },
                                          "computed": false
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 8997,
                                          "end": 9005,
                                          "loc": {
                                            "start": {
                                              "line": 226,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 226,
                                              "column": 50
                                            },
                                            "identifierName": "position"
                                          },
                                          "name": "position"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 9006,
                                        "end": 9010,
                                        "loc": {
                                          "start": {
                                            "line": 226,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 226,
                                            "column": 55
                                          },
                                          "identifierName": "copy"
                                        },
                                        "name": "copy"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 9011,
                                        "end": 9014,
                                        "loc": {
                                          "start": {
                                            "line": 226,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 226,
                                            "column": 59
                                          },
                                          "identifierName": "pos"
                                        },
                                        "name": "pos"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "type": "ExpressionStatement",
                                  "start": 9033,
                                  "end": 9092,
                                  "loc": {
                                    "start": {
                                      "line": 227,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 227,
                                      "column": 75
                                    }
                                  },
                                  "expression": {
                                    "type": "CallExpression",
                                    "start": 9033,
                                    "end": 9091,
                                    "loc": {
                                      "start": {
                                        "line": 227,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 227,
                                        "column": 74
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 9033,
                                      "end": 9068,
                                      "loc": {
                                        "start": {
                                          "line": 227,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 227,
                                          "column": 51
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 9033,
                                        "end": 9064,
                                        "loc": {
                                          "start": {
                                            "line": 227,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 227,
                                            "column": 47
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 9033,
                                          "end": 9058,
                                          "loc": {
                                            "start": {
                                              "line": 227,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 227,
                                              "column": 41
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 9033,
                                            "end": 9048,
                                            "loc": {
                                              "start": {
                                                "line": 227,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 227,
                                                "column": 31
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 9033,
                                              "end": 9039,
                                              "loc": {
                                                "start": {
                                                  "line": 227,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 227,
                                                  "column": 22
                                                },
                                                "identifierName": "constr"
                                              },
                                              "name": "constr"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 9040,
                                              "end": 9048,
                                              "loc": {
                                                "start": {
                                                  "line": 227,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 227,
                                                  "column": 31
                                                },
                                                "identifierName": "graphics"
                                              },
                                              "name": "graphics"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 9049,
                                            "end": 9058,
                                            "loc": {
                                              "start": {
                                                "line": 227,
                                                "column": 32
                                              },
                                              "end": {
                                                "line": 227,
                                                "column": 41
                                              },
                                              "identifierName": "localMesh"
                                            },
                                            "name": "localMesh"
                                          },
                                          "computed": false
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 9059,
                                          "end": 9064,
                                          "loc": {
                                            "start": {
                                              "line": 227,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 227,
                                              "column": 47
                                            },
                                            "identifierName": "scale"
                                          },
                                          "name": "scale"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 9065,
                                        "end": 9068,
                                        "loc": {
                                          "start": {
                                            "line": 227,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 227,
                                            "column": 51
                                          },
                                          "identifierName": "set"
                                        },
                                        "name": "set"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 9069,
                                        "end": 9077,
                                        "loc": {
                                          "start": {
                                            "line": 227,
                                            "column": 52
                                          },
                                          "end": {
                                            "line": 227,
                                            "column": 60
                                          },
                                          "identifierName": "iconSize"
                                        },
                                        "name": "iconSize"
                                      },
                                      {
                                        "type": "Identifier",
                                        "start": 9079,
                                        "end": 9087,
                                        "loc": {
                                          "start": {
                                            "line": 227,
                                            "column": 62
                                          },
                                          "end": {
                                            "line": 227,
                                            "column": 70
                                          },
                                          "identifierName": "iconSize"
                                        },
                                        "name": "iconSize"
                                      },
                                      {
                                        "type": "NumericLiteral",
                                        "start": 9089,
                                        "end": 9090,
                                        "loc": {
                                          "start": {
                                            "line": 227,
                                            "column": 72
                                          },
                                          "end": {
                                            "line": 227,
                                            "column": 73
                                          }
                                        },
                                        "extra": {
                                          "rawValue": 1,
                                          "raw": "1"
                                        },
                                        "value": 1
                                      }
                                    ]
                                  }
                                }
                              ],
                              "directives": []
                            }
                          }
                        ],
                        "directives": []
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "set positions for all constraint icons",
                          "start": 8451,
                          "end": 8491,
                          "loc": {
                            "start": {
                              "line": 216,
                              "column": 8
                            },
                            "end": {
                              "line": 216,
                              "column": 48
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "note: called before each frame is rendered",
                    "start": 4160,
                    "end": 4204,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 4
                      },
                      "end": {
                        "line": 124,
                        "column": 48
                      }
                    }
                  },
                  {
                    "type": "CommentLine",
                    "value": "sets proper positions for all constraint graphics",
                    "start": 4209,
                    "end": 4260,
                    "loc": {
                      "start": {
                        "line": 125,
                        "column": 4
                      },
                      "end": {
                        "line": 125,
                        "column": 55
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 9128,
                "end": 9773,
                "loc": {
                  "start": {
                    "line": 232,
                    "column": 4
                  },
                  "end": {
                    "line": 247,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 9128,
                  "end": 9142,
                  "loc": {
                    "start": {
                      "line": 232,
                      "column": 4
                    },
                    "end": {
                      "line": 232,
                      "column": 18
                    },
                    "identifierName": "getKeyPosition"
                  },
                  "name": "getKeyPosition"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 9143,
                    "end": 9149,
                    "loc": {
                      "start": {
                        "line": 232,
                        "column": 19
                      },
                      "end": {
                        "line": 232,
                        "column": 25
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 9151,
                  "end": 9773,
                  "loc": {
                    "start": {
                      "line": 232,
                      "column": 27
                    },
                    "end": {
                      "line": 247,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 9161,
                      "end": 9235,
                      "loc": {
                        "start": {
                          "line": 233,
                          "column": 8
                        },
                        "end": {
                          "line": 233,
                          "column": 82
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 9165,
                        "end": 9191,
                        "loc": {
                          "start": {
                            "line": 233,
                            "column": 12
                          },
                          "end": {
                            "line": 233,
                            "column": 38
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 9165,
                          "end": 9178,
                          "loc": {
                            "start": {
                              "line": 233,
                              "column": 12
                            },
                            "end": {
                              "line": 233,
                              "column": 25
                            }
                          },
                          "operator": "typeof",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 9172,
                            "end": 9178,
                            "loc": {
                              "start": {
                                "line": 233,
                                "column": 19
                              },
                              "end": {
                                "line": 233,
                                "column": 25
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 9183,
                          "end": 9191,
                          "loc": {
                            "start": {
                              "line": 233,
                              "column": 30
                            },
                            "end": {
                              "line": 233,
                              "column": 38
                            }
                          },
                          "extra": {
                            "rawValue": "number",
                            "raw": "'number'"
                          },
                          "value": "number"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 9193,
                        "end": 9235,
                        "loc": {
                          "start": {
                            "line": 233,
                            "column": 40
                          },
                          "end": {
                            "line": 233,
                            "column": 82
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 9193,
                          "end": 9234,
                          "loc": {
                            "start": {
                              "line": 233,
                              "column": 40
                            },
                            "end": {
                              "line": 233,
                              "column": 81
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 9193,
                            "end": 9199,
                            "loc": {
                              "start": {
                                "line": 233,
                                "column": 40
                              },
                              "end": {
                                "line": 233,
                                "column": 46
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "right": {
                            "type": "NewExpression",
                            "start": 9202,
                            "end": 9234,
                            "loc": {
                              "start": {
                                "line": 233,
                                "column": 49
                              },
                              "end": {
                                "line": 233,
                                "column": 81
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 9206,
                              "end": 9211,
                              "loc": {
                                "start": {
                                  "line": 233,
                                  "column": 53
                                },
                                "end": {
                                  "line": 233,
                                  "column": 58
                                },
                                "identifierName": "Ccref"
                              },
                              "name": "Ccref"
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 9212,
                                "end": 9225,
                                "loc": {
                                  "start": {
                                    "line": 233,
                                    "column": 59
                                  },
                                  "end": {
                                    "line": 233,
                                    "column": 72
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 9212,
                                  "end": 9216,
                                  "loc": {
                                    "start": {
                                      "line": 233,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 233,
                                      "column": 63
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 9217,
                                  "end": 9225,
                                  "loc": {
                                    "start": {
                                      "line": 233,
                                      "column": 64
                                    },
                                    "end": {
                                      "line": 233,
                                      "column": 72
                                    },
                                    "identifierName": "sketcher"
                                  },
                                  "name": "sketcher"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 9227,
                                "end": 9233,
                                "loc": {
                                  "start": {
                                    "line": 233,
                                    "column": 74
                                  },
                                  "end": {
                                    "line": 233,
                                    "column": 80
                                  },
                                  "identifierName": "entity"
                                },
                                "name": "entity"
                              }
                            ]
                          }
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 9244,
                      "end": 9273,
                      "loc": {
                        "start": {
                          "line": 234,
                          "column": 8
                        },
                        "end": {
                          "line": 234,
                          "column": 37
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 9250,
                          "end": 9272,
                          "loc": {
                            "start": {
                              "line": 234,
                              "column": 14
                            },
                            "end": {
                              "line": 234,
                              "column": 36
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 9250,
                            "end": 9252,
                            "loc": {
                              "start": {
                                "line": 234,
                                "column": 14
                              },
                              "end": {
                                "line": 234,
                                "column": 16
                              },
                              "identifierName": "gp"
                            },
                            "name": "gp"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 9255,
                            "end": 9272,
                            "loc": {
                              "start": {
                                "line": 234,
                                "column": 19
                              },
                              "end": {
                                "line": 234,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 9255,
                              "end": 9261,
                              "loc": {
                                "start": {
                                  "line": 234,
                                  "column": 19
                                },
                                "end": {
                                  "line": 234,
                                  "column": 25
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 9262,
                              "end": 9272,
                              "loc": {
                                "start": {
                                  "line": 234,
                                  "column": 26
                                },
                                "end": {
                                  "line": 234,
                                  "column": 36
                                },
                                "identifierName": "geomParams"
                              },
                              "name": "geomParams"
                            },
                            "computed": false
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "SwitchStatement",
                      "start": 9282,
                      "end": 9767,
                      "loc": {
                        "start": {
                          "line": 235,
                          "column": 8
                        },
                        "end": {
                          "line": 246,
                          "column": 9
                        }
                      },
                      "discriminant": {
                        "type": "MemberExpression",
                        "start": 9290,
                        "end": 9302,
                        "loc": {
                          "start": {
                            "line": 235,
                            "column": 16
                          },
                          "end": {
                            "line": 235,
                            "column": 28
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 9290,
                          "end": 9296,
                          "loc": {
                            "start": {
                              "line": 235,
                              "column": 16
                            },
                            "end": {
                              "line": 235,
                              "column": 22
                            },
                            "identifierName": "entity"
                          },
                          "name": "entity"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 9297,
                          "end": 9302,
                          "loc": {
                            "start": {
                              "line": 235,
                              "column": 23
                            },
                            "end": {
                              "line": 235,
                              "column": 28
                            },
                            "identifierName": "class"
                          },
                          "name": "class"
                        },
                        "computed": false
                      },
                      "cases": [
                        {
                          "type": "SwitchCase",
                          "start": 9318,
                          "end": 9375,
                          "loc": {
                            "start": {
                              "line": 236,
                              "column": 12
                            },
                            "end": {
                              "line": 237,
                              "column": 40
                            }
                          },
                          "consequent": [
                            {
                              "type": "ReturnStatement",
                              "start": 9351,
                              "end": 9375,
                              "loc": {
                                "start": {
                                  "line": 237,
                                  "column": 16
                                },
                                "end": {
                                  "line": 237,
                                  "column": 40
                                }
                              },
                              "argument": {
                                "type": "CallExpression",
                                "start": 9358,
                                "end": 9374,
                                "loc": {
                                  "start": {
                                    "line": 237,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 237,
                                    "column": 39
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 9358,
                                  "end": 9372,
                                  "loc": {
                                    "start": {
                                      "line": 237,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 237,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 9358,
                                    "end": 9366,
                                    "loc": {
                                      "start": {
                                        "line": 237,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 237,
                                        "column": 31
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 9358,
                                      "end": 9360,
                                      "loc": {
                                        "start": {
                                          "line": 237,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 237,
                                          "column": 25
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 9361,
                                      "end": 9366,
                                      "loc": {
                                        "start": {
                                          "line": 237,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 237,
                                          "column": 31
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 9367,
                                    "end": 9372,
                                    "loc": {
                                      "start": {
                                        "line": 237,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 237,
                                        "column": 37
                                      },
                                      "identifierName": "clone"
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              }
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 9323,
                            "end": 9333,
                            "loc": {
                              "start": {
                                "line": 236,
                                "column": 17
                              },
                              "end": {
                                "line": 236,
                                "column": 27
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Point",
                              "raw": "'CC_Point'"
                            },
                            "value": "CC_Point"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 9388,
                          "end": 9482,
                          "loc": {
                            "start": {
                              "line": 238,
                              "column": 12
                            },
                            "end": {
                              "line": 239,
                              "column": 78
                            }
                          },
                          "consequent": [
                            {
                              "type": "ReturnStatement",
                              "start": 9420,
                              "end": 9482,
                              "loc": {
                                "start": {
                                  "line": 239,
                                  "column": 16
                                },
                                "end": {
                                  "line": 239,
                                  "column": 78
                                }
                              },
                              "argument": {
                                "type": "CallExpression",
                                "start": 9427,
                                "end": 9481,
                                "loc": {
                                  "start": {
                                    "line": 239,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 239,
                                    "column": 77
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 9427,
                                  "end": 9458,
                                  "loc": {
                                    "start": {
                                      "line": 239,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 239,
                                      "column": 54
                                    }
                                  },
                                  "object": {
                                    "type": "NewExpression",
                                    "start": 9427,
                                    "end": 9446,
                                    "loc": {
                                      "start": {
                                        "line": 239,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 239,
                                        "column": 42
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 9431,
                                      "end": 9444,
                                      "loc": {
                                        "start": {
                                          "line": 239,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 239,
                                          "column": 40
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 9431,
                                        "end": 9436,
                                        "loc": {
                                          "start": {
                                            "line": 239,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 239,
                                            "column": 32
                                          },
                                          "identifierName": "THREE"
                                        },
                                        "name": "THREE"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 9437,
                                        "end": 9444,
                                        "loc": {
                                          "start": {
                                            "line": 239,
                                            "column": 33
                                          },
                                          "end": {
                                            "line": 239,
                                            "column": 40
                                          },
                                          "identifierName": "Vector3"
                                        },
                                        "name": "Vector3"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 9447,
                                    "end": 9458,
                                    "loc": {
                                      "start": {
                                        "line": 239,
                                        "column": 43
                                      },
                                      "end": {
                                        "line": 239,
                                        "column": 54
                                      },
                                      "identifierName": "lerpVectors"
                                    },
                                    "name": "lerpVectors"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 9459,
                                    "end": 9467,
                                    "loc": {
                                      "start": {
                                        "line": 239,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 239,
                                        "column": 63
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 9459,
                                      "end": 9461,
                                      "loc": {
                                        "start": {
                                          "line": 239,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 239,
                                          "column": 57
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 9462,
                                      "end": 9467,
                                      "loc": {
                                        "start": {
                                          "line": 239,
                                          "column": 58
                                        },
                                        "end": {
                                          "line": 239,
                                          "column": 63
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 9469,
                                    "end": 9475,
                                    "loc": {
                                      "start": {
                                        "line": 239,
                                        "column": 65
                                      },
                                      "end": {
                                        "line": 239,
                                        "column": 71
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 9469,
                                      "end": 9471,
                                      "loc": {
                                        "start": {
                                          "line": 239,
                                          "column": 65
                                        },
                                        "end": {
                                          "line": 239,
                                          "column": 67
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 9472,
                                      "end": 9475,
                                      "loc": {
                                        "start": {
                                          "line": 239,
                                          "column": 68
                                        },
                                        "end": {
                                          "line": 239,
                                          "column": 71
                                        },
                                        "identifierName": "end"
                                      },
                                      "name": "end"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 9477,
                                    "end": 9480,
                                    "loc": {
                                      "start": {
                                        "line": 239,
                                        "column": 73
                                      },
                                      "end": {
                                        "line": 239,
                                        "column": 76
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0.5,
                                      "raw": "0.5"
                                    },
                                    "value": 0.5
                                  }
                                ]
                              }
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 9393,
                            "end": 9402,
                            "loc": {
                              "start": {
                                "line": 238,
                                "column": 17
                              },
                              "end": {
                                "line": 238,
                                "column": 26
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Line",
                              "raw": "'CC_Line'"
                            },
                            "value": "CC_Line"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 9495,
                          "end": 9562,
                          "loc": {
                            "start": {
                              "line": 240,
                              "column": 12
                            },
                            "end": {
                              "line": 241,
                              "column": 52
                            }
                          },
                          "consequent": [
                            {
                              "type": "ReturnStatement",
                              "start": 9526,
                              "end": 9562,
                              "loc": {
                                "start": {
                                  "line": 241,
                                  "column": 16
                                },
                                "end": {
                                  "line": 241,
                                  "column": 52
                                }
                              },
                              "argument": {
                                "type": "CallExpression",
                                "start": 9533,
                                "end": 9561,
                                "loc": {
                                  "start": {
                                    "line": 241,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 241,
                                    "column": 51
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 9533,
                                  "end": 9559,
                                  "loc": {
                                    "start": {
                                      "line": 241,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 241,
                                      "column": 49
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 9533,
                                    "end": 9553,
                                    "loc": {
                                      "start": {
                                        "line": 241,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 241,
                                        "column": 43
                                      }
                                    },
                                    "object": {
                                      "type": "CallExpression",
                                      "start": 9533,
                                      "end": 9549,
                                      "loc": {
                                        "start": {
                                          "line": 241,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 241,
                                          "column": 39
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 9533,
                                        "end": 9545,
                                        "loc": {
                                          "start": {
                                            "line": 241,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 241,
                                            "column": 35
                                          },
                                          "identifierName": "getArcAngles"
                                        },
                                        "name": "getArcAngles"
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "start": 9546,
                                          "end": 9548,
                                          "loc": {
                                            "start": {
                                              "line": 241,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 241,
                                              "column": 38
                                            },
                                            "identifierName": "gp"
                                          },
                                          "name": "gp"
                                        }
                                      ]
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 9550,
                                      "end": 9553,
                                      "loc": {
                                        "start": {
                                          "line": 241,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 241,
                                          "column": 43
                                        },
                                        "identifierName": "mid"
                                      },
                                      "name": "mid"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 9554,
                                    "end": 9559,
                                    "loc": {
                                      "start": {
                                        "line": 241,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 241,
                                        "column": 49
                                      },
                                      "identifierName": "clone"
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              }
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 9500,
                            "end": 9508,
                            "loc": {
                              "start": {
                                "line": 240,
                                "column": 17
                              },
                              "end": {
                                "line": 240,
                                "column": 25
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Arc",
                              "raw": "'CC_Arc'"
                            },
                            "value": "CC_Arc"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 9575,
                          "end": 9685,
                          "loc": {
                            "start": {
                              "line": 242,
                              "column": 12
                            },
                            "end": {
                              "line": 243,
                              "column": 92
                            }
                          },
                          "consequent": [
                            {
                              "type": "ReturnStatement",
                              "start": 9609,
                              "end": 9685,
                              "loc": {
                                "start": {
                                  "line": 243,
                                  "column": 16
                                },
                                "end": {
                                  "line": 243,
                                  "column": 92
                                }
                              },
                              "argument": {
                                "type": "CallExpression",
                                "start": 9616,
                                "end": 9684,
                                "loc": {
                                  "start": {
                                    "line": 243,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 243,
                                    "column": 91
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 9616,
                                  "end": 9673,
                                  "loc": {
                                    "start": {
                                      "line": 243,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 243,
                                      "column": 80
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 9616,
                                    "end": 9669,
                                    "loc": {
                                      "start": {
                                        "line": 243,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 243,
                                        "column": 76
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 9616,
                                      "end": 9658,
                                      "loc": {
                                        "start": {
                                          "line": 243,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 243,
                                          "column": 65
                                        }
                                      },
                                      "object": {
                                        "type": "NewExpression",
                                        "start": 9616,
                                        "end": 9643,
                                        "loc": {
                                          "start": {
                                            "line": 243,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 243,
                                            "column": 50
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 9620,
                                          "end": 9633,
                                          "loc": {
                                            "start": {
                                              "line": 243,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 243,
                                              "column": 40
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 9620,
                                            "end": 9625,
                                            "loc": {
                                              "start": {
                                                "line": 243,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 243,
                                                "column": 32
                                              },
                                              "identifierName": "THREE"
                                            },
                                            "name": "THREE"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 9626,
                                            "end": 9633,
                                            "loc": {
                                              "start": {
                                                "line": 243,
                                                "column": 33
                                              },
                                              "end": {
                                                "line": 243,
                                                "column": 40
                                              },
                                              "identifierName": "Vector3"
                                            },
                                            "name": "Vector3"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "NumericLiteral",
                                            "start": 9634,
                                            "end": 9637,
                                            "loc": {
                                              "start": {
                                                "line": 243,
                                                "column": 41
                                              },
                                              "end": {
                                                "line": 243,
                                                "column": 44
                                              }
                                            },
                                            "extra": {
                                              "rawValue": 0.6,
                                              "raw": "0.6"
                                            },
                                            "value": 0.6
                                          },
                                          {
                                            "type": "NumericLiteral",
                                            "start": 9639,
                                            "end": 9642,
                                            "loc": {
                                              "start": {
                                                "line": 243,
                                                "column": 46
                                              },
                                              "end": {
                                                "line": 243,
                                                "column": 49
                                              }
                                            },
                                            "extra": {
                                              "rawValue": 0.8,
                                              "raw": "0.8"
                                            },
                                            "value": 0.8
                                          }
                                        ]
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 9644,
                                        "end": 9658,
                                        "loc": {
                                          "start": {
                                            "line": 243,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 243,
                                            "column": 65
                                          },
                                          "identifierName": "multiplyScalar"
                                        },
                                        "name": "multiplyScalar"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "start": 9659,
                                        "end": 9668,
                                        "loc": {
                                          "start": {
                                            "line": 243,
                                            "column": 66
                                          },
                                          "end": {
                                            "line": 243,
                                            "column": 75
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 9659,
                                          "end": 9661,
                                          "loc": {
                                            "start": {
                                              "line": 243,
                                              "column": 66
                                            },
                                            "end": {
                                              "line": 243,
                                              "column": 68
                                            },
                                            "identifierName": "gp"
                                          },
                                          "name": "gp"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 9662,
                                          "end": 9668,
                                          "loc": {
                                            "start": {
                                              "line": 243,
                                              "column": 69
                                            },
                                            "end": {
                                              "line": 243,
                                              "column": 75
                                            },
                                            "identifierName": "radius"
                                          },
                                          "name": "radius"
                                        },
                                        "computed": false
                                      }
                                    ]
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 9670,
                                    "end": 9673,
                                    "loc": {
                                      "start": {
                                        "line": 243,
                                        "column": 77
                                      },
                                      "end": {
                                        "line": 243,
                                        "column": 80
                                      },
                                      "identifierName": "add"
                                    },
                                    "name": "add"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 9674,
                                    "end": 9683,
                                    "loc": {
                                      "start": {
                                        "line": 243,
                                        "column": 81
                                      },
                                      "end": {
                                        "line": 243,
                                        "column": 90
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 9674,
                                      "end": 9676,
                                      "loc": {
                                        "start": {
                                          "line": 243,
                                          "column": 81
                                        },
                                        "end": {
                                          "line": 243,
                                          "column": 83
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 9677,
                                      "end": 9683,
                                      "loc": {
                                        "start": {
                                          "line": 243,
                                          "column": 84
                                        },
                                        "end": {
                                          "line": 243,
                                          "column": 90
                                        },
                                        "identifierName": "center"
                                      },
                                      "name": "center"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 9580,
                            "end": 9591,
                            "loc": {
                              "start": {
                                "line": 242,
                                "column": 17
                              },
                              "end": {
                                "line": 242,
                                "column": 28
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Circle",
                              "raw": "'CC_Circle'"
                            },
                            "value": "CC_Circle"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 9698,
                          "end": 9757,
                          "loc": {
                            "start": {
                              "line": 244,
                              "column": 12
                            },
                            "end": {
                              "line": 245,
                              "column": 50
                            }
                          },
                          "consequent": [
                            {
                              "type": "ReturnStatement",
                              "start": 9723,
                              "end": 9757,
                              "loc": {
                                "start": {
                                  "line": 245,
                                  "column": 16
                                },
                                "end": {
                                  "line": 245,
                                  "column": 50
                                }
                              },
                              "argument": {
                                "type": "NewExpression",
                                "start": 9730,
                                "end": 9756,
                                "loc": {
                                  "start": {
                                    "line": 245,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 245,
                                    "column": 49
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 9734,
                                  "end": 9747,
                                  "loc": {
                                    "start": {
                                      "line": 245,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 245,
                                      "column": 40
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 9734,
                                    "end": 9739,
                                    "loc": {
                                      "start": {
                                        "line": 245,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 245,
                                        "column": 32
                                      },
                                      "identifierName": "THREE"
                                    },
                                    "name": "THREE"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 9740,
                                    "end": 9747,
                                    "loc": {
                                      "start": {
                                        "line": 245,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 245,
                                        "column": 40
                                      },
                                      "identifierName": "Vector3"
                                    },
                                    "name": "Vector3"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "NumericLiteral",
                                    "start": 9748,
                                    "end": 9749,
                                    "loc": {
                                      "start": {
                                        "line": 245,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 245,
                                        "column": 42
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 9751,
                                    "end": 9752,
                                    "loc": {
                                      "start": {
                                        "line": 245,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 245,
                                        "column": 45
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 9754,
                                    "end": 9755,
                                    "loc": {
                                      "start": {
                                        "line": 245,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 245,
                                        "column": 48
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  }
                                ]
                              }
                            }
                          ],
                          "test": null
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 9779,
                "end": 10219,
                "loc": {
                  "start": {
                    "line": 249,
                    "column": 4
                  },
                  "end": {
                    "line": 259,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 9779,
                  "end": 9794,
                  "loc": {
                    "start": {
                      "line": 249,
                      "column": 4
                    },
                    "end": {
                      "line": 249,
                      "column": 19
                    },
                    "identifierName": "getBaseEntityId"
                  },
                  "name": "getBaseEntityId"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 9795,
                    "end": 9805,
                    "loc": {
                      "start": {
                        "line": 249,
                        "column": 20
                      },
                      "end": {
                        "line": 249,
                        "column": 30
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 9807,
                  "end": 10219,
                  "loc": {
                    "start": {
                      "line": 249,
                      "column": 32
                    },
                    "end": {
                      "line": 259,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 9817,
                      "end": 9903,
                      "loc": {
                        "start": {
                          "line": 250,
                          "column": 8
                        },
                        "end": {
                          "line": 250,
                          "column": 94
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 9821,
                        "end": 9851,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 12
                          },
                          "end": {
                            "line": 250,
                            "column": 42
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 9821,
                          "end": 9838,
                          "loc": {
                            "start": {
                              "line": 250,
                              "column": 12
                            },
                            "end": {
                              "line": 250,
                              "column": 29
                            }
                          },
                          "operator": "typeof",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 9828,
                            "end": 9838,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 19
                              },
                              "end": {
                                "line": 250,
                                "column": 29
                              },
                              "identifierName": "constraint"
                            },
                            "name": "constraint"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 9843,
                          "end": 9851,
                          "loc": {
                            "start": {
                              "line": 250,
                              "column": 34
                            },
                            "end": {
                              "line": 250,
                              "column": 42
                            }
                          },
                          "extra": {
                            "rawValue": "number",
                            "raw": "'number'"
                          },
                          "value": "number"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 9853,
                        "end": 9903,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 44
                          },
                          "end": {
                            "line": 250,
                            "column": 94
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 9853,
                          "end": 9902,
                          "loc": {
                            "start": {
                              "line": 250,
                              "column": 44
                            },
                            "end": {
                              "line": 250,
                              "column": 93
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 9853,
                            "end": 9863,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 44
                              },
                              "end": {
                                "line": 250,
                                "column": 54
                              },
                              "identifierName": "constraint"
                            },
                            "name": "constraint"
                          },
                          "right": {
                            "type": "NewExpression",
                            "start": 9866,
                            "end": 9902,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 57
                              },
                              "end": {
                                "line": 250,
                                "column": 93
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 9870,
                              "end": 9875,
                              "loc": {
                                "start": {
                                  "line": 250,
                                  "column": 61
                                },
                                "end": {
                                  "line": 250,
                                  "column": 66
                                },
                                "identifierName": "Ccref"
                              },
                              "name": "Ccref"
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 9876,
                                "end": 9889,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 67
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 80
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 9876,
                                  "end": 9880,
                                  "loc": {
                                    "start": {
                                      "line": 250,
                                      "column": 67
                                    },
                                    "end": {
                                      "line": 250,
                                      "column": 71
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 9881,
                                  "end": 9889,
                                  "loc": {
                                    "start": {
                                      "line": 250,
                                      "column": 72
                                    },
                                    "end": {
                                      "line": 250,
                                      "column": 80
                                    },
                                    "identifierName": "sketcher"
                                  },
                                  "name": "sketcher"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 9891,
                                "end": 9901,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 82
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 92
                                  },
                                  "identifierName": "constraint"
                                },
                                "name": "constraint"
                              }
                            ]
                          }
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 9913,
                      "end": 9961,
                      "loc": {
                        "start": {
                          "line": 252,
                          "column": 8
                        },
                        "end": {
                          "line": 252,
                          "column": 56
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 9917,
                          "end": 9960,
                          "loc": {
                            "start": {
                              "line": 252,
                              "column": 12
                            },
                            "end": {
                              "line": 252,
                              "column": 55
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 9917,
                            "end": 9920,
                            "loc": {
                              "start": {
                                "line": 252,
                                "column": 12
                              },
                              "end": {
                                "line": 252,
                                "column": 15
                              },
                              "identifierName": "res"
                            },
                            "name": "res"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 9923,
                            "end": 9960,
                            "loc": {
                              "start": {
                                "line": 252,
                                "column": 18
                              },
                              "end": {
                                "line": 252,
                                "column": 55
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9923,
                              "end": 9945,
                              "loc": {
                                "start": {
                                  "line": 252,
                                  "column": 18
                                },
                                "end": {
                                  "line": 252,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 9923,
                                "end": 9941,
                                "loc": {
                                  "start": {
                                    "line": 252,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 252,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 9923,
                                  "end": 9927,
                                  "loc": {
                                    "start": {
                                      "line": 252,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 252,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 9928,
                                  "end": 9941,
                                  "loc": {
                                    "start": {
                                      "line": 252,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 252,
                                      "column": 36
                                    },
                                    "identifierName": "baseEntityFor"
                                  },
                                  "name": "baseEntityFor"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9942,
                                "end": 9945,
                                "loc": {
                                  "start": {
                                    "line": 252,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 252,
                                    "column": 40
                                  },
                                  "identifierName": "get"
                                },
                                "name": "get"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 9946,
                                "end": 9959,
                                "loc": {
                                  "start": {
                                    "line": 252,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 252,
                                    "column": 54
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 9946,
                                  "end": 9956,
                                  "loc": {
                                    "start": {
                                      "line": 252,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 252,
                                      "column": 51
                                    },
                                    "identifierName": "constraint"
                                  },
                                  "name": "constraint"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 9957,
                                  "end": 9959,
                                  "loc": {
                                    "start": {
                                      "line": 252,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 252,
                                      "column": 54
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 9970,
                      "end": 10004,
                      "loc": {
                        "start": {
                          "line": 253,
                          "column": 8
                        },
                        "end": {
                          "line": 253,
                          "column": 42
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 9974,
                        "end": 9991,
                        "loc": {
                          "start": {
                            "line": 253,
                            "column": 12
                          },
                          "end": {
                            "line": 253,
                            "column": 29
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 9974,
                          "end": 9977,
                          "loc": {
                            "start": {
                              "line": 253,
                              "column": 12
                            },
                            "end": {
                              "line": 253,
                              "column": 15
                            },
                            "identifierName": "res"
                          },
                          "name": "res"
                        },
                        "operator": "!==",
                        "right": {
                          "type": "Identifier",
                          "start": 9982,
                          "end": 9991,
                          "loc": {
                            "start": {
                              "line": 253,
                              "column": 20
                            },
                            "end": {
                              "line": 253,
                              "column": 29
                            },
                            "identifierName": "undefined"
                          },
                          "name": "undefined"
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 9993,
                        "end": 10004,
                        "loc": {
                          "start": {
                            "line": 253,
                            "column": 31
                          },
                          "end": {
                            "line": 253,
                            "column": 42
                          }
                        },
                        "argument": {
                          "type": "Identifier",
                          "start": 10000,
                          "end": 10003,
                          "loc": {
                            "start": {
                              "line": 253,
                              "column": 38
                            },
                            "end": {
                              "line": 253,
                              "column": 41
                            },
                            "identifierName": "res"
                          },
                          "name": "res"
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 10014,
                      "end": 10170,
                      "loc": {
                        "start": {
                          "line": 255,
                          "column": 8
                        },
                        "end": {
                          "line": 256,
                          "column": 110
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 10019,
                        "end": 10029,
                        "loc": {
                          "start": {
                            "line": 255,
                            "column": 13
                          },
                          "end": {
                            "line": 255,
                            "column": 23
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 10023,
                            "end": 10029,
                            "loc": {
                              "start": {
                                "line": 255,
                                "column": 17
                              },
                              "end": {
                                "line": 255,
                                "column": 23
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 10023,
                              "end": 10029,
                              "loc": {
                                "start": {
                                  "line": 255,
                                  "column": 17
                                },
                                "end": {
                                  "line": 255,
                                  "column": 23
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 10033,
                        "end": 10058,
                        "loc": {
                          "start": {
                            "line": 255,
                            "column": 27
                          },
                          "end": {
                            "line": 255,
                            "column": 52
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 10033,
                          "end": 10043,
                          "loc": {
                            "start": {
                              "line": 255,
                              "column": 27
                            },
                            "end": {
                              "line": 255,
                              "column": 37
                            },
                            "identifierName": "constraint"
                          },
                          "name": "constraint"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 10044,
                          "end": 10058,
                          "loc": {
                            "start": {
                              "line": 255,
                              "column": 38
                            },
                            "end": {
                              "line": 255,
                              "column": 52
                            },
                            "identifierName": "mergedEntities"
                          },
                          "name": "mergedEntities"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "IfStatement",
                        "start": 10072,
                        "end": 10170,
                        "loc": {
                          "start": {
                            "line": 256,
                            "column": 12
                          },
                          "end": {
                            "line": 256,
                            "column": 110
                          }
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 10076,
                          "end": 10151,
                          "loc": {
                            "start": {
                              "line": 256,
                              "column": 16
                            },
                            "end": {
                              "line": 256,
                              "column": 91
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 10076,
                            "end": 10144,
                            "loc": {
                              "start": {
                                "line": 256,
                                "column": 16
                              },
                              "end": {
                                "line": 256,
                                "column": 84
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 10076,
                              "end": 10130,
                              "loc": {
                                "start": {
                                  "line": 256,
                                  "column": 16
                                },
                                "end": {
                                  "line": 256,
                                  "column": 70
                                }
                              },
                              "object": {
                                "type": "ArrayExpression",
                                "start": 10076,
                                "end": 10122,
                                "loc": {
                                  "start": {
                                    "line": 256,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 256,
                                    "column": 62
                                  }
                                },
                                "elements": [
                                  {
                                    "type": "StringLiteral",
                                    "start": 10077,
                                    "end": 10087,
                                    "loc": {
                                      "start": {
                                        "line": 256,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 256,
                                        "column": 27
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "CC_Point",
                                      "raw": "'CC_Point'"
                                    },
                                    "value": "CC_Point"
                                  },
                                  {
                                    "type": "StringLiteral",
                                    "start": 10089,
                                    "end": 10098,
                                    "loc": {
                                      "start": {
                                        "line": 256,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 256,
                                        "column": 38
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "CC_Line",
                                      "raw": "'CC_Line'"
                                    },
                                    "value": "CC_Line"
                                  },
                                  {
                                    "type": "StringLiteral",
                                    "start": 10100,
                                    "end": 10108,
                                    "loc": {
                                      "start": {
                                        "line": 256,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 256,
                                        "column": 48
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "CC_Arc",
                                      "raw": "'CC_Arc'"
                                    },
                                    "value": "CC_Arc"
                                  },
                                  {
                                    "type": "StringLiteral",
                                    "start": 10110,
                                    "end": 10121,
                                    "loc": {
                                      "start": {
                                        "line": 256,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 256,
                                        "column": 61
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "CC_Circle",
                                      "raw": "'CC_Circle'"
                                    },
                                    "value": "CC_Circle"
                                  }
                                ]
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 10123,
                                "end": 10130,
                                "loc": {
                                  "start": {
                                    "line": 256,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 256,
                                    "column": 70
                                  },
                                  "identifierName": "indexOf"
                                },
                                "name": "indexOf"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 10131,
                                "end": 10143,
                                "loc": {
                                  "start": {
                                    "line": 256,
                                    "column": 71
                                  },
                                  "end": {
                                    "line": 256,
                                    "column": 83
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 10131,
                                  "end": 10137,
                                  "loc": {
                                    "start": {
                                      "line": 256,
                                      "column": 71
                                    },
                                    "end": {
                                      "line": 256,
                                      "column": 77
                                    },
                                    "identifierName": "entity"
                                  },
                                  "name": "entity"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 10138,
                                  "end": 10143,
                                  "loc": {
                                    "start": {
                                      "line": 256,
                                      "column": 78
                                    },
                                    "end": {
                                      "line": 256,
                                      "column": 83
                                    },
                                    "identifierName": "class"
                                  },
                                  "name": "class"
                                },
                                "computed": false
                              }
                            ]
                          },
                          "operator": "!==",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 10149,
                            "end": 10151,
                            "loc": {
                              "start": {
                                "line": 256,
                                "column": 89
                              },
                              "end": {
                                "line": 256,
                                "column": 91
                              }
                            },
                            "operator": "-",
                            "prefix": true,
                            "argument": {
                              "type": "NumericLiteral",
                              "start": 10150,
                              "end": 10151,
                              "loc": {
                                "start": {
                                  "line": 256,
                                  "column": 90
                                },
                                "end": {
                                  "line": 256,
                                  "column": 91
                                }
                              },
                              "extra": {
                                "rawValue": 1,
                                "raw": "1"
                              },
                              "value": 1
                            },
                            "extra": {
                              "parenthesizedArgument": false
                            }
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 10153,
                          "end": 10170,
                          "loc": {
                            "start": {
                              "line": 256,
                              "column": 93
                            },
                            "end": {
                              "line": 256,
                              "column": 110
                            }
                          },
                          "argument": {
                            "type": "MemberExpression",
                            "start": 10160,
                            "end": 10169,
                            "loc": {
                              "start": {
                                "line": 256,
                                "column": 100
                              },
                              "end": {
                                "line": 256,
                                "column": 109
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 10160,
                              "end": 10166,
                              "loc": {
                                "start": {
                                  "line": 256,
                                  "column": 100
                                },
                                "end": {
                                  "line": 256,
                                  "column": 106
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 10167,
                              "end": 10169,
                              "loc": {
                                "start": {
                                  "line": 256,
                                  "column": 107
                                },
                                "end": {
                                  "line": 256,
                                  "column": 109
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        },
                        "alternate": null
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 10180,
                      "end": 10213,
                      "loc": {
                        "start": {
                          "line": 258,
                          "column": 8
                        },
                        "end": {
                          "line": 258,
                          "column": 41
                        }
                      },
                      "argument": {
                        "type": "MemberExpression",
                        "start": 10187,
                        "end": 10212,
                        "loc": {
                          "start": {
                            "line": 258,
                            "column": 15
                          },
                          "end": {
                            "line": 258,
                            "column": 40
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 10187,
                          "end": 10209,
                          "loc": {
                            "start": {
                              "line": 258,
                              "column": 15
                            },
                            "end": {
                              "line": 258,
                              "column": 37
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 10187,
                            "end": 10206,
                            "loc": {
                              "start": {
                                "line": 258,
                                "column": 15
                              },
                              "end": {
                                "line": 258,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 10187,
                              "end": 10197,
                              "loc": {
                                "start": {
                                  "line": 258,
                                  "column": 15
                                },
                                "end": {
                                  "line": 258,
                                  "column": 25
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 10198,
                              "end": 10206,
                              "loc": {
                                "start": {
                                  "line": 258,
                                  "column": 26
                                },
                                "end": {
                                  "line": 258,
                                  "column": 34
                                },
                                "identifierName": "entities"
                              },
                              "name": "entities"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "NumericLiteral",
                            "start": 10207,
                            "end": 10208,
                            "loc": {
                              "start": {
                                "line": 258,
                                "column": 35
                              },
                              "end": {
                                "line": 258,
                                "column": 36
                              }
                            },
                            "extra": {
                              "rawValue": 0,
                              "raw": "0"
                            },
                            "value": 0
                          },
                          "computed": true
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 10210,
                          "end": 10212,
                          "loc": {
                            "start": {
                              "line": 258,
                              "column": 38
                            },
                            "end": {
                              "line": 258,
                              "column": 40
                            },
                            "identifierName": "id"
                          },
                          "name": "id"
                        },
                        "computed": false
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "leadingComments": [],
          "trailingComments": []
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
      "start": 555,
      "end": 628,
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "column": 81
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Reverse mapping from entities to constraints",
      "start": 675,
      "end": 722,
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 26,
          "column": 55
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " For each constraint, its based entity is stored (where icon is rendered)",
      "start": 767,
      "end": 842,
      "loc": {
        "start": {
          "line": 28,
          "column": 8
        },
        "end": {
          "line": 28,
          "column": 83
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " If set to true, constraints would be repositioned next frame",
      "start": 891,
      "end": 954,
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 71
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: we forbid hiding selected constraints",
      "start": 1320,
      "end": 1365,
      "loc": {
        "start": {
          "line": 45,
          "column": 8
        },
        "end": {
          "line": 45,
          "column": 53
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " this constraint could have had mergedEntity but it could have already been deleted",
      "start": 2279,
      "end": 2364,
      "loc": {
        "start": {
          "line": 67,
          "column": 12
        },
        "end": {
          "line": 67,
          "column": 97
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: must be called if constraint has changed",
      "start": 2921,
      "end": 2969,
      "loc": {
        "start": {
          "line": 82,
          "column": 4
        },
        "end": {
          "line": 82,
          "column": 52
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: must be called if entity of constraint has changed",
      "start": 3039,
      "end": 3097,
      "loc": {
        "start": {
          "line": 86,
          "column": 4
        },
        "end": {
          "line": 86,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " do nothing",
      "start": 3710,
      "end": 3723,
      "loc": {
        "start": {
          "line": 106,
          "column": 8
        },
        "end": {
          "line": 106,
          "column": 21
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "called when constraint visualizer mode changes + on init",
      "start": 3922,
      "end": 3980,
      "loc": {
        "start": {
          "line": 116,
          "column": 4
        },
        "end": {
          "line": 116,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: called before each frame is rendered",
      "start": 4160,
      "end": 4204,
      "loc": {
        "start": {
          "line": 124,
          "column": 4
        },
        "end": {
          "line": 124,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sets proper positions for all constraint graphics",
      "start": 4209,
      "end": 4260,
      "loc": {
        "start": {
          "line": 125,
          "column": 4
        },
        "end": {
          "line": 125,
          "column": 55
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "determine for each base entity the array of all constraints drawn near it",
      "start": 4419,
      "end": 4494,
      "loc": {
        "start": {
          "line": 131,
          "column": 8
        },
        "end": {
          "line": 131,
          "column": 83
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "create rectangle filled with constraints icons for each base entity",
      "start": 4948,
      "end": 5017,
      "loc": {
        "start": {
          "line": 143,
          "column": 8
        },
        "end": {
          "line": 143,
          "column": 77
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sort base entities (for stability)",
      "start": 5266,
      "end": 5302,
      "loc": {
        "start": {
          "line": 151,
          "column": 8
        },
        "end": {
          "line": 151,
          "column": 44
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "minimal distance between rectangles (in iconSize units)",
      "start": 5392,
      "end": 5449,
      "loc": {
        "start": {
          "line": 156,
          "column": 8
        },
        "end": {
          "line": 156,
          "column": 65
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "minimal vertical distance from key position to rectangle's center (in iconSize units)",
      "start": 5486,
      "end": 5573,
      "loc": {
        "start": {
          "line": 158,
          "column": 8
        },
        "end": {
          "line": 158,
          "column": 95
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "set positions for all entity lists (each one is rectangle)",
      "start": 5616,
      "end": 5676,
      "loc": {
        "start": {
          "line": 161,
          "column": 8
        },
        "end": {
          "line": 161,
          "column": 68
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "position of rectangle center, which is closest to key point",
      "start": 5785,
      "end": 5846,
      "loc": {
        "start": {
          "line": 165,
          "column": 12
        },
        "end": {
          "line": 165,
          "column": 73
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "try to put into the vertical slice:",
      "start": 6045,
      "end": 6082,
      "loc": {
        "start": {
          "line": 171,
          "column": 20
        },
        "end": {
          "line": 171,
          "column": 57
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "loop termination criterion",
      "start": 6201,
      "end": 6229,
      "loc": {
        "start": {
          "line": 173,
          "column": 20
        },
        "end": {
          "line": 173,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "try both direction for horizontal moving",
      "start": 6344,
      "end": 6386,
      "loc": {
        "start": {
          "line": 176,
          "column": 20
        },
        "end": {
          "line": 176,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "check if rectangles collide",
      "start": 6725,
      "end": 6754,
      "loc": {
        "start": {
          "line": 184,
          "column": 32
        },
        "end": {
          "line": 184,
          "column": 61
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "do minimal horizontal movement which avoids collision",
      "start": 7190,
      "end": 7245,
      "loc": {
        "start": {
          "line": 191,
          "column": 32
        },
        "end": {
          "line": 191,
          "column": 87
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: if something has moved, then we have to recheck everything for collisions",
      "start": 7671,
      "end": 7752,
      "loc": {
        "start": {
          "line": 198,
          "column": 28
        },
        "end": {
          "line": 198,
          "column": 109
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "early cutoff: if no horizontal movement happened",
      "start": 8124,
      "end": 8174,
      "loc": {
        "start": {
          "line": 207,
          "column": 24
        },
        "end": {
          "line": 207,
          "column": 74
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "place rectangle into found position (not changed later)",
      "start": 8307,
      "end": 8364,
      "loc": {
        "start": {
          "line": 212,
          "column": 12
        },
        "end": {
          "line": 212,
          "column": 69
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "set positions for all constraint icons",
      "start": 8451,
      "end": 8491,
      "loc": {
        "start": {
          "line": 216,
          "column": 8
        },
        "end": {
          "line": 216,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sort constraint lists (for stability)",
      "start": 8608,
      "end": 8647,
      "loc": {
        "start": {
          "line": 219,
          "column": 12
        },
        "end": {
          "line": 219,
          "column": 51
        }
      }
    }
  ],
  "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": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 288,
      "end": 296,
      "loc": {
        "start": {
          "line": 13,
          "column": 0
        },
        "end": {
          "line": 13,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniNorm2",
      "start": 297,
      "end": 305,
      "loc": {
        "start": {
          "line": 13,
          "column": 9
        },
        "end": {
          "line": 13,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 305,
      "end": 306,
      "loc": {
        "start": {
          "line": 13,
          "column": 17
        },
        "end": {
          "line": 13,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vec",
      "start": 306,
      "end": 309,
      "loc": {
        "start": {
          "line": 13,
          "column": 18
        },
        "end": {
          "line": 13,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 309,
      "end": 310,
      "loc": {
        "start": {
          "line": 13,
          "column": 21
        },
        "end": {
          "line": 13,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 311,
      "end": 312,
      "loc": {
        "start": {
          "line": 13,
          "column": 23
        },
        "end": {
          "line": 13,
          "column": 24
        }
      }
    },
    {
      "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": 317,
      "end": 323,
      "loc": {
        "start": {
          "line": 14,
          "column": 4
        },
        "end": {
          "line": 14,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Math",
      "start": 324,
      "end": 328,
      "loc": {
        "start": {
          "line": 14,
          "column": 11
        },
        "end": {
          "line": 14,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 328,
      "end": 329,
      "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": "max",
      "start": 329,
      "end": 332,
      "loc": {
        "start": {
          "line": 14,
          "column": 16
        },
        "end": {
          "line": 14,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 332,
      "end": 333,
      "loc": {
        "start": {
          "line": 14,
          "column": 19
        },
        "end": {
          "line": 14,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Math",
      "start": 333,
      "end": 337,
      "loc": {
        "start": {
          "line": 14,
          "column": 20
        },
        "end": {
          "line": 14,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 337,
      "end": 338,
      "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": "abs",
      "start": 338,
      "end": 341,
      "loc": {
        "start": {
          "line": 14,
          "column": 25
        },
        "end": {
          "line": 14,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 341,
      "end": 342,
      "loc": {
        "start": {
          "line": 14,
          "column": 28
        },
        "end": {
          "line": 14,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vec",
      "start": 342,
      "end": 345,
      "loc": {
        "start": {
          "line": 14,
          "column": 29
        },
        "end": {
          "line": 14,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 345,
      "end": 346,
      "loc": {
        "start": {
          "line": 14,
          "column": 32
        },
        "end": {
          "line": 14,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 346,
      "end": 347,
      "loc": {
        "start": {
          "line": 14,
          "column": 33
        },
        "end": {
          "line": 14,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 347,
      "end": 348,
      "loc": {
        "start": {
          "line": 14,
          "column": 34
        },
        "end": {
          "line": 14,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 348,
      "end": 349,
      "loc": {
        "start": {
          "line": 14,
          "column": 35
        },
        "end": {
          "line": 14,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Math",
      "start": 350,
      "end": 354,
      "loc": {
        "start": {
          "line": 14,
          "column": 37
        },
        "end": {
          "line": 14,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 354,
      "end": 355,
      "loc": {
        "start": {
          "line": 14,
          "column": 41
        },
        "end": {
          "line": 14,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "abs",
      "start": 355,
      "end": 358,
      "loc": {
        "start": {
          "line": 14,
          "column": 42
        },
        "end": {
          "line": 14,
          "column": 45
        }
      }
    },
    {
      "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": 45
        },
        "end": {
          "line": 14,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vec",
      "start": 359,
      "end": 362,
      "loc": {
        "start": {
          "line": 14,
          "column": 46
        },
        "end": {
          "line": 14,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 362,
      "end": 363,
      "loc": {
        "start": {
          "line": 14,
          "column": 49
        },
        "end": {
          "line": 14,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 363,
      "end": 364,
      "loc": {
        "start": {
          "line": 14,
          "column": 50
        },
        "end": {
          "line": 14,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 364,
      "end": 365,
      "loc": {
        "start": {
          "line": 14,
          "column": 51
        },
        "end": {
          "line": 14,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 365,
      "end": 366,
      "loc": {
        "start": {
          "line": 14,
          "column": 52
        },
        "end": {
          "line": 14,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 366,
      "end": 367,
      "loc": {
        "start": {
          "line": 14,
          "column": 53
        },
        "end": {
          "line": 14,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 368,
      "end": 369,
      "loc": {
        "start": {
          "line": 15,
          "column": 0
        },
        "end": {
          "line": 15,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 370,
      "end": 378,
      "loc": {
        "start": {
          "line": 16,
          "column": 0
        },
        "end": {
          "line": 16,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sqr",
      "start": 379,
      "end": 382,
      "loc": {
        "start": {
          "line": 16,
          "column": 9
        },
        "end": {
          "line": 16,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 382,
      "end": 383,
      "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": "x",
      "start": 383,
      "end": 384,
      "loc": {
        "start": {
          "line": 16,
          "column": 13
        },
        "end": {
          "line": 16,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 384,
      "end": 385,
      "loc": {
        "start": {
          "line": 16,
          "column": 14
        },
        "end": {
          "line": 16,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 386,
      "end": 387,
      "loc": {
        "start": {
          "line": 16,
          "column": 16
        },
        "end": {
          "line": 16,
          "column": 17
        }
      }
    },
    {
      "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": 392,
      "end": 398,
      "loc": {
        "start": {
          "line": 17,
          "column": 4
        },
        "end": {
          "line": 17,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 399,
      "end": 400,
      "loc": {
        "start": {
          "line": 17,
          "column": 11
        },
        "end": {
          "line": 17,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 401,
      "end": 402,
      "loc": {
        "start": {
          "line": 17,
          "column": 13
        },
        "end": {
          "line": 17,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 403,
      "end": 404,
      "loc": {
        "start": {
          "line": 17,
          "column": 15
        },
        "end": {
          "line": 17,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 404,
      "end": 405,
      "loc": {
        "start": {
          "line": 17,
          "column": 16
        },
        "end": {
          "line": 17,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 406,
      "end": 407,
      "loc": {
        "start": {
          "line": 18,
          "column": 0
        },
        "end": {
          "line": 18,
          "column": 1
        }
      }
    },
    {
      "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": 409,
      "end": 415,
      "loc": {
        "start": {
          "line": 20,
          "column": 0
        },
        "end": {
          "line": 20,
          "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": 416,
      "end": 423,
      "loc": {
        "start": {
          "line": 20,
          "column": 7
        },
        "end": {
          "line": 20,
          "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": 424,
      "end": 429,
      "loc": {
        "start": {
          "line": 20,
          "column": 15
        },
        "end": {
          "line": 20,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Visualizer",
      "start": 430,
      "end": 440,
      "loc": {
        "start": {
          "line": 20,
          "column": 21
        },
        "end": {
          "line": 20,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 441,
      "end": 442,
      "loc": {
        "start": {
          "line": 20,
          "column": 32
        },
        "end": {
          "line": 20,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 447,
      "end": 458,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 458,
      "end": 459,
      "loc": {
        "start": {
          "line": 21,
          "column": 15
        },
        "end": {
          "line": 21,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 459,
      "end": 467,
      "loc": {
        "start": {
          "line": 21,
          "column": 16
        },
        "end": {
          "line": 21,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 467,
      "end": 468,
      "loc": {
        "start": {
          "line": 21,
          "column": 24
        },
        "end": {
          "line": 21,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "textures",
      "start": 469,
      "end": 477,
      "loc": {
        "start": {
          "line": 21,
          "column": 26
        },
        "end": {
          "line": 21,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 477,
      "end": 478,
      "loc": {
        "start": {
          "line": 21,
          "column": 34
        },
        "end": {
          "line": 21,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 479,
      "end": 480,
      "loc": {
        "start": {
          "line": 21,
          "column": 36
        },
        "end": {
          "line": 21,
          "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": 489,
      "end": 493,
      "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": 493,
      "end": 494,
      "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": "mode",
      "start": 494,
      "end": 498,
      "loc": {
        "start": {
          "line": 22,
          "column": 13
        },
        "end": {
          "line": 22,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 499,
      "end": 500,
      "loc": {
        "start": {
          "line": 22,
          "column": 18
        },
        "end": {
          "line": 22,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 501,
      "end": 505,
      "loc": {
        "start": {
          "line": 22,
          "column": 20
        },
        "end": {
          "line": 22,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 505,
      "end": 506,
      "loc": {
        "start": {
          "line": 22,
          "column": 24
        },
        "end": {
          "line": 22,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 506,
      "end": 511,
      "loc": {
        "start": {
          "line": 22,
          "column": 25
        },
        "end": {
          "line": 22,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 511,
      "end": 512,
      "loc": {
        "start": {
          "line": 22,
          "column": 30
        },
        "end": {
          "line": 22,
          "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": 521,
      "end": 525,
      "loc": {
        "start": {
          "line": 23,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 525,
      "end": 526,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 526,
      "end": 534,
      "loc": {
        "start": {
          "line": 23,
          "column": 13
        },
        "end": {
          "line": 23,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 535,
      "end": 536,
      "loc": {
        "start": {
          "line": 23,
          "column": 22
        },
        "end": {
          "line": 23,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 537,
      "end": 545,
      "loc": {
        "start": {
          "line": 23,
          "column": 24
        },
        "end": {
          "line": 23,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 545,
      "end": 546,
      "loc": {
        "start": {
          "line": 23,
          "column": 32
        },
        "end": {
          "line": 23,
          "column": 33
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
      "start": 555,
      "end": 628,
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "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": 637,
      "end": 641,
      "loc": {
        "start": {
          "line": 25,
          "column": 8
        },
        "end": {
          "line": 25,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 641,
      "end": 642,
      "loc": {
        "start": {
          "line": 25,
          "column": 12
        },
        "end": {
          "line": 25,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 642,
      "end": 653,
      "loc": {
        "start": {
          "line": 25,
          "column": 13
        },
        "end": {
          "line": 25,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 654,
      "end": 655,
      "loc": {
        "start": {
          "line": 25,
          "column": 25
        },
        "end": {
          "line": 25,
          "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": 656,
      "end": 659,
      "loc": {
        "start": {
          "line": 25,
          "column": 27
        },
        "end": {
          "line": 25,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 660,
      "end": 663,
      "loc": {
        "start": {
          "line": 25,
          "column": 31
        },
        "end": {
          "line": 25,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 663,
      "end": 664,
      "loc": {
        "start": {
          "line": 25,
          "column": 34
        },
        "end": {
          "line": 25,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 664,
      "end": 665,
      "loc": {
        "start": {
          "line": 25,
          "column": 35
        },
        "end": {
          "line": 25,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 665,
      "end": 666,
      "loc": {
        "start": {
          "line": 25,
          "column": 36
        },
        "end": {
          "line": 25,
          "column": 37
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Reverse mapping from entities to constraints",
      "start": 675,
      "end": 722,
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 26,
          "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": 731,
      "end": 735,
      "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": 735,
      "end": 736,
      "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": "entityFor",
      "start": 736,
      "end": 745,
      "loc": {
        "start": {
          "line": 27,
          "column": 13
        },
        "end": {
          "line": 27,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 746,
      "end": 747,
      "loc": {
        "start": {
          "line": 27,
          "column": 23
        },
        "end": {
          "line": 27,
          "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": 748,
      "end": 751,
      "loc": {
        "start": {
          "line": 27,
          "column": 25
        },
        "end": {
          "line": 27,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 752,
      "end": 755,
      "loc": {
        "start": {
          "line": 27,
          "column": 29
        },
        "end": {
          "line": 27,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 755,
      "end": 756,
      "loc": {
        "start": {
          "line": 27,
          "column": 32
        },
        "end": {
          "line": 27,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 756,
      "end": 757,
      "loc": {
        "start": {
          "line": 27,
          "column": 33
        },
        "end": {
          "line": 27,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 757,
      "end": 758,
      "loc": {
        "start": {
          "line": 27,
          "column": 34
        },
        "end": {
          "line": 27,
          "column": 35
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " For each constraint, its based entity is stored (where icon is rendered)",
      "start": 767,
      "end": 842,
      "loc": {
        "start": {
          "line": 28,
          "column": 8
        },
        "end": {
          "line": 28,
          "column": 83
        }
      }
    },
    {
      "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": 851,
      "end": 855,
      "loc": {
        "start": {
          "line": 29,
          "column": 8
        },
        "end": {
          "line": 29,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 855,
      "end": 856,
      "loc": {
        "start": {
          "line": 29,
          "column": 12
        },
        "end": {
          "line": 29,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseEntityFor",
      "start": 856,
      "end": 869,
      "loc": {
        "start": {
          "line": 29,
          "column": 13
        },
        "end": {
          "line": 29,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 870,
      "end": 871,
      "loc": {
        "start": {
          "line": 29,
          "column": 27
        },
        "end": {
          "line": 29,
          "column": 28
        }
      }
    },
    {
      "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": 872,
      "end": 875,
      "loc": {
        "start": {
          "line": 29,
          "column": 29
        },
        "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": "Map",
      "start": 876,
      "end": 879,
      "loc": {
        "start": {
          "line": 29,
          "column": 33
        },
        "end": {
          "line": 29,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 879,
      "end": 880,
      "loc": {
        "start": {
          "line": 29,
          "column": 36
        },
        "end": {
          "line": 29,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 880,
      "end": 881,
      "loc": {
        "start": {
          "line": 29,
          "column": 37
        },
        "end": {
          "line": 29,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 881,
      "end": 882,
      "loc": {
        "start": {
          "line": 29,
          "column": 38
        },
        "end": {
          "line": 29,
          "column": 39
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " If set to true, constraints would be repositioned next frame",
      "start": 891,
      "end": 954,
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 71
        }
      }
    },
    {
      "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": 963,
      "end": 967,
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 967,
      "end": 968,
      "loc": {
        "start": {
          "line": 31,
          "column": 12
        },
        "end": {
          "line": 31,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphicsDirty",
      "start": 968,
      "end": 981,
      "loc": {
        "start": {
          "line": 31,
          "column": 13
        },
        "end": {
          "line": 31,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 982,
      "end": 983,
      "loc": {
        "start": {
          "line": 31,
          "column": 27
        },
        "end": {
          "line": 31,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 984,
      "end": 989,
      "loc": {
        "start": {
          "line": 31,
          "column": 29
        },
        "end": {
          "line": 31,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 989,
      "end": 990,
      "loc": {
        "start": {
          "line": 31,
          "column": 34
        },
        "end": {
          "line": 31,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 995,
      "end": 996,
      "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": "refresh",
      "start": 1002,
      "end": 1009,
      "loc": {
        "start": {
          "line": 34,
          "column": 4
        },
        "end": {
          "line": 34,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1009,
      "end": 1010,
      "loc": {
        "start": {
          "line": 34,
          "column": 11
        },
        "end": {
          "line": 34,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1010,
      "end": 1011,
      "loc": {
        "start": {
          "line": 34,
          "column": 12
        },
        "end": {
          "line": 34,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1012,
      "end": 1013,
      "loc": {
        "start": {
          "line": 34,
          "column": 14
        },
        "end": {
          "line": 34,
          "column": 15
        }
      }
    },
    {
      "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": 1022,
      "end": 1026,
      "loc": {
        "start": {
          "line": 35,
          "column": 8
        },
        "end": {
          "line": 35,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1026,
      "end": 1027,
      "loc": {
        "start": {
          "line": 35,
          "column": 12
        },
        "end": {
          "line": 35,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphicsDirty",
      "start": 1027,
      "end": 1040,
      "loc": {
        "start": {
          "line": 35,
          "column": 13
        },
        "end": {
          "line": 35,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1041,
      "end": 1042,
      "loc": {
        "start": {
          "line": 35,
          "column": 27
        },
        "end": {
          "line": 35,
          "column": 28
        }
      }
    },
    {
      "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": 1043,
      "end": 1047,
      "loc": {
        "start": {
          "line": 35,
          "column": 29
        },
        "end": {
          "line": 35,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1047,
      "end": 1048,
      "loc": {
        "start": {
          "line": 35,
          "column": 33
        },
        "end": {
          "line": 35,
          "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": 1057,
      "end": 1061,
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1061,
      "end": 1062,
      "loc": {
        "start": {
          "line": 36,
          "column": 12
        },
        "end": {
          "line": 36,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 1062,
      "end": 1070,
      "loc": {
        "start": {
          "line": 36,
          "column": 13
        },
        "end": {
          "line": 36,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1070,
      "end": 1071,
      "loc": {
        "start": {
          "line": 36,
          "column": 21
        },
        "end": {
          "line": 36,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 1071,
      "end": 1078,
      "loc": {
        "start": {
          "line": 36,
          "column": 22
        },
        "end": {
          "line": 36,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1078,
      "end": 1079,
      "loc": {
        "start": {
          "line": 36,
          "column": 29
        },
        "end": {
          "line": 36,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1079,
      "end": 1080,
      "loc": {
        "start": {
          "line": 36,
          "column": 30
        },
        "end": {
          "line": 36,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1080,
      "end": 1081,
      "loc": {
        "start": {
          "line": 36,
          "column": 31
        },
        "end": {
          "line": 36,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1086,
      "end": 1087,
      "loc": {
        "start": {
          "line": 37,
          "column": 4
        },
        "end": {
          "line": 37,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isSelected",
      "start": 1093,
      "end": 1103,
      "loc": {
        "start": {
          "line": 39,
          "column": 4
        },
        "end": {
          "line": 39,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1103,
      "end": 1104,
      "loc": {
        "start": {
          "line": 39,
          "column": 14
        },
        "end": {
          "line": 39,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1104,
      "end": 1106,
      "loc": {
        "start": {
          "line": 39,
          "column": 15
        },
        "end": {
          "line": 39,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1106,
      "end": 1107,
      "loc": {
        "start": {
          "line": 39,
          "column": 17
        },
        "end": {
          "line": 39,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1108,
      "end": 1109,
      "loc": {
        "start": {
          "line": 39,
          "column": 19
        },
        "end": {
          "line": 39,
          "column": 20
        }
      }
    },
    {
      "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": 1118,
      "end": 1124,
      "loc": {
        "start": {
          "line": 40,
          "column": 8
        },
        "end": {
          "line": 40,
          "column": 14
        }
      }
    },
    {
      "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": 1125,
      "end": 1129,
      "loc": {
        "start": {
          "line": 40,
          "column": 15
        },
        "end": {
          "line": 40,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1129,
      "end": 1130,
      "loc": {
        "start": {
          "line": 40,
          "column": 19
        },
        "end": {
          "line": 40,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 1130,
      "end": 1138,
      "loc": {
        "start": {
          "line": 40,
          "column": 20
        },
        "end": {
          "line": 40,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1138,
      "end": 1139,
      "loc": {
        "start": {
          "line": 40,
          "column": 28
        },
        "end": {
          "line": 40,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "selector",
      "start": 1139,
      "end": 1147,
      "loc": {
        "start": {
          "line": 40,
          "column": 29
        },
        "end": {
          "line": 40,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1147,
      "end": 1148,
      "loc": {
        "start": {
          "line": 40,
          "column": 37
        },
        "end": {
          "line": 40,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getSelectedIds",
      "start": 1148,
      "end": 1162,
      "loc": {
        "start": {
          "line": 40,
          "column": 38
        },
        "end": {
          "line": 40,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1162,
      "end": 1163,
      "loc": {
        "start": {
          "line": 40,
          "column": 52
        },
        "end": {
          "line": 40,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1163,
      "end": 1164,
      "loc": {
        "start": {
          "line": 40,
          "column": 53
        },
        "end": {
          "line": 40,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1164,
      "end": 1165,
      "loc": {
        "start": {
          "line": 40,
          "column": 54
        },
        "end": {
          "line": 40,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "indexOf",
      "start": 1165,
      "end": 1172,
      "loc": {
        "start": {
          "line": 40,
          "column": 55
        },
        "end": {
          "line": 40,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1172,
      "end": 1173,
      "loc": {
        "start": {
          "line": 40,
          "column": 62
        },
        "end": {
          "line": 40,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1173,
      "end": 1175,
      "loc": {
        "start": {
          "line": 40,
          "column": 63
        },
        "end": {
          "line": 40,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1175,
      "end": 1176,
      "loc": {
        "start": {
          "line": 40,
          "column": 65
        },
        "end": {
          "line": 40,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 1177,
      "end": 1180,
      "loc": {
        "start": {
          "line": 40,
          "column": 67
        },
        "end": {
          "line": 40,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 1181,
      "end": 1182,
      "loc": {
        "start": {
          "line": 40,
          "column": 71
        },
        "end": {
          "line": 40,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 1182,
      "end": 1183,
      "loc": {
        "start": {
          "line": 40,
          "column": 72
        },
        "end": {
          "line": 40,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1183,
      "end": 1184,
      "loc": {
        "start": {
          "line": 40,
          "column": 73
        },
        "end": {
          "line": 40,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1189,
      "end": 1190,
      "loc": {
        "start": {
          "line": 41,
          "column": 4
        },
        "end": {
          "line": 41,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setVisibility",
      "start": 1196,
      "end": 1209,
      "loc": {
        "start": {
          "line": 43,
          "column": 4
        },
        "end": {
          "line": 43,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1209,
      "end": 1210,
      "loc": {
        "start": {
          "line": 43,
          "column": 17
        },
        "end": {
          "line": 43,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1210,
      "end": 1212,
      "loc": {
        "start": {
          "line": 43,
          "column": 18
        },
        "end": {
          "line": 43,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1212,
      "end": 1213,
      "loc": {
        "start": {
          "line": 43,
          "column": 20
        },
        "end": {
          "line": 43,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newValue",
      "start": 1214,
      "end": 1222,
      "loc": {
        "start": {
          "line": 43,
          "column": 22
        },
        "end": {
          "line": 43,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1223,
      "end": 1224,
      "loc": {
        "start": {
          "line": 43,
          "column": 31
        },
        "end": {
          "line": 43,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 1225,
      "end": 1234,
      "loc": {
        "start": {
          "line": 43,
          "column": 33
        },
        "end": {
          "line": 43,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1234,
      "end": 1235,
      "loc": {
        "start": {
          "line": 43,
          "column": 42
        },
        "end": {
          "line": 43,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1236,
      "end": 1237,
      "loc": {
        "start": {
          "line": 43,
          "column": 44
        },
        "end": {
          "line": 43,
          "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": 1246,
      "end": 1248,
      "loc": {
        "start": {
          "line": 44,
          "column": 8
        },
        "end": {
          "line": 44,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1249,
      "end": 1250,
      "loc": {
        "start": {
          "line": 44,
          "column": 11
        },
        "end": {
          "line": 44,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newValue",
      "start": 1250,
      "end": 1258,
      "loc": {
        "start": {
          "line": 44,
          "column": 12
        },
        "end": {
          "line": 44,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1259,
      "end": 1262,
      "loc": {
        "start": {
          "line": 44,
          "column": 21
        },
        "end": {
          "line": 44,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 1263,
      "end": 1272,
      "loc": {
        "start": {
          "line": 44,
          "column": 25
        },
        "end": {
          "line": 44,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1272,
      "end": 1273,
      "loc": {
        "start": {
          "line": 44,
          "column": 34
        },
        "end": {
          "line": 44,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newValue",
      "start": 1274,
      "end": 1282,
      "loc": {
        "start": {
          "line": 44,
          "column": 36
        },
        "end": {
          "line": 44,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1283,
      "end": 1284,
      "loc": {
        "start": {
          "line": 44,
          "column": 45
        },
        "end": {
          "line": 44,
          "column": 46
        }
      }
    },
    {
      "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": 1285,
      "end": 1289,
      "loc": {
        "start": {
          "line": 44,
          "column": 47
        },
        "end": {
          "line": 44,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1289,
      "end": 1290,
      "loc": {
        "start": {
          "line": 44,
          "column": 51
        },
        "end": {
          "line": 44,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 1290,
      "end": 1294,
      "loc": {
        "start": {
          "line": 44,
          "column": 52
        },
        "end": {
          "line": 44,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1295,
      "end": 1298,
      "loc": {
        "start": {
          "line": 44,
          "column": 57
        },
        "end": {
          "line": 44,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 1299,
      "end": 1303,
      "loc": {
        "start": {
          "line": 44,
          "column": 61
        },
        "end": {
          "line": 44,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1303,
      "end": 1304,
      "loc": {
        "start": {
          "line": 44,
          "column": 65
        },
        "end": {
          "line": 44,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Always",
      "start": 1304,
      "end": 1310,
      "loc": {
        "start": {
          "line": 44,
          "column": 66
        },
        "end": {
          "line": 44,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1310,
      "end": 1311,
      "loc": {
        "start": {
          "line": 44,
          "column": 72
        },
        "end": {
          "line": 44,
          "column": 73
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: we forbid hiding selected constraints",
      "start": 1320,
      "end": 1365,
      "loc": {
        "start": {
          "line": 45,
          "column": 8
        },
        "end": {
          "line": 45,
          "column": 53
        }
      }
    },
    {
      "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": 1374,
      "end": 1376,
      "loc": {
        "start": {
          "line": 46,
          "column": 8
        },
        "end": {
          "line": 46,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1377,
      "end": 1378,
      "loc": {
        "start": {
          "line": 46,
          "column": 11
        },
        "end": {
          "line": 46,
          "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": 1378,
      "end": 1379,
      "loc": {
        "start": {
          "line": 46,
          "column": 12
        },
        "end": {
          "line": 46,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newValue",
      "start": 1379,
      "end": 1387,
      "loc": {
        "start": {
          "line": 46,
          "column": 13
        },
        "end": {
          "line": 46,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 1388,
      "end": 1390,
      "loc": {
        "start": {
          "line": 46,
          "column": 22
        },
        "end": {
          "line": 46,
          "column": 24
        }
      }
    },
    {
      "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": 1391,
      "end": 1395,
      "loc": {
        "start": {
          "line": 46,
          "column": 25
        },
        "end": {
          "line": 46,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1395,
      "end": 1396,
      "loc": {
        "start": {
          "line": 46,
          "column": 29
        },
        "end": {
          "line": 46,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isSelected",
      "start": 1396,
      "end": 1406,
      "loc": {
        "start": {
          "line": 46,
          "column": 30
        },
        "end": {
          "line": 46,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1406,
      "end": 1407,
      "loc": {
        "start": {
          "line": 46,
          "column": 40
        },
        "end": {
          "line": 46,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1407,
      "end": 1409,
      "loc": {
        "start": {
          "line": 46,
          "column": 41
        },
        "end": {
          "line": 46,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1409,
      "end": 1410,
      "loc": {
        "start": {
          "line": 46,
          "column": 43
        },
        "end": {
          "line": 46,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1410,
      "end": 1411,
      "loc": {
        "start": {
          "line": 46,
          "column": 44
        },
        "end": {
          "line": 46,
          "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": 1412,
      "end": 1418,
      "loc": {
        "start": {
          "line": 46,
          "column": 46
        },
        "end": {
          "line": 46,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1418,
      "end": 1419,
      "loc": {
        "start": {
          "line": 46,
          "column": 52
        },
        "end": {
          "line": 46,
          "column": 53
        }
      }
    },
    {
      "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": 1428,
      "end": 1431,
      "loc": {
        "start": {
          "line": 47,
          "column": 8
        },
        "end": {
          "line": 47,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 1432,
      "end": 1437,
      "loc": {
        "start": {
          "line": 47,
          "column": 12
        },
        "end": {
          "line": 47,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1437,
      "end": 1438,
      "loc": {
        "start": {
          "line": 47,
          "column": 17
        },
        "end": {
          "line": 47,
          "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": 1438,
      "end": 1442,
      "loc": {
        "start": {
          "line": 47,
          "column": 18
        },
        "end": {
          "line": 47,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1442,
      "end": 1443,
      "loc": {
        "start": {
          "line": 47,
          "column": 22
        },
        "end": {
          "line": 47,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 1443,
      "end": 1451,
      "loc": {
        "start": {
          "line": 47,
          "column": 23
        },
        "end": {
          "line": 47,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1451,
      "end": 1452,
      "loc": {
        "start": {
          "line": 47,
          "column": 31
        },
        "end": {
          "line": 47,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1453,
      "end": 1455,
      "loc": {
        "start": {
          "line": 47,
          "column": 33
        },
        "end": {
          "line": 47,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1455,
      "end": 1456,
      "loc": {
        "start": {
          "line": 47,
          "column": 35
        },
        "end": {
          "line": 47,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1456,
      "end": 1457,
      "loc": {
        "start": {
          "line": 47,
          "column": 36
        },
        "end": {
          "line": 47,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 1457,
      "end": 1465,
      "loc": {
        "start": {
          "line": 47,
          "column": 37
        },
        "end": {
          "line": 47,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1465,
      "end": 1466,
      "loc": {
        "start": {
          "line": 47,
          "column": 45
        },
        "end": {
          "line": 47,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 1466,
      "end": 1473,
      "loc": {
        "start": {
          "line": 47,
          "column": 46
        },
        "end": {
          "line": 47,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1474,
      "end": 1475,
      "loc": {
        "start": {
          "line": 47,
          "column": 54
        },
        "end": {
          "line": 47,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newValue",
      "start": 1476,
      "end": 1484,
      "loc": {
        "start": {
          "line": 47,
          "column": 56
        },
        "end": {
          "line": 47,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1484,
      "end": 1485,
      "loc": {
        "start": {
          "line": 47,
          "column": 64
        },
        "end": {
          "line": 47,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1490,
      "end": 1491,
      "loc": {
        "start": {
          "line": 48,
          "column": 4
        },
        "end": {
          "line": 48,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addConstraint",
      "start": 1497,
      "end": 1510,
      "loc": {
        "start": {
          "line": 50,
          "column": 4
        },
        "end": {
          "line": 50,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1510,
      "end": 1511,
      "loc": {
        "start": {
          "line": 50,
          "column": 17
        },
        "end": {
          "line": 50,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1511,
      "end": 1521,
      "loc": {
        "start": {
          "line": 50,
          "column": 18
        },
        "end": {
          "line": 50,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1521,
      "end": 1522,
      "loc": {
        "start": {
          "line": 50,
          "column": 28
        },
        "end": {
          "line": 50,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1523,
      "end": 1524,
      "loc": {
        "start": {
          "line": 50,
          "column": 30
        },
        "end": {
          "line": 50,
          "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": 1533,
      "end": 1535,
      "loc": {
        "start": {
          "line": 51,
          "column": 8
        },
        "end": {
          "line": 51,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1536,
      "end": 1537,
      "loc": {
        "start": {
          "line": 51,
          "column": 11
        },
        "end": {
          "line": 51,
          "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": 1537,
      "end": 1538,
      "loc": {
        "start": {
          "line": 51,
          "column": 12
        },
        "end": {
          "line": 51,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1538,
      "end": 1539,
      "loc": {
        "start": {
          "line": 51,
          "column": 13
        },
        "end": {
          "line": 51,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1539,
      "end": 1549,
      "loc": {
        "start": {
          "line": 51,
          "column": 14
        },
        "end": {
          "line": 51,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1549,
      "end": 1550,
      "loc": {
        "start": {
          "line": 51,
          "column": 24
        },
        "end": {
          "line": 51,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 1550,
      "end": 1558,
      "loc": {
        "start": {
          "line": 51,
          "column": 25
        },
        "end": {
          "line": 51,
          "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": 1559,
      "end": 1569,
      "loc": {
        "start": {
          "line": 51,
          "column": 34
        },
        "end": {
          "line": 51,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintGraphics",
      "start": 1570,
      "end": 1588,
      "loc": {
        "start": {
          "line": 51,
          "column": 45
        },
        "end": {
          "line": 51,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1588,
      "end": 1589,
      "loc": {
        "start": {
          "line": 51,
          "column": 63
        },
        "end": {
          "line": 51,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1589,
      "end": 1590,
      "loc": {
        "start": {
          "line": 51,
          "column": 64
        },
        "end": {
          "line": 51,
          "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": 1591,
      "end": 1597,
      "loc": {
        "start": {
          "line": 51,
          "column": 66
        },
        "end": {
          "line": 51,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1597,
      "end": 1598,
      "loc": {
        "start": {
          "line": 51,
          "column": 72
        },
        "end": {
          "line": 51,
          "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": 1607,
      "end": 1611,
      "loc": {
        "start": {
          "line": 52,
          "column": 8
        },
        "end": {
          "line": 52,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1611,
      "end": 1612,
      "loc": {
        "start": {
          "line": 52,
          "column": 12
        },
        "end": {
          "line": 52,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1612,
      "end": 1623,
      "loc": {
        "start": {
          "line": 52,
          "column": 13
        },
        "end": {
          "line": 52,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1623,
      "end": 1624,
      "loc": {
        "start": {
          "line": 52,
          "column": 24
        },
        "end": {
          "line": 52,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 1624,
      "end": 1627,
      "loc": {
        "start": {
          "line": 52,
          "column": 25
        },
        "end": {
          "line": 52,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1627,
      "end": 1628,
      "loc": {
        "start": {
          "line": 52,
          "column": 28
        },
        "end": {
          "line": 52,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1628,
      "end": 1638,
      "loc": {
        "start": {
          "line": 52,
          "column": 29
        },
        "end": {
          "line": 52,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1638,
      "end": 1639,
      "loc": {
        "start": {
          "line": 52,
          "column": 39
        },
        "end": {
          "line": 52,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1639,
      "end": 1641,
      "loc": {
        "start": {
          "line": 52,
          "column": 40
        },
        "end": {
          "line": 52,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1641,
      "end": 1642,
      "loc": {
        "start": {
          "line": 52,
          "column": 42
        },
        "end": {
          "line": 52,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1642,
      "end": 1643,
      "loc": {
        "start": {
          "line": 52,
          "column": 43
        },
        "end": {
          "line": 52,
          "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": 1652,
      "end": 1656,
      "loc": {
        "start": {
          "line": 53,
          "column": 8
        },
        "end": {
          "line": 53,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1656,
      "end": 1657,
      "loc": {
        "start": {
          "line": 53,
          "column": 12
        },
        "end": {
          "line": 53,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseEntityFor",
      "start": 1657,
      "end": 1670,
      "loc": {
        "start": {
          "line": 53,
          "column": 13
        },
        "end": {
          "line": 53,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1670,
      "end": 1671,
      "loc": {
        "start": {
          "line": 53,
          "column": 26
        },
        "end": {
          "line": 53,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 1671,
      "end": 1674,
      "loc": {
        "start": {
          "line": 53,
          "column": 27
        },
        "end": {
          "line": 53,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1674,
      "end": 1675,
      "loc": {
        "start": {
          "line": 53,
          "column": 30
        },
        "end": {
          "line": 53,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1675,
      "end": 1685,
      "loc": {
        "start": {
          "line": 53,
          "column": 31
        },
        "end": {
          "line": 53,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1685,
      "end": 1686,
      "loc": {
        "start": {
          "line": 53,
          "column": 41
        },
        "end": {
          "line": 53,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1686,
      "end": 1688,
      "loc": {
        "start": {
          "line": 53,
          "column": 42
        },
        "end": {
          "line": 53,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1688,
      "end": 1689,
      "loc": {
        "start": {
          "line": 53,
          "column": 44
        },
        "end": {
          "line": 53,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 1690,
      "end": 1699,
      "loc": {
        "start": {
          "line": 53,
          "column": 46
        },
        "end": {
          "line": 53,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1699,
      "end": 1700,
      "loc": {
        "start": {
          "line": 53,
          "column": 55
        },
        "end": {
          "line": 53,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1700,
      "end": 1701,
      "loc": {
        "start": {
          "line": 53,
          "column": 56
        },
        "end": {
          "line": 53,
          "column": 57
        }
      }
    },
    {
      "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": 1710,
      "end": 1713,
      "loc": {
        "start": {
          "line": 54,
          "column": 8
        },
        "end": {
          "line": 54,
          "column": 11
        }
      }
    },
    {
      "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": 54,
          "column": 12
        },
        "end": {
          "line": 54,
          "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": 1715,
      "end": 1718,
      "loc": {
        "start": {
          "line": 54,
          "column": 13
        },
        "end": {
          "line": 54,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1719,
      "end": 1725,
      "loc": {
        "start": {
          "line": 54,
          "column": 17
        },
        "end": {
          "line": 54,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 1726,
      "end": 1728,
      "loc": {
        "start": {
          "line": 54,
          "column": 24
        },
        "end": {
          "line": 54,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1729,
      "end": 1739,
      "loc": {
        "start": {
          "line": 54,
          "column": 27
        },
        "end": {
          "line": 54,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1739,
      "end": 1740,
      "loc": {
        "start": {
          "line": 54,
          "column": 37
        },
        "end": {
          "line": 54,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mergedEntities",
      "start": 1740,
      "end": 1754,
      "loc": {
        "start": {
          "line": 54,
          "column": 38
        },
        "end": {
          "line": 54,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1754,
      "end": 1755,
      "loc": {
        "start": {
          "line": 54,
          "column": 52
        },
        "end": {
          "line": 54,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1756,
      "end": 1757,
      "loc": {
        "start": {
          "line": 54,
          "column": 54
        },
        "end": {
          "line": 54,
          "column": 55
        }
      }
    },
    {
      "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": 1770,
      "end": 1772,
      "loc": {
        "start": {
          "line": 55,
          "column": 12
        },
        "end": {
          "line": 55,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1773,
      "end": 1774,
      "loc": {
        "start": {
          "line": 55,
          "column": 15
        },
        "end": {
          "line": 55,
          "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": 1774,
      "end": 1775,
      "loc": {
        "start": {
          "line": 55,
          "column": 16
        },
        "end": {
          "line": 55,
          "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": 1775,
      "end": 1779,
      "loc": {
        "start": {
          "line": 55,
          "column": 17
        },
        "end": {
          "line": 55,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1779,
      "end": 1780,
      "loc": {
        "start": {
          "line": 55,
          "column": 21
        },
        "end": {
          "line": 55,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1780,
      "end": 1789,
      "loc": {
        "start": {
          "line": 55,
          "column": 22
        },
        "end": {
          "line": 55,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1789,
      "end": 1790,
      "loc": {
        "start": {
          "line": 55,
          "column": 31
        },
        "end": {
          "line": 55,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 1790,
      "end": 1793,
      "loc": {
        "start": {
          "line": 55,
          "column": 32
        },
        "end": {
          "line": 55,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1793,
      "end": 1794,
      "loc": {
        "start": {
          "line": 55,
          "column": 35
        },
        "end": {
          "line": 55,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1794,
      "end": 1800,
      "loc": {
        "start": {
          "line": 55,
          "column": 36
        },
        "end": {
          "line": 55,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1800,
      "end": 1801,
      "loc": {
        "start": {
          "line": 55,
          "column": 42
        },
        "end": {
          "line": 55,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1801,
      "end": 1803,
      "loc": {
        "start": {
          "line": 55,
          "column": 43
        },
        "end": {
          "line": 55,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1803,
      "end": 1804,
      "loc": {
        "start": {
          "line": 55,
          "column": 45
        },
        "end": {
          "line": 55,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1804,
      "end": 1805,
      "loc": {
        "start": {
          "line": 55,
          "column": 46
        },
        "end": {
          "line": 55,
          "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": 1806,
      "end": 1810,
      "loc": {
        "start": {
          "line": 55,
          "column": 48
        },
        "end": {
          "line": 55,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1810,
      "end": 1811,
      "loc": {
        "start": {
          "line": 55,
          "column": 52
        },
        "end": {
          "line": 55,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1811,
      "end": 1820,
      "loc": {
        "start": {
          "line": 55,
          "column": 53
        },
        "end": {
          "line": 55,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1820,
      "end": 1821,
      "loc": {
        "start": {
          "line": 55,
          "column": 62
        },
        "end": {
          "line": 55,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 1821,
      "end": 1824,
      "loc": {
        "start": {
          "line": 55,
          "column": 63
        },
        "end": {
          "line": 55,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1824,
      "end": 1825,
      "loc": {
        "start": {
          "line": 55,
          "column": 66
        },
        "end": {
          "line": 55,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1825,
      "end": 1831,
      "loc": {
        "start": {
          "line": 55,
          "column": 67
        },
        "end": {
          "line": 55,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1831,
      "end": 1832,
      "loc": {
        "start": {
          "line": 55,
          "column": 73
        },
        "end": {
          "line": 55,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1832,
      "end": 1834,
      "loc": {
        "start": {
          "line": 55,
          "column": 74
        },
        "end": {
          "line": 55,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1834,
      "end": 1835,
      "loc": {
        "start": {
          "line": 55,
          "column": 76
        },
        "end": {
          "line": 55,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1836,
      "end": 1837,
      "loc": {
        "start": {
          "line": 55,
          "column": 78
        },
        "end": {
          "line": 55,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1837,
      "end": 1838,
      "loc": {
        "start": {
          "line": 55,
          "column": 79
        },
        "end": {
          "line": 55,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1838,
      "end": 1839,
      "loc": {
        "start": {
          "line": 55,
          "column": 80
        },
        "end": {
          "line": 55,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1839,
      "end": 1840,
      "loc": {
        "start": {
          "line": 55,
          "column": 81
        },
        "end": {
          "line": 55,
          "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": 1853,
      "end": 1857,
      "loc": {
        "start": {
          "line": 56,
          "column": 12
        },
        "end": {
          "line": 56,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1857,
      "end": 1858,
      "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": "entityFor",
      "start": 1858,
      "end": 1867,
      "loc": {
        "start": {
          "line": 56,
          "column": 17
        },
        "end": {
          "line": 56,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1867,
      "end": 1868,
      "loc": {
        "start": {
          "line": 56,
          "column": 26
        },
        "end": {
          "line": 56,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1868,
      "end": 1871,
      "loc": {
        "start": {
          "line": 56,
          "column": 27
        },
        "end": {
          "line": 56,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1871,
      "end": 1872,
      "loc": {
        "start": {
          "line": 56,
          "column": 30
        },
        "end": {
          "line": 56,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1872,
      "end": 1878,
      "loc": {
        "start": {
          "line": 56,
          "column": 31
        },
        "end": {
          "line": 56,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1878,
      "end": 1879,
      "loc": {
        "start": {
          "line": 56,
          "column": 37
        },
        "end": {
          "line": 56,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1879,
      "end": 1881,
      "loc": {
        "start": {
          "line": 56,
          "column": 38
        },
        "end": {
          "line": 56,
          "column": 40
        }
      }
    },
    {
      "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": 56,
          "column": 40
        },
        "end": {
          "line": 56,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1882,
      "end": 1883,
      "loc": {
        "start": {
          "line": 56,
          "column": 41
        },
        "end": {
          "line": 56,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 1883,
      "end": 1887,
      "loc": {
        "start": {
          "line": 56,
          "column": 42
        },
        "end": {
          "line": 56,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1887,
      "end": 1888,
      "loc": {
        "start": {
          "line": 56,
          "column": 46
        },
        "end": {
          "line": 56,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1888,
      "end": 1898,
      "loc": {
        "start": {
          "line": 56,
          "column": 47
        },
        "end": {
          "line": 56,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1898,
      "end": 1899,
      "loc": {
        "start": {
          "line": 56,
          "column": 57
        },
        "end": {
          "line": 56,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1899,
      "end": 1901,
      "loc": {
        "start": {
          "line": 56,
          "column": 58
        },
        "end": {
          "line": 56,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1901,
      "end": 1902,
      "loc": {
        "start": {
          "line": 56,
          "column": 60
        },
        "end": {
          "line": 56,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1902,
      "end": 1903,
      "loc": {
        "start": {
          "line": 56,
          "column": 61
        },
        "end": {
          "line": 56,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1912,
      "end": 1913,
      "loc": {
        "start": {
          "line": 57,
          "column": 8
        },
        "end": {
          "line": 57,
          "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": 1922,
      "end": 1926,
      "loc": {
        "start": {
          "line": 58,
          "column": 8
        },
        "end": {
          "line": 58,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1926,
      "end": 1927,
      "loc": {
        "start": {
          "line": 58,
          "column": 12
        },
        "end": {
          "line": 58,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setVisibility",
      "start": 1927,
      "end": 1940,
      "loc": {
        "start": {
          "line": 58,
          "column": 13
        },
        "end": {
          "line": 58,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1940,
      "end": 1941,
      "loc": {
        "start": {
          "line": 58,
          "column": 26
        },
        "end": {
          "line": 58,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1941,
      "end": 1951,
      "loc": {
        "start": {
          "line": 58,
          "column": 27
        },
        "end": {
          "line": 58,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1951,
      "end": 1952,
      "loc": {
        "start": {
          "line": 58,
          "column": 37
        },
        "end": {
          "line": 58,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1952,
      "end": 1954,
      "loc": {
        "start": {
          "line": 58,
          "column": 38
        },
        "end": {
          "line": 58,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1954,
      "end": 1955,
      "loc": {
        "start": {
          "line": 58,
          "column": 40
        },
        "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": 1955,
      "end": 1956,
      "loc": {
        "start": {
          "line": 58,
          "column": 41
        },
        "end": {
          "line": 58,
          "column": 42
        }
      }
    },
    {
      "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": 1965,
      "end": 1969,
      "loc": {
        "start": {
          "line": 59,
          "column": 8
        },
        "end": {
          "line": 59,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1969,
      "end": 1970,
      "loc": {
        "start": {
          "line": 59,
          "column": 12
        },
        "end": {
          "line": 59,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 1970,
      "end": 1977,
      "loc": {
        "start": {
          "line": 59,
          "column": 13
        },
        "end": {
          "line": 59,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1977,
      "end": 1978,
      "loc": {
        "start": {
          "line": 59,
          "column": 20
        },
        "end": {
          "line": 59,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1978,
      "end": 1979,
      "loc": {
        "start": {
          "line": 59,
          "column": 21
        },
        "end": {
          "line": 59,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1979,
      "end": 1980,
      "loc": {
        "start": {
          "line": 59,
          "column": 22
        },
        "end": {
          "line": 59,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1985,
      "end": 1986,
      "loc": {
        "start": {
          "line": 60,
          "column": 4
        },
        "end": {
          "line": 60,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "removeConstraint",
      "start": 1992,
      "end": 2008,
      "loc": {
        "start": {
          "line": 62,
          "column": 4
        },
        "end": {
          "line": 62,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2008,
      "end": 2009,
      "loc": {
        "start": {
          "line": 62,
          "column": 20
        },
        "end": {
          "line": 62,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2009,
      "end": 2019,
      "loc": {
        "start": {
          "line": 62,
          "column": 21
        },
        "end": {
          "line": 62,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2019,
      "end": 2020,
      "loc": {
        "start": {
          "line": 62,
          "column": 31
        },
        "end": {
          "line": 62,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 2021,
      "end": 2026,
      "loc": {
        "start": {
          "line": 62,
          "column": 33
        },
        "end": {
          "line": 62,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2027,
      "end": 2028,
      "loc": {
        "start": {
          "line": 62,
          "column": 39
        },
        "end": {
          "line": 62,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2029,
      "end": 2039,
      "loc": {
        "start": {
          "line": 62,
          "column": 41
        },
        "end": {
          "line": 62,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2039,
      "end": 2040,
      "loc": {
        "start": {
          "line": 62,
          "column": 51
        },
        "end": {
          "line": 62,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 2040,
      "end": 2045,
      "loc": {
        "start": {
          "line": 62,
          "column": 52
        },
        "end": {
          "line": 62,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2045,
      "end": 2046,
      "loc": {
        "start": {
          "line": 62,
          "column": 57
        },
        "end": {
          "line": 62,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2047,
      "end": 2048,
      "loc": {
        "start": {
          "line": 62,
          "column": 59
        },
        "end": {
          "line": 62,
          "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": 2057,
      "end": 2059,
      "loc": {
        "start": {
          "line": 63,
          "column": 8
        },
        "end": {
          "line": 63,
          "column": 10
        }
      }
    },
    {
      "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": 63,
          "column": 11
        },
        "end": {
          "line": 63,
          "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": 2061,
      "end": 2062,
      "loc": {
        "start": {
          "line": 63,
          "column": 12
        },
        "end": {
          "line": 63,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2062,
      "end": 2063,
      "loc": {
        "start": {
          "line": 63,
          "column": 13
        },
        "end": {
          "line": 63,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2063,
      "end": 2073,
      "loc": {
        "start": {
          "line": 63,
          "column": 14
        },
        "end": {
          "line": 63,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2073,
      "end": 2074,
      "loc": {
        "start": {
          "line": 63,
          "column": 24
        },
        "end": {
          "line": 63,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 2074,
      "end": 2082,
      "loc": {
        "start": {
          "line": 63,
          "column": 25
        },
        "end": {
          "line": 63,
          "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": 2083,
      "end": 2093,
      "loc": {
        "start": {
          "line": 63,
          "column": 34
        },
        "end": {
          "line": 63,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintGraphics",
      "start": 2094,
      "end": 2112,
      "loc": {
        "start": {
          "line": 63,
          "column": 45
        },
        "end": {
          "line": 63,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2112,
      "end": 2113,
      "loc": {
        "start": {
          "line": 63,
          "column": 63
        },
        "end": {
          "line": 63,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2113,
      "end": 2114,
      "loc": {
        "start": {
          "line": 63,
          "column": 64
        },
        "end": {
          "line": 63,
          "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": 2115,
      "end": 2121,
      "loc": {
        "start": {
          "line": 63,
          "column": 66
        },
        "end": {
          "line": 63,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2121,
      "end": 2122,
      "loc": {
        "start": {
          "line": 63,
          "column": 72
        },
        "end": {
          "line": 63,
          "column": 73
        }
      }
    },
    {
      "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": 2131,
      "end": 2136,
      "loc": {
        "start": {
          "line": 64,
          "column": 8
        },
        "end": {
          "line": 64,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "possibleEntities",
      "start": 2137,
      "end": 2153,
      "loc": {
        "start": {
          "line": 64,
          "column": 14
        },
        "end": {
          "line": 64,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2154,
      "end": 2155,
      "loc": {
        "start": {
          "line": 64,
          "column": 31
        },
        "end": {
          "line": 64,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2156,
      "end": 2157,
      "loc": {
        "start": {
          "line": 64,
          "column": 33
        },
        "end": {
          "line": 64,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2157,
      "end": 2158,
      "loc": {
        "start": {
          "line": 64,
          "column": 34
        },
        "end": {
          "line": 64,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2158,
      "end": 2159,
      "loc": {
        "start": {
          "line": 64,
          "column": 35
        },
        "end": {
          "line": 64,
          "column": 36
        }
      }
    },
    {
      "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": 2168,
      "end": 2171,
      "loc": {
        "start": {
          "line": 65,
          "column": 8
        },
        "end": {
          "line": 65,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2172,
      "end": 2173,
      "loc": {
        "start": {
          "line": 65,
          "column": 12
        },
        "end": {
          "line": 65,
          "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": 2173,
      "end": 2176,
      "loc": {
        "start": {
          "line": 65,
          "column": 13
        },
        "end": {
          "line": 65,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2177,
      "end": 2178,
      "loc": {
        "start": {
          "line": 65,
          "column": 17
        },
        "end": {
          "line": 65,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 2179,
      "end": 2184,
      "loc": {
        "start": {
          "line": 65,
          "column": 19
        },
        "end": {
          "line": 65,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2184,
      "end": 2185,
      "loc": {
        "start": {
          "line": 65,
          "column": 24
        },
        "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": "id",
      "start": 2186,
      "end": 2188,
      "loc": {
        "start": {
          "line": 65,
          "column": 26
        },
        "end": {
          "line": 65,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2189,
      "end": 2190,
      "loc": {
        "start": {
          "line": 65,
          "column": 29
        },
        "end": {
          "line": 65,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 2191,
      "end": 2193,
      "loc": {
        "start": {
          "line": 65,
          "column": 31
        },
        "end": {
          "line": 65,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 2194,
      "end": 2199,
      "loc": {
        "start": {
          "line": 65,
          "column": 34
        },
        "end": {
          "line": 65,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2199,
      "end": 2200,
      "loc": {
        "start": {
          "line": 65,
          "column": 39
        },
        "end": {
          "line": 65,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 2200,
      "end": 2207,
      "loc": {
        "start": {
          "line": 65,
          "column": 40
        },
        "end": {
          "line": 65,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2207,
      "end": 2208,
      "loc": {
        "start": {
          "line": 65,
          "column": 47
        },
        "end": {
          "line": 65,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entities",
      "start": 2208,
      "end": 2216,
      "loc": {
        "start": {
          "line": 65,
          "column": 48
        },
        "end": {
          "line": 65,
          "column": 56
        }
      }
    },
    {
      "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": 65,
          "column": 56
        },
        "end": {
          "line": 65,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 2217,
      "end": 2224,
      "loc": {
        "start": {
          "line": 65,
          "column": 57
        },
        "end": {
          "line": 65,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2224,
      "end": 2225,
      "loc": {
        "start": {
          "line": 65,
          "column": 64
        },
        "end": {
          "line": 65,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2226,
      "end": 2227,
      "loc": {
        "start": {
          "line": 65,
          "column": 66
        },
        "end": {
          "line": 65,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "possibleEntities",
      "start": 2240,
      "end": 2256,
      "loc": {
        "start": {
          "line": 66,
          "column": 12
        },
        "end": {
          "line": 66,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2256,
      "end": 2257,
      "loc": {
        "start": {
          "line": 66,
          "column": 28
        },
        "end": {
          "line": 66,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 2257,
      "end": 2261,
      "loc": {
        "start": {
          "line": 66,
          "column": 29
        },
        "end": {
          "line": 66,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2261,
      "end": 2262,
      "loc": {
        "start": {
          "line": 66,
          "column": 33
        },
        "end": {
          "line": 66,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2262,
      "end": 2264,
      "loc": {
        "start": {
          "line": 66,
          "column": 34
        },
        "end": {
          "line": 66,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2264,
      "end": 2265,
      "loc": {
        "start": {
          "line": 66,
          "column": 36
        },
        "end": {
          "line": 66,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2265,
      "end": 2266,
      "loc": {
        "start": {
          "line": 66,
          "column": 37
        },
        "end": {
          "line": 66,
          "column": 38
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " this constraint could have had mergedEntity but it could have already been deleted",
      "start": 2279,
      "end": 2364,
      "loc": {
        "start": {
          "line": 67,
          "column": 12
        },
        "end": {
          "line": 67,
          "column": 97
        }
      }
    },
    {
      "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": 2377,
      "end": 2382,
      "loc": {
        "start": {
          "line": 68,
          "column": 12
        },
        "end": {
          "line": 68,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "estate",
      "start": 2383,
      "end": 2389,
      "loc": {
        "start": {
          "line": 68,
          "column": 18
        },
        "end": {
          "line": 68,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2390,
      "end": 2391,
      "loc": {
        "start": {
          "line": 68,
          "column": 25
        },
        "end": {
          "line": 68,
          "column": 26
        }
      }
    },
    {
      "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": 2392,
      "end": 2396,
      "loc": {
        "start": {
          "line": 68,
          "column": 27
        },
        "end": {
          "line": 68,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2396,
      "end": 2397,
      "loc": {
        "start": {
          "line": 68,
          "column": 31
        },
        "end": {
          "line": 68,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 2397,
      "end": 2405,
      "loc": {
        "start": {
          "line": 68,
          "column": 32
        },
        "end": {
          "line": 68,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2405,
      "end": 2406,
      "loc": {
        "start": {
          "line": 68,
          "column": 40
        },
        "end": {
          "line": 68,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 2406,
      "end": 2410,
      "loc": {
        "start": {
          "line": 68,
          "column": 41
        },
        "end": {
          "line": 68,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2410,
      "end": 2411,
      "loc": {
        "start": {
          "line": 68,
          "column": 45
        },
        "end": {
          "line": 68,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2411,
      "end": 2413,
      "loc": {
        "start": {
          "line": 68,
          "column": 46
        },
        "end": {
          "line": 68,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2413,
      "end": 2414,
      "loc": {
        "start": {
          "line": 68,
          "column": 48
        },
        "end": {
          "line": 68,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2414,
      "end": 2415,
      "loc": {
        "start": {
          "line": 68,
          "column": 49
        },
        "end": {
          "line": 68,
          "column": 50
        }
      }
    },
    {
      "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": 2428,
      "end": 2430,
      "loc": {
        "start": {
          "line": 69,
          "column": 12
        },
        "end": {
          "line": 69,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2431,
      "end": 2432,
      "loc": {
        "start": {
          "line": 69,
          "column": 15
        },
        "end": {
          "line": 69,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "estate",
      "start": 2432,
      "end": 2438,
      "loc": {
        "start": {
          "line": 69,
          "column": 16
        },
        "end": {
          "line": 69,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2438,
      "end": 2439,
      "loc": {
        "start": {
          "line": 69,
          "column": 22
        },
        "end": {
          "line": 69,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "possibleEntities",
      "start": 2440,
      "end": 2456,
      "loc": {
        "start": {
          "line": 69,
          "column": 24
        },
        "end": {
          "line": 69,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2456,
      "end": 2457,
      "loc": {
        "start": {
          "line": 69,
          "column": 40
        },
        "end": {
          "line": 69,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 2457,
      "end": 2461,
      "loc": {
        "start": {
          "line": 69,
          "column": 41
        },
        "end": {
          "line": 69,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2461,
      "end": 2462,
      "loc": {
        "start": {
          "line": 69,
          "column": 45
        },
        "end": {
          "line": 69,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "estate",
      "start": 2462,
      "end": 2468,
      "loc": {
        "start": {
          "line": 69,
          "column": 46
        },
        "end": {
          "line": 69,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2468,
      "end": 2469,
      "loc": {
        "start": {
          "line": 69,
          "column": 52
        },
        "end": {
          "line": 69,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 2469,
      "end": 2475,
      "loc": {
        "start": {
          "line": 69,
          "column": 53
        },
        "end": {
          "line": 69,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2475,
      "end": 2476,
      "loc": {
        "start": {
          "line": 69,
          "column": 59
        },
        "end": {
          "line": 69,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2476,
      "end": 2477,
      "loc": {
        "start": {
          "line": 69,
          "column": 60
        },
        "end": {
          "line": 69,
          "column": 61
        }
      }
    },
    {
      "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": 8
        },
        "end": {
          "line": 70,
          "column": 9
        }
      }
    },
    {
      "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": 2496,
      "end": 2499,
      "loc": {
        "start": {
          "line": 71,
          "column": 8
        },
        "end": {
          "line": 71,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2500,
      "end": 2501,
      "loc": {
        "start": {
          "line": 71,
          "column": 12
        },
        "end": {
          "line": 71,
          "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": 2501,
      "end": 2504,
      "loc": {
        "start": {
          "line": 71,
          "column": 13
        },
        "end": {
          "line": 71,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2505,
      "end": 2507,
      "loc": {
        "start": {
          "line": 71,
          "column": 17
        },
        "end": {
          "line": 71,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 2508,
      "end": 2510,
      "loc": {
        "start": {
          "line": 71,
          "column": 20
        },
        "end": {
          "line": 71,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "possibleEntities",
      "start": 2511,
      "end": 2527,
      "loc": {
        "start": {
          "line": 71,
          "column": 23
        },
        "end": {
          "line": 71,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2527,
      "end": 2528,
      "loc": {
        "start": {
          "line": 71,
          "column": 39
        },
        "end": {
          "line": 71,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2529,
      "end": 2530,
      "loc": {
        "start": {
          "line": 71,
          "column": 41
        },
        "end": {
          "line": 71,
          "column": 42
        }
      }
    },
    {
      "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": 2543,
      "end": 2548,
      "loc": {
        "start": {
          "line": 72,
          "column": 12
        },
        "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": "constraints",
      "start": 2549,
      "end": 2560,
      "loc": {
        "start": {
          "line": 72,
          "column": 18
        },
        "end": {
          "line": 72,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2561,
      "end": 2562,
      "loc": {
        "start": {
          "line": 72,
          "column": 30
        },
        "end": {
          "line": 72,
          "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": 2563,
      "end": 2567,
      "loc": {
        "start": {
          "line": 72,
          "column": 32
        },
        "end": {
          "line": 72,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2567,
      "end": 2568,
      "loc": {
        "start": {
          "line": 72,
          "column": 36
        },
        "end": {
          "line": 72,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 2568,
      "end": 2577,
      "loc": {
        "start": {
          "line": 72,
          "column": 37
        },
        "end": {
          "line": 72,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2577,
      "end": 2578,
      "loc": {
        "start": {
          "line": 72,
          "column": 46
        },
        "end": {
          "line": 72,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 2578,
      "end": 2581,
      "loc": {
        "start": {
          "line": 72,
          "column": 47
        },
        "end": {
          "line": 72,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2581,
      "end": 2582,
      "loc": {
        "start": {
          "line": 72,
          "column": 50
        },
        "end": {
          "line": 72,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2582,
      "end": 2584,
      "loc": {
        "start": {
          "line": 72,
          "column": 51
        },
        "end": {
          "line": 72,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2584,
      "end": 2585,
      "loc": {
        "start": {
          "line": 72,
          "column": 53
        },
        "end": {
          "line": 72,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 2586,
      "end": 2588,
      "loc": {
        "start": {
          "line": 72,
          "column": 55
        },
        "end": {
          "line": 72,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2589,
      "end": 2590,
      "loc": {
        "start": {
          "line": 72,
          "column": 58
        },
        "end": {
          "line": 72,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2590,
      "end": 2591,
      "loc": {
        "start": {
          "line": 72,
          "column": 59
        },
        "end": {
          "line": 72,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2591,
      "end": 2592,
      "loc": {
        "start": {
          "line": 72,
          "column": 60
        },
        "end": {
          "line": 72,
          "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": 2605,
      "end": 2610,
      "loc": {
        "start": {
          "line": 73,
          "column": 12
        },
        "end": {
          "line": 73,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idx",
      "start": 2611,
      "end": 2614,
      "loc": {
        "start": {
          "line": 73,
          "column": 18
        },
        "end": {
          "line": 73,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2615,
      "end": 2616,
      "loc": {
        "start": {
          "line": 73,
          "column": 22
        },
        "end": {
          "line": 73,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 2617,
      "end": 2628,
      "loc": {
        "start": {
          "line": 73,
          "column": 24
        },
        "end": {
          "line": 73,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2628,
      "end": 2629,
      "loc": {
        "start": {
          "line": 73,
          "column": 35
        },
        "end": {
          "line": 73,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "indexOf",
      "start": 2629,
      "end": 2636,
      "loc": {
        "start": {
          "line": 73,
          "column": 36
        },
        "end": {
          "line": 73,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2636,
      "end": 2637,
      "loc": {
        "start": {
          "line": 73,
          "column": 43
        },
        "end": {
          "line": 73,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2637,
      "end": 2647,
      "loc": {
        "start": {
          "line": 73,
          "column": 44
        },
        "end": {
          "line": 73,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2647,
      "end": 2648,
      "loc": {
        "start": {
          "line": 73,
          "column": 54
        },
        "end": {
          "line": 73,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2648,
      "end": 2650,
      "loc": {
        "start": {
          "line": 73,
          "column": 55
        },
        "end": {
          "line": 73,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2650,
      "end": 2651,
      "loc": {
        "start": {
          "line": 73,
          "column": 57
        },
        "end": {
          "line": 73,
          "column": 58
        }
      }
    },
    {
      "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": 73,
          "column": 58
        },
        "end": {
          "line": 73,
          "column": 59
        }
      }
    },
    {
      "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": 2665,
      "end": 2667,
      "loc": {
        "start": {
          "line": 74,
          "column": 12
        },
        "end": {
          "line": 74,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2668,
      "end": 2669,
      "loc": {
        "start": {
          "line": 74,
          "column": 15
        },
        "end": {
          "line": 74,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idx",
      "start": 2669,
      "end": 2672,
      "loc": {
        "start": {
          "line": 74,
          "column": 16
        },
        "end": {
          "line": 74,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2673,
      "end": 2676,
      "loc": {
        "start": {
          "line": 74,
          "column": 20
        },
        "end": {
          "line": 74,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 2677,
      "end": 2678,
      "loc": {
        "start": {
          "line": 74,
          "column": 24
        },
        "end": {
          "line": 74,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 2678,
      "end": 2679,
      "loc": {
        "start": {
          "line": 74,
          "column": 25
        },
        "end": {
          "line": 74,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2679,
      "end": 2680,
      "loc": {
        "start": {
          "line": 74,
          "column": 26
        },
        "end": {
          "line": 74,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 2681,
      "end": 2692,
      "loc": {
        "start": {
          "line": 74,
          "column": 28
        },
        "end": {
          "line": 74,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2692,
      "end": 2693,
      "loc": {
        "start": {
          "line": 74,
          "column": 39
        },
        "end": {
          "line": 74,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "splice",
      "start": 2693,
      "end": 2699,
      "loc": {
        "start": {
          "line": 74,
          "column": 40
        },
        "end": {
          "line": 74,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2699,
      "end": 2700,
      "loc": {
        "start": {
          "line": 74,
          "column": 46
        },
        "end": {
          "line": 74,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idx",
      "start": 2700,
      "end": 2703,
      "loc": {
        "start": {
          "line": 74,
          "column": 47
        },
        "end": {
          "line": 74,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2703,
      "end": 2704,
      "loc": {
        "start": {
          "line": 74,
          "column": 50
        },
        "end": {
          "line": 74,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 2705,
      "end": 2706,
      "loc": {
        "start": {
          "line": 74,
          "column": 52
        },
        "end": {
          "line": 74,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2706,
      "end": 2707,
      "loc": {
        "start": {
          "line": 74,
          "column": 53
        },
        "end": {
          "line": 74,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2707,
      "end": 2708,
      "loc": {
        "start": {
          "line": 74,
          "column": 54
        },
        "end": {
          "line": 74,
          "column": 55
        }
      }
    },
    {
      "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": 2721,
      "end": 2723,
      "loc": {
        "start": {
          "line": 75,
          "column": 12
        },
        "end": {
          "line": 75,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2724,
      "end": 2725,
      "loc": {
        "start": {
          "line": 75,
          "column": 15
        },
        "end": {
          "line": 75,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 2725,
      "end": 2736,
      "loc": {
        "start": {
          "line": 75,
          "column": 16
        },
        "end": {
          "line": 75,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2736,
      "end": 2737,
      "loc": {
        "start": {
          "line": 75,
          "column": 27
        },
        "end": {
          "line": 75,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 2737,
      "end": 2743,
      "loc": {
        "start": {
          "line": 75,
          "column": 28
        },
        "end": {
          "line": 75,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2744,
      "end": 2747,
      "loc": {
        "start": {
          "line": 75,
          "column": 35
        },
        "end": {
          "line": 75,
          "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": 2748,
      "end": 2749,
      "loc": {
        "start": {
          "line": 75,
          "column": 39
        },
        "end": {
          "line": 75,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2749,
      "end": 2750,
      "loc": {
        "start": {
          "line": 75,
          "column": 40
        },
        "end": {
          "line": 75,
          "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": 2751,
      "end": 2755,
      "loc": {
        "start": {
          "line": 75,
          "column": 42
        },
        "end": {
          "line": 75,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2755,
      "end": 2756,
      "loc": {
        "start": {
          "line": 75,
          "column": 46
        },
        "end": {
          "line": 75,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 2756,
      "end": 2765,
      "loc": {
        "start": {
          "line": 75,
          "column": 47
        },
        "end": {
          "line": 75,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2765,
      "end": 2766,
      "loc": {
        "start": {
          "line": 75,
          "column": 56
        },
        "end": {
          "line": 75,
          "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": 2766,
      "end": 2772,
      "loc": {
        "start": {
          "line": 75,
          "column": 57
        },
        "end": {
          "line": 75,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2772,
      "end": 2773,
      "loc": {
        "start": {
          "line": 75,
          "column": 63
        },
        "end": {
          "line": 75,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2773,
      "end": 2775,
      "loc": {
        "start": {
          "line": 75,
          "column": 64
        },
        "end": {
          "line": 75,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2775,
      "end": 2776,
      "loc": {
        "start": {
          "line": 75,
          "column": 66
        },
        "end": {
          "line": 75,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2776,
      "end": 2777,
      "loc": {
        "start": {
          "line": 75,
          "column": 67
        },
        "end": {
          "line": 75,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2786,
      "end": 2787,
      "loc": {
        "start": {
          "line": 76,
          "column": 8
        },
        "end": {
          "line": 76,
          "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": 2796,
      "end": 2800,
      "loc": {
        "start": {
          "line": 77,
          "column": 8
        },
        "end": {
          "line": 77,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2800,
      "end": 2801,
      "loc": {
        "start": {
          "line": 77,
          "column": 12
        },
        "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": "constraints",
      "start": 2801,
      "end": 2812,
      "loc": {
        "start": {
          "line": 77,
          "column": 13
        },
        "end": {
          "line": 77,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2812,
      "end": 2813,
      "loc": {
        "start": {
          "line": 77,
          "column": 24
        },
        "end": {
          "line": 77,
          "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": 2813,
      "end": 2819,
      "loc": {
        "start": {
          "line": 77,
          "column": 25
        },
        "end": {
          "line": 77,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2819,
      "end": 2820,
      "loc": {
        "start": {
          "line": 77,
          "column": 31
        },
        "end": {
          "line": 77,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2820,
      "end": 2830,
      "loc": {
        "start": {
          "line": 77,
          "column": 32
        },
        "end": {
          "line": 77,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2830,
      "end": 2831,
      "loc": {
        "start": {
          "line": 77,
          "column": 42
        },
        "end": {
          "line": 77,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2831,
      "end": 2833,
      "loc": {
        "start": {
          "line": 77,
          "column": 43
        },
        "end": {
          "line": 77,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2833,
      "end": 2834,
      "loc": {
        "start": {
          "line": 77,
          "column": 45
        },
        "end": {
          "line": 77,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2834,
      "end": 2835,
      "loc": {
        "start": {
          "line": 77,
          "column": 46
        },
        "end": {
          "line": 77,
          "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": 2844,
      "end": 2848,
      "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": 2848,
      "end": 2849,
      "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": "baseEntityFor",
      "start": 2849,
      "end": 2862,
      "loc": {
        "start": {
          "line": 78,
          "column": 13
        },
        "end": {
          "line": 78,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2862,
      "end": 2863,
      "loc": {
        "start": {
          "line": 78,
          "column": 26
        },
        "end": {
          "line": 78,
          "column": 27
        }
      }
    },
    {
      "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": 2863,
      "end": 2869,
      "loc": {
        "start": {
          "line": 78,
          "column": 27
        },
        "end": {
          "line": 78,
          "column": 33
        }
      }
    },
    {
      "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": 78,
          "column": 33
        },
        "end": {
          "line": 78,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2870,
      "end": 2880,
      "loc": {
        "start": {
          "line": 78,
          "column": 34
        },
        "end": {
          "line": 78,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2880,
      "end": 2881,
      "loc": {
        "start": {
          "line": 78,
          "column": 44
        },
        "end": {
          "line": 78,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2881,
      "end": 2883,
      "loc": {
        "start": {
          "line": 78,
          "column": 45
        },
        "end": {
          "line": 78,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2883,
      "end": 2884,
      "loc": {
        "start": {
          "line": 78,
          "column": 47
        },
        "end": {
          "line": 78,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2884,
      "end": 2885,
      "loc": {
        "start": {
          "line": 78,
          "column": 48
        },
        "end": {
          "line": 78,
          "column": 49
        }
      }
    },
    {
      "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": 2894,
      "end": 2898,
      "loc": {
        "start": {
          "line": 79,
          "column": 8
        },
        "end": {
          "line": 79,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2898,
      "end": 2899,
      "loc": {
        "start": {
          "line": 79,
          "column": 12
        },
        "end": {
          "line": 79,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 2899,
      "end": 2906,
      "loc": {
        "start": {
          "line": 79,
          "column": 13
        },
        "end": {
          "line": 79,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2906,
      "end": 2907,
      "loc": {
        "start": {
          "line": 79,
          "column": 20
        },
        "end": {
          "line": 79,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2907,
      "end": 2908,
      "loc": {
        "start": {
          "line": 79,
          "column": 21
        },
        "end": {
          "line": 79,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2908,
      "end": 2909,
      "loc": {
        "start": {
          "line": 79,
          "column": 22
        },
        "end": {
          "line": 79,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2914,
      "end": 2915,
      "loc": {
        "start": {
          "line": 80,
          "column": 4
        },
        "end": {
          "line": 80,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: must be called if constraint has changed",
      "start": 2921,
      "end": 2969,
      "loc": {
        "start": {
          "line": 82,
          "column": 4
        },
        "end": {
          "line": 82,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateConstraint",
      "start": 2974,
      "end": 2990,
      "loc": {
        "start": {
          "line": 83,
          "column": 4
        },
        "end": {
          "line": 83,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2990,
      "end": 2991,
      "loc": {
        "start": {
          "line": 83,
          "column": 20
        },
        "end": {
          "line": 83,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2991,
      "end": 3001,
      "loc": {
        "start": {
          "line": 83,
          "column": 21
        },
        "end": {
          "line": 83,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3001,
      "end": 3002,
      "loc": {
        "start": {
          "line": 83,
          "column": 31
        },
        "end": {
          "line": 83,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3003,
      "end": 3004,
      "loc": {
        "start": {
          "line": 83,
          "column": 33
        },
        "end": {
          "line": 83,
          "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": 3013,
      "end": 3017,
      "loc": {
        "start": {
          "line": 84,
          "column": 8
        },
        "end": {
          "line": 84,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3017,
      "end": 3018,
      "loc": {
        "start": {
          "line": 84,
          "column": 12
        },
        "end": {
          "line": 84,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 3018,
      "end": 3025,
      "loc": {
        "start": {
          "line": 84,
          "column": 13
        },
        "end": {
          "line": 84,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3025,
      "end": 3026,
      "loc": {
        "start": {
          "line": 84,
          "column": 20
        },
        "end": {
          "line": 84,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3026,
      "end": 3027,
      "loc": {
        "start": {
          "line": 84,
          "column": 21
        },
        "end": {
          "line": 84,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3027,
      "end": 3028,
      "loc": {
        "start": {
          "line": 84,
          "column": 22
        },
        "end": {
          "line": 84,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3033,
      "end": 3034,
      "loc": {
        "start": {
          "line": 85,
          "column": 4
        },
        "end": {
          "line": 85,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: must be called if entity of constraint has changed",
      "start": 3039,
      "end": 3097,
      "loc": {
        "start": {
          "line": 86,
          "column": 4
        },
        "end": {
          "line": 86,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateEntity",
      "start": 3102,
      "end": 3114,
      "loc": {
        "start": {
          "line": 87,
          "column": 4
        },
        "end": {
          "line": 87,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3114,
      "end": 3115,
      "loc": {
        "start": {
          "line": 87,
          "column": 16
        },
        "end": {
          "line": 87,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3115,
      "end": 3121,
      "loc": {
        "start": {
          "line": 87,
          "column": 17
        },
        "end": {
          "line": 87,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3121,
      "end": 3122,
      "loc": {
        "start": {
          "line": 87,
          "column": 23
        },
        "end": {
          "line": 87,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3123,
      "end": 3124,
      "loc": {
        "start": {
          "line": 87,
          "column": 25
        },
        "end": {
          "line": 87,
          "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": 3133,
      "end": 3135,
      "loc": {
        "start": {
          "line": 88,
          "column": 8
        },
        "end": {
          "line": 88,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3136,
      "end": 3137,
      "loc": {
        "start": {
          "line": 88,
          "column": 11
        },
        "end": {
          "line": 88,
          "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": 3137,
      "end": 3138,
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 13
        }
      }
    },
    {
      "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": 3138,
      "end": 3142,
      "loc": {
        "start": {
          "line": 88,
          "column": 13
        },
        "end": {
          "line": 88,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3142,
      "end": 3143,
      "loc": {
        "start": {
          "line": 88,
          "column": 17
        },
        "end": {
          "line": 88,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 3143,
      "end": 3152,
      "loc": {
        "start": {
          "line": 88,
          "column": 18
        },
        "end": {
          "line": 88,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3152,
      "end": 3153,
      "loc": {
        "start": {
          "line": 88,
          "column": 27
        },
        "end": {
          "line": 88,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 3153,
      "end": 3156,
      "loc": {
        "start": {
          "line": 88,
          "column": 28
        },
        "end": {
          "line": 88,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3156,
      "end": 3157,
      "loc": {
        "start": {
          "line": 88,
          "column": 31
        },
        "end": {
          "line": 88,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3157,
      "end": 3163,
      "loc": {
        "start": {
          "line": 88,
          "column": 32
        },
        "end": {
          "line": 88,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3163,
      "end": 3164,
      "loc": {
        "start": {
          "line": 88,
          "column": 38
        },
        "end": {
          "line": 88,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3164,
      "end": 3166,
      "loc": {
        "start": {
          "line": 88,
          "column": 39
        },
        "end": {
          "line": 88,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3166,
      "end": 3167,
      "loc": {
        "start": {
          "line": 88,
          "column": 41
        },
        "end": {
          "line": 88,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3167,
      "end": 3168,
      "loc": {
        "start": {
          "line": 88,
          "column": 42
        },
        "end": {
          "line": 88,
          "column": 43
        }
      }
    },
    {
      "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": 3169,
      "end": 3175,
      "loc": {
        "start": {
          "line": 88,
          "column": 44
        },
        "end": {
          "line": 88,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3175,
      "end": 3176,
      "loc": {
        "start": {
          "line": 88,
          "column": 50
        },
        "end": {
          "line": 88,
          "column": 51
        }
      }
    },
    {
      "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": 3185,
      "end": 3189,
      "loc": {
        "start": {
          "line": 89,
          "column": 8
        },
        "end": {
          "line": 89,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3189,
      "end": 3190,
      "loc": {
        "start": {
          "line": 89,
          "column": 12
        },
        "end": {
          "line": 89,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 3190,
      "end": 3197,
      "loc": {
        "start": {
          "line": 89,
          "column": 13
        },
        "end": {
          "line": 89,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3197,
      "end": 3198,
      "loc": {
        "start": {
          "line": 89,
          "column": 20
        },
        "end": {
          "line": 89,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3198,
      "end": 3199,
      "loc": {
        "start": {
          "line": 89,
          "column": 21
        },
        "end": {
          "line": 89,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3199,
      "end": 3200,
      "loc": {
        "start": {
          "line": 89,
          "column": 22
        },
        "end": {
          "line": 89,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3205,
      "end": 3206,
      "loc": {
        "start": {
          "line": 90,
          "column": 4
        },
        "end": {
          "line": 90,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hover",
      "start": 3212,
      "end": 3217,
      "loc": {
        "start": {
          "line": 92,
          "column": 4
        },
        "end": {
          "line": 92,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3217,
      "end": 3218,
      "loc": {
        "start": {
          "line": 92,
          "column": 9
        },
        "end": {
          "line": 92,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3218,
      "end": 3224,
      "loc": {
        "start": {
          "line": 92,
          "column": 10
        },
        "end": {
          "line": 92,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3224,
      "end": 3225,
      "loc": {
        "start": {
          "line": 92,
          "column": 16
        },
        "end": {
          "line": 92,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 3226,
      "end": 3231,
      "loc": {
        "start": {
          "line": 92,
          "column": 18
        },
        "end": {
          "line": 92,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3231,
      "end": 3232,
      "loc": {
        "start": {
          "line": 92,
          "column": 23
        },
        "end": {
          "line": 92,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3233,
      "end": 3234,
      "loc": {
        "start": {
          "line": 92,
          "column": 25
        },
        "end": {
          "line": 92,
          "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": 3243,
      "end": 3245,
      "loc": {
        "start": {
          "line": 93,
          "column": 8
        },
        "end": {
          "line": 93,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3246,
      "end": 3247,
      "loc": {
        "start": {
          "line": 93,
          "column": 11
        },
        "end": {
          "line": 93,
          "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": 3247,
      "end": 3251,
      "loc": {
        "start": {
          "line": 93,
          "column": 12
        },
        "end": {
          "line": 93,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3251,
      "end": 3252,
      "loc": {
        "start": {
          "line": 93,
          "column": 16
        },
        "end": {
          "line": 93,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3252,
      "end": 3256,
      "loc": {
        "start": {
          "line": 93,
          "column": 17
        },
        "end": {
          "line": 93,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 3257,
      "end": 3260,
      "loc": {
        "start": {
          "line": 93,
          "column": 22
        },
        "end": {
          "line": 93,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 3261,
      "end": 3265,
      "loc": {
        "start": {
          "line": 93,
          "column": 26
        },
        "end": {
          "line": 93,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3265,
      "end": 3266,
      "loc": {
        "start": {
          "line": 93,
          "column": 30
        },
        "end": {
          "line": 93,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 3266,
      "end": 3271,
      "loc": {
        "start": {
          "line": 93,
          "column": 31
        },
        "end": {
          "line": 93,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3271,
      "end": 3272,
      "loc": {
        "start": {
          "line": 93,
          "column": 36
        },
        "end": {
          "line": 93,
          "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": 3273,
      "end": 3279,
      "loc": {
        "start": {
          "line": 93,
          "column": 38
        },
        "end": {
          "line": 93,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3279,
      "end": 3280,
      "loc": {
        "start": {
          "line": 93,
          "column": 44
        },
        "end": {
          "line": 93,
          "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": 3289,
      "end": 3291,
      "loc": {
        "start": {
          "line": 94,
          "column": 8
        },
        "end": {
          "line": 94,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3292,
      "end": 3293,
      "loc": {
        "start": {
          "line": 94,
          "column": 11
        },
        "end": {
          "line": 94,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3293,
      "end": 3299,
      "loc": {
        "start": {
          "line": 94,
          "column": 12
        },
        "end": {
          "line": 94,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3299,
      "end": 3300,
      "loc": {
        "start": {
          "line": 94,
          "column": 18
        },
        "end": {
          "line": 94,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isConstraint",
      "start": 3300,
      "end": 3312,
      "loc": {
        "start": {
          "line": 94,
          "column": 19
        },
        "end": {
          "line": 94,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3312,
      "end": 3313,
      "loc": {
        "start": {
          "line": 94,
          "column": 31
        },
        "end": {
          "line": 94,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3313,
      "end": 3314,
      "loc": {
        "start": {
          "line": 94,
          "column": 32
        },
        "end": {
          "line": 94,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3314,
      "end": 3315,
      "loc": {
        "start": {
          "line": 94,
          "column": 33
        },
        "end": {
          "line": 94,
          "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": 3316,
      "end": 3322,
      "loc": {
        "start": {
          "line": 94,
          "column": 35
        },
        "end": {
          "line": 94,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3322,
      "end": 3323,
      "loc": {
        "start": {
          "line": 94,
          "column": 41
        },
        "end": {
          "line": 94,
          "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": 3332,
      "end": 3334,
      "loc": {
        "start": {
          "line": 95,
          "column": 8
        },
        "end": {
          "line": 95,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3335,
      "end": 3336,
      "loc": {
        "start": {
          "line": 95,
          "column": 11
        },
        "end": {
          "line": 95,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 3336,
      "end": 3341,
      "loc": {
        "start": {
          "line": 95,
          "column": 12
        },
        "end": {
          "line": 95,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3341,
      "end": 3342,
      "loc": {
        "start": {
          "line": 95,
          "column": 17
        },
        "end": {
          "line": 95,
          "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": 3343,
      "end": 3347,
      "loc": {
        "start": {
          "line": 95,
          "column": 19
        },
        "end": {
          "line": 95,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3347,
      "end": 3348,
      "loc": {
        "start": {
          "line": 95,
          "column": 23
        },
        "end": {
          "line": 95,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhoverAll",
      "start": 3348,
      "end": 3358,
      "loc": {
        "start": {
          "line": 95,
          "column": 24
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3358,
      "end": 3359,
      "loc": {
        "start": {
          "line": 95,
          "column": 34
        },
        "end": {
          "line": 95,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3359,
      "end": 3360,
      "loc": {
        "start": {
          "line": 95,
          "column": 35
        },
        "end": {
          "line": 95,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3360,
      "end": 3361,
      "loc": {
        "start": {
          "line": 95,
          "column": 36
        },
        "end": {
          "line": 95,
          "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": 3370,
      "end": 3373,
      "loc": {
        "start": {
          "line": 96,
          "column": 8
        },
        "end": {
          "line": 96,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3374,
      "end": 3375,
      "loc": {
        "start": {
          "line": 96,
          "column": 12
        },
        "end": {
          "line": 96,
          "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": 3375,
      "end": 3378,
      "loc": {
        "start": {
          "line": 96,
          "column": 13
        },
        "end": {
          "line": 96,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3379,
      "end": 3381,
      "loc": {
        "start": {
          "line": 96,
          "column": 17
        },
        "end": {
          "line": 96,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3382,
      "end": 3384,
      "loc": {
        "start": {
          "line": 96,
          "column": 20
        },
        "end": {
          "line": 96,
          "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": 3385,
      "end": 3389,
      "loc": {
        "start": {
          "line": 96,
          "column": 23
        },
        "end": {
          "line": 96,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3389,
      "end": 3390,
      "loc": {
        "start": {
          "line": 96,
          "column": 27
        },
        "end": {
          "line": 96,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 3390,
      "end": 3399,
      "loc": {
        "start": {
          "line": 96,
          "column": 28
        },
        "end": {
          "line": 96,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3399,
      "end": 3400,
      "loc": {
        "start": {
          "line": 96,
          "column": 37
        },
        "end": {
          "line": 96,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 3400,
      "end": 3403,
      "loc": {
        "start": {
          "line": 96,
          "column": 38
        },
        "end": {
          "line": 96,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3403,
      "end": 3404,
      "loc": {
        "start": {
          "line": 96,
          "column": 41
        },
        "end": {
          "line": 96,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3404,
      "end": 3410,
      "loc": {
        "start": {
          "line": 96,
          "column": 42
        },
        "end": {
          "line": 96,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3410,
      "end": 3411,
      "loc": {
        "start": {
          "line": 96,
          "column": 48
        },
        "end": {
          "line": 96,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3411,
      "end": 3413,
      "loc": {
        "start": {
          "line": 96,
          "column": 49
        },
        "end": {
          "line": 96,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3413,
      "end": 3414,
      "loc": {
        "start": {
          "line": 96,
          "column": 51
        },
        "end": {
          "line": 96,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3415,
      "end": 3417,
      "loc": {
        "start": {
          "line": 96,
          "column": 53
        },
        "end": {
          "line": 96,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3418,
      "end": 3419,
      "loc": {
        "start": {
          "line": 96,
          "column": 56
        },
        "end": {
          "line": 96,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3419,
      "end": 3420,
      "loc": {
        "start": {
          "line": 96,
          "column": 57
        },
        "end": {
          "line": 96,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3420,
      "end": 3421,
      "loc": {
        "start": {
          "line": 96,
          "column": 58
        },
        "end": {
          "line": 96,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3422,
      "end": 3423,
      "loc": {
        "start": {
          "line": 96,
          "column": 60
        },
        "end": {
          "line": 96,
          "column": 61
        }
      }
    },
    {
      "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": 3436,
      "end": 3440,
      "loc": {
        "start": {
          "line": 97,
          "column": 12
        },
        "end": {
          "line": 97,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3440,
      "end": 3441,
      "loc": {
        "start": {
          "line": 97,
          "column": 16
        },
        "end": {
          "line": 97,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setVisibility",
      "start": 3441,
      "end": 3454,
      "loc": {
        "start": {
          "line": 97,
          "column": 17
        },
        "end": {
          "line": 97,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3454,
      "end": 3455,
      "loc": {
        "start": {
          "line": 97,
          "column": 30
        },
        "end": {
          "line": 97,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3455,
      "end": 3457,
      "loc": {
        "start": {
          "line": 97,
          "column": 31
        },
        "end": {
          "line": 97,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3457,
      "end": 3458,
      "loc": {
        "start": {
          "line": 97,
          "column": 33
        },
        "end": {
          "line": 97,
          "column": 34
        }
      }
    },
    {
      "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": 3459,
      "end": 3463,
      "loc": {
        "start": {
          "line": 97,
          "column": 35
        },
        "end": {
          "line": 97,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3463,
      "end": 3464,
      "loc": {
        "start": {
          "line": 97,
          "column": 39
        },
        "end": {
          "line": 97,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3464,
      "end": 3465,
      "loc": {
        "start": {
          "line": 97,
          "column": 40
        },
        "end": {
          "line": 97,
          "column": 41
        }
      }
    },
    {
      "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": 3478,
      "end": 3480,
      "loc": {
        "start": {
          "line": 98,
          "column": 12
        },
        "end": {
          "line": 98,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3481,
      "end": 3482,
      "loc": {
        "start": {
          "line": 98,
          "column": 15
        },
        "end": {
          "line": 98,
          "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": 3482,
      "end": 3483,
      "loc": {
        "start": {
          "line": 98,
          "column": 16
        },
        "end": {
          "line": 98,
          "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": 3483,
      "end": 3487,
      "loc": {
        "start": {
          "line": 98,
          "column": 17
        },
        "end": {
          "line": 98,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3487,
      "end": 3488,
      "loc": {
        "start": {
          "line": 98,
          "column": 21
        },
        "end": {
          "line": 98,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isSelected",
      "start": 3488,
      "end": 3498,
      "loc": {
        "start": {
          "line": 98,
          "column": 22
        },
        "end": {
          "line": 98,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3498,
      "end": 3499,
      "loc": {
        "start": {
          "line": 98,
          "column": 32
        },
        "end": {
          "line": 98,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3499,
      "end": 3501,
      "loc": {
        "start": {
          "line": 98,
          "column": 33
        },
        "end": {
          "line": 98,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3501,
      "end": 3502,
      "loc": {
        "start": {
          "line": 98,
          "column": 35
        },
        "end": {
          "line": 98,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3502,
      "end": 3503,
      "loc": {
        "start": {
          "line": 98,
          "column": 36
        },
        "end": {
          "line": 98,
          "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": 3504,
      "end": 3508,
      "loc": {
        "start": {
          "line": 98,
          "column": 38
        },
        "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": 3508,
      "end": 3509,
      "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": "baseEntityFor",
      "start": 3509,
      "end": 3522,
      "loc": {
        "start": {
          "line": 98,
          "column": 43
        },
        "end": {
          "line": 98,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3522,
      "end": 3523,
      "loc": {
        "start": {
          "line": 98,
          "column": 56
        },
        "end": {
          "line": 98,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 3523,
      "end": 3526,
      "loc": {
        "start": {
          "line": 98,
          "column": 57
        },
        "end": {
          "line": 98,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3526,
      "end": 3527,
      "loc": {
        "start": {
          "line": 98,
          "column": 60
        },
        "end": {
          "line": 98,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3527,
      "end": 3529,
      "loc": {
        "start": {
          "line": 98,
          "column": 61
        },
        "end": {
          "line": 98,
          "column": 63
        }
      }
    },
    {
      "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": 98,
          "column": 63
        },
        "end": {
          "line": 98,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3531,
      "end": 3537,
      "loc": {
        "start": {
          "line": 98,
          "column": 65
        },
        "end": {
          "line": 98,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3537,
      "end": 3538,
      "loc": {
        "start": {
          "line": 98,
          "column": 71
        },
        "end": {
          "line": 98,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3538,
      "end": 3540,
      "loc": {
        "start": {
          "line": 98,
          "column": 72
        },
        "end": {
          "line": 98,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3540,
      "end": 3541,
      "loc": {
        "start": {
          "line": 98,
          "column": 74
        },
        "end": {
          "line": 98,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3541,
      "end": 3542,
      "loc": {
        "start": {
          "line": 98,
          "column": 75
        },
        "end": {
          "line": 98,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3551,
      "end": 3552,
      "loc": {
        "start": {
          "line": 99,
          "column": 8
        },
        "end": {
          "line": 99,
          "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": 3561,
      "end": 3565,
      "loc": {
        "start": {
          "line": 100,
          "column": 8
        },
        "end": {
          "line": 100,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3565,
      "end": 3566,
      "loc": {
        "start": {
          "line": 100,
          "column": 12
        },
        "end": {
          "line": 100,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 3566,
      "end": 3573,
      "loc": {
        "start": {
          "line": 100,
          "column": 13
        },
        "end": {
          "line": 100,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3573,
      "end": 3574,
      "loc": {
        "start": {
          "line": 100,
          "column": 20
        },
        "end": {
          "line": 100,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3574,
      "end": 3575,
      "loc": {
        "start": {
          "line": 100,
          "column": 21
        },
        "end": {
          "line": 100,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3575,
      "end": 3576,
      "loc": {
        "start": {
          "line": 100,
          "column": 22
        },
        "end": {
          "line": 100,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3581,
      "end": 3582,
      "loc": {
        "start": {
          "line": 101,
          "column": 4
        },
        "end": {
          "line": 101,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhover",
      "start": 3588,
      "end": 3595,
      "loc": {
        "start": {
          "line": 103,
          "column": 4
        },
        "end": {
          "line": 103,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3595,
      "end": 3596,
      "loc": {
        "start": {
          "line": 103,
          "column": 11
        },
        "end": {
          "line": 103,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3596,
      "end": 3602,
      "loc": {
        "start": {
          "line": 103,
          "column": 12
        },
        "end": {
          "line": 103,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3602,
      "end": 3603,
      "loc": {
        "start": {
          "line": 103,
          "column": 18
        },
        "end": {
          "line": 103,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 3604,
      "end": 3609,
      "loc": {
        "start": {
          "line": 103,
          "column": 20
        },
        "end": {
          "line": 103,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3609,
      "end": 3610,
      "loc": {
        "start": {
          "line": 103,
          "column": 25
        },
        "end": {
          "line": 103,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3611,
      "end": 3612,
      "loc": {
        "start": {
          "line": 103,
          "column": 27
        },
        "end": {
          "line": 103,
          "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": 3621,
      "end": 3623,
      "loc": {
        "start": {
          "line": 104,
          "column": 8
        },
        "end": {
          "line": 104,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3624,
      "end": 3625,
      "loc": {
        "start": {
          "line": 104,
          "column": 11
        },
        "end": {
          "line": 104,
          "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": 3625,
      "end": 3629,
      "loc": {
        "start": {
          "line": 104,
          "column": 12
        },
        "end": {
          "line": 104,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3629,
      "end": 3630,
      "loc": {
        "start": {
          "line": 104,
          "column": 16
        },
        "end": {
          "line": 104,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3630,
      "end": 3634,
      "loc": {
        "start": {
          "line": 104,
          "column": 17
        },
        "end": {
          "line": 104,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 3635,
      "end": 3638,
      "loc": {
        "start": {
          "line": 104,
          "column": 22
        },
        "end": {
          "line": 104,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 3639,
      "end": 3643,
      "loc": {
        "start": {
          "line": 104,
          "column": 26
        },
        "end": {
          "line": 104,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3643,
      "end": 3644,
      "loc": {
        "start": {
          "line": 104,
          "column": 30
        },
        "end": {
          "line": 104,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 3644,
      "end": 3649,
      "loc": {
        "start": {
          "line": 104,
          "column": 31
        },
        "end": {
          "line": 104,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3649,
      "end": 3650,
      "loc": {
        "start": {
          "line": 104,
          "column": 36
        },
        "end": {
          "line": 104,
          "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": 3651,
      "end": 3657,
      "loc": {
        "start": {
          "line": 104,
          "column": 38
        },
        "end": {
          "line": 104,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3657,
      "end": 3658,
      "loc": {
        "start": {
          "line": 104,
          "column": 44
        },
        "end": {
          "line": 104,
          "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": 3667,
      "end": 3669,
      "loc": {
        "start": {
          "line": 105,
          "column": 8
        },
        "end": {
          "line": 105,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3670,
      "end": 3671,
      "loc": {
        "start": {
          "line": 105,
          "column": 11
        },
        "end": {
          "line": 105,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 3671,
      "end": 3677,
      "loc": {
        "start": {
          "line": 105,
          "column": 12
        },
        "end": {
          "line": 105,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3677,
      "end": 3678,
      "loc": {
        "start": {
          "line": 105,
          "column": 18
        },
        "end": {
          "line": 105,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isConstraint",
      "start": 3678,
      "end": 3690,
      "loc": {
        "start": {
          "line": 105,
          "column": 19
        },
        "end": {
          "line": 105,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3690,
      "end": 3691,
      "loc": {
        "start": {
          "line": 105,
          "column": 31
        },
        "end": {
          "line": 105,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3691,
      "end": 3692,
      "loc": {
        "start": {
          "line": 105,
          "column": 32
        },
        "end": {
          "line": 105,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3692,
      "end": 3693,
      "loc": {
        "start": {
          "line": 105,
          "column": 33
        },
        "end": {
          "line": 105,
          "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": 3694,
      "end": 3700,
      "loc": {
        "start": {
          "line": 105,
          "column": 35
        },
        "end": {
          "line": 105,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3700,
      "end": 3701,
      "loc": {
        "start": {
          "line": 105,
          "column": 41
        },
        "end": {
          "line": 105,
          "column": 42
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " do nothing",
      "start": 3710,
      "end": 3723,
      "loc": {
        "start": {
          "line": 106,
          "column": 8
        },
        "end": {
          "line": 106,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3728,
      "end": 3729,
      "loc": {
        "start": {
          "line": 107,
          "column": 4
        },
        "end": {
          "line": 107,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhoverAll",
      "start": 3735,
      "end": 3745,
      "loc": {
        "start": {
          "line": 109,
          "column": 4
        },
        "end": {
          "line": 109,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3745,
      "end": 3746,
      "loc": {
        "start": {
          "line": 109,
          "column": 14
        },
        "end": {
          "line": 109,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3746,
      "end": 3747,
      "loc": {
        "start": {
          "line": 109,
          "column": 15
        },
        "end": {
          "line": 109,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3748,
      "end": 3749,
      "loc": {
        "start": {
          "line": 109,
          "column": 17
        },
        "end": {
          "line": 109,
          "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": 3758,
      "end": 3760,
      "loc": {
        "start": {
          "line": 110,
          "column": 8
        },
        "end": {
          "line": 110,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3761,
      "end": 3762,
      "loc": {
        "start": {
          "line": 110,
          "column": 11
        },
        "end": {
          "line": 110,
          "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": 3762,
      "end": 3766,
      "loc": {
        "start": {
          "line": 110,
          "column": 12
        },
        "end": {
          "line": 110,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3766,
      "end": 3767,
      "loc": {
        "start": {
          "line": 110,
          "column": 16
        },
        "end": {
          "line": 110,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3767,
      "end": 3771,
      "loc": {
        "start": {
          "line": 110,
          "column": 17
        },
        "end": {
          "line": 110,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 3772,
      "end": 3775,
      "loc": {
        "start": {
          "line": 110,
          "column": 22
        },
        "end": {
          "line": 110,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 3776,
      "end": 3780,
      "loc": {
        "start": {
          "line": 110,
          "column": 26
        },
        "end": {
          "line": 110,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3780,
      "end": 3781,
      "loc": {
        "start": {
          "line": 110,
          "column": 30
        },
        "end": {
          "line": 110,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 3781,
      "end": 3786,
      "loc": {
        "start": {
          "line": 110,
          "column": 31
        },
        "end": {
          "line": 110,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3786,
      "end": 3787,
      "loc": {
        "start": {
          "line": 110,
          "column": 36
        },
        "end": {
          "line": 110,
          "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": 3788,
      "end": 3794,
      "loc": {
        "start": {
          "line": 110,
          "column": 38
        },
        "end": {
          "line": 110,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3794,
      "end": 3795,
      "loc": {
        "start": {
          "line": 110,
          "column": 44
        },
        "end": {
          "line": 110,
          "column": 45
        }
      }
    },
    {
      "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": 3804,
      "end": 3807,
      "loc": {
        "start": {
          "line": 111,
          "column": 8
        },
        "end": {
          "line": 111,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3808,
      "end": 3809,
      "loc": {
        "start": {
          "line": 111,
          "column": 12
        },
        "end": {
          "line": 111,
          "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": 3809,
      "end": 3812,
      "loc": {
        "start": {
          "line": 111,
          "column": 13
        },
        "end": {
          "line": 111,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3813,
      "end": 3815,
      "loc": {
        "start": {
          "line": 111,
          "column": 17
        },
        "end": {
          "line": 111,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3816,
      "end": 3818,
      "loc": {
        "start": {
          "line": 111,
          "column": 20
        },
        "end": {
          "line": 111,
          "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": 3819,
      "end": 3823,
      "loc": {
        "start": {
          "line": 111,
          "column": 23
        },
        "end": {
          "line": 111,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3823,
      "end": 3824,
      "loc": {
        "start": {
          "line": 111,
          "column": 27
        },
        "end": {
          "line": 111,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 3824,
      "end": 3835,
      "loc": {
        "start": {
          "line": 111,
          "column": 28
        },
        "end": {
          "line": 111,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3835,
      "end": 3836,
      "loc": {
        "start": {
          "line": 111,
          "column": 39
        },
        "end": {
          "line": 111,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 3836,
      "end": 3840,
      "loc": {
        "start": {
          "line": 111,
          "column": 40
        },
        "end": {
          "line": 111,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3840,
      "end": 3841,
      "loc": {
        "start": {
          "line": 111,
          "column": 44
        },
        "end": {
          "line": 111,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3841,
      "end": 3842,
      "loc": {
        "start": {
          "line": 111,
          "column": 45
        },
        "end": {
          "line": 111,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3842,
      "end": 3843,
      "loc": {
        "start": {
          "line": 111,
          "column": 46
        },
        "end": {
          "line": 111,
          "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": 3856,
      "end": 3860,
      "loc": {
        "start": {
          "line": 112,
          "column": 12
        },
        "end": {
          "line": 112,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3860,
      "end": 3861,
      "loc": {
        "start": {
          "line": 112,
          "column": 16
        },
        "end": {
          "line": 112,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setVisibility",
      "start": 3861,
      "end": 3874,
      "loc": {
        "start": {
          "line": 112,
          "column": 17
        },
        "end": {
          "line": 112,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3874,
      "end": 3875,
      "loc": {
        "start": {
          "line": 112,
          "column": 30
        },
        "end": {
          "line": 112,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3875,
      "end": 3877,
      "loc": {
        "start": {
          "line": 112,
          "column": 31
        },
        "end": {
          "line": 112,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3877,
      "end": 3878,
      "loc": {
        "start": {
          "line": 112,
          "column": 33
        },
        "end": {
          "line": 112,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 3879,
      "end": 3884,
      "loc": {
        "start": {
          "line": 112,
          "column": 35
        },
        "end": {
          "line": 112,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3884,
      "end": 3885,
      "loc": {
        "start": {
          "line": 112,
          "column": 40
        },
        "end": {
          "line": 112,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3885,
      "end": 3886,
      "loc": {
        "start": {
          "line": 112,
          "column": 41
        },
        "end": {
          "line": 112,
          "column": 42
        }
      }
    },
    {
      "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": 3895,
      "end": 3899,
      "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": 3899,
      "end": 3900,
      "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": "refresh",
      "start": 3900,
      "end": 3907,
      "loc": {
        "start": {
          "line": 113,
          "column": 13
        },
        "end": {
          "line": 113,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3907,
      "end": 3908,
      "loc": {
        "start": {
          "line": 113,
          "column": 20
        },
        "end": {
          "line": 113,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3908,
      "end": 3909,
      "loc": {
        "start": {
          "line": 113,
          "column": 21
        },
        "end": {
          "line": 113,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3909,
      "end": 3910,
      "loc": {
        "start": {
          "line": 113,
          "column": 22
        },
        "end": {
          "line": 113,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3915,
      "end": 3916,
      "loc": {
        "start": {
          "line": 114,
          "column": 4
        },
        "end": {
          "line": 114,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "called when constraint visualizer mode changes + on init",
      "start": 3922,
      "end": 3980,
      "loc": {
        "start": {
          "line": 116,
          "column": 4
        },
        "end": {
          "line": 116,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateAll",
      "start": 3985,
      "end": 3994,
      "loc": {
        "start": {
          "line": 117,
          "column": 4
        },
        "end": {
          "line": 117,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3994,
      "end": 3995,
      "loc": {
        "start": {
          "line": 117,
          "column": 13
        },
        "end": {
          "line": 117,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3995,
      "end": 3999,
      "loc": {
        "start": {
          "line": 117,
          "column": 14
        },
        "end": {
          "line": 117,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4000,
      "end": 4001,
      "loc": {
        "start": {
          "line": 117,
          "column": 19
        },
        "end": {
          "line": 117,
          "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": 4002,
      "end": 4006,
      "loc": {
        "start": {
          "line": 117,
          "column": 21
        },
        "end": {
          "line": 117,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4006,
      "end": 4007,
      "loc": {
        "start": {
          "line": 117,
          "column": 25
        },
        "end": {
          "line": 117,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 4007,
      "end": 4011,
      "loc": {
        "start": {
          "line": 117,
          "column": 26
        },
        "end": {
          "line": 117,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4011,
      "end": 4012,
      "loc": {
        "start": {
          "line": 117,
          "column": 30
        },
        "end": {
          "line": 117,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4013,
      "end": 4014,
      "loc": {
        "start": {
          "line": 117,
          "column": 32
        },
        "end": {
          "line": 117,
          "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": 4023,
      "end": 4027,
      "loc": {
        "start": {
          "line": 118,
          "column": 8
        },
        "end": {
          "line": 118,
          "column": 12
        }
      }
    },
    {
      "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": 118,
          "column": 12
        },
        "end": {
          "line": 118,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 4028,
      "end": 4032,
      "loc": {
        "start": {
          "line": 118,
          "column": 13
        },
        "end": {
          "line": 118,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4033,
      "end": 4034,
      "loc": {
        "start": {
          "line": 118,
          "column": 18
        },
        "end": {
          "line": 118,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 4035,
      "end": 4039,
      "loc": {
        "start": {
          "line": 118,
          "column": 20
        },
        "end": {
          "line": 118,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4039,
      "end": 4040,
      "loc": {
        "start": {
          "line": 118,
          "column": 24
        },
        "end": {
          "line": 118,
          "column": 25
        }
      }
    },
    {
      "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": 4049,
      "end": 4052,
      "loc": {
        "start": {
          "line": 119,
          "column": 8
        },
        "end": {
          "line": 119,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4053,
      "end": 4054,
      "loc": {
        "start": {
          "line": 119,
          "column": 12
        },
        "end": {
          "line": 119,
          "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": 4054,
      "end": 4057,
      "loc": {
        "start": {
          "line": 119,
          "column": 13
        },
        "end": {
          "line": 119,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 4058,
      "end": 4060,
      "loc": {
        "start": {
          "line": 119,
          "column": 17
        },
        "end": {
          "line": 119,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 4061,
      "end": 4063,
      "loc": {
        "start": {
          "line": 119,
          "column": 20
        },
        "end": {
          "line": 119,
          "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": 4064,
      "end": 4068,
      "loc": {
        "start": {
          "line": 119,
          "column": 23
        },
        "end": {
          "line": 119,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4068,
      "end": 4069,
      "loc": {
        "start": {
          "line": 119,
          "column": 27
        },
        "end": {
          "line": 119,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 4069,
      "end": 4080,
      "loc": {
        "start": {
          "line": 119,
          "column": 28
        },
        "end": {
          "line": 119,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4080,
      "end": 4081,
      "loc": {
        "start": {
          "line": 119,
          "column": 39
        },
        "end": {
          "line": 119,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 4081,
      "end": 4085,
      "loc": {
        "start": {
          "line": 119,
          "column": 40
        },
        "end": {
          "line": 119,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4085,
      "end": 4086,
      "loc": {
        "start": {
          "line": 119,
          "column": 44
        },
        "end": {
          "line": 119,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4086,
      "end": 4087,
      "loc": {
        "start": {
          "line": 119,
          "column": 45
        },
        "end": {
          "line": 119,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4087,
      "end": 4088,
      "loc": {
        "start": {
          "line": 119,
          "column": 46
        },
        "end": {
          "line": 119,
          "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": 4101,
      "end": 4105,
      "loc": {
        "start": {
          "line": 120,
          "column": 12
        },
        "end": {
          "line": 120,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4105,
      "end": 4106,
      "loc": {
        "start": {
          "line": 120,
          "column": 16
        },
        "end": {
          "line": 120,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setVisibility",
      "start": 4106,
      "end": 4119,
      "loc": {
        "start": {
          "line": 120,
          "column": 17
        },
        "end": {
          "line": 120,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4119,
      "end": 4120,
      "loc": {
        "start": {
          "line": 120,
          "column": 30
        },
        "end": {
          "line": 120,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 4120,
      "end": 4122,
      "loc": {
        "start": {
          "line": 120,
          "column": 31
        },
        "end": {
          "line": 120,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4122,
      "end": 4123,
      "loc": {
        "start": {
          "line": 120,
          "column": 33
        },
        "end": {
          "line": 120,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4123,
      "end": 4124,
      "loc": {
        "start": {
          "line": 120,
          "column": 34
        },
        "end": {
          "line": 120,
          "column": 35
        }
      }
    },
    {
      "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": 4133,
      "end": 4137,
      "loc": {
        "start": {
          "line": 121,
          "column": 8
        },
        "end": {
          "line": 121,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4137,
      "end": 4138,
      "loc": {
        "start": {
          "line": 121,
          "column": 12
        },
        "end": {
          "line": 121,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 4138,
      "end": 4145,
      "loc": {
        "start": {
          "line": 121,
          "column": 13
        },
        "end": {
          "line": 121,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4145,
      "end": 4146,
      "loc": {
        "start": {
          "line": 121,
          "column": 20
        },
        "end": {
          "line": 121,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4146,
      "end": 4147,
      "loc": {
        "start": {
          "line": 121,
          "column": 21
        },
        "end": {
          "line": 121,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4147,
      "end": 4148,
      "loc": {
        "start": {
          "line": 121,
          "column": 22
        },
        "end": {
          "line": 121,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4153,
      "end": 4154,
      "loc": {
        "start": {
          "line": 122,
          "column": 4
        },
        "end": {
          "line": 122,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: called before each frame is rendered",
      "start": 4160,
      "end": 4204,
      "loc": {
        "start": {
          "line": 124,
          "column": 4
        },
        "end": {
          "line": 124,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sets proper positions for all constraint graphics",
      "start": 4209,
      "end": 4260,
      "loc": {
        "start": {
          "line": 125,
          "column": 4
        },
        "end": {
          "line": 125,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "render",
      "start": 4265,
      "end": 4271,
      "loc": {
        "start": {
          "line": 126,
          "column": 4
        },
        "end": {
          "line": 126,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4271,
      "end": 4272,
      "loc": {
        "start": {
          "line": 126,
          "column": 10
        },
        "end": {
          "line": 126,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4272,
      "end": 4273,
      "loc": {
        "start": {
          "line": 126,
          "column": 11
        },
        "end": {
          "line": 126,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4274,
      "end": 4275,
      "loc": {
        "start": {
          "line": 126,
          "column": 13
        },
        "end": {
          "line": 126,
          "column": 14
        }
      }
    },
    {
      "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": 4284,
      "end": 4286,
      "loc": {
        "start": {
          "line": 127,
          "column": 8
        },
        "end": {
          "line": 127,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4287,
      "end": 4288,
      "loc": {
        "start": {
          "line": 127,
          "column": 11
        },
        "end": {
          "line": 127,
          "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": 4288,
      "end": 4289,
      "loc": {
        "start": {
          "line": 127,
          "column": 12
        },
        "end": {
          "line": 127,
          "column": 13
        }
      }
    },
    {
      "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": 4289,
      "end": 4293,
      "loc": {
        "start": {
          "line": 127,
          "column": 13
        },
        "end": {
          "line": 127,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4293,
      "end": 4294,
      "loc": {
        "start": {
          "line": 127,
          "column": 17
        },
        "end": {
          "line": 127,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphicsDirty",
      "start": 4294,
      "end": 4307,
      "loc": {
        "start": {
          "line": 127,
          "column": 18
        },
        "end": {
          "line": 127,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4307,
      "end": 4308,
      "loc": {
        "start": {
          "line": 127,
          "column": 31
        },
        "end": {
          "line": 127,
          "column": 32
        }
      }
    },
    {
      "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": 4309,
      "end": 4315,
      "loc": {
        "start": {
          "line": 127,
          "column": 33
        },
        "end": {
          "line": 127,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4315,
      "end": 4316,
      "loc": {
        "start": {
          "line": 127,
          "column": 39
        },
        "end": {
          "line": 127,
          "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": 4325,
      "end": 4329,
      "loc": {
        "start": {
          "line": 128,
          "column": 8
        },
        "end": {
          "line": 128,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4329,
      "end": 4330,
      "loc": {
        "start": {
          "line": 128,
          "column": 12
        },
        "end": {
          "line": 128,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphicsDirty",
      "start": 4330,
      "end": 4343,
      "loc": {
        "start": {
          "line": 128,
          "column": 13
        },
        "end": {
          "line": 128,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4344,
      "end": 4345,
      "loc": {
        "start": {
          "line": 128,
          "column": 27
        },
        "end": {
          "line": 128,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 4346,
      "end": 4351,
      "loc": {
        "start": {
          "line": 128,
          "column": 29
        },
        "end": {
          "line": 128,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4351,
      "end": 4352,
      "loc": {
        "start": {
          "line": 128,
          "column": 34
        },
        "end": {
          "line": 128,
          "column": 35
        }
      }
    },
    {
      "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": 4361,
      "end": 4366,
      "loc": {
        "start": {
          "line": 129,
          "column": 8
        },
        "end": {
          "line": 129,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 4367,
      "end": 4375,
      "loc": {
        "start": {
          "line": 129,
          "column": 14
        },
        "end": {
          "line": 129,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4376,
      "end": 4377,
      "loc": {
        "start": {
          "line": 129,
          "column": 23
        },
        "end": {
          "line": 129,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 3,
      "start": 4378,
      "end": 4379,
      "loc": {
        "start": {
          "line": 129,
          "column": 25
        },
        "end": {
          "line": 129,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 4380,
      "end": 4381,
      "loc": {
        "start": {
          "line": 129,
          "column": 27
        },
        "end": {
          "line": 129,
          "column": 28
        }
      }
    },
    {
      "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": 4382,
      "end": 4386,
      "loc": {
        "start": {
          "line": 129,
          "column": 29
        },
        "end": {
          "line": 129,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4386,
      "end": 4387,
      "loc": {
        "start": {
          "line": 129,
          "column": 33
        },
        "end": {
          "line": 129,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 4387,
      "end": 4395,
      "loc": {
        "start": {
          "line": 129,
          "column": 34
        },
        "end": {
          "line": 129,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4395,
      "end": 4396,
      "loc": {
        "start": {
          "line": 129,
          "column": 42
        },
        "end": {
          "line": 129,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphicScale",
      "start": 4396,
      "end": 4408,
      "loc": {
        "start": {
          "line": 129,
          "column": 43
        },
        "end": {
          "line": 129,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4408,
      "end": 4409,
      "loc": {
        "start": {
          "line": 129,
          "column": 55
        },
        "end": {
          "line": 129,
          "column": 56
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "determine for each base entity the array of all constraints drawn near it",
      "start": 4419,
      "end": 4494,
      "loc": {
        "start": {
          "line": 131,
          "column": 8
        },
        "end": {
          "line": 131,
          "column": 83
        }
      }
    },
    {
      "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": 4503,
      "end": 4506,
      "loc": {
        "start": {
          "line": 132,
          "column": 8
        },
        "end": {
          "line": 132,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 4507,
      "end": 4521,
      "loc": {
        "start": {
          "line": 132,
          "column": 12
        },
        "end": {
          "line": 132,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4522,
      "end": 4523,
      "loc": {
        "start": {
          "line": 132,
          "column": 27
        },
        "end": {
          "line": 132,
          "column": 28
        }
      }
    },
    {
      "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": 4524,
      "end": 4527,
      "loc": {
        "start": {
          "line": 132,
          "column": 29
        },
        "end": {
          "line": 132,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 4528,
      "end": 4531,
      "loc": {
        "start": {
          "line": 132,
          "column": 33
        },
        "end": {
          "line": 132,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4531,
      "end": 4532,
      "loc": {
        "start": {
          "line": 132,
          "column": 36
        },
        "end": {
          "line": 132,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4532,
      "end": 4533,
      "loc": {
        "start": {
          "line": 132,
          "column": 37
        },
        "end": {
          "line": 132,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4533,
      "end": 4534,
      "loc": {
        "start": {
          "line": 132,
          "column": 38
        },
        "end": {
          "line": 132,
          "column": 39
        }
      }
    },
    {
      "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": 4543,
      "end": 4546,
      "loc": {
        "start": {
          "line": 133,
          "column": 8
        },
        "end": {
          "line": 133,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4547,
      "end": 4548,
      "loc": {
        "start": {
          "line": 133,
          "column": 12
        },
        "end": {
          "line": 133,
          "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": 4548,
      "end": 4551,
      "loc": {
        "start": {
          "line": 133,
          "column": 13
        },
        "end": {
          "line": 133,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 4552,
      "end": 4557,
      "loc": {
        "start": {
          "line": 133,
          "column": 17
        },
        "end": {
          "line": 133,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 4558,
      "end": 4560,
      "loc": {
        "start": {
          "line": 133,
          "column": 23
        },
        "end": {
          "line": 133,
          "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": 4561,
      "end": 4565,
      "loc": {
        "start": {
          "line": 133,
          "column": 26
        },
        "end": {
          "line": 133,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4565,
      "end": 4566,
      "loc": {
        "start": {
          "line": 133,
          "column": 30
        },
        "end": {
          "line": 133,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 4566,
      "end": 4577,
      "loc": {
        "start": {
          "line": 133,
          "column": 31
        },
        "end": {
          "line": 133,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4577,
      "end": 4578,
      "loc": {
        "start": {
          "line": 133,
          "column": 42
        },
        "end": {
          "line": 133,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 4578,
      "end": 4582,
      "loc": {
        "start": {
          "line": 133,
          "column": 43
        },
        "end": {
          "line": 133,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4582,
      "end": 4583,
      "loc": {
        "start": {
          "line": 133,
          "column": 47
        },
        "end": {
          "line": 133,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4583,
      "end": 4584,
      "loc": {
        "start": {
          "line": 133,
          "column": 48
        },
        "end": {
          "line": 133,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4584,
      "end": 4585,
      "loc": {
        "start": {
          "line": 133,
          "column": 49
        },
        "end": {
          "line": 133,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4586,
      "end": 4587,
      "loc": {
        "start": {
          "line": 133,
          "column": 51
        },
        "end": {
          "line": 133,
          "column": 52
        }
      }
    },
    {
      "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": 4600,
      "end": 4603,
      "loc": {
        "start": {
          "line": 134,
          "column": 12
        },
        "end": {
          "line": 134,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constr",
      "start": 4604,
      "end": 4610,
      "loc": {
        "start": {
          "line": 134,
          "column": 16
        },
        "end": {
          "line": 134,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4611,
      "end": 4612,
      "loc": {
        "start": {
          "line": 134,
          "column": 23
        },
        "end": {
          "line": 134,
          "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": 4613,
      "end": 4616,
      "loc": {
        "start": {
          "line": 134,
          "column": 25
        },
        "end": {
          "line": 134,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 4617,
      "end": 4622,
      "loc": {
        "start": {
          "line": 134,
          "column": 29
        },
        "end": {
          "line": 134,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4622,
      "end": 4623,
      "loc": {
        "start": {
          "line": 134,
          "column": 34
        },
        "end": {
          "line": 134,
          "column": 35
        }
      }
    },
    {
      "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": 4623,
      "end": 4627,
      "loc": {
        "start": {
          "line": 134,
          "column": 35
        },
        "end": {
          "line": 134,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4627,
      "end": 4628,
      "loc": {
        "start": {
          "line": 134,
          "column": 39
        },
        "end": {
          "line": 134,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 4628,
      "end": 4636,
      "loc": {
        "start": {
          "line": 134,
          "column": 40
        },
        "end": {
          "line": 134,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4636,
      "end": 4637,
      "loc": {
        "start": {
          "line": 134,
          "column": 48
        },
        "end": {
          "line": 134,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 4638,
      "end": 4643,
      "loc": {
        "start": {
          "line": 134,
          "column": 50
        },
        "end": {
          "line": 134,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4643,
      "end": 4644,
      "loc": {
        "start": {
          "line": 134,
          "column": 55
        },
        "end": {
          "line": 134,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4644,
      "end": 4645,
      "loc": {
        "start": {
          "line": 134,
          "column": 56
        },
        "end": {
          "line": 134,
          "column": 57
        }
      }
    },
    {
      "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": 4658,
      "end": 4660,
      "loc": {
        "start": {
          "line": 135,
          "column": 12
        },
        "end": {
          "line": 135,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4661,
      "end": 4662,
      "loc": {
        "start": {
          "line": 135,
          "column": 15
        },
        "end": {
          "line": 135,
          "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": 4662,
      "end": 4663,
      "loc": {
        "start": {
          "line": 135,
          "column": 16
        },
        "end": {
          "line": 135,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constr",
      "start": 4663,
      "end": 4669,
      "loc": {
        "start": {
          "line": 135,
          "column": 17
        },
        "end": {
          "line": 135,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4669,
      "end": 4670,
      "loc": {
        "start": {
          "line": 135,
          "column": 23
        },
        "end": {
          "line": 135,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 4670,
      "end": 4678,
      "loc": {
        "start": {
          "line": 135,
          "column": 24
        },
        "end": {
          "line": 135,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4678,
      "end": 4679,
      "loc": {
        "start": {
          "line": 135,
          "column": 32
        },
        "end": {
          "line": 135,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 4679,
      "end": 4686,
      "loc": {
        "start": {
          "line": 135,
          "column": 33
        },
        "end": {
          "line": 135,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4686,
      "end": 4687,
      "loc": {
        "start": {
          "line": 135,
          "column": 40
        },
        "end": {
          "line": 135,
          "column": 41
        }
      }
    },
    {
      "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": 4688,
      "end": 4696,
      "loc": {
        "start": {
          "line": 135,
          "column": 42
        },
        "end": {
          "line": 135,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4696,
      "end": 4697,
      "loc": {
        "start": {
          "line": 135,
          "column": 50
        },
        "end": {
          "line": 135,
          "column": 51
        }
      }
    },
    {
      "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": 4711,
      "end": 4714,
      "loc": {
        "start": {
          "line": 137,
          "column": 12
        },
        "end": {
          "line": 137,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseId",
      "start": 4715,
      "end": 4721,
      "loc": {
        "start": {
          "line": 137,
          "column": 16
        },
        "end": {
          "line": 137,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4722,
      "end": 4723,
      "loc": {
        "start": {
          "line": 137,
          "column": 23
        },
        "end": {
          "line": 137,
          "column": 24
        }
      }
    },
    {
      "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": 4724,
      "end": 4728,
      "loc": {
        "start": {
          "line": 137,
          "column": 25
        },
        "end": {
          "line": 137,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4728,
      "end": 4729,
      "loc": {
        "start": {
          "line": 137,
          "column": 29
        },
        "end": {
          "line": 137,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getBaseEntityId",
      "start": 4729,
      "end": 4744,
      "loc": {
        "start": {
          "line": 137,
          "column": 30
        },
        "end": {
          "line": 137,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4744,
      "end": 4745,
      "loc": {
        "start": {
          "line": 137,
          "column": 45
        },
        "end": {
          "line": 137,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 4745,
      "end": 4750,
      "loc": {
        "start": {
          "line": 137,
          "column": 46
        },
        "end": {
          "line": 137,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4750,
      "end": 4751,
      "loc": {
        "start": {
          "line": 137,
          "column": 51
        },
        "end": {
          "line": 137,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4751,
      "end": 4752,
      "loc": {
        "start": {
          "line": 137,
          "column": 52
        },
        "end": {
          "line": 137,
          "column": 53
        }
      }
    },
    {
      "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": 4765,
      "end": 4767,
      "loc": {
        "start": {
          "line": 138,
          "column": 12
        },
        "end": {
          "line": 138,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4768,
      "end": 4769,
      "loc": {
        "start": {
          "line": 138,
          "column": 15
        },
        "end": {
          "line": 138,
          "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": 4769,
      "end": 4770,
      "loc": {
        "start": {
          "line": 138,
          "column": 16
        },
        "end": {
          "line": 138,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 4770,
      "end": 4784,
      "loc": {
        "start": {
          "line": 138,
          "column": 17
        },
        "end": {
          "line": 138,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4784,
      "end": 4785,
      "loc": {
        "start": {
          "line": 138,
          "column": 31
        },
        "end": {
          "line": 138,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 4785,
      "end": 4788,
      "loc": {
        "start": {
          "line": 138,
          "column": 32
        },
        "end": {
          "line": 138,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4788,
      "end": 4789,
      "loc": {
        "start": {
          "line": 138,
          "column": 35
        },
        "end": {
          "line": 138,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseId",
      "start": 4789,
      "end": 4795,
      "loc": {
        "start": {
          "line": 138,
          "column": 36
        },
        "end": {
          "line": 138,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4795,
      "end": 4796,
      "loc": {
        "start": {
          "line": 138,
          "column": 42
        },
        "end": {
          "line": 138,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4796,
      "end": 4797,
      "loc": {
        "start": {
          "line": 138,
          "column": 43
        },
        "end": {
          "line": 138,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 4798,
      "end": 4812,
      "loc": {
        "start": {
          "line": 138,
          "column": 45
        },
        "end": {
          "line": 138,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4812,
      "end": 4813,
      "loc": {
        "start": {
          "line": 138,
          "column": 59
        },
        "end": {
          "line": 138,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 4813,
      "end": 4816,
      "loc": {
        "start": {
          "line": 138,
          "column": 60
        },
        "end": {
          "line": 138,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4816,
      "end": 4817,
      "loc": {
        "start": {
          "line": 138,
          "column": 63
        },
        "end": {
          "line": 138,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseId",
      "start": 4817,
      "end": 4823,
      "loc": {
        "start": {
          "line": 138,
          "column": 64
        },
        "end": {
          "line": 138,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4823,
      "end": 4824,
      "loc": {
        "start": {
          "line": 138,
          "column": 70
        },
        "end": {
          "line": 138,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4825,
      "end": 4826,
      "loc": {
        "start": {
          "line": 138,
          "column": 72
        },
        "end": {
          "line": 138,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4826,
      "end": 4827,
      "loc": {
        "start": {
          "line": 138,
          "column": 73
        },
        "end": {
          "line": 138,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4827,
      "end": 4828,
      "loc": {
        "start": {
          "line": 138,
          "column": 74
        },
        "end": {
          "line": 138,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4828,
      "end": 4829,
      "loc": {
        "start": {
          "line": 138,
          "column": 75
        },
        "end": {
          "line": 138,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 4842,
      "end": 4856,
      "loc": {
        "start": {
          "line": 139,
          "column": 12
        },
        "end": {
          "line": 139,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4856,
      "end": 4857,
      "loc": {
        "start": {
          "line": 139,
          "column": 26
        },
        "end": {
          "line": 139,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 4857,
      "end": 4860,
      "loc": {
        "start": {
          "line": 139,
          "column": 27
        },
        "end": {
          "line": 139,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4860,
      "end": 4861,
      "loc": {
        "start": {
          "line": 139,
          "column": 30
        },
        "end": {
          "line": 139,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseId",
      "start": 4861,
      "end": 4867,
      "loc": {
        "start": {
          "line": 139,
          "column": 31
        },
        "end": {
          "line": 139,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4867,
      "end": 4868,
      "loc": {
        "start": {
          "line": 139,
          "column": 37
        },
        "end": {
          "line": 139,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4868,
      "end": 4869,
      "loc": {
        "start": {
          "line": 139,
          "column": 38
        },
        "end": {
          "line": 139,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 4869,
      "end": 4873,
      "loc": {
        "start": {
          "line": 139,
          "column": 39
        },
        "end": {
          "line": 139,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4873,
      "end": 4874,
      "loc": {
        "start": {
          "line": 139,
          "column": 43
        },
        "end": {
          "line": 139,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 4874,
      "end": 4879,
      "loc": {
        "start": {
          "line": 139,
          "column": 44
        },
        "end": {
          "line": 139,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4879,
      "end": 4880,
      "loc": {
        "start": {
          "line": 139,
          "column": 49
        },
        "end": {
          "line": 139,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4880,
      "end": 4881,
      "loc": {
        "start": {
          "line": 139,
          "column": 50
        },
        "end": {
          "line": 139,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4890,
      "end": 4891,
      "loc": {
        "start": {
          "line": 140,
          "column": 8
        },
        "end": {
          "line": 140,
          "column": 9
        }
      }
    },
    {
      "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": 4900,
      "end": 4902,
      "loc": {
        "start": {
          "line": 141,
          "column": 8
        },
        "end": {
          "line": 141,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4903,
      "end": 4904,
      "loc": {
        "start": {
          "line": 141,
          "column": 11
        },
        "end": {
          "line": 141,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 4904,
      "end": 4918,
      "loc": {
        "start": {
          "line": 141,
          "column": 12
        },
        "end": {
          "line": 141,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4918,
      "end": 4919,
      "loc": {
        "start": {
          "line": 141,
          "column": 26
        },
        "end": {
          "line": 141,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "size",
      "start": 4919,
      "end": 4923,
      "loc": {
        "start": {
          "line": 141,
          "column": 27
        },
        "end": {
          "line": 141,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 4924,
      "end": 4927,
      "loc": {
        "start": {
          "line": 141,
          "column": 32
        },
        "end": {
          "line": 141,
          "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": 4928,
      "end": 4929,
      "loc": {
        "start": {
          "line": 141,
          "column": 36
        },
        "end": {
          "line": 141,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4929,
      "end": 4930,
      "loc": {
        "start": {
          "line": 141,
          "column": 37
        },
        "end": {
          "line": 141,
          "column": 38
        }
      }
    },
    {
      "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": 4931,
      "end": 4937,
      "loc": {
        "start": {
          "line": 141,
          "column": 39
        },
        "end": {
          "line": 141,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4937,
      "end": 4938,
      "loc": {
        "start": {
          "line": 141,
          "column": 45
        },
        "end": {
          "line": 141,
          "column": 46
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "create rectangle filled with constraints icons for each base entity",
      "start": 4948,
      "end": 5017,
      "loc": {
        "start": {
          "line": 143,
          "column": 8
        },
        "end": {
          "line": 143,
          "column": 77
        }
      }
    },
    {
      "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": 5026,
      "end": 5029,
      "loc": {
        "start": {
          "line": 144,
          "column": 8
        },
        "end": {
          "line": 144,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 5030,
      "end": 5040,
      "loc": {
        "start": {
          "line": 144,
          "column": 12
        },
        "end": {
          "line": 144,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5041,
      "end": 5042,
      "loc": {
        "start": {
          "line": 144,
          "column": 23
        },
        "end": {
          "line": 144,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Array",
      "start": 5043,
      "end": 5048,
      "loc": {
        "start": {
          "line": 144,
          "column": 25
        },
        "end": {
          "line": 144,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5048,
      "end": 5049,
      "loc": {
        "start": {
          "line": 144,
          "column": 30
        },
        "end": {
          "line": 144,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 5049,
      "end": 5053,
      "loc": {
        "start": {
          "line": 144,
          "column": 31
        },
        "end": {
          "line": 144,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5053,
      "end": 5054,
      "loc": {
        "start": {
          "line": 144,
          "column": 35
        },
        "end": {
          "line": 144,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 5054,
      "end": 5068,
      "loc": {
        "start": {
          "line": 144,
          "column": 36
        },
        "end": {
          "line": 144,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5068,
      "end": 5069,
      "loc": {
        "start": {
          "line": 144,
          "column": 50
        },
        "end": {
          "line": 144,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 5069,
      "end": 5073,
      "loc": {
        "start": {
          "line": 144,
          "column": 51
        },
        "end": {
          "line": 144,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5073,
      "end": 5074,
      "loc": {
        "start": {
          "line": 144,
          "column": 55
        },
        "end": {
          "line": 144,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5074,
      "end": 5075,
      "loc": {
        "start": {
          "line": 144,
          "column": 56
        },
        "end": {
          "line": 144,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5075,
      "end": 5076,
      "loc": {
        "start": {
          "line": 144,
          "column": 57
        },
        "end": {
          "line": 144,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5076,
      "end": 5077,
      "loc": {
        "start": {
          "line": 144,
          "column": 58
        },
        "end": {
          "line": 144,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "map",
      "start": 5077,
      "end": 5080,
      "loc": {
        "start": {
          "line": 144,
          "column": 59
        },
        "end": {
          "line": 144,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5080,
      "end": 5081,
      "loc": {
        "start": {
          "line": 144,
          "column": 62
        },
        "end": {
          "line": 144,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5081,
      "end": 5083,
      "loc": {
        "start": {
          "line": 144,
          "column": 63
        },
        "end": {
          "line": 144,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5084,
      "end": 5086,
      "loc": {
        "start": {
          "line": 144,
          "column": 66
        },
        "end": {
          "line": 144,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5087,
      "end": 5088,
      "loc": {
        "start": {
          "line": 144,
          "column": 69
        },
        "end": {
          "line": 144,
          "column": 70
        }
      }
    },
    {
      "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": 5101,
      "end": 5107,
      "loc": {
        "start": {
          "line": 145,
          "column": 12
        },
        "end": {
          "line": 145,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5108,
      "end": 5109,
      "loc": {
        "start": {
          "line": 145,
          "column": 19
        },
        "end": {
          "line": 145,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5126,
      "end": 5128,
      "loc": {
        "start": {
          "line": 146,
          "column": 16
        },
        "end": {
          "line": 146,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5128,
      "end": 5129,
      "loc": {
        "start": {
          "line": 146,
          "column": 18
        },
        "end": {
          "line": 146,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 5146,
      "end": 5152,
      "loc": {
        "start": {
          "line": 147,
          "column": 16
        },
        "end": {
          "line": 147,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5152,
      "end": 5153,
      "loc": {
        "start": {
          "line": 147,
          "column": 22
        },
        "end": {
          "line": 147,
          "column": 23
        }
      }
    },
    {
      "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": 5154,
      "end": 5158,
      "loc": {
        "start": {
          "line": 147,
          "column": 24
        },
        "end": {
          "line": 147,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5158,
      "end": 5159,
      "loc": {
        "start": {
          "line": 147,
          "column": 28
        },
        "end": {
          "line": 147,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getKeyPosition",
      "start": 5159,
      "end": 5173,
      "loc": {
        "start": {
          "line": 147,
          "column": 29
        },
        "end": {
          "line": 147,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5173,
      "end": 5174,
      "loc": {
        "start": {
          "line": 147,
          "column": 43
        },
        "end": {
          "line": 147,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5174,
      "end": 5176,
      "loc": {
        "start": {
          "line": 147,
          "column": 44
        },
        "end": {
          "line": 147,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5176,
      "end": 5177,
      "loc": {
        "start": {
          "line": 147,
          "column": 46
        },
        "end": {
          "line": 147,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5177,
      "end": 5178,
      "loc": {
        "start": {
          "line": 147,
          "column": 47
        },
        "end": {
          "line": 147,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 5195,
      "end": 5198,
      "loc": {
        "start": {
          "line": 148,
          "column": 16
        },
        "end": {
          "line": 148,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5198,
      "end": 5199,
      "loc": {
        "start": {
          "line": 148,
          "column": 19
        },
        "end": {
          "line": 148,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 5200,
      "end": 5214,
      "loc": {
        "start": {
          "line": 148,
          "column": 21
        },
        "end": {
          "line": 148,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5214,
      "end": 5215,
      "loc": {
        "start": {
          "line": 148,
          "column": 35
        },
        "end": {
          "line": 148,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 5215,
      "end": 5218,
      "loc": {
        "start": {
          "line": 148,
          "column": 36
        },
        "end": {
          "line": 148,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5218,
      "end": 5219,
      "loc": {
        "start": {
          "line": 148,
          "column": 39
        },
        "end": {
          "line": 148,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5219,
      "end": 5221,
      "loc": {
        "start": {
          "line": 148,
          "column": 40
        },
        "end": {
          "line": 148,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5221,
      "end": 5222,
      "loc": {
        "start": {
          "line": 148,
          "column": 42
        },
        "end": {
          "line": 148,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5222,
      "end": 5223,
      "loc": {
        "start": {
          "line": 148,
          "column": 43
        },
        "end": {
          "line": 148,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 5223,
      "end": 5229,
      "loc": {
        "start": {
          "line": 148,
          "column": 44
        },
        "end": {
          "line": 148,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5229,
      "end": 5230,
      "loc": {
        "start": {
          "line": 148,
          "column": 50
        },
        "end": {
          "line": 148,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5243,
      "end": 5244,
      "loc": {
        "start": {
          "line": 149,
          "column": 12
        },
        "end": {
          "line": 149,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5244,
      "end": 5245,
      "loc": {
        "start": {
          "line": 149,
          "column": 13
        },
        "end": {
          "line": 149,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5254,
      "end": 5255,
      "loc": {
        "start": {
          "line": 150,
          "column": 8
        },
        "end": {
          "line": 150,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5255,
      "end": 5256,
      "loc": {
        "start": {
          "line": 150,
          "column": 9
        },
        "end": {
          "line": 150,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5256,
      "end": 5257,
      "loc": {
        "start": {
          "line": 150,
          "column": 10
        },
        "end": {
          "line": 150,
          "column": 11
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sort base entities (for stability)",
      "start": 5266,
      "end": 5302,
      "loc": {
        "start": {
          "line": 151,
          "column": 8
        },
        "end": {
          "line": 151,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 5311,
      "end": 5321,
      "loc": {
        "start": {
          "line": 152,
          "column": 8
        },
        "end": {
          "line": 152,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5321,
      "end": 5322,
      "loc": {
        "start": {
          "line": 152,
          "column": 18
        },
        "end": {
          "line": 152,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sort",
      "start": 5322,
      "end": 5326,
      "loc": {
        "start": {
          "line": 152,
          "column": 19
        },
        "end": {
          "line": 152,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5326,
      "end": 5327,
      "loc": {
        "start": {
          "line": 152,
          "column": 23
        },
        "end": {
          "line": 152,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5327,
      "end": 5328,
      "loc": {
        "start": {
          "line": 152,
          "column": 24
        },
        "end": {
          "line": 152,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "a",
      "start": 5328,
      "end": 5329,
      "loc": {
        "start": {
          "line": 152,
          "column": 25
        },
        "end": {
          "line": 152,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5329,
      "end": 5330,
      "loc": {
        "start": {
          "line": 152,
          "column": 26
        },
        "end": {
          "line": 152,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "b",
      "start": 5331,
      "end": 5332,
      "loc": {
        "start": {
          "line": 152,
          "column": 28
        },
        "end": {
          "line": 152,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5332,
      "end": 5333,
      "loc": {
        "start": {
          "line": 152,
          "column": 29
        },
        "end": {
          "line": 152,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5334,
      "end": 5336,
      "loc": {
        "start": {
          "line": 152,
          "column": 31
        },
        "end": {
          "line": 152,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5337,
      "end": 5338,
      "loc": {
        "start": {
          "line": 152,
          "column": 34
        },
        "end": {
          "line": 152,
          "column": 35
        }
      }
    },
    {
      "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": 5351,
      "end": 5357,
      "loc": {
        "start": {
          "line": 153,
          "column": 12
        },
        "end": {
          "line": 153,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "a",
      "start": 5358,
      "end": 5359,
      "loc": {
        "start": {
          "line": 153,
          "column": 19
        },
        "end": {
          "line": 153,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5359,
      "end": 5360,
      "loc": {
        "start": {
          "line": 153,
          "column": 20
        },
        "end": {
          "line": 153,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5360,
      "end": 5362,
      "loc": {
        "start": {
          "line": 153,
          "column": 21
        },
        "end": {
          "line": 153,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 5363,
      "end": 5364,
      "loc": {
        "start": {
          "line": 153,
          "column": 24
        },
        "end": {
          "line": 153,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "b",
      "start": 5365,
      "end": 5366,
      "loc": {
        "start": {
          "line": 153,
          "column": 26
        },
        "end": {
          "line": 153,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5366,
      "end": 5367,
      "loc": {
        "start": {
          "line": 153,
          "column": 27
        },
        "end": {
          "line": 153,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 5367,
      "end": 5369,
      "loc": {
        "start": {
          "line": 153,
          "column": 28
        },
        "end": {
          "line": 153,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5369,
      "end": 5370,
      "loc": {
        "start": {
          "line": 153,
          "column": 30
        },
        "end": {
          "line": 153,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5379,
      "end": 5380,
      "loc": {
        "start": {
          "line": 154,
          "column": 8
        },
        "end": {
          "line": 154,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5380,
      "end": 5381,
      "loc": {
        "start": {
          "line": 154,
          "column": 9
        },
        "end": {
          "line": 154,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5381,
      "end": 5382,
      "loc": {
        "start": {
          "line": 154,
          "column": 10
        },
        "end": {
          "line": 154,
          "column": 11
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "minimal distance between rectangles (in iconSize units)",
      "start": 5392,
      "end": 5449,
      "loc": {
        "start": {
          "line": 156,
          "column": 8
        },
        "end": {
          "line": 156,
          "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": 5458,
      "end": 5463,
      "loc": {
        "start": {
          "line": 157,
          "column": 8
        },
        "end": {
          "line": 157,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "colEps",
      "start": 5464,
      "end": 5470,
      "loc": {
        "start": {
          "line": 157,
          "column": 14
        },
        "end": {
          "line": 157,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5471,
      "end": 5472,
      "loc": {
        "start": {
          "line": 157,
          "column": 21
        },
        "end": {
          "line": 157,
          "column": 22
        }
      }
    },
    {
      "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": 5473,
      "end": 5476,
      "loc": {
        "start": {
          "line": 157,
          "column": 23
        },
        "end": {
          "line": 157,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5476,
      "end": 5477,
      "loc": {
        "start": {
          "line": 157,
          "column": 26
        },
        "end": {
          "line": 157,
          "column": 27
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "minimal vertical distance from key position to rectangle's center (in iconSize units)",
      "start": 5486,
      "end": 5573,
      "loc": {
        "start": {
          "line": 158,
          "column": 8
        },
        "end": {
          "line": 158,
          "column": 95
        }
      }
    },
    {
      "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": 5582,
      "end": 5587,
      "loc": {
        "start": {
          "line": 159,
          "column": 8
        },
        "end": {
          "line": 159,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "minOffsetH",
      "start": 5588,
      "end": 5598,
      "loc": {
        "start": {
          "line": 159,
          "column": 14
        },
        "end": {
          "line": 159,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5599,
      "end": 5600,
      "loc": {
        "start": {
          "line": 159,
          "column": 25
        },
        "end": {
          "line": 159,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0.75,
      "start": 5601,
      "end": 5605,
      "loc": {
        "start": {
          "line": 159,
          "column": 27
        },
        "end": {
          "line": 159,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5605,
      "end": 5606,
      "loc": {
        "start": {
          "line": 159,
          "column": 31
        },
        "end": {
          "line": 159,
          "column": 32
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "set positions for all entity lists (each one is rectangle)",
      "start": 5616,
      "end": 5676,
      "loc": {
        "start": {
          "line": 161,
          "column": 8
        },
        "end": {
          "line": 161,
          "column": 68
        }
      }
    },
    {
      "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": 5685,
      "end": 5688,
      "loc": {
        "start": {
          "line": 162,
          "column": 8
        },
        "end": {
          "line": 162,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5689,
      "end": 5690,
      "loc": {
        "start": {
          "line": 162,
          "column": 12
        },
        "end": {
          "line": 162,
          "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": 5690,
      "end": 5693,
      "loc": {
        "start": {
          "line": 162,
          "column": 13
        },
        "end": {
          "line": 162,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5694,
      "end": 5695,
      "loc": {
        "start": {
          "line": 162,
          "column": 17
        },
        "end": {
          "line": 162,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5696,
      "end": 5697,
      "loc": {
        "start": {
          "line": 162,
          "column": 19
        },
        "end": {
          "line": 162,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 5698,
      "end": 5699,
      "loc": {
        "start": {
          "line": 162,
          "column": 21
        },
        "end": {
          "line": 162,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5699,
      "end": 5700,
      "loc": {
        "start": {
          "line": 162,
          "column": 22
        },
        "end": {
          "line": 162,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5701,
      "end": 5702,
      "loc": {
        "start": {
          "line": 162,
          "column": 24
        },
        "end": {
          "line": 162,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 5703,
      "end": 5704,
      "loc": {
        "start": {
          "line": 162,
          "column": 26
        },
        "end": {
          "line": 162,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 5705,
      "end": 5715,
      "loc": {
        "start": {
          "line": 162,
          "column": 28
        },
        "end": {
          "line": 162,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5715,
      "end": 5716,
      "loc": {
        "start": {
          "line": 162,
          "column": 38
        },
        "end": {
          "line": 162,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 5716,
      "end": 5722,
      "loc": {
        "start": {
          "line": 162,
          "column": 39
        },
        "end": {
          "line": 162,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5722,
      "end": 5723,
      "loc": {
        "start": {
          "line": 162,
          "column": 45
        },
        "end": {
          "line": 162,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5724,
      "end": 5725,
      "loc": {
        "start": {
          "line": 162,
          "column": 47
        },
        "end": {
          "line": 162,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 5725,
      "end": 5727,
      "loc": {
        "start": {
          "line": 162,
          "column": 48
        },
        "end": {
          "line": 162,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5727,
      "end": 5728,
      "loc": {
        "start": {
          "line": 162,
          "column": 50
        },
        "end": {
          "line": 162,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5729,
      "end": 5730,
      "loc": {
        "start": {
          "line": 162,
          "column": 52
        },
        "end": {
          "line": 162,
          "column": 53
        }
      }
    },
    {
      "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": 5743,
      "end": 5746,
      "loc": {
        "start": {
          "line": 163,
          "column": 12
        },
        "end": {
          "line": 163,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 5747,
      "end": 5754,
      "loc": {
        "start": {
          "line": 163,
          "column": 16
        },
        "end": {
          "line": 163,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5755,
      "end": 5756,
      "loc": {
        "start": {
          "line": 163,
          "column": 24
        },
        "end": {
          "line": 163,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 5757,
      "end": 5767,
      "loc": {
        "start": {
          "line": 163,
          "column": 26
        },
        "end": {
          "line": 163,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5767,
      "end": 5768,
      "loc": {
        "start": {
          "line": 163,
          "column": 36
        },
        "end": {
          "line": 163,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5768,
      "end": 5769,
      "loc": {
        "start": {
          "line": 163,
          "column": 37
        },
        "end": {
          "line": 163,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5769,
      "end": 5770,
      "loc": {
        "start": {
          "line": 163,
          "column": 38
        },
        "end": {
          "line": 163,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5770,
      "end": 5771,
      "loc": {
        "start": {
          "line": 163,
          "column": 39
        },
        "end": {
          "line": 163,
          "column": 40
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "position of rectangle center, which is closest to key point",
      "start": 5785,
      "end": 5846,
      "loc": {
        "start": {
          "line": 165,
          "column": 12
        },
        "end": {
          "line": 165,
          "column": 73
        }
      }
    },
    {
      "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": 5859,
      "end": 5862,
      "loc": {
        "start": {
          "line": 166,
          "column": 12
        },
        "end": {
          "line": 166,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestDistSqr",
      "start": 5863,
      "end": 5874,
      "loc": {
        "start": {
          "line": 166,
          "column": 16
        },
        "end": {
          "line": 166,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5875,
      "end": 5876,
      "loc": {
        "start": {
          "line": 166,
          "column": 28
        },
        "end": {
          "line": 166,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1e+50,
      "start": 5877,
      "end": 5881,
      "loc": {
        "start": {
          "line": 166,
          "column": 30
        },
        "end": {
          "line": 166,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5881,
      "end": 5882,
      "loc": {
        "start": {
          "line": 166,
          "column": 34
        },
        "end": {
          "line": 166,
          "column": 35
        }
      }
    },
    {
      "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": 5895,
      "end": 5898,
      "loc": {
        "start": {
          "line": 167,
          "column": 12
        },
        "end": {
          "line": 167,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestX",
      "start": 5899,
      "end": 5904,
      "loc": {
        "start": {
          "line": 167,
          "column": 16
        },
        "end": {
          "line": 167,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5904,
      "end": 5905,
      "loc": {
        "start": {
          "line": 167,
          "column": 21
        },
        "end": {
          "line": 167,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestY",
      "start": 5906,
      "end": 5911,
      "loc": {
        "start": {
          "line": 167,
          "column": 23
        },
        "end": {
          "line": 167,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5911,
      "end": 5912,
      "loc": {
        "start": {
          "line": 167,
          "column": 28
        },
        "end": {
          "line": 167,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectanglePlaceLoop",
      "start": 5926,
      "end": 5944,
      "loc": {
        "start": {
          "line": 169,
          "column": 12
        },
        "end": {
          "line": 169,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5944,
      "end": 5945,
      "loc": {
        "start": {
          "line": 169,
          "column": 30
        },
        "end": {
          "line": 169,
          "column": 31
        }
      }
    },
    {
      "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": 5946,
      "end": 5949,
      "loc": {
        "start": {
          "line": 169,
          "column": 32
        },
        "end": {
          "line": 169,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5950,
      "end": 5951,
      "loc": {
        "start": {
          "line": 169,
          "column": 36
        },
        "end": {
          "line": 169,
          "column": 37
        }
      }
    },
    {
      "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": 5951,
      "end": 5954,
      "loc": {
        "start": {
          "line": 169,
          "column": 37
        },
        "end": {
          "line": 169,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vk",
      "start": 5955,
      "end": 5957,
      "loc": {
        "start": {
          "line": 169,
          "column": 41
        },
        "end": {
          "line": 169,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5958,
      "end": 5959,
      "loc": {
        "start": {
          "line": 169,
          "column": 44
        },
        "end": {
          "line": 169,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 5960,
      "end": 5961,
      "loc": {
        "start": {
          "line": 169,
          "column": 46
        },
        "end": {
          "line": 169,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5961,
      "end": 5962,
      "loc": {
        "start": {
          "line": 169,
          "column": 47
        },
        "end": {
          "line": 169,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5963,
      "end": 5964,
      "loc": {
        "start": {
          "line": 169,
          "column": 49
        },
        "end": {
          "line": 169,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vk",
      "start": 5965,
      "end": 5967,
      "loc": {
        "start": {
          "line": 169,
          "column": 51
        },
        "end": {
          "line": 169,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 5967,
      "end": 5969,
      "loc": {
        "start": {
          "line": 169,
          "column": 53
        },
        "end": {
          "line": 169,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5969,
      "end": 5970,
      "loc": {
        "start": {
          "line": 169,
          "column": 55
        },
        "end": {
          "line": 169,
          "column": 56
        }
      }
    },
    {
      "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": 5987,
      "end": 5990,
      "loc": {
        "start": {
          "line": 170,
          "column": 16
        },
        "end": {
          "line": 170,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5991,
      "end": 5992,
      "loc": {
        "start": {
          "line": 170,
          "column": 20
        },
        "end": {
          "line": 170,
          "column": 21
        }
      }
    },
    {
      "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": 5992,
      "end": 5995,
      "loc": {
        "start": {
          "line": 170,
          "column": 21
        },
        "end": {
          "line": 170,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vs",
      "start": 5996,
      "end": 5998,
      "loc": {
        "start": {
          "line": 170,
          "column": 25
        },
        "end": {
          "line": 170,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5999,
      "end": 6000,
      "loc": {
        "start": {
          "line": 170,
          "column": 28
        },
        "end": {
          "line": 170,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6001,
      "end": 6002,
      "loc": {
        "start": {
          "line": 170,
          "column": 30
        },
        "end": {
          "line": 170,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6002,
      "end": 6003,
      "loc": {
        "start": {
          "line": 170,
          "column": 31
        },
        "end": {
          "line": 170,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vs",
      "start": 6004,
      "end": 6006,
      "loc": {
        "start": {
          "line": 170,
          "column": 33
        },
        "end": {
          "line": 170,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">=",
      "start": 6007,
      "end": 6009,
      "loc": {
        "start": {
          "line": 170,
          "column": 36
        },
        "end": {
          "line": 170,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6010,
      "end": 6011,
      "loc": {
        "start": {
          "line": 170,
          "column": 39
        },
        "end": {
          "line": 170,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6011,
      "end": 6012,
      "loc": {
        "start": {
          "line": 170,
          "column": 40
        },
        "end": {
          "line": 170,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6012,
      "end": 6013,
      "loc": {
        "start": {
          "line": 170,
          "column": 41
        },
        "end": {
          "line": 170,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vs",
      "start": 6014,
      "end": 6016,
      "loc": {
        "start": {
          "line": 170,
          "column": 43
        },
        "end": {
          "line": 170,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "-=",
      "start": 6017,
      "end": 6019,
      "loc": {
        "start": {
          "line": 170,
          "column": 46
        },
        "end": {
          "line": 170,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 2,
      "start": 6020,
      "end": 6021,
      "loc": {
        "start": {
          "line": 170,
          "column": 49
        },
        "end": {
          "line": 170,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6021,
      "end": 6022,
      "loc": {
        "start": {
          "line": 170,
          "column": 50
        },
        "end": {
          "line": 170,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6023,
      "end": 6024,
      "loc": {
        "start": {
          "line": 170,
          "column": 52
        },
        "end": {
          "line": 170,
          "column": 53
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "try to put into the vertical slice:",
      "start": 6045,
      "end": 6082,
      "loc": {
        "start": {
          "line": 171,
          "column": 20
        },
        "end": {
          "line": 171,
          "column": 57
        }
      }
    },
    {
      "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": 6103,
      "end": 6106,
      "loc": {
        "start": {
          "line": 172,
          "column": 20
        },
        "end": {
          "line": 172,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cy",
      "start": 6107,
      "end": 6109,
      "loc": {
        "start": {
          "line": 172,
          "column": 24
        },
        "end": {
          "line": 172,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6110,
      "end": 6111,
      "loc": {
        "start": {
          "line": 172,
          "column": 27
        },
        "end": {
          "line": 172,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 6112,
      "end": 6119,
      "loc": {
        "start": {
          "line": 172,
          "column": 29
        },
        "end": {
          "line": 172,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6119,
      "end": 6120,
      "loc": {
        "start": {
          "line": 172,
          "column": 36
        },
        "end": {
          "line": 172,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 6120,
      "end": 6126,
      "loc": {
        "start": {
          "line": 172,
          "column": 37
        },
        "end": {
          "line": 172,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6126,
      "end": 6127,
      "loc": {
        "start": {
          "line": 172,
          "column": 43
        },
        "end": {
          "line": 172,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 6127,
      "end": 6128,
      "loc": {
        "start": {
          "line": 172,
          "column": 44
        },
        "end": {
          "line": 172,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 6129,
      "end": 6130,
      "loc": {
        "start": {
          "line": 172,
          "column": 46
        },
        "end": {
          "line": 172,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vs",
      "start": 6131,
      "end": 6133,
      "loc": {
        "start": {
          "line": 172,
          "column": 48
        },
        "end": {
          "line": 172,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 6134,
      "end": 6135,
      "loc": {
        "start": {
          "line": 172,
          "column": 51
        },
        "end": {
          "line": 172,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6136,
      "end": 6137,
      "loc": {
        "start": {
          "line": 172,
          "column": 53
        },
        "end": {
          "line": 172,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "minOffsetH",
      "start": 6137,
      "end": 6147,
      "loc": {
        "start": {
          "line": 172,
          "column": 54
        },
        "end": {
          "line": 172,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 6148,
      "end": 6149,
      "loc": {
        "start": {
          "line": 172,
          "column": 65
        },
        "end": {
          "line": 172,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vk",
      "start": 6150,
      "end": 6152,
      "loc": {
        "start": {
          "line": 172,
          "column": 67
        },
        "end": {
          "line": 172,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 6153,
      "end": 6154,
      "loc": {
        "start": {
          "line": 172,
          "column": 70
        },
        "end": {
          "line": 172,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6155,
      "end": 6156,
      "loc": {
        "start": {
          "line": 172,
          "column": 72
        },
        "end": {
          "line": 172,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6156,
      "end": 6157,
      "loc": {
        "start": {
          "line": 172,
          "column": 73
        },
        "end": {
          "line": 172,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 6158,
      "end": 6159,
      "loc": {
        "start": {
          "line": 172,
          "column": 75
        },
        "end": {
          "line": 172,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "colEps",
      "start": 6160,
      "end": 6166,
      "loc": {
        "start": {
          "line": 172,
          "column": 77
        },
        "end": {
          "line": 172,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6166,
      "end": 6167,
      "loc": {
        "start": {
          "line": 172,
          "column": 83
        },
        "end": {
          "line": 172,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6167,
      "end": 6168,
      "loc": {
        "start": {
          "line": 172,
          "column": 84
        },
        "end": {
          "line": 172,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 6169,
      "end": 6170,
      "loc": {
        "start": {
          "line": 172,
          "column": 86
        },
        "end": {
          "line": 172,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 6171,
      "end": 6179,
      "loc": {
        "start": {
          "line": 172,
          "column": 88
        },
        "end": {
          "line": 172,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6179,
      "end": 6180,
      "loc": {
        "start": {
          "line": 172,
          "column": 96
        },
        "end": {
          "line": 172,
          "column": 97
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "loop termination criterion",
      "start": 6201,
      "end": 6229,
      "loc": {
        "start": {
          "line": 173,
          "column": 20
        },
        "end": {
          "line": 173,
          "column": 48
        }
      }
    },
    {
      "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": 6250,
      "end": 6252,
      "loc": {
        "start": {
          "line": 174,
          "column": 20
        },
        "end": {
          "line": 174,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6253,
      "end": 6254,
      "loc": {
        "start": {
          "line": 174,
          "column": 23
        },
        "end": {
          "line": 174,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sqr",
      "start": 6254,
      "end": 6257,
      "loc": {
        "start": {
          "line": 174,
          "column": 24
        },
        "end": {
          "line": 174,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6257,
      "end": 6258,
      "loc": {
        "start": {
          "line": 174,
          "column": 27
        },
        "end": {
          "line": 174,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cy",
      "start": 6258,
      "end": 6260,
      "loc": {
        "start": {
          "line": 174,
          "column": 28
        },
        "end": {
          "line": 174,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6261,
      "end": 6262,
      "loc": {
        "start": {
          "line": 174,
          "column": 31
        },
        "end": {
          "line": 174,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 6263,
      "end": 6270,
      "loc": {
        "start": {
          "line": 174,
          "column": 33
        },
        "end": {
          "line": 174,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6270,
      "end": 6271,
      "loc": {
        "start": {
          "line": 174,
          "column": 40
        },
        "end": {
          "line": 174,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 6271,
      "end": 6277,
      "loc": {
        "start": {
          "line": 174,
          "column": 41
        },
        "end": {
          "line": 174,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6277,
      "end": 6278,
      "loc": {
        "start": {
          "line": 174,
          "column": 47
        },
        "end": {
          "line": 174,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 6278,
      "end": 6279,
      "loc": {
        "start": {
          "line": 174,
          "column": 48
        },
        "end": {
          "line": 174,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6279,
      "end": 6280,
      "loc": {
        "start": {
          "line": 174,
          "column": 49
        },
        "end": {
          "line": 174,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">=",
      "start": 6281,
      "end": 6283,
      "loc": {
        "start": {
          "line": 174,
          "column": 51
        },
        "end": {
          "line": 174,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestDistSqr",
      "start": 6284,
      "end": 6295,
      "loc": {
        "start": {
          "line": 174,
          "column": 54
        },
        "end": {
          "line": 174,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6295,
      "end": 6296,
      "loc": {
        "start": {
          "line": 174,
          "column": 65
        },
        "end": {
          "line": 174,
          "column": 66
        }
      }
    },
    {
      "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": 6297,
      "end": 6302,
      "loc": {
        "start": {
          "line": 174,
          "column": 67
        },
        "end": {
          "line": 174,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectanglePlaceLoop",
      "start": 6303,
      "end": 6321,
      "loc": {
        "start": {
          "line": 174,
          "column": 73
        },
        "end": {
          "line": 174,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6321,
      "end": 6322,
      "loc": {
        "start": {
          "line": 174,
          "column": 91
        },
        "end": {
          "line": 174,
          "column": 92
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "try both direction for horizontal moving",
      "start": 6344,
      "end": 6386,
      "loc": {
        "start": {
          "line": 176,
          "column": 20
        },
        "end": {
          "line": 176,
          "column": 62
        }
      }
    },
    {
      "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": 6407,
      "end": 6410,
      "loc": {
        "start": {
          "line": 177,
          "column": 20
        },
        "end": {
          "line": 177,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6411,
      "end": 6412,
      "loc": {
        "start": {
          "line": 177,
          "column": 24
        },
        "end": {
          "line": 177,
          "column": 25
        }
      }
    },
    {
      "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": 6412,
      "end": 6415,
      "loc": {
        "start": {
          "line": 177,
          "column": 25
        },
        "end": {
          "line": 177,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 6416,
      "end": 6418,
      "loc": {
        "start": {
          "line": 177,
          "column": 29
        },
        "end": {
          "line": 177,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6419,
      "end": 6420,
      "loc": {
        "start": {
          "line": 177,
          "column": 32
        },
        "end": {
          "line": 177,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6421,
      "end": 6422,
      "loc": {
        "start": {
          "line": 177,
          "column": 34
        },
        "end": {
          "line": 177,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6422,
      "end": 6423,
      "loc": {
        "start": {
          "line": 177,
          "column": 35
        },
        "end": {
          "line": 177,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 6424,
      "end": 6426,
      "loc": {
        "start": {
          "line": 177,
          "column": 37
        },
        "end": {
          "line": 177,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">=",
      "start": 6427,
      "end": 6429,
      "loc": {
        "start": {
          "line": 177,
          "column": 40
        },
        "end": {
          "line": 177,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6430,
      "end": 6431,
      "loc": {
        "start": {
          "line": 177,
          "column": 43
        },
        "end": {
          "line": 177,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6431,
      "end": 6432,
      "loc": {
        "start": {
          "line": 177,
          "column": 44
        },
        "end": {
          "line": 177,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6432,
      "end": 6433,
      "loc": {
        "start": {
          "line": 177,
          "column": 45
        },
        "end": {
          "line": 177,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 6434,
      "end": 6436,
      "loc": {
        "start": {
          "line": 177,
          "column": 47
        },
        "end": {
          "line": 177,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "-=",
      "start": 6437,
      "end": 6439,
      "loc": {
        "start": {
          "line": 177,
          "column": 50
        },
        "end": {
          "line": 177,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 2,
      "start": 6440,
      "end": 6441,
      "loc": {
        "start": {
          "line": 177,
          "column": 53
        },
        "end": {
          "line": 177,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6441,
      "end": 6442,
      "loc": {
        "start": {
          "line": 177,
          "column": 54
        },
        "end": {
          "line": 177,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6443,
      "end": 6444,
      "loc": {
        "start": {
          "line": 177,
          "column": 56
        },
        "end": {
          "line": 177,
          "column": 57
        }
      }
    },
    {
      "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": 6469,
      "end": 6472,
      "loc": {
        "start": {
          "line": 178,
          "column": 24
        },
        "end": {
          "line": 178,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 6473,
      "end": 6475,
      "loc": {
        "start": {
          "line": 178,
          "column": 28
        },
        "end": {
          "line": 178,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6476,
      "end": 6477,
      "loc": {
        "start": {
          "line": 178,
          "column": 31
        },
        "end": {
          "line": 178,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 6478,
      "end": 6485,
      "loc": {
        "start": {
          "line": 178,
          "column": 33
        },
        "end": {
          "line": 178,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6485,
      "end": 6486,
      "loc": {
        "start": {
          "line": 178,
          "column": 40
        },
        "end": {
          "line": 178,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 6486,
      "end": 6492,
      "loc": {
        "start": {
          "line": 178,
          "column": 41
        },
        "end": {
          "line": 178,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6492,
      "end": 6493,
      "loc": {
        "start": {
          "line": 178,
          "column": 47
        },
        "end": {
          "line": 178,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 6493,
      "end": 6494,
      "loc": {
        "start": {
          "line": 178,
          "column": 48
        },
        "end": {
          "line": 178,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6494,
      "end": 6495,
      "loc": {
        "start": {
          "line": 178,
          "column": 49
        },
        "end": {
          "line": 178,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "do",
        "keyword": "do",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "do",
      "start": 6521,
      "end": 6523,
      "loc": {
        "start": {
          "line": 180,
          "column": 24
        },
        "end": {
          "line": 180,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6524,
      "end": 6525,
      "loc": {
        "start": {
          "line": 180,
          "column": 27
        },
        "end": {
          "line": 180,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "var",
        "keyword": "var",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "var",
      "start": 6554,
      "end": 6557,
      "loc": {
        "start": {
          "line": 181,
          "column": 28
        },
        "end": {
          "line": 181,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "moved",
      "start": 6558,
      "end": 6563,
      "loc": {
        "start": {
          "line": 181,
          "column": 32
        },
        "end": {
          "line": 181,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6564,
      "end": 6565,
      "loc": {
        "start": {
          "line": 181,
          "column": 38
        },
        "end": {
          "line": 181,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 6566,
      "end": 6571,
      "loc": {
        "start": {
          "line": 181,
          "column": 40
        },
        "end": {
          "line": 181,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6571,
      "end": 6572,
      "loc": {
        "start": {
          "line": 181,
          "column": 45
        },
        "end": {
          "line": 181,
          "column": 46
        }
      }
    },
    {
      "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": 6601,
      "end": 6604,
      "loc": {
        "start": {
          "line": 182,
          "column": 28
        },
        "end": {
          "line": 182,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6605,
      "end": 6606,
      "loc": {
        "start": {
          "line": 182,
          "column": 32
        },
        "end": {
          "line": 182,
          "column": 33
        }
      }
    },
    {
      "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": 6606,
      "end": 6609,
      "loc": {
        "start": {
          "line": 182,
          "column": 33
        },
        "end": {
          "line": 182,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "j",
      "start": 6610,
      "end": 6611,
      "loc": {
        "start": {
          "line": 182,
          "column": 37
        },
        "end": {
          "line": 182,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6612,
      "end": 6613,
      "loc": {
        "start": {
          "line": 182,
          "column": 39
        },
        "end": {
          "line": 182,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 6614,
      "end": 6615,
      "loc": {
        "start": {
          "line": 182,
          "column": 41
        },
        "end": {
          "line": 182,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6615,
      "end": 6616,
      "loc": {
        "start": {
          "line": 182,
          "column": 42
        },
        "end": {
          "line": 182,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "j",
      "start": 6617,
      "end": 6618,
      "loc": {
        "start": {
          "line": 182,
          "column": 44
        },
        "end": {
          "line": 182,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 6619,
      "end": 6620,
      "loc": {
        "start": {
          "line": 182,
          "column": 46
        },
        "end": {
          "line": 182,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 6621,
      "end": 6622,
      "loc": {
        "start": {
          "line": 182,
          "column": 48
        },
        "end": {
          "line": 182,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6622,
      "end": 6623,
      "loc": {
        "start": {
          "line": 182,
          "column": 49
        },
        "end": {
          "line": 182,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "j",
      "start": 6624,
      "end": 6625,
      "loc": {
        "start": {
          "line": 182,
          "column": 51
        },
        "end": {
          "line": 182,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 6625,
      "end": 6627,
      "loc": {
        "start": {
          "line": 182,
          "column": 52
        },
        "end": {
          "line": 182,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6627,
      "end": 6628,
      "loc": {
        "start": {
          "line": 182,
          "column": 54
        },
        "end": {
          "line": 182,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6629,
      "end": 6630,
      "loc": {
        "start": {
          "line": 182,
          "column": 56
        },
        "end": {
          "line": 182,
          "column": 57
        }
      }
    },
    {
      "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": 6663,
      "end": 6666,
      "loc": {
        "start": {
          "line": 183,
          "column": 32
        },
        "end": {
          "line": 183,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 6667,
      "end": 6675,
      "loc": {
        "start": {
          "line": 183,
          "column": 36
        },
        "end": {
          "line": 183,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6676,
      "end": 6677,
      "loc": {
        "start": {
          "line": 183,
          "column": 45
        },
        "end": {
          "line": 183,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 6678,
      "end": 6688,
      "loc": {
        "start": {
          "line": 183,
          "column": 47
        },
        "end": {
          "line": 183,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6688,
      "end": 6689,
      "loc": {
        "start": {
          "line": 183,
          "column": 57
        },
        "end": {
          "line": 183,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "j",
      "start": 6689,
      "end": 6690,
      "loc": {
        "start": {
          "line": 183,
          "column": 58
        },
        "end": {
          "line": 183,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6690,
      "end": 6691,
      "loc": {
        "start": {
          "line": 183,
          "column": 59
        },
        "end": {
          "line": 183,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6691,
      "end": 6692,
      "loc": {
        "start": {
          "line": 183,
          "column": 60
        },
        "end": {
          "line": 183,
          "column": 61
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "check if rectangles collide",
      "start": 6725,
      "end": 6754,
      "loc": {
        "start": {
          "line": 184,
          "column": 32
        },
        "end": {
          "line": 184,
          "column": 61
        }
      }
    },
    {
      "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": 6787,
      "end": 6789,
      "loc": {
        "start": {
          "line": 185,
          "column": 32
        },
        "end": {
          "line": 185,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6790,
      "end": 6791,
      "loc": {
        "start": {
          "line": 185,
          "column": 35
        },
        "end": {
          "line": 185,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Math",
      "start": 6791,
      "end": 6795,
      "loc": {
        "start": {
          "line": 185,
          "column": 36
        },
        "end": {
          "line": 185,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6795,
      "end": 6796,
      "loc": {
        "start": {
          "line": 185,
          "column": 40
        },
        "end": {
          "line": 185,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "abs",
      "start": 6796,
      "end": 6799,
      "loc": {
        "start": {
          "line": 185,
          "column": 41
        },
        "end": {
          "line": 185,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6799,
      "end": 6800,
      "loc": {
        "start": {
          "line": 185,
          "column": 44
        },
        "end": {
          "line": 185,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cy",
      "start": 6800,
      "end": 6802,
      "loc": {
        "start": {
          "line": 185,
          "column": 45
        },
        "end": {
          "line": 185,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6803,
      "end": 6804,
      "loc": {
        "start": {
          "line": 185,
          "column": 48
        },
        "end": {
          "line": 185,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 6805,
      "end": 6813,
      "loc": {
        "start": {
          "line": 185,
          "column": 50
        },
        "end": {
          "line": 185,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6813,
      "end": 6814,
      "loc": {
        "start": {
          "line": 185,
          "column": 58
        },
        "end": {
          "line": 185,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 6814,
      "end": 6820,
      "loc": {
        "start": {
          "line": 185,
          "column": 59
        },
        "end": {
          "line": 185,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6820,
      "end": 6821,
      "loc": {
        "start": {
          "line": 185,
          "column": 65
        },
        "end": {
          "line": 185,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 6821,
      "end": 6822,
      "loc": {
        "start": {
          "line": 185,
          "column": 66
        },
        "end": {
          "line": 185,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6822,
      "end": 6823,
      "loc": {
        "start": {
          "line": 185,
          "column": 67
        },
        "end": {
          "line": 185,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">=",
      "start": 6824,
      "end": 6826,
      "loc": {
        "start": {
          "line": 185,
          "column": 69
        },
        "end": {
          "line": 185,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6827,
      "end": 6828,
      "loc": {
        "start": {
          "line": 185,
          "column": 72
        },
        "end": {
          "line": 185,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 6828,
      "end": 6829,
      "loc": {
        "start": {
          "line": 185,
          "column": 73
        },
        "end": {
          "line": 185,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 6830,
      "end": 6831,
      "loc": {
        "start": {
          "line": 185,
          "column": 75
        },
        "end": {
          "line": 185,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "colEps",
      "start": 6832,
      "end": 6838,
      "loc": {
        "start": {
          "line": 185,
          "column": 77
        },
        "end": {
          "line": 185,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6838,
      "end": 6839,
      "loc": {
        "start": {
          "line": 185,
          "column": 83
        },
        "end": {
          "line": 185,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 6840,
      "end": 6841,
      "loc": {
        "start": {
          "line": 185,
          "column": 85
        },
        "end": {
          "line": 185,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 6842,
      "end": 6850,
      "loc": {
        "start": {
          "line": 185,
          "column": 87
        },
        "end": {
          "line": 185,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6851,
      "end": 6852,
      "loc": {
        "start": {
          "line": 185,
          "column": 96
        },
        "end": {
          "line": 185,
          "column": 97
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1e-9,
      "start": 6853,
      "end": 6857,
      "loc": {
        "start": {
          "line": 185,
          "column": 98
        },
        "end": {
          "line": 185,
          "column": 102
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6857,
      "end": 6858,
      "loc": {
        "start": {
          "line": 185,
          "column": 102
        },
        "end": {
          "line": 185,
          "column": 103
        }
      }
    },
    {
      "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": 6859,
      "end": 6867,
      "loc": {
        "start": {
          "line": 185,
          "column": 104
        },
        "end": {
          "line": 185,
          "column": 112
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6867,
      "end": 6868,
      "loc": {
        "start": {
          "line": 185,
          "column": 112
        },
        "end": {
          "line": 185,
          "column": 113
        }
      }
    },
    {
      "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": 6901,
      "end": 6903,
      "loc": {
        "start": {
          "line": 186,
          "column": 32
        },
        "end": {
          "line": 186,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6904,
      "end": 6905,
      "loc": {
        "start": {
          "line": 186,
          "column": 35
        },
        "end": {
          "line": 186,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Math",
      "start": 6942,
      "end": 6946,
      "loc": {
        "start": {
          "line": 187,
          "column": 36
        },
        "end": {
          "line": 187,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6946,
      "end": 6947,
      "loc": {
        "start": {
          "line": 187,
          "column": 40
        },
        "end": {
          "line": 187,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "abs",
      "start": 6947,
      "end": 6950,
      "loc": {
        "start": {
          "line": 187,
          "column": 41
        },
        "end": {
          "line": 187,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6950,
      "end": 6951,
      "loc": {
        "start": {
          "line": 187,
          "column": 44
        },
        "end": {
          "line": 187,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 6951,
      "end": 6953,
      "loc": {
        "start": {
          "line": 187,
          "column": 45
        },
        "end": {
          "line": 187,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 6954,
      "end": 6955,
      "loc": {
        "start": {
          "line": 187,
          "column": 48
        },
        "end": {
          "line": 187,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 6956,
      "end": 6964,
      "loc": {
        "start": {
          "line": 187,
          "column": 50
        },
        "end": {
          "line": 187,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6964,
      "end": 6965,
      "loc": {
        "start": {
          "line": 187,
          "column": 58
        },
        "end": {
          "line": 187,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 6965,
      "end": 6971,
      "loc": {
        "start": {
          "line": 187,
          "column": 59
        },
        "end": {
          "line": 187,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6971,
      "end": 6972,
      "loc": {
        "start": {
          "line": 187,
          "column": 65
        },
        "end": {
          "line": 187,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 6972,
      "end": 6973,
      "loc": {
        "start": {
          "line": 187,
          "column": 66
        },
        "end": {
          "line": 187,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6973,
      "end": 6974,
      "loc": {
        "start": {
          "line": 187,
          "column": 67
        },
        "end": {
          "line": 187,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">=",
      "start": 6975,
      "end": 6977,
      "loc": {
        "start": {
          "line": 187,
          "column": 69
        },
        "end": {
          "line": 187,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7014,
      "end": 7015,
      "loc": {
        "start": {
          "line": 188,
          "column": 36
        },
        "end": {
          "line": 188,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7015,
      "end": 7016,
      "loc": {
        "start": {
          "line": 188,
          "column": 37
        },
        "end": {
          "line": 188,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 7016,
      "end": 7023,
      "loc": {
        "start": {
          "line": 188,
          "column": 38
        },
        "end": {
          "line": 188,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7023,
      "end": 7024,
      "loc": {
        "start": {
          "line": 188,
          "column": 45
        },
        "end": {
          "line": 188,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 7024,
      "end": 7027,
      "loc": {
        "start": {
          "line": 188,
          "column": 46
        },
        "end": {
          "line": 188,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 7028,
      "end": 7029,
      "loc": {
        "start": {
          "line": 188,
          "column": 50
        },
        "end": {
          "line": 188,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 7030,
      "end": 7038,
      "loc": {
        "start": {
          "line": 188,
          "column": 52
        },
        "end": {
          "line": 188,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7038,
      "end": 7039,
      "loc": {
        "start": {
          "line": 188,
          "column": 60
        },
        "end": {
          "line": 188,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 7039,
      "end": 7042,
      "loc": {
        "start": {
          "line": 188,
          "column": 61
        },
        "end": {
          "line": 188,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7042,
      "end": 7043,
      "loc": {
        "start": {
          "line": 188,
          "column": 64
        },
        "end": {
          "line": 188,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7044,
      "end": 7045,
      "loc": {
        "start": {
          "line": 188,
          "column": 66
        },
        "end": {
          "line": 188,
          "column": 67
        }
      }
    },
    {
      "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": 7046,
      "end": 7049,
      "loc": {
        "start": {
          "line": 188,
          "column": 68
        },
        "end": {
          "line": 188,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 7050,
      "end": 7051,
      "loc": {
        "start": {
          "line": 188,
          "column": 72
        },
        "end": {
          "line": 188,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "colEps",
      "start": 7052,
      "end": 7058,
      "loc": {
        "start": {
          "line": 188,
          "column": 74
        },
        "end": {
          "line": 188,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7058,
      "end": 7059,
      "loc": {
        "start": {
          "line": 188,
          "column": 80
        },
        "end": {
          "line": 188,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7060,
      "end": 7061,
      "loc": {
        "start": {
          "line": 188,
          "column": 82
        },
        "end": {
          "line": 188,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 7062,
      "end": 7070,
      "loc": {
        "start": {
          "line": 188,
          "column": 84
        },
        "end": {
          "line": 188,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 7071,
      "end": 7072,
      "loc": {
        "start": {
          "line": 188,
          "column": 93
        },
        "end": {
          "line": 188,
          "column": 94
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1e-9,
      "start": 7073,
      "end": 7077,
      "loc": {
        "start": {
          "line": 188,
          "column": 95
        },
        "end": {
          "line": 188,
          "column": 99
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7110,
      "end": 7111,
      "loc": {
        "start": {
          "line": 189,
          "column": 32
        },
        "end": {
          "line": 189,
          "column": 33
        }
      }
    },
    {
      "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": 7148,
      "end": 7156,
      "loc": {
        "start": {
          "line": 190,
          "column": 36
        },
        "end": {
          "line": 190,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7156,
      "end": 7157,
      "loc": {
        "start": {
          "line": 190,
          "column": 44
        },
        "end": {
          "line": 190,
          "column": 45
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "do minimal horizontal movement which avoids collision",
      "start": 7190,
      "end": 7245,
      "loc": {
        "start": {
          "line": 191,
          "column": 32
        },
        "end": {
          "line": 191,
          "column": 87
        }
      }
    },
    {
      "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": 7278,
      "end": 7281,
      "loc": {
        "start": {
          "line": 192,
          "column": 32
        },
        "end": {
          "line": 192,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newSide",
      "start": 7282,
      "end": 7289,
      "loc": {
        "start": {
          "line": 192,
          "column": 36
        },
        "end": {
          "line": 192,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7290,
      "end": 7291,
      "loc": {
        "start": {
          "line": 192,
          "column": 44
        },
        "end": {
          "line": 192,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 7292,
      "end": 7294,
      "loc": {
        "start": {
          "line": 192,
          "column": 46
        },
        "end": {
          "line": 192,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 7295,
      "end": 7296,
      "loc": {
        "start": {
          "line": 192,
          "column": 49
        },
        "end": {
          "line": 192,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 7297,
      "end": 7299,
      "loc": {
        "start": {
          "line": 192,
          "column": 51
        },
        "end": {
          "line": 192,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7300,
      "end": 7301,
      "loc": {
        "start": {
          "line": 192,
          "column": 54
        },
        "end": {
          "line": 192,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 7302,
      "end": 7310,
      "loc": {
        "start": {
          "line": 192,
          "column": 56
        },
        "end": {
          "line": 192,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7311,
      "end": 7312,
      "loc": {
        "start": {
          "line": 192,
          "column": 65
        },
        "end": {
          "line": 192,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 7313,
      "end": 7320,
      "loc": {
        "start": {
          "line": 192,
          "column": 67
        },
        "end": {
          "line": 192,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7320,
      "end": 7321,
      "loc": {
        "start": {
          "line": 192,
          "column": 74
        },
        "end": {
          "line": 192,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 7321,
      "end": 7324,
      "loc": {
        "start": {
          "line": 192,
          "column": 75
        },
        "end": {
          "line": 192,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7325,
      "end": 7326,
      "loc": {
        "start": {
          "line": 192,
          "column": 79
        },
        "end": {
          "line": 192,
          "column": 80
        }
      }
    },
    {
      "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": 7327,
      "end": 7330,
      "loc": {
        "start": {
          "line": 192,
          "column": 81
        },
        "end": {
          "line": 192,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7330,
      "end": 7331,
      "loc": {
        "start": {
          "line": 192,
          "column": 84
        },
        "end": {
          "line": 192,
          "column": 85
        }
      }
    },
    {
      "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": 7364,
      "end": 7367,
      "loc": {
        "start": {
          "line": 193,
          "column": 32
        },
        "end": {
          "line": 193,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstSide",
      "start": 7368,
      "end": 7376,
      "loc": {
        "start": {
          "line": 193,
          "column": 36
        },
        "end": {
          "line": 193,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7377,
      "end": 7378,
      "loc": {
        "start": {
          "line": 193,
          "column": 45
        },
        "end": {
          "line": 193,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 7379,
      "end": 7387,
      "loc": {
        "start": {
          "line": 193,
          "column": 47
        },
        "end": {
          "line": 193,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7387,
      "end": 7388,
      "loc": {
        "start": {
          "line": 193,
          "column": 55
        },
        "end": {
          "line": 193,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 7388,
      "end": 7394,
      "loc": {
        "start": {
          "line": 193,
          "column": 56
        },
        "end": {
          "line": 193,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7394,
      "end": 7395,
      "loc": {
        "start": {
          "line": 193,
          "column": 62
        },
        "end": {
          "line": 193,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 7395,
      "end": 7396,
      "loc": {
        "start": {
          "line": 193,
          "column": 63
        },
        "end": {
          "line": 193,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 7397,
      "end": 7398,
      "loc": {
        "start": {
          "line": 193,
          "column": 65
        },
        "end": {
          "line": 193,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 7399,
      "end": 7401,
      "loc": {
        "start": {
          "line": 193,
          "column": 67
        },
        "end": {
          "line": 193,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7402,
      "end": 7403,
      "loc": {
        "start": {
          "line": 193,
          "column": 70
        },
        "end": {
          "line": 193,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 7404,
      "end": 7412,
      "loc": {
        "start": {
          "line": 193,
          "column": 72
        },
        "end": {
          "line": 193,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7413,
      "end": 7414,
      "loc": {
        "start": {
          "line": 193,
          "column": 81
        },
        "end": {
          "line": 193,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstRect",
      "start": 7415,
      "end": 7423,
      "loc": {
        "start": {
          "line": 193,
          "column": 83
        },
        "end": {
          "line": 193,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7423,
      "end": 7424,
      "loc": {
        "start": {
          "line": 193,
          "column": 91
        },
        "end": {
          "line": 193,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 7424,
      "end": 7427,
      "loc": {
        "start": {
          "line": 193,
          "column": 92
        },
        "end": {
          "line": 193,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7428,
      "end": 7429,
      "loc": {
        "start": {
          "line": 193,
          "column": 96
        },
        "end": {
          "line": 193,
          "column": 97
        }
      }
    },
    {
      "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": 7430,
      "end": 7433,
      "loc": {
        "start": {
          "line": 193,
          "column": 98
        },
        "end": {
          "line": 193,
          "column": 101
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7433,
      "end": 7434,
      "loc": {
        "start": {
          "line": 193,
          "column": 101
        },
        "end": {
          "line": 193,
          "column": 102
        }
      }
    },
    {
      "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": 7467,
      "end": 7470,
      "loc": {
        "start": {
          "line": 194,
          "column": 32
        },
        "end": {
          "line": 194,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "diff",
      "start": 7471,
      "end": 7475,
      "loc": {
        "start": {
          "line": 194,
          "column": 36
        },
        "end": {
          "line": 194,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7476,
      "end": 7477,
      "loc": {
        "start": {
          "line": 194,
          "column": 41
        },
        "end": {
          "line": 194,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newSide",
      "start": 7478,
      "end": 7485,
      "loc": {
        "start": {
          "line": 194,
          "column": 43
        },
        "end": {
          "line": 194,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 7486,
      "end": 7487,
      "loc": {
        "start": {
          "line": 194,
          "column": 51
        },
        "end": {
          "line": 194,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "obstSide",
      "start": 7488,
      "end": 7496,
      "loc": {
        "start": {
          "line": 194,
          "column": 53
        },
        "end": {
          "line": 194,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 7497,
      "end": 7498,
      "loc": {
        "start": {
          "line": 194,
          "column": 62
        },
        "end": {
          "line": 194,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hs",
      "start": 7499,
      "end": 7501,
      "loc": {
        "start": {
          "line": 194,
          "column": 64
        },
        "end": {
          "line": 194,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7502,
      "end": 7503,
      "loc": {
        "start": {
          "line": 194,
          "column": 67
        },
        "end": {
          "line": 194,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "colEps",
      "start": 7504,
      "end": 7510,
      "loc": {
        "start": {
          "line": 194,
          "column": 69
        },
        "end": {
          "line": 194,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7511,
      "end": 7512,
      "loc": {
        "start": {
          "line": 194,
          "column": 76
        },
        "end": {
          "line": 194,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 7513,
      "end": 7521,
      "loc": {
        "start": {
          "line": 194,
          "column": 78
        },
        "end": {
          "line": 194,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7521,
      "end": 7522,
      "loc": {
        "start": {
          "line": 194,
          "column": 86
        },
        "end": {
          "line": 194,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 7555,
      "end": 7557,
      "loc": {
        "start": {
          "line": 195,
          "column": 32
        },
        "end": {
          "line": 195,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "+=",
      "start": 7558,
      "end": 7560,
      "loc": {
        "start": {
          "line": 195,
          "column": 35
        },
        "end": {
          "line": 195,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "diff",
      "start": 7561,
      "end": 7565,
      "loc": {
        "start": {
          "line": 195,
          "column": 38
        },
        "end": {
          "line": 195,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7565,
      "end": 7566,
      "loc": {
        "start": {
          "line": 195,
          "column": 42
        },
        "end": {
          "line": 195,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "moved",
      "start": 7599,
      "end": 7604,
      "loc": {
        "start": {
          "line": 196,
          "column": 32
        },
        "end": {
          "line": 196,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7605,
      "end": 7606,
      "loc": {
        "start": {
          "line": 196,
          "column": 38
        },
        "end": {
          "line": 196,
          "column": 39
        }
      }
    },
    {
      "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": 7607,
      "end": 7611,
      "loc": {
        "start": {
          "line": 196,
          "column": 40
        },
        "end": {
          "line": 196,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7611,
      "end": 7612,
      "loc": {
        "start": {
          "line": 196,
          "column": 44
        },
        "end": {
          "line": 196,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7641,
      "end": 7642,
      "loc": {
        "start": {
          "line": 197,
          "column": 28
        },
        "end": {
          "line": 197,
          "column": 29
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "note: if something has moved, then we have to recheck everything for collisions",
      "start": 7671,
      "end": 7752,
      "loc": {
        "start": {
          "line": 198,
          "column": 28
        },
        "end": {
          "line": 198,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7777,
      "end": 7778,
      "loc": {
        "start": {
          "line": 199,
          "column": 24
        },
        "end": {
          "line": 199,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "while",
        "keyword": "while",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "while",
      "start": 7779,
      "end": 7784,
      "loc": {
        "start": {
          "line": 199,
          "column": 26
        },
        "end": {
          "line": 199,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7785,
      "end": 7786,
      "loc": {
        "start": {
          "line": 199,
          "column": 32
        },
        "end": {
          "line": 199,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "moved",
      "start": 7786,
      "end": 7791,
      "loc": {
        "start": {
          "line": 199,
          "column": 33
        },
        "end": {
          "line": 199,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7791,
      "end": 7792,
      "loc": {
        "start": {
          "line": 199,
          "column": 38
        },
        "end": {
          "line": 199,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7792,
      "end": 7793,
      "loc": {
        "start": {
          "line": 199,
          "column": 39
        },
        "end": {
          "line": 199,
          "column": 40
        }
      }
    },
    {
      "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": 7819,
      "end": 7822,
      "loc": {
        "start": {
          "line": 201,
          "column": 24
        },
        "end": {
          "line": 201,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "distSqr",
      "start": 7823,
      "end": 7830,
      "loc": {
        "start": {
          "line": 201,
          "column": 28
        },
        "end": {
          "line": 201,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7831,
      "end": 7832,
      "loc": {
        "start": {
          "line": 201,
          "column": 36
        },
        "end": {
          "line": 201,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sqr",
      "start": 7833,
      "end": 7836,
      "loc": {
        "start": {
          "line": 201,
          "column": 38
        },
        "end": {
          "line": 201,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7836,
      "end": 7837,
      "loc": {
        "start": {
          "line": 201,
          "column": 41
        },
        "end": {
          "line": 201,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 7837,
      "end": 7839,
      "loc": {
        "start": {
          "line": 201,
          "column": 42
        },
        "end": {
          "line": 201,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 7840,
      "end": 7841,
      "loc": {
        "start": {
          "line": 201,
          "column": 45
        },
        "end": {
          "line": 201,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 7842,
      "end": 7849,
      "loc": {
        "start": {
          "line": 201,
          "column": 47
        },
        "end": {
          "line": 201,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7849,
      "end": 7850,
      "loc": {
        "start": {
          "line": 201,
          "column": 54
        },
        "end": {
          "line": 201,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 7850,
      "end": 7856,
      "loc": {
        "start": {
          "line": 201,
          "column": 55
        },
        "end": {
          "line": 201,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7856,
      "end": 7857,
      "loc": {
        "start": {
          "line": 201,
          "column": 61
        },
        "end": {
          "line": 201,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 7857,
      "end": 7858,
      "loc": {
        "start": {
          "line": 201,
          "column": 62
        },
        "end": {
          "line": 201,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7858,
      "end": 7859,
      "loc": {
        "start": {
          "line": 201,
          "column": 63
        },
        "end": {
          "line": 201,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 7860,
      "end": 7861,
      "loc": {
        "start": {
          "line": 201,
          "column": 65
        },
        "end": {
          "line": 201,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sqr",
      "start": 7862,
      "end": 7865,
      "loc": {
        "start": {
          "line": 201,
          "column": 67
        },
        "end": {
          "line": 201,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7865,
      "end": 7866,
      "loc": {
        "start": {
          "line": 201,
          "column": 70
        },
        "end": {
          "line": 201,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cy",
      "start": 7866,
      "end": 7868,
      "loc": {
        "start": {
          "line": 201,
          "column": 71
        },
        "end": {
          "line": 201,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 7869,
      "end": 7870,
      "loc": {
        "start": {
          "line": 201,
          "column": 74
        },
        "end": {
          "line": 201,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 7871,
      "end": 7878,
      "loc": {
        "start": {
          "line": 201,
          "column": 76
        },
        "end": {
          "line": 201,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7878,
      "end": 7879,
      "loc": {
        "start": {
          "line": 201,
          "column": 83
        },
        "end": {
          "line": 201,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 7879,
      "end": 7885,
      "loc": {
        "start": {
          "line": 201,
          "column": 84
        },
        "end": {
          "line": 201,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7885,
      "end": 7886,
      "loc": {
        "start": {
          "line": 201,
          "column": 90
        },
        "end": {
          "line": 201,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 7886,
      "end": 7887,
      "loc": {
        "start": {
          "line": 201,
          "column": 91
        },
        "end": {
          "line": 201,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7887,
      "end": 7888,
      "loc": {
        "start": {
          "line": 201,
          "column": 92
        },
        "end": {
          "line": 201,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7888,
      "end": 7889,
      "loc": {
        "start": {
          "line": 201,
          "column": 93
        },
        "end": {
          "line": 201,
          "column": 94
        }
      }
    },
    {
      "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": 7914,
      "end": 7916,
      "loc": {
        "start": {
          "line": 202,
          "column": 24
        },
        "end": {
          "line": 202,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7917,
      "end": 7918,
      "loc": {
        "start": {
          "line": 202,
          "column": 27
        },
        "end": {
          "line": 202,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestDistSqr",
      "start": 7918,
      "end": 7929,
      "loc": {
        "start": {
          "line": 202,
          "column": 28
        },
        "end": {
          "line": 202,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">",
      "start": 7930,
      "end": 7931,
      "loc": {
        "start": {
          "line": 202,
          "column": 40
        },
        "end": {
          "line": 202,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "distSqr",
      "start": 7932,
      "end": 7939,
      "loc": {
        "start": {
          "line": 202,
          "column": 42
        },
        "end": {
          "line": 202,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7939,
      "end": 7940,
      "loc": {
        "start": {
          "line": 202,
          "column": 49
        },
        "end": {
          "line": 202,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 7941,
      "end": 7942,
      "loc": {
        "start": {
          "line": 202,
          "column": 51
        },
        "end": {
          "line": 202,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestDistSqr",
      "start": 7971,
      "end": 7982,
      "loc": {
        "start": {
          "line": 203,
          "column": 28
        },
        "end": {
          "line": 203,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 7983,
      "end": 7984,
      "loc": {
        "start": {
          "line": 203,
          "column": 40
        },
        "end": {
          "line": 203,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "distSqr",
      "start": 7985,
      "end": 7992,
      "loc": {
        "start": {
          "line": 203,
          "column": 42
        },
        "end": {
          "line": 203,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 7992,
      "end": 7993,
      "loc": {
        "start": {
          "line": 203,
          "column": 49
        },
        "end": {
          "line": 203,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestX",
      "start": 8022,
      "end": 8027,
      "loc": {
        "start": {
          "line": 204,
          "column": 28
        },
        "end": {
          "line": 204,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8028,
      "end": 8029,
      "loc": {
        "start": {
          "line": 204,
          "column": 34
        },
        "end": {
          "line": 204,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 8030,
      "end": 8032,
      "loc": {
        "start": {
          "line": 204,
          "column": 36
        },
        "end": {
          "line": 204,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8032,
      "end": 8033,
      "loc": {
        "start": {
          "line": 204,
          "column": 38
        },
        "end": {
          "line": 204,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestY",
      "start": 8062,
      "end": 8067,
      "loc": {
        "start": {
          "line": 205,
          "column": 28
        },
        "end": {
          "line": 205,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8068,
      "end": 8069,
      "loc": {
        "start": {
          "line": 205,
          "column": 34
        },
        "end": {
          "line": 205,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cy",
      "start": 8070,
      "end": 8072,
      "loc": {
        "start": {
          "line": 205,
          "column": 36
        },
        "end": {
          "line": 205,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8072,
      "end": 8073,
      "loc": {
        "start": {
          "line": 205,
          "column": 38
        },
        "end": {
          "line": 205,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8098,
      "end": 8099,
      "loc": {
        "start": {
          "line": 206,
          "column": 24
        },
        "end": {
          "line": 206,
          "column": 25
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "early cutoff: if no horizontal movement happened",
      "start": 8124,
      "end": 8174,
      "loc": {
        "start": {
          "line": 207,
          "column": 24
        },
        "end": {
          "line": 207,
          "column": 74
        }
      }
    },
    {
      "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": 8199,
      "end": 8201,
      "loc": {
        "start": {
          "line": 208,
          "column": 24
        },
        "end": {
          "line": 208,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8202,
      "end": 8203,
      "loc": {
        "start": {
          "line": 208,
          "column": 27
        },
        "end": {
          "line": 208,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cx",
      "start": 8203,
      "end": 8205,
      "loc": {
        "start": {
          "line": 208,
          "column": 28
        },
        "end": {
          "line": 208,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 8206,
      "end": 8209,
      "loc": {
        "start": {
          "line": 208,
          "column": 31
        },
        "end": {
          "line": 208,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 8210,
      "end": 8217,
      "loc": {
        "start": {
          "line": 208,
          "column": 35
        },
        "end": {
          "line": 208,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8217,
      "end": 8218,
      "loc": {
        "start": {
          "line": 208,
          "column": 42
        },
        "end": {
          "line": 208,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keyPos",
      "start": 8218,
      "end": 8224,
      "loc": {
        "start": {
          "line": 208,
          "column": 43
        },
        "end": {
          "line": 208,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8224,
      "end": 8225,
      "loc": {
        "start": {
          "line": 208,
          "column": 49
        },
        "end": {
          "line": 208,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 8225,
      "end": 8226,
      "loc": {
        "start": {
          "line": 208,
          "column": 50
        },
        "end": {
          "line": 208,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8226,
      "end": 8227,
      "loc": {
        "start": {
          "line": 208,
          "column": 51
        },
        "end": {
          "line": 208,
          "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": 8228,
      "end": 8233,
      "loc": {
        "start": {
          "line": 208,
          "column": 53
        },
        "end": {
          "line": 208,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectanglePlaceLoop",
      "start": 8234,
      "end": 8252,
      "loc": {
        "start": {
          "line": 208,
          "column": 59
        },
        "end": {
          "line": 208,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8252,
      "end": 8253,
      "loc": {
        "start": {
          "line": 208,
          "column": 77
        },
        "end": {
          "line": 208,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8274,
      "end": 8275,
      "loc": {
        "start": {
          "line": 209,
          "column": 20
        },
        "end": {
          "line": 209,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8292,
      "end": 8293,
      "loc": {
        "start": {
          "line": 210,
          "column": 16
        },
        "end": {
          "line": 210,
          "column": 17
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "place rectangle into found position (not changed later)",
      "start": 8307,
      "end": 8364,
      "loc": {
        "start": {
          "line": 212,
          "column": 12
        },
        "end": {
          "line": 212,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newRect",
      "start": 8377,
      "end": 8384,
      "loc": {
        "start": {
          "line": 213,
          "column": 12
        },
        "end": {
          "line": 213,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8384,
      "end": 8385,
      "loc": {
        "start": {
          "line": 213,
          "column": 19
        },
        "end": {
          "line": 213,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 8385,
      "end": 8391,
      "loc": {
        "start": {
          "line": 213,
          "column": 20
        },
        "end": {
          "line": 213,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8392,
      "end": 8393,
      "loc": {
        "start": {
          "line": 213,
          "column": 27
        },
        "end": {
          "line": 213,
          "column": 28
        }
      }
    },
    {
      "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": 8394,
      "end": 8397,
      "loc": {
        "start": {
          "line": 213,
          "column": 29
        },
        "end": {
          "line": 213,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 8398,
      "end": 8403,
      "loc": {
        "start": {
          "line": 213,
          "column": 33
        },
        "end": {
          "line": 213,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8403,
      "end": 8404,
      "loc": {
        "start": {
          "line": 213,
          "column": 38
        },
        "end": {
          "line": 213,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Vector3",
      "start": 8404,
      "end": 8411,
      "loc": {
        "start": {
          "line": 213,
          "column": 39
        },
        "end": {
          "line": 213,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8411,
      "end": 8412,
      "loc": {
        "start": {
          "line": 213,
          "column": 46
        },
        "end": {
          "line": 213,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestX",
      "start": 8412,
      "end": 8417,
      "loc": {
        "start": {
          "line": 213,
          "column": 47
        },
        "end": {
          "line": 213,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8417,
      "end": 8418,
      "loc": {
        "start": {
          "line": 213,
          "column": 52
        },
        "end": {
          "line": 213,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "bestY",
      "start": 8419,
      "end": 8424,
      "loc": {
        "start": {
          "line": 213,
          "column": 54
        },
        "end": {
          "line": 213,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8424,
      "end": 8425,
      "loc": {
        "start": {
          "line": 213,
          "column": 59
        },
        "end": {
          "line": 213,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 8426,
      "end": 8429,
      "loc": {
        "start": {
          "line": 213,
          "column": 61
        },
        "end": {
          "line": 213,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8429,
      "end": 8430,
      "loc": {
        "start": {
          "line": 213,
          "column": 64
        },
        "end": {
          "line": 213,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8430,
      "end": 8431,
      "loc": {
        "start": {
          "line": 213,
          "column": 65
        },
        "end": {
          "line": 213,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8440,
      "end": 8441,
      "loc": {
        "start": {
          "line": 214,
          "column": 8
        },
        "end": {
          "line": 214,
          "column": 9
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "set positions for all constraint icons",
      "start": 8451,
      "end": 8491,
      "loc": {
        "start": {
          "line": 216,
          "column": 8
        },
        "end": {
          "line": 216,
          "column": 48
        }
      }
    },
    {
      "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": 8500,
      "end": 8503,
      "loc": {
        "start": {
          "line": 217,
          "column": 8
        },
        "end": {
          "line": 217,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8504,
      "end": 8505,
      "loc": {
        "start": {
          "line": 217,
          "column": 12
        },
        "end": {
          "line": 217,
          "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": 8505,
      "end": 8508,
      "loc": {
        "start": {
          "line": 217,
          "column": 13
        },
        "end": {
          "line": 217,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8509,
      "end": 8510,
      "loc": {
        "start": {
          "line": 217,
          "column": 17
        },
        "end": {
          "line": 217,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 8511,
      "end": 8513,
      "loc": {
        "start": {
          "line": 217,
          "column": 19
        },
        "end": {
          "line": 217,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8513,
      "end": 8514,
      "loc": {
        "start": {
          "line": 217,
          "column": 21
        },
        "end": {
          "line": 217,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 8515,
      "end": 8521,
      "loc": {
        "start": {
          "line": 217,
          "column": 23
        },
        "end": {
          "line": 217,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8521,
      "end": 8522,
      "loc": {
        "start": {
          "line": 217,
          "column": 29
        },
        "end": {
          "line": 217,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 8523,
      "end": 8526,
      "loc": {
        "start": {
          "line": 217,
          "column": 31
        },
        "end": {
          "line": 217,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8527,
      "end": 8528,
      "loc": {
        "start": {
          "line": 217,
          "column": 35
        },
        "end": {
          "line": 217,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 8529,
      "end": 8531,
      "loc": {
        "start": {
          "line": 217,
          "column": 37
        },
        "end": {
          "line": 217,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "rectangles",
      "start": 8532,
      "end": 8542,
      "loc": {
        "start": {
          "line": 217,
          "column": 40
        },
        "end": {
          "line": 217,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8542,
      "end": 8543,
      "loc": {
        "start": {
          "line": 217,
          "column": 50
        },
        "end": {
          "line": 217,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8544,
      "end": 8545,
      "loc": {
        "start": {
          "line": 217,
          "column": 52
        },
        "end": {
          "line": 217,
          "column": 53
        }
      }
    },
    {
      "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": 8558,
      "end": 8561,
      "loc": {
        "start": {
          "line": 218,
          "column": 12
        },
        "end": {
          "line": 218,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conList",
      "start": 8562,
      "end": 8569,
      "loc": {
        "start": {
          "line": 218,
          "column": 16
        },
        "end": {
          "line": 218,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8570,
      "end": 8571,
      "loc": {
        "start": {
          "line": 218,
          "column": 24
        },
        "end": {
          "line": 218,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "perEntityLists",
      "start": 8572,
      "end": 8586,
      "loc": {
        "start": {
          "line": 218,
          "column": 26
        },
        "end": {
          "line": 218,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8586,
      "end": 8587,
      "loc": {
        "start": {
          "line": 218,
          "column": 40
        },
        "end": {
          "line": 218,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 8587,
      "end": 8590,
      "loc": {
        "start": {
          "line": 218,
          "column": 41
        },
        "end": {
          "line": 218,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8590,
      "end": 8591,
      "loc": {
        "start": {
          "line": 218,
          "column": 44
        },
        "end": {
          "line": 218,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 8591,
      "end": 8593,
      "loc": {
        "start": {
          "line": 218,
          "column": 45
        },
        "end": {
          "line": 218,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8593,
      "end": 8594,
      "loc": {
        "start": {
          "line": 218,
          "column": 47
        },
        "end": {
          "line": 218,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8594,
      "end": 8595,
      "loc": {
        "start": {
          "line": 218,
          "column": 48
        },
        "end": {
          "line": 218,
          "column": 49
        }
      }
    },
    {
      "type": "CommentLine",
      "value": "sort constraint lists (for stability)",
      "start": 8608,
      "end": 8647,
      "loc": {
        "start": {
          "line": 219,
          "column": 12
        },
        "end": {
          "line": 219,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conList",
      "start": 8660,
      "end": 8667,
      "loc": {
        "start": {
          "line": 220,
          "column": 12
        },
        "end": {
          "line": 220,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8667,
      "end": 8668,
      "loc": {
        "start": {
          "line": 220,
          "column": 19
        },
        "end": {
          "line": 220,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sort",
      "start": 8668,
      "end": 8672,
      "loc": {
        "start": {
          "line": 220,
          "column": 20
        },
        "end": {
          "line": 220,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8672,
      "end": 8673,
      "loc": {
        "start": {
          "line": 220,
          "column": 24
        },
        "end": {
          "line": 220,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8673,
      "end": 8674,
      "loc": {
        "start": {
          "line": 220,
          "column": 25
        },
        "end": {
          "line": 220,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "a",
      "start": 8674,
      "end": 8675,
      "loc": {
        "start": {
          "line": 220,
          "column": 26
        },
        "end": {
          "line": 220,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8675,
      "end": 8676,
      "loc": {
        "start": {
          "line": 220,
          "column": 27
        },
        "end": {
          "line": 220,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "b",
      "start": 8677,
      "end": 8678,
      "loc": {
        "start": {
          "line": 220,
          "column": 29
        },
        "end": {
          "line": 220,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8678,
      "end": 8679,
      "loc": {
        "start": {
          "line": 220,
          "column": 30
        },
        "end": {
          "line": 220,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8680,
      "end": 8682,
      "loc": {
        "start": {
          "line": 220,
          "column": 32
        },
        "end": {
          "line": 220,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "a",
      "start": 8683,
      "end": 8684,
      "loc": {
        "start": {
          "line": 220,
          "column": 35
        },
        "end": {
          "line": 220,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 8685,
      "end": 8686,
      "loc": {
        "start": {
          "line": 220,
          "column": 37
        },
        "end": {
          "line": 220,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "b",
      "start": 8687,
      "end": 8688,
      "loc": {
        "start": {
          "line": 220,
          "column": 39
        },
        "end": {
          "line": 220,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8688,
      "end": 8689,
      "loc": {
        "start": {
          "line": 220,
          "column": 40
        },
        "end": {
          "line": 220,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8689,
      "end": 8690,
      "loc": {
        "start": {
          "line": 220,
          "column": 41
        },
        "end": {
          "line": 220,
          "column": 42
        }
      }
    },
    {
      "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": 8704,
      "end": 8707,
      "loc": {
        "start": {
          "line": 222,
          "column": 12
        },
        "end": {
          "line": 222,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8708,
      "end": 8709,
      "loc": {
        "start": {
          "line": 222,
          "column": 16
        },
        "end": {
          "line": 222,
          "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": 8709,
      "end": 8712,
      "loc": {
        "start": {
          "line": 222,
          "column": 17
        },
        "end": {
          "line": 222,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 8713,
      "end": 8714,
      "loc": {
        "start": {
          "line": 222,
          "column": 21
        },
        "end": {
          "line": 222,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8715,
      "end": 8716,
      "loc": {
        "start": {
          "line": 222,
          "column": 23
        },
        "end": {
          "line": 222,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 8717,
      "end": 8718,
      "loc": {
        "start": {
          "line": 222,
          "column": 25
        },
        "end": {
          "line": 222,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8718,
      "end": 8719,
      "loc": {
        "start": {
          "line": 222,
          "column": 26
        },
        "end": {
          "line": 222,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 8720,
      "end": 8721,
      "loc": {
        "start": {
          "line": 222,
          "column": 28
        },
        "end": {
          "line": 222,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 8722,
      "end": 8723,
      "loc": {
        "start": {
          "line": 222,
          "column": 30
        },
        "end": {
          "line": 222,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 8724,
      "end": 8727,
      "loc": {
        "start": {
          "line": 222,
          "column": 32
        },
        "end": {
          "line": 222,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8727,
      "end": 8728,
      "loc": {
        "start": {
          "line": 222,
          "column": 35
        },
        "end": {
          "line": 222,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 8729,
      "end": 8730,
      "loc": {
        "start": {
          "line": 222,
          "column": 37
        },
        "end": {
          "line": 222,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 8730,
      "end": 8732,
      "loc": {
        "start": {
          "line": 222,
          "column": 38
        },
        "end": {
          "line": 222,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8732,
      "end": 8733,
      "loc": {
        "start": {
          "line": 222,
          "column": 40
        },
        "end": {
          "line": 222,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8734,
      "end": 8735,
      "loc": {
        "start": {
          "line": 222,
          "column": 42
        },
        "end": {
          "line": 222,
          "column": 43
        }
      }
    },
    {
      "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": 8752,
      "end": 8755,
      "loc": {
        "start": {
          "line": 223,
          "column": 16
        },
        "end": {
          "line": 223,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "pos",
      "start": 8756,
      "end": 8759,
      "loc": {
        "start": {
          "line": 223,
          "column": 20
        },
        "end": {
          "line": 223,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8760,
      "end": 8761,
      "loc": {
        "start": {
          "line": 223,
          "column": 24
        },
        "end": {
          "line": 223,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ctrPos",
      "start": 8762,
      "end": 8768,
      "loc": {
        "start": {
          "line": 223,
          "column": 26
        },
        "end": {
          "line": 223,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8768,
      "end": 8769,
      "loc": {
        "start": {
          "line": 223,
          "column": 32
        },
        "end": {
          "line": 223,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "clone",
      "start": 8769,
      "end": 8774,
      "loc": {
        "start": {
          "line": 223,
          "column": 33
        },
        "end": {
          "line": 223,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8774,
      "end": 8775,
      "loc": {
        "start": {
          "line": 223,
          "column": 38
        },
        "end": {
          "line": 223,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8775,
      "end": 8776,
      "loc": {
        "start": {
          "line": 223,
          "column": 39
        },
        "end": {
          "line": 223,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8776,
      "end": 8777,
      "loc": {
        "start": {
          "line": 223,
          "column": 40
        },
        "end": {
          "line": 223,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 8777,
      "end": 8780,
      "loc": {
        "start": {
          "line": 223,
          "column": 41
        },
        "end": {
          "line": 223,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8780,
      "end": 8781,
      "loc": {
        "start": {
          "line": 223,
          "column": 44
        },
        "end": {
          "line": 223,
          "column": 45
        }
      }
    },
    {
      "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": 8781,
      "end": 8784,
      "loc": {
        "start": {
          "line": 223,
          "column": 45
        },
        "end": {
          "line": 223,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 8785,
      "end": 8790,
      "loc": {
        "start": {
          "line": 223,
          "column": 49
        },
        "end": {
          "line": 223,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8790,
      "end": 8791,
      "loc": {
        "start": {
          "line": 223,
          "column": 54
        },
        "end": {
          "line": 223,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Vector3",
      "start": 8791,
      "end": 8798,
      "loc": {
        "start": {
          "line": 223,
          "column": 55
        },
        "end": {
          "line": 223,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8798,
      "end": 8799,
      "loc": {
        "start": {
          "line": 223,
          "column": 62
        },
        "end": {
          "line": 223,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 8799,
      "end": 8800,
      "loc": {
        "start": {
          "line": 223,
          "column": 63
        },
        "end": {
          "line": 223,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 8801,
      "end": 8802,
      "loc": {
        "start": {
          "line": 223,
          "column": 65
        },
        "end": {
          "line": 223,
          "column": 66
        }
      }
    },
    {
      "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": 8803,
      "end": 8806,
      "loc": {
        "start": {
          "line": 223,
          "column": 67
        },
        "end": {
          "line": 223,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 8807,
      "end": 8808,
      "loc": {
        "start": {
          "line": 223,
          "column": 71
        },
        "end": {
          "line": 223,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8809,
      "end": 8810,
      "loc": {
        "start": {
          "line": 223,
          "column": 73
        },
        "end": {
          "line": 223,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "cnt",
      "start": 8810,
      "end": 8813,
      "loc": {
        "start": {
          "line": 223,
          "column": 74
        },
        "end": {
          "line": 223,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 8814,
      "end": 8815,
      "loc": {
        "start": {
          "line": 223,
          "column": 78
        },
        "end": {
          "line": 223,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 8816,
      "end": 8817,
      "loc": {
        "start": {
          "line": 223,
          "column": 80
        },
        "end": {
          "line": 223,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8817,
      "end": 8818,
      "loc": {
        "start": {
          "line": 223,
          "column": 81
        },
        "end": {
          "line": 223,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8818,
      "end": 8819,
      "loc": {
        "start": {
          "line": 223,
          "column": 82
        },
        "end": {
          "line": 223,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 8820,
      "end": 8821,
      "loc": {
        "start": {
          "line": 223,
          "column": 84
        },
        "end": {
          "line": 223,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8821,
      "end": 8822,
      "loc": {
        "start": {
          "line": 223,
          "column": 85
        },
        "end": {
          "line": 223,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 8823,
      "end": 8824,
      "loc": {
        "start": {
          "line": 223,
          "column": 87
        },
        "end": {
          "line": 223,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8824,
      "end": 8825,
      "loc": {
        "start": {
          "line": 223,
          "column": 88
        },
        "end": {
          "line": 223,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8825,
      "end": 8826,
      "loc": {
        "start": {
          "line": 223,
          "column": 89
        },
        "end": {
          "line": 223,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "multiplyScalar",
      "start": 8826,
      "end": 8840,
      "loc": {
        "start": {
          "line": 223,
          "column": 90
        },
        "end": {
          "line": 223,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8840,
      "end": 8841,
      "loc": {
        "start": {
          "line": 223,
          "column": 104
        },
        "end": {
          "line": 223,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 8841,
      "end": 8849,
      "loc": {
        "start": {
          "line": 223,
          "column": 105
        },
        "end": {
          "line": 223,
          "column": 113
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8849,
      "end": 8850,
      "loc": {
        "start": {
          "line": 223,
          "column": 113
        },
        "end": {
          "line": 223,
          "column": 114
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8850,
      "end": 8851,
      "loc": {
        "start": {
          "line": 223,
          "column": 114
        },
        "end": {
          "line": 223,
          "column": 115
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8851,
      "end": 8852,
      "loc": {
        "start": {
          "line": 223,
          "column": 115
        },
        "end": {
          "line": 223,
          "column": 116
        }
      }
    },
    {
      "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": 8869,
      "end": 8872,
      "loc": {
        "start": {
          "line": 224,
          "column": 16
        },
        "end": {
          "line": 224,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 8873,
      "end": 8878,
      "loc": {
        "start": {
          "line": 224,
          "column": 20
        },
        "end": {
          "line": 224,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8879,
      "end": 8880,
      "loc": {
        "start": {
          "line": 224,
          "column": 26
        },
        "end": {
          "line": 224,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conList",
      "start": 8881,
      "end": 8888,
      "loc": {
        "start": {
          "line": 224,
          "column": 28
        },
        "end": {
          "line": 224,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8888,
      "end": 8889,
      "loc": {
        "start": {
          "line": 224,
          "column": 35
        },
        "end": {
          "line": 224,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 8889,
      "end": 8890,
      "loc": {
        "start": {
          "line": 224,
          "column": 36
        },
        "end": {
          "line": 224,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8890,
      "end": 8891,
      "loc": {
        "start": {
          "line": 224,
          "column": 37
        },
        "end": {
          "line": 224,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8891,
      "end": 8892,
      "loc": {
        "start": {
          "line": 224,
          "column": 38
        },
        "end": {
          "line": 224,
          "column": 39
        }
      }
    },
    {
      "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": 8909,
      "end": 8912,
      "loc": {
        "start": {
          "line": 225,
          "column": 16
        },
        "end": {
          "line": 225,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constr",
      "start": 8913,
      "end": 8919,
      "loc": {
        "start": {
          "line": 225,
          "column": 20
        },
        "end": {
          "line": 225,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 8920,
      "end": 8921,
      "loc": {
        "start": {
          "line": 225,
          "column": 27
        },
        "end": {
          "line": 225,
          "column": 28
        }
      }
    },
    {
      "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": 8922,
      "end": 8925,
      "loc": {
        "start": {
          "line": 225,
          "column": 29
        },
        "end": {
          "line": 225,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 8926,
      "end": 8931,
      "loc": {
        "start": {
          "line": 225,
          "column": 33
        },
        "end": {
          "line": 225,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8931,
      "end": 8932,
      "loc": {
        "start": {
          "line": 225,
          "column": 38
        },
        "end": {
          "line": 225,
          "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": 8932,
      "end": 8936,
      "loc": {
        "start": {
          "line": 225,
          "column": 39
        },
        "end": {
          "line": 225,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8936,
      "end": 8937,
      "loc": {
        "start": {
          "line": 225,
          "column": 43
        },
        "end": {
          "line": 225,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 8937,
      "end": 8945,
      "loc": {
        "start": {
          "line": 225,
          "column": 44
        },
        "end": {
          "line": 225,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8945,
      "end": 8946,
      "loc": {
        "start": {
          "line": 225,
          "column": 52
        },
        "end": {
          "line": 225,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "conId",
      "start": 8947,
      "end": 8952,
      "loc": {
        "start": {
          "line": 225,
          "column": 54
        },
        "end": {
          "line": 225,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 8952,
      "end": 8953,
      "loc": {
        "start": {
          "line": 225,
          "column": 59
        },
        "end": {
          "line": 225,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8953,
      "end": 8954,
      "loc": {
        "start": {
          "line": 225,
          "column": 60
        },
        "end": {
          "line": 225,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constr",
      "start": 8971,
      "end": 8977,
      "loc": {
        "start": {
          "line": 226,
          "column": 16
        },
        "end": {
          "line": 226,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8977,
      "end": 8978,
      "loc": {
        "start": {
          "line": 226,
          "column": 22
        },
        "end": {
          "line": 226,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 8978,
      "end": 8986,
      "loc": {
        "start": {
          "line": 226,
          "column": 23
        },
        "end": {
          "line": 226,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8986,
      "end": 8987,
      "loc": {
        "start": {
          "line": 226,
          "column": 31
        },
        "end": {
          "line": 226,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "localMesh",
      "start": 8987,
      "end": 8996,
      "loc": {
        "start": {
          "line": 226,
          "column": 32
        },
        "end": {
          "line": 226,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 8996,
      "end": 8997,
      "loc": {
        "start": {
          "line": 226,
          "column": 41
        },
        "end": {
          "line": 226,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 8997,
      "end": 9005,
      "loc": {
        "start": {
          "line": 226,
          "column": 42
        },
        "end": {
          "line": 226,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9005,
      "end": 9006,
      "loc": {
        "start": {
          "line": 226,
          "column": 50
        },
        "end": {
          "line": 226,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "copy",
      "start": 9006,
      "end": 9010,
      "loc": {
        "start": {
          "line": 226,
          "column": 51
        },
        "end": {
          "line": 226,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9010,
      "end": 9011,
      "loc": {
        "start": {
          "line": 226,
          "column": 55
        },
        "end": {
          "line": 226,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "pos",
      "start": 9011,
      "end": 9014,
      "loc": {
        "start": {
          "line": 226,
          "column": 56
        },
        "end": {
          "line": 226,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9014,
      "end": 9015,
      "loc": {
        "start": {
          "line": 226,
          "column": 59
        },
        "end": {
          "line": 226,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9015,
      "end": 9016,
      "loc": {
        "start": {
          "line": 226,
          "column": 60
        },
        "end": {
          "line": 226,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constr",
      "start": 9033,
      "end": 9039,
      "loc": {
        "start": {
          "line": 227,
          "column": 16
        },
        "end": {
          "line": 227,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9039,
      "end": 9040,
      "loc": {
        "start": {
          "line": 227,
          "column": 22
        },
        "end": {
          "line": 227,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 9040,
      "end": 9048,
      "loc": {
        "start": {
          "line": 227,
          "column": 23
        },
        "end": {
          "line": 227,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9048,
      "end": 9049,
      "loc": {
        "start": {
          "line": 227,
          "column": 31
        },
        "end": {
          "line": 227,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "localMesh",
      "start": 9049,
      "end": 9058,
      "loc": {
        "start": {
          "line": 227,
          "column": 32
        },
        "end": {
          "line": 227,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9058,
      "end": 9059,
      "loc": {
        "start": {
          "line": 227,
          "column": 41
        },
        "end": {
          "line": 227,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "scale",
      "start": 9059,
      "end": 9064,
      "loc": {
        "start": {
          "line": 227,
          "column": 42
        },
        "end": {
          "line": 227,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9064,
      "end": 9065,
      "loc": {
        "start": {
          "line": 227,
          "column": 47
        },
        "end": {
          "line": 227,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 9065,
      "end": 9068,
      "loc": {
        "start": {
          "line": 227,
          "column": 48
        },
        "end": {
          "line": 227,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9068,
      "end": 9069,
      "loc": {
        "start": {
          "line": 227,
          "column": 51
        },
        "end": {
          "line": 227,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 9069,
      "end": 9077,
      "loc": {
        "start": {
          "line": 227,
          "column": 52
        },
        "end": {
          "line": 227,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9077,
      "end": 9078,
      "loc": {
        "start": {
          "line": 227,
          "column": 60
        },
        "end": {
          "line": 227,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "iconSize",
      "start": 9079,
      "end": 9087,
      "loc": {
        "start": {
          "line": 227,
          "column": 62
        },
        "end": {
          "line": 227,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9087,
      "end": 9088,
      "loc": {
        "start": {
          "line": 227,
          "column": 70
        },
        "end": {
          "line": 227,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 9089,
      "end": 9090,
      "loc": {
        "start": {
          "line": 227,
          "column": 72
        },
        "end": {
          "line": 227,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9090,
      "end": 9091,
      "loc": {
        "start": {
          "line": 227,
          "column": 73
        },
        "end": {
          "line": 227,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9091,
      "end": 9092,
      "loc": {
        "start": {
          "line": 227,
          "column": 74
        },
        "end": {
          "line": 227,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9105,
      "end": 9106,
      "loc": {
        "start": {
          "line": 228,
          "column": 12
        },
        "end": {
          "line": 228,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9115,
      "end": 9116,
      "loc": {
        "start": {
          "line": 229,
          "column": 8
        },
        "end": {
          "line": 229,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9121,
      "end": 9122,
      "loc": {
        "start": {
          "line": 230,
          "column": 4
        },
        "end": {
          "line": 230,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getKeyPosition",
      "start": 9128,
      "end": 9142,
      "loc": {
        "start": {
          "line": 232,
          "column": 4
        },
        "end": {
          "line": 232,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9142,
      "end": 9143,
      "loc": {
        "start": {
          "line": 232,
          "column": 18
        },
        "end": {
          "line": 232,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9143,
      "end": 9149,
      "loc": {
        "start": {
          "line": 232,
          "column": 19
        },
        "end": {
          "line": 232,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9149,
      "end": 9150,
      "loc": {
        "start": {
          "line": 232,
          "column": 25
        },
        "end": {
          "line": 232,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9151,
      "end": 9152,
      "loc": {
        "start": {
          "line": 232,
          "column": 27
        },
        "end": {
          "line": 232,
          "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": 9161,
      "end": 9163,
      "loc": {
        "start": {
          "line": 233,
          "column": 8
        },
        "end": {
          "line": 233,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9164,
      "end": 9165,
      "loc": {
        "start": {
          "line": 233,
          "column": 11
        },
        "end": {
          "line": 233,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 9165,
      "end": 9171,
      "loc": {
        "start": {
          "line": 233,
          "column": 12
        },
        "end": {
          "line": 233,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9172,
      "end": 9178,
      "loc": {
        "start": {
          "line": 233,
          "column": 19
        },
        "end": {
          "line": 233,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 9179,
      "end": 9182,
      "loc": {
        "start": {
          "line": 233,
          "column": 26
        },
        "end": {
          "line": 233,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "number",
      "start": 9183,
      "end": 9191,
      "loc": {
        "start": {
          "line": 233,
          "column": 30
        },
        "end": {
          "line": 233,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9191,
      "end": 9192,
      "loc": {
        "start": {
          "line": 233,
          "column": 38
        },
        "end": {
          "line": 233,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9193,
      "end": 9199,
      "loc": {
        "start": {
          "line": 233,
          "column": 40
        },
        "end": {
          "line": 233,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 9200,
      "end": 9201,
      "loc": {
        "start": {
          "line": 233,
          "column": 47
        },
        "end": {
          "line": 233,
          "column": 48
        }
      }
    },
    {
      "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": 9202,
      "end": 9205,
      "loc": {
        "start": {
          "line": 233,
          "column": 49
        },
        "end": {
          "line": 233,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 9206,
      "end": 9211,
      "loc": {
        "start": {
          "line": 233,
          "column": 53
        },
        "end": {
          "line": 233,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9211,
      "end": 9212,
      "loc": {
        "start": {
          "line": 233,
          "column": 58
        },
        "end": {
          "line": 233,
          "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": 9212,
      "end": 9216,
      "loc": {
        "start": {
          "line": 233,
          "column": 59
        },
        "end": {
          "line": 233,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9216,
      "end": 9217,
      "loc": {
        "start": {
          "line": 233,
          "column": 63
        },
        "end": {
          "line": 233,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 9217,
      "end": 9225,
      "loc": {
        "start": {
          "line": 233,
          "column": 64
        },
        "end": {
          "line": 233,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9225,
      "end": 9226,
      "loc": {
        "start": {
          "line": 233,
          "column": 72
        },
        "end": {
          "line": 233,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9227,
      "end": 9233,
      "loc": {
        "start": {
          "line": 233,
          "column": 74
        },
        "end": {
          "line": 233,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9233,
      "end": 9234,
      "loc": {
        "start": {
          "line": 233,
          "column": 80
        },
        "end": {
          "line": 233,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9234,
      "end": 9235,
      "loc": {
        "start": {
          "line": 233,
          "column": 81
        },
        "end": {
          "line": 233,
          "column": 82
        }
      }
    },
    {
      "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": 9244,
      "end": 9249,
      "loc": {
        "start": {
          "line": 234,
          "column": 8
        },
        "end": {
          "line": 234,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9250,
      "end": 9252,
      "loc": {
        "start": {
          "line": 234,
          "column": 14
        },
        "end": {
          "line": 234,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 9253,
      "end": 9254,
      "loc": {
        "start": {
          "line": 234,
          "column": 17
        },
        "end": {
          "line": 234,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9255,
      "end": 9261,
      "loc": {
        "start": {
          "line": 234,
          "column": 19
        },
        "end": {
          "line": 234,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9261,
      "end": 9262,
      "loc": {
        "start": {
          "line": 234,
          "column": 25
        },
        "end": {
          "line": 234,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "geomParams",
      "start": 9262,
      "end": 9272,
      "loc": {
        "start": {
          "line": 234,
          "column": 26
        },
        "end": {
          "line": 234,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9272,
      "end": 9273,
      "loc": {
        "start": {
          "line": 234,
          "column": 36
        },
        "end": {
          "line": 234,
          "column": 37
        }
      }
    },
    {
      "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": 9282,
      "end": 9288,
      "loc": {
        "start": {
          "line": 235,
          "column": 8
        },
        "end": {
          "line": 235,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9289,
      "end": 9290,
      "loc": {
        "start": {
          "line": 235,
          "column": 15
        },
        "end": {
          "line": 235,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 9290,
      "end": 9296,
      "loc": {
        "start": {
          "line": 235,
          "column": 16
        },
        "end": {
          "line": 235,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9296,
      "end": 9297,
      "loc": {
        "start": {
          "line": 235,
          "column": 22
        },
        "end": {
          "line": 235,
          "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": 9297,
      "end": 9302,
      "loc": {
        "start": {
          "line": 235,
          "column": 23
        },
        "end": {
          "line": 235,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9302,
      "end": 9303,
      "loc": {
        "start": {
          "line": 235,
          "column": 28
        },
        "end": {
          "line": 235,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9304,
      "end": 9305,
      "loc": {
        "start": {
          "line": 235,
          "column": 30
        },
        "end": {
          "line": 235,
          "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": 9318,
      "end": 9322,
      "loc": {
        "start": {
          "line": 236,
          "column": 12
        },
        "end": {
          "line": 236,
          "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": 9323,
      "end": 9333,
      "loc": {
        "start": {
          "line": 236,
          "column": 17
        },
        "end": {
          "line": 236,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9333,
      "end": 9334,
      "loc": {
        "start": {
          "line": 236,
          "column": 27
        },
        "end": {
          "line": 236,
          "column": 28
        }
      }
    },
    {
      "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": 9351,
      "end": 9357,
      "loc": {
        "start": {
          "line": 237,
          "column": 16
        },
        "end": {
          "line": 237,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9358,
      "end": 9360,
      "loc": {
        "start": {
          "line": 237,
          "column": 23
        },
        "end": {
          "line": 237,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9360,
      "end": 9361,
      "loc": {
        "start": {
          "line": 237,
          "column": 25
        },
        "end": {
          "line": 237,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 9361,
      "end": 9366,
      "loc": {
        "start": {
          "line": 237,
          "column": 26
        },
        "end": {
          "line": 237,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9366,
      "end": 9367,
      "loc": {
        "start": {
          "line": 237,
          "column": 31
        },
        "end": {
          "line": 237,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "clone",
      "start": 9367,
      "end": 9372,
      "loc": {
        "start": {
          "line": 237,
          "column": 32
        },
        "end": {
          "line": 237,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9372,
      "end": 9373,
      "loc": {
        "start": {
          "line": 237,
          "column": 37
        },
        "end": {
          "line": 237,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9373,
      "end": 9374,
      "loc": {
        "start": {
          "line": 237,
          "column": 38
        },
        "end": {
          "line": 237,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9374,
      "end": 9375,
      "loc": {
        "start": {
          "line": 237,
          "column": 39
        },
        "end": {
          "line": 237,
          "column": 40
        }
      }
    },
    {
      "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": 9388,
      "end": 9392,
      "loc": {
        "start": {
          "line": 238,
          "column": 12
        },
        "end": {
          "line": 238,
          "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": 9393,
      "end": 9402,
      "loc": {
        "start": {
          "line": 238,
          "column": 17
        },
        "end": {
          "line": 238,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9402,
      "end": 9403,
      "loc": {
        "start": {
          "line": 238,
          "column": 26
        },
        "end": {
          "line": 238,
          "column": 27
        }
      }
    },
    {
      "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": 9420,
      "end": 9426,
      "loc": {
        "start": {
          "line": 239,
          "column": 16
        },
        "end": {
          "line": 239,
          "column": 22
        }
      }
    },
    {
      "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": 9427,
      "end": 9430,
      "loc": {
        "start": {
          "line": 239,
          "column": 23
        },
        "end": {
          "line": 239,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 9431,
      "end": 9436,
      "loc": {
        "start": {
          "line": 239,
          "column": 27
        },
        "end": {
          "line": 239,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9436,
      "end": 9437,
      "loc": {
        "start": {
          "line": 239,
          "column": 32
        },
        "end": {
          "line": 239,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Vector3",
      "start": 9437,
      "end": 9444,
      "loc": {
        "start": {
          "line": 239,
          "column": 33
        },
        "end": {
          "line": 239,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9444,
      "end": 9445,
      "loc": {
        "start": {
          "line": 239,
          "column": 40
        },
        "end": {
          "line": 239,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9445,
      "end": 9446,
      "loc": {
        "start": {
          "line": 239,
          "column": 41
        },
        "end": {
          "line": 239,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9446,
      "end": 9447,
      "loc": {
        "start": {
          "line": 239,
          "column": 42
        },
        "end": {
          "line": 239,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lerpVectors",
      "start": 9447,
      "end": 9458,
      "loc": {
        "start": {
          "line": 239,
          "column": 43
        },
        "end": {
          "line": 239,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9458,
      "end": 9459,
      "loc": {
        "start": {
          "line": 239,
          "column": 54
        },
        "end": {
          "line": 239,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9459,
      "end": 9461,
      "loc": {
        "start": {
          "line": 239,
          "column": 55
        },
        "end": {
          "line": 239,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9461,
      "end": 9462,
      "loc": {
        "start": {
          "line": 239,
          "column": 57
        },
        "end": {
          "line": 239,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 9462,
      "end": 9467,
      "loc": {
        "start": {
          "line": 239,
          "column": 58
        },
        "end": {
          "line": 239,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9467,
      "end": 9468,
      "loc": {
        "start": {
          "line": 239,
          "column": 63
        },
        "end": {
          "line": 239,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9469,
      "end": 9471,
      "loc": {
        "start": {
          "line": 239,
          "column": 65
        },
        "end": {
          "line": 239,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9471,
      "end": 9472,
      "loc": {
        "start": {
          "line": 239,
          "column": 67
        },
        "end": {
          "line": 239,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "end",
      "start": 9472,
      "end": 9475,
      "loc": {
        "start": {
          "line": 239,
          "column": 68
        },
        "end": {
          "line": 239,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9475,
      "end": 9476,
      "loc": {
        "start": {
          "line": 239,
          "column": 71
        },
        "end": {
          "line": 239,
          "column": 72
        }
      }
    },
    {
      "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": 9477,
      "end": 9480,
      "loc": {
        "start": {
          "line": 239,
          "column": 73
        },
        "end": {
          "line": 239,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9480,
      "end": 9481,
      "loc": {
        "start": {
          "line": 239,
          "column": 76
        },
        "end": {
          "line": 239,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9481,
      "end": 9482,
      "loc": {
        "start": {
          "line": 239,
          "column": 77
        },
        "end": {
          "line": 239,
          "column": 78
        }
      }
    },
    {
      "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": 9495,
      "end": 9499,
      "loc": {
        "start": {
          "line": 240,
          "column": 12
        },
        "end": {
          "line": 240,
          "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": 9500,
      "end": 9508,
      "loc": {
        "start": {
          "line": 240,
          "column": 17
        },
        "end": {
          "line": 240,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9508,
      "end": 9509,
      "loc": {
        "start": {
          "line": 240,
          "column": 25
        },
        "end": {
          "line": 240,
          "column": 26
        }
      }
    },
    {
      "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": 9526,
      "end": 9532,
      "loc": {
        "start": {
          "line": 241,
          "column": 16
        },
        "end": {
          "line": 241,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getArcAngles",
      "start": 9533,
      "end": 9545,
      "loc": {
        "start": {
          "line": 241,
          "column": 23
        },
        "end": {
          "line": 241,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9545,
      "end": 9546,
      "loc": {
        "start": {
          "line": 241,
          "column": 35
        },
        "end": {
          "line": 241,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9546,
      "end": 9548,
      "loc": {
        "start": {
          "line": 241,
          "column": 36
        },
        "end": {
          "line": 241,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9548,
      "end": 9549,
      "loc": {
        "start": {
          "line": 241,
          "column": 38
        },
        "end": {
          "line": 241,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9549,
      "end": 9550,
      "loc": {
        "start": {
          "line": 241,
          "column": 39
        },
        "end": {
          "line": 241,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mid",
      "start": 9550,
      "end": 9553,
      "loc": {
        "start": {
          "line": 241,
          "column": 40
        },
        "end": {
          "line": 241,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9553,
      "end": 9554,
      "loc": {
        "start": {
          "line": 241,
          "column": 43
        },
        "end": {
          "line": 241,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "clone",
      "start": 9554,
      "end": 9559,
      "loc": {
        "start": {
          "line": 241,
          "column": 44
        },
        "end": {
          "line": 241,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9559,
      "end": 9560,
      "loc": {
        "start": {
          "line": 241,
          "column": 49
        },
        "end": {
          "line": 241,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9560,
      "end": 9561,
      "loc": {
        "start": {
          "line": 241,
          "column": 50
        },
        "end": {
          "line": 241,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9561,
      "end": 9562,
      "loc": {
        "start": {
          "line": 241,
          "column": 51
        },
        "end": {
          "line": 241,
          "column": 52
        }
      }
    },
    {
      "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": 9575,
      "end": 9579,
      "loc": {
        "start": {
          "line": 242,
          "column": 12
        },
        "end": {
          "line": 242,
          "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": 9580,
      "end": 9591,
      "loc": {
        "start": {
          "line": 242,
          "column": 17
        },
        "end": {
          "line": 242,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9591,
      "end": 9592,
      "loc": {
        "start": {
          "line": 242,
          "column": 28
        },
        "end": {
          "line": 242,
          "column": 29
        }
      }
    },
    {
      "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": 9609,
      "end": 9615,
      "loc": {
        "start": {
          "line": 243,
          "column": 16
        },
        "end": {
          "line": 243,
          "column": 22
        }
      }
    },
    {
      "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": 9616,
      "end": 9619,
      "loc": {
        "start": {
          "line": 243,
          "column": 23
        },
        "end": {
          "line": 243,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 9620,
      "end": 9625,
      "loc": {
        "start": {
          "line": 243,
          "column": 27
        },
        "end": {
          "line": 243,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9625,
      "end": 9626,
      "loc": {
        "start": {
          "line": 243,
          "column": 32
        },
        "end": {
          "line": 243,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Vector3",
      "start": 9626,
      "end": 9633,
      "loc": {
        "start": {
          "line": 243,
          "column": 33
        },
        "end": {
          "line": 243,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9633,
      "end": 9634,
      "loc": {
        "start": {
          "line": 243,
          "column": 40
        },
        "end": {
          "line": 243,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0.6,
      "start": 9634,
      "end": 9637,
      "loc": {
        "start": {
          "line": 243,
          "column": 41
        },
        "end": {
          "line": 243,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9637,
      "end": 9638,
      "loc": {
        "start": {
          "line": 243,
          "column": 44
        },
        "end": {
          "line": 243,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0.8,
      "start": 9639,
      "end": 9642,
      "loc": {
        "start": {
          "line": 243,
          "column": 46
        },
        "end": {
          "line": 243,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9642,
      "end": 9643,
      "loc": {
        "start": {
          "line": 243,
          "column": 49
        },
        "end": {
          "line": 243,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9643,
      "end": 9644,
      "loc": {
        "start": {
          "line": 243,
          "column": 50
        },
        "end": {
          "line": 243,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "multiplyScalar",
      "start": 9644,
      "end": 9658,
      "loc": {
        "start": {
          "line": 243,
          "column": 51
        },
        "end": {
          "line": 243,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9658,
      "end": 9659,
      "loc": {
        "start": {
          "line": 243,
          "column": 65
        },
        "end": {
          "line": 243,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9659,
      "end": 9661,
      "loc": {
        "start": {
          "line": 243,
          "column": 66
        },
        "end": {
          "line": 243,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9661,
      "end": 9662,
      "loc": {
        "start": {
          "line": 243,
          "column": 68
        },
        "end": {
          "line": 243,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "radius",
      "start": 9662,
      "end": 9668,
      "loc": {
        "start": {
          "line": 243,
          "column": 69
        },
        "end": {
          "line": 243,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9668,
      "end": 9669,
      "loc": {
        "start": {
          "line": 243,
          "column": 75
        },
        "end": {
          "line": 243,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9669,
      "end": 9670,
      "loc": {
        "start": {
          "line": 243,
          "column": 76
        },
        "end": {
          "line": 243,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 9670,
      "end": 9673,
      "loc": {
        "start": {
          "line": 243,
          "column": 77
        },
        "end": {
          "line": 243,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9673,
      "end": 9674,
      "loc": {
        "start": {
          "line": 243,
          "column": 80
        },
        "end": {
          "line": 243,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 9674,
      "end": 9676,
      "loc": {
        "start": {
          "line": 243,
          "column": 81
        },
        "end": {
          "line": 243,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9676,
      "end": 9677,
      "loc": {
        "start": {
          "line": 243,
          "column": 83
        },
        "end": {
          "line": 243,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "center",
      "start": 9677,
      "end": 9683,
      "loc": {
        "start": {
          "line": 243,
          "column": 84
        },
        "end": {
          "line": 243,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9683,
      "end": 9684,
      "loc": {
        "start": {
          "line": 243,
          "column": 90
        },
        "end": {
          "line": 243,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9684,
      "end": 9685,
      "loc": {
        "start": {
          "line": 243,
          "column": 91
        },
        "end": {
          "line": 243,
          "column": 92
        }
      }
    },
    {
      "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": 9698,
      "end": 9705,
      "loc": {
        "start": {
          "line": 244,
          "column": 12
        },
        "end": {
          "line": 244,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9705,
      "end": 9706,
      "loc": {
        "start": {
          "line": 244,
          "column": 19
        },
        "end": {
          "line": 244,
          "column": 20
        }
      }
    },
    {
      "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": 9723,
      "end": 9729,
      "loc": {
        "start": {
          "line": 245,
          "column": 16
        },
        "end": {
          "line": 245,
          "column": 22
        }
      }
    },
    {
      "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": 9730,
      "end": 9733,
      "loc": {
        "start": {
          "line": 245,
          "column": 23
        },
        "end": {
          "line": 245,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 9734,
      "end": 9739,
      "loc": {
        "start": {
          "line": 245,
          "column": 27
        },
        "end": {
          "line": 245,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9739,
      "end": 9740,
      "loc": {
        "start": {
          "line": 245,
          "column": 32
        },
        "end": {
          "line": 245,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Vector3",
      "start": 9740,
      "end": 9747,
      "loc": {
        "start": {
          "line": 245,
          "column": 33
        },
        "end": {
          "line": 245,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9747,
      "end": 9748,
      "loc": {
        "start": {
          "line": 245,
          "column": 40
        },
        "end": {
          "line": 245,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 9748,
      "end": 9749,
      "loc": {
        "start": {
          "line": 245,
          "column": 41
        },
        "end": {
          "line": 245,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9749,
      "end": 9750,
      "loc": {
        "start": {
          "line": 245,
          "column": 42
        },
        "end": {
          "line": 245,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 9751,
      "end": 9752,
      "loc": {
        "start": {
          "line": 245,
          "column": 44
        },
        "end": {
          "line": 245,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9752,
      "end": 9753,
      "loc": {
        "start": {
          "line": 245,
          "column": 45
        },
        "end": {
          "line": 245,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 9754,
      "end": 9755,
      "loc": {
        "start": {
          "line": 245,
          "column": 47
        },
        "end": {
          "line": 245,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9755,
      "end": 9756,
      "loc": {
        "start": {
          "line": 245,
          "column": 48
        },
        "end": {
          "line": 245,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9756,
      "end": 9757,
      "loc": {
        "start": {
          "line": 245,
          "column": 49
        },
        "end": {
          "line": 245,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9766,
      "end": 9767,
      "loc": {
        "start": {
          "line": 246,
          "column": 8
        },
        "end": {
          "line": 246,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9772,
      "end": 9773,
      "loc": {
        "start": {
          "line": 247,
          "column": 4
        },
        "end": {
          "line": 247,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getBaseEntityId",
      "start": 9779,
      "end": 9794,
      "loc": {
        "start": {
          "line": 249,
          "column": 4
        },
        "end": {
          "line": 249,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9794,
      "end": 9795,
      "loc": {
        "start": {
          "line": 249,
          "column": 19
        },
        "end": {
          "line": 249,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 9795,
      "end": 9805,
      "loc": {
        "start": {
          "line": 249,
          "column": 20
        },
        "end": {
          "line": 249,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9805,
      "end": 9806,
      "loc": {
        "start": {
          "line": 249,
          "column": 30
        },
        "end": {
          "line": 249,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9807,
      "end": 9808,
      "loc": {
        "start": {
          "line": 249,
          "column": 32
        },
        "end": {
          "line": 249,
          "column": 33
        }
      }
    },
    {
      "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": 9817,
      "end": 9819,
      "loc": {
        "start": {
          "line": 250,
          "column": 8
        },
        "end": {
          "line": 250,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9820,
      "end": 9821,
      "loc": {
        "start": {
          "line": 250,
          "column": 11
        },
        "end": {
          "line": 250,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 9821,
      "end": 9827,
      "loc": {
        "start": {
          "line": 250,
          "column": 12
        },
        "end": {
          "line": 250,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 9828,
      "end": 9838,
      "loc": {
        "start": {
          "line": 250,
          "column": 19
        },
        "end": {
          "line": 250,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 9839,
      "end": 9842,
      "loc": {
        "start": {
          "line": 250,
          "column": 30
        },
        "end": {
          "line": 250,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "number",
      "start": 9843,
      "end": 9851,
      "loc": {
        "start": {
          "line": 250,
          "column": 34
        },
        "end": {
          "line": 250,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9851,
      "end": 9852,
      "loc": {
        "start": {
          "line": 250,
          "column": 42
        },
        "end": {
          "line": 250,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 9853,
      "end": 9863,
      "loc": {
        "start": {
          "line": 250,
          "column": 44
        },
        "end": {
          "line": 250,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 9864,
      "end": 9865,
      "loc": {
        "start": {
          "line": 250,
          "column": 55
        },
        "end": {
          "line": 250,
          "column": 56
        }
      }
    },
    {
      "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": 9866,
      "end": 9869,
      "loc": {
        "start": {
          "line": 250,
          "column": 57
        },
        "end": {
          "line": 250,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 9870,
      "end": 9875,
      "loc": {
        "start": {
          "line": 250,
          "column": 61
        },
        "end": {
          "line": 250,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9875,
      "end": 9876,
      "loc": {
        "start": {
          "line": 250,
          "column": 66
        },
        "end": {
          "line": 250,
          "column": 67
        }
      }
    },
    {
      "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": 9876,
      "end": 9880,
      "loc": {
        "start": {
          "line": 250,
          "column": 67
        },
        "end": {
          "line": 250,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9880,
      "end": 9881,
      "loc": {
        "start": {
          "line": 250,
          "column": 71
        },
        "end": {
          "line": 250,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 9881,
      "end": 9889,
      "loc": {
        "start": {
          "line": 250,
          "column": 72
        },
        "end": {
          "line": 250,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9889,
      "end": 9890,
      "loc": {
        "start": {
          "line": 250,
          "column": 80
        },
        "end": {
          "line": 250,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 9891,
      "end": 9901,
      "loc": {
        "start": {
          "line": 250,
          "column": 82
        },
        "end": {
          "line": 250,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9901,
      "end": 9902,
      "loc": {
        "start": {
          "line": 250,
          "column": 92
        },
        "end": {
          "line": 250,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9902,
      "end": 9903,
      "loc": {
        "start": {
          "line": 250,
          "column": 93
        },
        "end": {
          "line": 250,
          "column": 94
        }
      }
    },
    {
      "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": 9913,
      "end": 9916,
      "loc": {
        "start": {
          "line": 252,
          "column": 8
        },
        "end": {
          "line": 252,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "res",
      "start": 9917,
      "end": 9920,
      "loc": {
        "start": {
          "line": 252,
          "column": 12
        },
        "end": {
          "line": 252,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 9921,
      "end": 9922,
      "loc": {
        "start": {
          "line": 252,
          "column": 16
        },
        "end": {
          "line": 252,
          "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": 9923,
      "end": 9927,
      "loc": {
        "start": {
          "line": 252,
          "column": 18
        },
        "end": {
          "line": 252,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9927,
      "end": 9928,
      "loc": {
        "start": {
          "line": 252,
          "column": 22
        },
        "end": {
          "line": 252,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "baseEntityFor",
      "start": 9928,
      "end": 9941,
      "loc": {
        "start": {
          "line": 252,
          "column": 23
        },
        "end": {
          "line": 252,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9941,
      "end": 9942,
      "loc": {
        "start": {
          "line": 252,
          "column": 36
        },
        "end": {
          "line": 252,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 9942,
      "end": 9945,
      "loc": {
        "start": {
          "line": 252,
          "column": 37
        },
        "end": {
          "line": 252,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9945,
      "end": 9946,
      "loc": {
        "start": {
          "line": 252,
          "column": 40
        },
        "end": {
          "line": 252,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 9946,
      "end": 9956,
      "loc": {
        "start": {
          "line": 252,
          "column": 41
        },
        "end": {
          "line": 252,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9956,
      "end": 9957,
      "loc": {
        "start": {
          "line": 252,
          "column": 51
        },
        "end": {
          "line": 252,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 9957,
      "end": 9959,
      "loc": {
        "start": {
          "line": 252,
          "column": 52
        },
        "end": {
          "line": 252,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9959,
      "end": 9960,
      "loc": {
        "start": {
          "line": 252,
          "column": 54
        },
        "end": {
          "line": 252,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 9960,
      "end": 9961,
      "loc": {
        "start": {
          "line": 252,
          "column": 55
        },
        "end": {
          "line": 252,
          "column": 56
        }
      }
    },
    {
      "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": 9970,
      "end": 9972,
      "loc": {
        "start": {
          "line": 253,
          "column": 8
        },
        "end": {
          "line": 253,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9973,
      "end": 9974,
      "loc": {
        "start": {
          "line": 253,
          "column": 11
        },
        "end": {
          "line": 253,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "res",
      "start": 9974,
      "end": 9977,
      "loc": {
        "start": {
          "line": 253,
          "column": 12
        },
        "end": {
          "line": 253,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 9978,
      "end": 9981,
      "loc": {
        "start": {
          "line": 253,
          "column": 16
        },
        "end": {
          "line": 253,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 9982,
      "end": 9991,
      "loc": {
        "start": {
          "line": 253,
          "column": 20
        },
        "end": {
          "line": 253,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 9991,
      "end": 9992,
      "loc": {
        "start": {
          "line": 253,
          "column": 29
        },
        "end": {
          "line": 253,
          "column": 30
        }
      }
    },
    {
      "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": 9993,
      "end": 9999,
      "loc": {
        "start": {
          "line": 253,
          "column": 31
        },
        "end": {
          "line": 253,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "res",
      "start": 10000,
      "end": 10003,
      "loc": {
        "start": {
          "line": 253,
          "column": 38
        },
        "end": {
          "line": 253,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10003,
      "end": 10004,
      "loc": {
        "start": {
          "line": 253,
          "column": 41
        },
        "end": {
          "line": 253,
          "column": 42
        }
      }
    },
    {
      "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": 10014,
      "end": 10017,
      "loc": {
        "start": {
          "line": 255,
          "column": 8
        },
        "end": {
          "line": 255,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10018,
      "end": 10019,
      "loc": {
        "start": {
          "line": 255,
          "column": 12
        },
        "end": {
          "line": 255,
          "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": 10019,
      "end": 10022,
      "loc": {
        "start": {
          "line": 255,
          "column": 13
        },
        "end": {
          "line": 255,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 10023,
      "end": 10029,
      "loc": {
        "start": {
          "line": 255,
          "column": 17
        },
        "end": {
          "line": 255,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 10030,
      "end": 10032,
      "loc": {
        "start": {
          "line": 255,
          "column": 24
        },
        "end": {
          "line": 255,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 10033,
      "end": 10043,
      "loc": {
        "start": {
          "line": 255,
          "column": 27
        },
        "end": {
          "line": 255,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10043,
      "end": 10044,
      "loc": {
        "start": {
          "line": 255,
          "column": 37
        },
        "end": {
          "line": 255,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mergedEntities",
      "start": 10044,
      "end": 10058,
      "loc": {
        "start": {
          "line": 255,
          "column": 38
        },
        "end": {
          "line": 255,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10058,
      "end": 10059,
      "loc": {
        "start": {
          "line": 255,
          "column": 52
        },
        "end": {
          "line": 255,
          "column": 53
        }
      }
    },
    {
      "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": 10072,
      "end": 10074,
      "loc": {
        "start": {
          "line": 256,
          "column": 12
        },
        "end": {
          "line": 256,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10075,
      "end": 10076,
      "loc": {
        "start": {
          "line": 256,
          "column": 15
        },
        "end": {
          "line": 256,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10076,
      "end": 10077,
      "loc": {
        "start": {
          "line": 256,
          "column": 16
        },
        "end": {
          "line": 256,
          "column": 17
        }
      }
    },
    {
      "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": 10077,
      "end": 10087,
      "loc": {
        "start": {
          "line": 256,
          "column": 17
        },
        "end": {
          "line": 256,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10087,
      "end": 10088,
      "loc": {
        "start": {
          "line": 256,
          "column": 27
        },
        "end": {
          "line": 256,
          "column": 28
        }
      }
    },
    {
      "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": 10089,
      "end": 10098,
      "loc": {
        "start": {
          "line": 256,
          "column": 29
        },
        "end": {
          "line": 256,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10098,
      "end": 10099,
      "loc": {
        "start": {
          "line": 256,
          "column": 38
        },
        "end": {
          "line": 256,
          "column": 39
        }
      }
    },
    {
      "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": 10100,
      "end": 10108,
      "loc": {
        "start": {
          "line": 256,
          "column": 40
        },
        "end": {
          "line": 256,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10108,
      "end": 10109,
      "loc": {
        "start": {
          "line": 256,
          "column": 48
        },
        "end": {
          "line": 256,
          "column": 49
        }
      }
    },
    {
      "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": 10110,
      "end": 10121,
      "loc": {
        "start": {
          "line": 256,
          "column": 50
        },
        "end": {
          "line": 256,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10121,
      "end": 10122,
      "loc": {
        "start": {
          "line": 256,
          "column": 61
        },
        "end": {
          "line": 256,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10122,
      "end": 10123,
      "loc": {
        "start": {
          "line": 256,
          "column": 62
        },
        "end": {
          "line": 256,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "indexOf",
      "start": 10123,
      "end": 10130,
      "loc": {
        "start": {
          "line": 256,
          "column": 63
        },
        "end": {
          "line": 256,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10130,
      "end": 10131,
      "loc": {
        "start": {
          "line": 256,
          "column": 70
        },
        "end": {
          "line": 256,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 10131,
      "end": 10137,
      "loc": {
        "start": {
          "line": 256,
          "column": 71
        },
        "end": {
          "line": 256,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10137,
      "end": 10138,
      "loc": {
        "start": {
          "line": 256,
          "column": 77
        },
        "end": {
          "line": 256,
          "column": 78
        }
      }
    },
    {
      "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": 10138,
      "end": 10143,
      "loc": {
        "start": {
          "line": 256,
          "column": 78
        },
        "end": {
          "line": 256,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10143,
      "end": 10144,
      "loc": {
        "start": {
          "line": 256,
          "column": 83
        },
        "end": {
          "line": 256,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 10145,
      "end": 10148,
      "loc": {
        "start": {
          "line": 256,
          "column": 85
        },
        "end": {
          "line": 256,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 10149,
      "end": 10150,
      "loc": {
        "start": {
          "line": 256,
          "column": 89
        },
        "end": {
          "line": 256,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 10150,
      "end": 10151,
      "loc": {
        "start": {
          "line": 256,
          "column": 90
        },
        "end": {
          "line": 256,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10151,
      "end": 10152,
      "loc": {
        "start": {
          "line": 256,
          "column": 91
        },
        "end": {
          "line": 256,
          "column": 92
        }
      }
    },
    {
      "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": 10153,
      "end": 10159,
      "loc": {
        "start": {
          "line": 256,
          "column": 93
        },
        "end": {
          "line": 256,
          "column": 99
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 10160,
      "end": 10166,
      "loc": {
        "start": {
          "line": 256,
          "column": 100
        },
        "end": {
          "line": 256,
          "column": 106
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10166,
      "end": 10167,
      "loc": {
        "start": {
          "line": 256,
          "column": 106
        },
        "end": {
          "line": 256,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 10167,
      "end": 10169,
      "loc": {
        "start": {
          "line": 256,
          "column": 107
        },
        "end": {
          "line": 256,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10169,
      "end": 10170,
      "loc": {
        "start": {
          "line": 256,
          "column": 109
        },
        "end": {
          "line": 256,
          "column": 110
        }
      }
    },
    {
      "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": 10180,
      "end": 10186,
      "loc": {
        "start": {
          "line": 258,
          "column": 8
        },
        "end": {
          "line": 258,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 10187,
      "end": 10197,
      "loc": {
        "start": {
          "line": 258,
          "column": 15
        },
        "end": {
          "line": 258,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10197,
      "end": 10198,
      "loc": {
        "start": {
          "line": 258,
          "column": 25
        },
        "end": {
          "line": 258,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entities",
      "start": 10198,
      "end": 10206,
      "loc": {
        "start": {
          "line": 258,
          "column": 26
        },
        "end": {
          "line": 258,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10206,
      "end": 10207,
      "loc": {
        "start": {
          "line": 258,
          "column": 34
        },
        "end": {
          "line": 258,
          "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": 10207,
      "end": 10208,
      "loc": {
        "start": {
          "line": 258,
          "column": 35
        },
        "end": {
          "line": 258,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10208,
      "end": 10209,
      "loc": {
        "start": {
          "line": 258,
          "column": 36
        },
        "end": {
          "line": 258,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10209,
      "end": 10210,
      "loc": {
        "start": {
          "line": 258,
          "column": 37
        },
        "end": {
          "line": 258,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 10210,
      "end": 10212,
      "loc": {
        "start": {
          "line": 258,
          "column": 38
        },
        "end": {
          "line": 258,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10212,
      "end": 10213,
      "loc": {
        "start": {
          "line": 258,
          "column": 40
        },
        "end": {
          "line": 258,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10218,
      "end": 10219,
      "loc": {
        "start": {
          "line": 259,
          "column": 4
        },
        "end": {
          "line": 259,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 10220,
      "end": 10221,
      "loc": {
        "start": {
          "line": 260,
          "column": 0
        },
        "end": {
          "line": 260,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 10222,
      "end": 10222,
      "loc": {
        "start": {
          "line": 261,
          "column": 0
        },
        "end": {
          "line": 261,
          "column": 0
        }
      }
    }
  ]
}