{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Constraint",
            "range": [
              7,
              17
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 17
              }
            }
          },
          "range": [
            7,
            17
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 7
            },
            "end": {
              "line": 1,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../sketcher/constraint",
        "raw": "'../sketcher/constraint'",
        "range": [
          23,
          47
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 23
          },
          "end": {
            "line": 1,
            "column": 47
          }
        }
      },
      "range": [
        0,
        48
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 48
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Sketch",
            "range": [
              56,
              62
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 13
              }
            }
          },
          "range": [
            56,
            62
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 7
            },
            "end": {
              "line": 2,
              "column": 13
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../sketcher/sketch",
        "raw": "'../sketcher/sketch'",
        "range": [
          68,
          88
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 19
          },
          "end": {
            "line": 2,
            "column": 39
          }
        }
      },
      "range": [
        49,
        89
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 40
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportNamespaceSpecifier",
          "local": {
            "type": "Identifier",
            "name": "THREE",
            "range": [
              102,
              107
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 12
              },
              "end": {
                "line": 3,
                "column": 17
              }
            }
          },
          "range": [
            97,
            107
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 7
            },
            "end": {
              "line": 3,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "three",
        "raw": "'three'",
        "range": [
          113,
          120
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 23
          },
          "end": {
            "line": 3,
            "column": 30
          }
        }
      },
      "range": [
        90,
        121
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 31
        }
      },
      "trailingComments": [
        {
          "type": "Line",
          "value": "====================== Disjoint Set Union ========================",
          "range": [
            123,
            191
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 0
            },
            "end": {
              "line": 5,
              "column": 68
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "DSU",
          "range": [
            205,
            208
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 13
            },
            "end": {
              "line": 6,
              "column": 16
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  215,
                  226
                ],
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 4
                  },
                  "end": {
                    "line": 7,
                    "column": 15
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              239,
                              243
                            ],
                            "loc": {
                              "start": {
                                "line": 8,
                                "column": 8
                              },
                              "end": {
                                "line": 8,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "parents",
                            "range": [
                              244,
                              251
                            ],
                            "loc": {
                              "start": {
                                "line": 8,
                                "column": 13
                              },
                              "end": {
                                "line": 8,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            239,
                            251
                          ],
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 8
                            },
                            "end": {
                              "line": 8,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "NewExpression",
                          "callee": {
                            "type": "Identifier",
                            "name": "Map",
                            "range": [
                              258,
                              261
                            ],
                            "loc": {
                              "start": {
                                "line": 8,
                                "column": 27
                              },
                              "end": {
                                "line": 8,
                                "column": 30
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            254,
                            263
                          ],
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 23
                            },
                            "end": {
                              "line": 8,
                              "column": 32
                            }
                          }
                        },
                        "range": [
                          239,
                          263
                        ],
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 8
                          },
                          "end": {
                            "line": 8,
                            "column": 32
                          }
                        }
                      },
                      "range": [
                        239,
                        264
                      ],
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 8
                        },
                        "end": {
                          "line": 8,
                          "column": 33
                        }
                      }
                    }
                  ],
                  "range": [
                    229,
                    270
                  ],
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 18
                    },
                    "end": {
                      "line": 9,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  226,
                  270
                ],
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 15
                  },
                  "end": {
                    "line": 9,
                    "column": 5
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                215,
                270
              ],
              "loc": {
                "start": {
                  "line": 7,
                  "column": 4
                },
                "end": {
                  "line": 9,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "getParent",
                "range": [
                  276,
                  285
                ],
                "loc": {
                  "start": {
                    "line": 11,
                    "column": 4
                  },
                  "end": {
                    "line": 11,
                    "column": 13
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      286,
                      289
                    ],
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 14
                      },
                      "end": {
                        "line": 11,
                        "column": 17
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "LogicalExpression",
                        "operator": "||",
                        "left": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  308,
                                  312
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 19
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "parents",
                                "range": [
                                  313,
                                  320
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 27
                                  }
                                }
                              },
                              "range": [
                                308,
                                320
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 15
                                },
                                "end": {
                                  "line": 12,
                                  "column": 27
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "get",
                              "range": [
                                321,
                                324
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 28
                                },
                                "end": {
                                  "line": 12,
                                  "column": 31
                                }
                              }
                            },
                            "range": [
                              308,
                              324
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 15
                              },
                              "end": {
                                "line": 12,
                                "column": 31
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "obj",
                              "range": [
                                325,
                                328
                              ],
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 32
                                },
                                "end": {
                                  "line": 12,
                                  "column": 35
                                }
                              }
                            }
                          ],
                          "range": [
                            308,
                            329
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 15
                            },
                            "end": {
                              "line": 12,
                              "column": 36
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "obj",
                          "range": [
                            333,
                            336
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 40
                            },
                            "end": {
                              "line": 12,
                              "column": 43
                            }
                          }
                        },
                        "range": [
                          308,
                          336
                        ],
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 15
                          },
                          "end": {
                            "line": 12,
                            "column": 43
                          }
                        }
                      },
                      "range": [
                        301,
                        337
                      ],
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 8
                        },
                        "end": {
                          "line": 12,
                          "column": 44
                        }
                      }
                    }
                  ],
                  "range": [
                    291,
                    343
                  ],
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 19
                    },
                    "end": {
                      "line": 13,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  285,
                  343
                ],
                "loc": {
                  "start": {
                    "line": 11,
                    "column": 13
                  },
                  "end": {
                    "line": 13,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                276,
                343
              ],
              "loc": {
                "start": {
                  "line": 11,
                  "column": 4
                },
                "end": {
                  "line": 13,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "setParent",
                "range": [
                  349,
                  358
                ],
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 4
                  },
                  "end": {
                    "line": 15,
                    "column": 13
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      359,
                      362
                    ],
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 14
                      },
                      "end": {
                        "line": 15,
                        "column": 17
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "par",
                    "range": [
                      364,
                      367
                    ],
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 19
                      },
                      "end": {
                        "line": 15,
                        "column": 22
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                379,
                                383
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 8
                                },
                                "end": {
                                  "line": 16,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "parents",
                              "range": [
                                384,
                                391
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 13
                                },
                                "end": {
                                  "line": 16,
                                  "column": 20
                                }
                              }
                            },
                            "range": [
                              379,
                              391
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 8
                              },
                              "end": {
                                "line": 16,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "set",
                            "range": [
                              392,
                              395
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 21
                              },
                              "end": {
                                "line": 16,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            379,
                            395
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 8
                            },
                            "end": {
                              "line": 16,
                              "column": 24
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "obj",
                            "range": [
                              396,
                              399
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 25
                              },
                              "end": {
                                "line": 16,
                                "column": 28
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "par",
                            "range": [
                              401,
                              404
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 30
                              },
                              "end": {
                                "line": 16,
                                "column": 33
                              }
                            }
                          }
                        ],
                        "range": [
                          379,
                          405
                        ],
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 8
                          },
                          "end": {
                            "line": 16,
                            "column": 34
                          }
                        }
                      },
                      "range": [
                        379,
                        406
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 8
                        },
                        "end": {
                          "line": 16,
                          "column": 35
                        }
                      }
                    }
                  ],
                  "range": [
                    369,
                    412
                  ],
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 24
                    },
                    "end": {
                      "line": 17,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  358,
                  412
                ],
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 13
                  },
                  "end": {
                    "line": 17,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                349,
                412
              ],
              "loc": {
                "start": {
                  "line": 15,
                  "column": 4
                },
                "end": {
                  "line": 17,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "touch",
                "range": [
                  418,
                  423
                ],
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 4
                  },
                  "end": {
                    "line": 19,
                    "column": 9
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      424,
                      427
                    ],
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 10
                      },
                      "end": {
                        "line": 19,
                        "column": 13
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "UnaryExpression",
                        "operator": "!",
                        "argument": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  444,
                                  448
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 17
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "parents",
                                "range": [
                                  449,
                                  456
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 25
                                  }
                                }
                              },
                              "range": [
                                444,
                                456
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 13
                                },
                                "end": {
                                  "line": 20,
                                  "column": 25
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "has",
                              "range": [
                                457,
                                460
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 26
                                },
                                "end": {
                                  "line": 20,
                                  "column": 29
                                }
                              }
                            },
                            "range": [
                              444,
                              460
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 13
                              },
                              "end": {
                                "line": 20,
                                "column": 29
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "obj",
                              "range": [
                                461,
                                464
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 30
                                },
                                "end": {
                                  "line": 20,
                                  "column": 33
                                }
                              }
                            }
                          ],
                          "range": [
                            444,
                            465
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 13
                            },
                            "end": {
                              "line": 20,
                              "column": 34
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          443,
                          465
                        ],
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 34
                          }
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "expression": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  479,
                                  483
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 16
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "parents",
                                "range": [
                                  484,
                                  491
                                ],
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                479,
                                491
                              ],
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 12
                                },
                                "end": {
                                  "line": 21,
                                  "column": 24
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "set",
                              "range": [
                                492,
                                495
                              ],
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 25
                                },
                                "end": {
                                  "line": 21,
                                  "column": 28
                                }
                              }
                            },
                            "range": [
                              479,
                              495
                            ],
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 12
                              },
                              "end": {
                                "line": 21,
                                "column": 28
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "obj",
                              "range": [
                                496,
                                499
                              ],
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 29
                                },
                                "end": {
                                  "line": 21,
                                  "column": 32
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "obj",
                              "range": [
                                501,
                                504
                              ],
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 34
                                },
                                "end": {
                                  "line": 21,
                                  "column": 37
                                }
                              }
                            }
                          ],
                          "range": [
                            479,
                            505
                          ],
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 12
                            },
                            "end": {
                              "line": 21,
                              "column": 38
                            }
                          }
                        },
                        "range": [
                          479,
                          506
                        ],
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 12
                          },
                          "end": {
                            "line": 21,
                            "column": 39
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        439,
                        506
                      ],
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 8
                        },
                        "end": {
                          "line": 21,
                          "column": 39
                        }
                      }
                    }
                  ],
                  "range": [
                    429,
                    512
                  ],
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 15
                    },
                    "end": {
                      "line": 22,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  423,
                  512
                ],
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 9
                  },
                  "end": {
                    "line": 22,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                418,
                512
              ],
              "loc": {
                "start": {
                  "line": 19,
                  "column": 4
                },
                "end": {
                  "line": 22,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "getHead",
                "range": [
                  518,
                  525
                ],
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 4
                  },
                  "end": {
                    "line": 24,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "obj",
                    "range": [
                      526,
                      529
                    ],
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 12
                      },
                      "end": {
                        "line": 24,
                        "column": 15
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "par",
                            "range": [
                              545,
                              548
                            ],
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 12
                              },
                              "end": {
                                "line": 25,
                                "column": 15
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  551,
                                  555
                                ],
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 22
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "getParent",
                                "range": [
                                  556,
                                  565
                                ],
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 32
                                  }
                                }
                              },
                              "range": [
                                551,
                                565
                              ],
                              "loc": {
                                "start": {
                                  "line": 25,
                                  "column": 18
                                },
                                "end": {
                                  "line": 25,
                                  "column": 32
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "obj",
                                "range": [
                                  566,
                                  569
                                ],
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 36
                                  }
                                }
                              }
                            ],
                            "range": [
                              551,
                              570
                            ],
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 18
                              },
                              "end": {
                                "line": 25,
                                "column": 37
                              }
                            }
                          },
                          "range": [
                            545,
                            570
                          ],
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 12
                            },
                            "end": {
                              "line": 25,
                              "column": 37
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        541,
                        571
                      ],
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 8
                        },
                        "end": {
                          "line": 25,
                          "column": 38
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "===",
                        "left": {
                          "type": "Identifier",
                          "name": "par",
                          "range": [
                            584,
                            587
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 12
                            },
                            "end": {
                              "line": 26,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "obj",
                          "range": [
                            592,
                            595
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 20
                            },
                            "end": {
                              "line": 26,
                              "column": 23
                            }
                          }
                        },
                        "range": [
                          584,
                          595
                        ],
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 12
                          },
                          "end": {
                            "line": 26,
                            "column": 23
                          }
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "argument": {
                          "type": "Identifier",
                          "name": "obj",
                          "range": [
                            616,
                            619
                          ],
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 19
                            },
                            "end": {
                              "line": 27,
                              "column": 22
                            }
                          }
                        },
                        "range": [
                          609,
                          620
                        ],
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 12
                          },
                          "end": {
                            "line": 27,
                            "column": 23
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        580,
                        620
                      ],
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 8
                        },
                        "end": {
                          "line": 27,
                          "column": 23
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "head",
                            "range": [
                              633,
                              637
                            ],
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 12
                              },
                              "end": {
                                "line": 28,
                                "column": 16
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  640,
                                  644
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 23
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "getHead",
                                "range": [
                                  645,
                                  652
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 31
                                  }
                                }
                              },
                              "range": [
                                640,
                                652
                              ],
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 19
                                },
                                "end": {
                                  "line": 28,
                                  "column": 31
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "par",
                                "range": [
                                  653,
                                  656
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 35
                                  }
                                }
                              }
                            ],
                            "range": [
                              640,
                              657
                            ],
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 19
                              },
                              "end": {
                                "line": 28,
                                "column": 36
                              }
                            }
                          },
                          "range": [
                            633,
                            657
                          ],
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 12
                            },
                            "end": {
                              "line": 28,
                              "column": 36
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        629,
                        658
                      ],
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 8
                        },
                        "end": {
                          "line": 28,
                          "column": 37
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              667,
                              671
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 8
                              },
                              "end": {
                                "line": 29,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "setParent",
                            "range": [
                              672,
                              681
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 13
                              },
                              "end": {
                                "line": 29,
                                "column": 22
                              }
                            }
                          },
                          "range": [
                            667,
                            681
                          ],
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 8
                            },
                            "end": {
                              "line": 29,
                              "column": 22
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "obj",
                            "range": [
                              682,
                              685
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 23
                              },
                              "end": {
                                "line": 29,
                                "column": 26
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "head",
                            "range": [
                              687,
                              691
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 28
                              },
                              "end": {
                                "line": 29,
                                "column": 32
                              }
                            }
                          }
                        ],
                        "range": [
                          667,
                          692
                        ],
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 8
                          },
                          "end": {
                            "line": 29,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        667,
                        693
                      ],
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 8
                        },
                        "end": {
                          "line": 29,
                          "column": 34
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "head",
                        "range": [
                          709,
                          713
                        ],
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 15
                          },
                          "end": {
                            "line": 30,
                            "column": 19
                          }
                        }
                      },
                      "range": [
                        702,
                        714
                      ],
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 8
                        },
                        "end": {
                          "line": 30,
                          "column": 20
                        }
                      }
                    }
                  ],
                  "range": [
                    531,
                    720
                  ],
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 17
                    },
                    "end": {
                      "line": 31,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  525,
                  720
                ],
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 11
                  },
                  "end": {
                    "line": 31,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                518,
                720
              ],
              "loc": {
                "start": {
                  "line": 24,
                  "column": 4
                },
                "end": {
                  "line": 31,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "merge",
                "range": [
                  726,
                  731
                ],
                "loc": {
                  "start": {
                    "line": 33,
                    "column": 4
                  },
                  "end": {
                    "line": 33,
                    "column": 9
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "objA",
                    "range": [
                      732,
                      736
                    ],
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 10
                      },
                      "end": {
                        "line": 33,
                        "column": 14
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "objB",
                    "range": [
                      738,
                      742
                    ],
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 16
                      },
                      "end": {
                        "line": 33,
                        "column": 20
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              754,
                              758
                            ],
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 8
                              },
                              "end": {
                                "line": 34,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "touch",
                            "range": [
                              759,
                              764
                            ],
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 13
                              },
                              "end": {
                                "line": 34,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            754,
                            764
                          ],
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 8
                            },
                            "end": {
                              "line": 34,
                              "column": 18
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "objA",
                            "range": [
                              765,
                              769
                            ],
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 19
                              },
                              "end": {
                                "line": 34,
                                "column": 23
                              }
                            }
                          }
                        ],
                        "range": [
                          754,
                          770
                        ],
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 8
                          },
                          "end": {
                            "line": 34,
                            "column": 24
                          }
                        }
                      },
                      "range": [
                        754,
                        771
                      ],
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 8
                        },
                        "end": {
                          "line": 34,
                          "column": 25
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              780,
                              784
                            ],
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 8
                              },
                              "end": {
                                "line": 35,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "touch",
                            "range": [
                              785,
                              790
                            ],
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 13
                              },
                              "end": {
                                "line": 35,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            780,
                            790
                          ],
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 8
                            },
                            "end": {
                              "line": 35,
                              "column": 18
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "objB",
                            "range": [
                              791,
                              795
                            ],
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 19
                              },
                              "end": {
                                "line": 35,
                                "column": 23
                              }
                            }
                          }
                        ],
                        "range": [
                          780,
                          796
                        ],
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 8
                          },
                          "end": {
                            "line": 35,
                            "column": 24
                          }
                        }
                      },
                      "range": [
                        780,
                        797
                      ],
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 8
                        },
                        "end": {
                          "line": 35,
                          "column": 25
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "Identifier",
                          "name": "objA",
                          "range": [
                            806,
                            810
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 12
                            }
                          }
                        },
                        "right": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                813,
                                817
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 15
                                },
                                "end": {
                                  "line": 36,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "getHead",
                              "range": [
                                818,
                                825
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 20
                                },
                                "end": {
                                  "line": 36,
                                  "column": 27
                                }
                              }
                            },
                            "range": [
                              813,
                              825
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 15
                              },
                              "end": {
                                "line": 36,
                                "column": 27
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "objA",
                              "range": [
                                826,
                                830
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 28
                                },
                                "end": {
                                  "line": 36,
                                  "column": 32
                                }
                              }
                            }
                          ],
                          "range": [
                            813,
                            831
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 15
                            },
                            "end": {
                              "line": 36,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          806,
                          831
                        ],
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 8
                          },
                          "end": {
                            "line": 36,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        806,
                        832
                      ],
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 8
                        },
                        "end": {
                          "line": 36,
                          "column": 34
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "Identifier",
                          "name": "objB",
                          "range": [
                            841,
                            845
                          ],
                          "loc": {
                            "start": {
                              "line": 37,
                              "column": 8
                            },
                            "end": {
                              "line": 37,
                              "column": 12
                            }
                          }
                        },
                        "right": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                848,
                                852
                              ],
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 15
                                },
                                "end": {
                                  "line": 37,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "getHead",
                              "range": [
                                853,
                                860
                              ],
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 20
                                },
                                "end": {
                                  "line": 37,
                                  "column": 27
                                }
                              }
                            },
                            "range": [
                              848,
                              860
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 15
                              },
                              "end": {
                                "line": 37,
                                "column": 27
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "objB",
                              "range": [
                                861,
                                865
                              ],
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 28
                                },
                                "end": {
                                  "line": 37,
                                  "column": 32
                                }
                              }
                            }
                          ],
                          "range": [
                            848,
                            866
                          ],
                          "loc": {
                            "start": {
                              "line": 37,
                              "column": 15
                            },
                            "end": {
                              "line": 37,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          841,
                          866
                        ],
                        "loc": {
                          "start": {
                            "line": 37,
                            "column": 8
                          },
                          "end": {
                            "line": 37,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        841,
                        867
                      ],
                      "loc": {
                        "start": {
                          "line": 37,
                          "column": 8
                        },
                        "end": {
                          "line": 37,
                          "column": 34
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "<",
                        "left": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "Math",
                              "range": [
                                880,
                                884
                              ],
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 12
                                },
                                "end": {
                                  "line": 38,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "random",
                              "range": [
                                885,
                                891
                              ],
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 17
                                },
                                "end": {
                                  "line": 38,
                                  "column": 23
                                }
                              }
                            },
                            "range": [
                              880,
                              891
                            ],
                            "loc": {
                              "start": {
                                "line": 38,
                                "column": 12
                              },
                              "end": {
                                "line": 38,
                                "column": 23
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            880,
                            893
                          ],
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 12
                            },
                            "end": {
                              "line": 38,
                              "column": 25
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0.5,
                          "raw": "0.5",
                          "range": [
                            896,
                            899
                          ],
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 28
                            },
                            "end": {
                              "line": 38,
                              "column": 31
                            }
                          }
                        },
                        "range": [
                          880,
                          899
                        ],
                        "loc": {
                          "start": {
                            "line": 38,
                            "column": 12
                          },
                          "end": {
                            "line": 38,
                            "column": 31
                          }
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "argument": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                920,
                                924
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 19
                                },
                                "end": {
                                  "line": 39,
                                  "column": 23
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "setParent",
                              "range": [
                                925,
                                934
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 24
                                },
                                "end": {
                                  "line": 39,
                                  "column": 33
                                }
                              }
                            },
                            "range": [
                              920,
                              934
                            ],
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 19
                              },
                              "end": {
                                "line": 39,
                                "column": 33
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "objA",
                              "range": [
                                935,
                                939
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 34
                                },
                                "end": {
                                  "line": 39,
                                  "column": 38
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "objB",
                              "range": [
                                941,
                                945
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 40
                                },
                                "end": {
                                  "line": 39,
                                  "column": 44
                                }
                              }
                            }
                          ],
                          "range": [
                            920,
                            946
                          ],
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 19
                            },
                            "end": {
                              "line": 39,
                              "column": 45
                            }
                          }
                        },
                        "range": [
                          913,
                          947
                        ],
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 12
                          },
                          "end": {
                            "line": 39,
                            "column": 46
                          }
                        }
                      },
                      "alternate": {
                        "type": "ReturnStatement",
                        "argument": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                980,
                                984
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 19
                                },
                                "end": {
                                  "line": 41,
                                  "column": 23
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "setParent",
                              "range": [
                                985,
                                994
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 24
                                },
                                "end": {
                                  "line": 41,
                                  "column": 33
                                }
                              }
                            },
                            "range": [
                              980,
                              994
                            ],
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 19
                              },
                              "end": {
                                "line": 41,
                                "column": 33
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "objB",
                              "range": [
                                995,
                                999
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 34
                                },
                                "end": {
                                  "line": 41,
                                  "column": 38
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "objA",
                              "range": [
                                1001,
                                1005
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 40
                                },
                                "end": {
                                  "line": 41,
                                  "column": 44
                                }
                              }
                            }
                          ],
                          "range": [
                            980,
                            1006
                          ],
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 19
                            },
                            "end": {
                              "line": 41,
                              "column": 45
                            }
                          }
                        },
                        "range": [
                          973,
                          1007
                        ],
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 12
                          },
                          "end": {
                            "line": 41,
                            "column": 46
                          }
                        }
                      },
                      "range": [
                        876,
                        1007
                      ],
                      "loc": {
                        "start": {
                          "line": 38,
                          "column": 8
                        },
                        "end": {
                          "line": 41,
                          "column": 46
                        }
                      }
                    }
                  ],
                  "range": [
                    744,
                    1013
                  ],
                  "loc": {
                    "start": {
                      "line": 33,
                      "column": 22
                    },
                    "end": {
                      "line": 42,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  731,
                  1013
                ],
                "loc": {
                  "start": {
                    "line": 33,
                    "column": 9
                  },
                  "end": {
                    "line": 42,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                726,
                1013
              ],
              "loc": {
                "start": {
                  "line": 33,
                  "column": 4
                },
                "end": {
                  "line": 42,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "getTouched",
                "range": [
                  1019,
                  1029
                ],
                "loc": {
                  "start": {
                    "line": 44,
                    "column": 4
                  },
                  "end": {
                    "line": 44,
                    "column": 14
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "Array",
                            "range": [
                              1049,
                              1054
                            ],
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 15
                              },
                              "end": {
                                "line": 45,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "from",
                            "range": [
                              1055,
                              1059
                            ],
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 21
                              },
                              "end": {
                                "line": 45,
                                "column": 25
                              }
                            }
                          },
                          "range": [
                            1049,
                            1059
                          ],
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 15
                            },
                            "end": {
                              "line": 45,
                              "column": 25
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1060,
                                    1064
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 30
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "parents",
                                  "range": [
                                    1065,
                                    1072
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 38
                                    }
                                  }
                                },
                                "range": [
                                  1060,
                                  1072
                                ],
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 38
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "keys",
                                "range": [
                                  1073,
                                  1077
                                ],
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 43
                                  }
                                }
                              },
                              "range": [
                                1060,
                                1077
                              ],
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 26
                                },
                                "end": {
                                  "line": 45,
                                  "column": 43
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              1060,
                              1079
                            ],
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 26
                              },
                              "end": {
                                "line": 45,
                                "column": 45
                              }
                            }
                          }
                        ],
                        "range": [
                          1049,
                          1080
                        ],
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 15
                          },
                          "end": {
                            "line": 45,
                            "column": 46
                          }
                        }
                      },
                      "range": [
                        1042,
                        1081
                      ],
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 8
                        },
                        "end": {
                          "line": 45,
                          "column": 47
                        }
                      }
                    }
                  ],
                  "range": [
                    1032,
                    1087
                  ],
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 17
                    },
                    "end": {
                      "line": 46,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1029,
                  1087
                ],
                "loc": {
                  "start": {
                    "line": 44,
                    "column": 14
                  },
                  "end": {
                    "line": 46,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1019,
                1087
              ],
              "loc": {
                "start": {
                  "line": 44,
                  "column": 4
                },
                "end": {
                  "line": 46,
                  "column": 5
                }
              },
              "static": false
            }
          ],
          "range": [
            209,
            1089
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 17
            },
            "end": {
              "line": 47,
              "column": 1
            }
          }
        },
        "range": [
          199,
          1089
        ],
        "loc": {
          "start": {
            "line": 6,
            "column": 7
          },
          "end": {
            "line": 47,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Line",
            "value": "====================== Disjoint Set Union ========================",
            "range": [
              123,
              191
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 0
              },
              "end": {
                "line": 5,
                "column": 68
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "Line",
            "value": "====================== Constraints adder ========================",
            "range": [
              1091,
              1158
            ],
            "loc": {
              "start": {
                "line": 49,
                "column": 0
              },
              "end": {
                "line": 49,
                "column": 67
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        192,
        1089
      ],
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 47,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Line",
          "value": "====================== Disjoint Set Union ========================",
          "range": [
            123,
            191
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 0
            },
            "end": {
              "line": 5,
              "column": 68
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "====================== Constraints adder ========================",
          "range": [
            1091,
            1158
          ],
          "loc": {
            "start": {
              "line": 49,
              "column": 0
            },
            "end": {
              "line": 49,
              "column": 67
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "ConstraintsAdder",
          "range": [
            1172,
            1188
          ],
          "loc": {
            "start": {
              "line": 50,
              "column": 13
            },
            "end": {
              "line": 50,
              "column": 29
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  1195,
                  1206
                ],
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 4
                  },
                  "end": {
                    "line": 51,
                    "column": 15
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "sketch",
                    "range": [
                      1207,
                      1213
                    ],
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 16
                      },
                      "end": {
                        "line": 51,
                        "column": 22
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1281,
                              1285
                            ],
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 8
                              },
                              "end": {
                                "line": 53,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "sketch",
                            "range": [
                              1286,
                              1292
                            ],
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 13
                              },
                              "end": {
                                "line": 53,
                                "column": 19
                              }
                            }
                          },
                          "range": [
                            1281,
                            1292
                          ],
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 8
                            },
                            "end": {
                              "line": 53,
                              "column": 19
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "sketch",
                          "range": [
                            1295,
                            1301
                          ],
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 22
                            },
                            "end": {
                              "line": 53,
                              "column": 28
                            }
                          }
                        },
                        "range": [
                          1281,
                          1301
                        ],
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 8
                          },
                          "end": {
                            "line": 53,
                            "column": 28
                          }
                        }
                      },
                      "range": [
                        1281,
                        1302
                      ],
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 8
                        },
                        "end": {
                          "line": 53,
                          "column": 29
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "the sketch we are going to add constraints to",
                          "range": [
                            1225,
                            1272
                          ],
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 8
                            },
                            "end": {
                              "line": 52,
                              "column": 55
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "the list of constraints which really should be added",
                          "range": [
                            1311,
                            1365
                          ],
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 62
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1374,
                              1378
                            ],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 8
                              },
                              "end": {
                                "line": 55,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "constraints",
                            "range": [
                              1379,
                              1390
                            ],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 13
                              },
                              "end": {
                                "line": 55,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            1374,
                            1390
                          ],
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 8
                            },
                            "end": {
                              "line": 55,
                              "column": 24
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            1393,
                            1395
                          ],
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 27
                            },
                            "end": {
                              "line": 55,
                              "column": 29
                            }
                          }
                        },
                        "range": [
                          1374,
                          1395
                        ],
                        "loc": {
                          "start": {
                            "line": 55,
                            "column": 8
                          },
                          "end": {
                            "line": 55,
                            "column": 29
                          }
                        }
                      },
                      "range": [
                        1374,
                        1396
                      ],
                      "loc": {
                        "start": {
                          "line": 55,
                          "column": 8
                        },
                        "end": {
                          "line": 55,
                          "column": 30
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "the list of constraints which really should be added",
                          "range": [
                            1311,
                            1365
                          ],
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 62
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "dsu structures for incident and inc-tangent point groups",
                          "range": [
                            1406,
                            1464
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 8
                            },
                            "end": {
                              "line": 57,
                              "column": 66
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1473,
                              1477
                            ],
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 8
                              },
                              "end": {
                                "line": 58,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "incidenceDsu",
                            "range": [
                              1478,
                              1490
                            ],
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 13
                              },
                              "end": {
                                "line": 58,
                                "column": 25
                              }
                            }
                          },
                          "range": [
                            1473,
                            1490
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 8
                            },
                            "end": {
                              "line": 58,
                              "column": 25
                            }
                          }
                        },
                        "right": {
                          "type": "NewExpression",
                          "callee": {
                            "type": "Identifier",
                            "name": "DSU",
                            "range": [
                              1497,
                              1500
                            ],
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 32
                              },
                              "end": {
                                "line": 58,
                                "column": 35
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            1493,
                            1502
                          ],
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 28
                            },
                            "end": {
                              "line": 58,
                              "column": 37
                            }
                          }
                        },
                        "range": [
                          1473,
                          1502
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 8
                          },
                          "end": {
                            "line": 58,
                            "column": 37
                          }
                        }
                      },
                      "range": [
                        1473,
                        1503
                      ],
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 8
                        },
                        "end": {
                          "line": 58,
                          "column": 38
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "dsu structures for incident and inc-tangent point groups",
                          "range": [
                            1406,
                            1464
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 8
                            },
                            "end": {
                              "line": 57,
                              "column": 66
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "this.tangencyDsu = new DSU();    //TODO!",
                          "range": [
                            1512,
                            1554
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 8
                            },
                            "end": {
                              "line": 59,
                              "column": 50
                            }
                          }
                        },
                        {
                          "type": "Line",
                          "value": "sets of horizontal and vertical lines",
                          "range": [
                            1563,
                            1602
                          ],
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 8
                            },
                            "end": {
                              "line": 60,
                              "column": 47
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1611,
                              1615
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 8
                              },
                              "end": {
                                "line": 61,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "horizontalSet",
                            "range": [
                              1616,
                              1629
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 13
                              },
                              "end": {
                                "line": 61,
                                "column": 26
                              }
                            }
                          },
                          "range": [
                            1611,
                            1629
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 8
                            },
                            "end": {
                              "line": 61,
                              "column": 26
                            }
                          }
                        },
                        "right": {
                          "type": "NewExpression",
                          "callee": {
                            "type": "Identifier",
                            "name": "Set",
                            "range": [
                              1636,
                              1639
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 33
                              },
                              "end": {
                                "line": 61,
                                "column": 36
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            1632,
                            1641
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 29
                            },
                            "end": {
                              "line": 61,
                              "column": 38
                            }
                          }
                        },
                        "range": [
                          1611,
                          1641
                        ],
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 8
                          },
                          "end": {
                            "line": 61,
                            "column": 38
                          }
                        }
                      },
                      "range": [
                        1611,
                        1642
                      ],
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 8
                        },
                        "end": {
                          "line": 61,
                          "column": 39
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "this.tangencyDsu = new DSU();    //TODO!",
                          "range": [
                            1512,
                            1554
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 8
                            },
                            "end": {
                              "line": 59,
                              "column": 50
                            }
                          }
                        },
                        {
                          "type": "Line",
                          "value": "sets of horizontal and vertical lines",
                          "range": [
                            1563,
                            1602
                          ],
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 8
                            },
                            "end": {
                              "line": 60,
                              "column": 47
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1651,
                              1655
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 8
                              },
                              "end": {
                                "line": 62,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "verticalSet",
                            "range": [
                              1656,
                              1667
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 13
                              },
                              "end": {
                                "line": 62,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            1651,
                            1667
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 8
                            },
                            "end": {
                              "line": 62,
                              "column": 24
                            }
                          }
                        },
                        "right": {
                          "type": "NewExpression",
                          "callee": {
                            "type": "Identifier",
                            "name": "Set",
                            "range": [
                              1674,
                              1677
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 31
                              },
                              "end": {
                                "line": 62,
                                "column": 34
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            1670,
                            1679
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 27
                            },
                            "end": {
                              "line": 62,
                              "column": 36
                            }
                          }
                        },
                        "range": [
                          1651,
                          1679
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 8
                          },
                          "end": {
                            "line": 62,
                            "column": 36
                          }
                        }
                      },
                      "range": [
                        1651,
                        1680
                      ],
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 8
                        },
                        "end": {
                          "line": 62,
                          "column": 37
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "preprocess all objects and constraints currently on sketch",
                          "range": [
                            1690,
                            1750
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 8
                            },
                            "end": {
                              "line": 64,
                              "column": 68
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1759,
                              1763
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "init",
                            "range": [
                              1764,
                              1768
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 13
                              },
                              "end": {
                                "line": 65,
                                "column": 17
                              }
                            }
                          },
                          "range": [
                            1759,
                            1768
                          ],
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 8
                            },
                            "end": {
                              "line": 65,
                              "column": 17
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          1759,
                          1770
                        ],
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 8
                          },
                          "end": {
                            "line": 65,
                            "column": 19
                          }
                        }
                      },
                      "range": [
                        1759,
                        1771
                      ],
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 8
                        },
                        "end": {
                          "line": 65,
                          "column": 20
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "preprocess all objects and constraints currently on sketch",
                          "range": [
                            1690,
                            1750
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 8
                            },
                            "end": {
                              "line": 64,
                              "column": 68
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "range": [
                    1215,
                    1777
                  ],
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 24
                    },
                    "end": {
                      "line": 66,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1206,
                  1777
                ],
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 15
                  },
                  "end": {
                    "line": 66,
                    "column": 5
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                1195,
                1777
              ],
              "loc": {
                "start": {
                  "line": 51,
                  "column": 4
                },
                "end": {
                  "line": 66,
                  "column": 5
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "init",
                "range": [
                  1783,
                  1787
                ],
                "loc": {
                  "start": {
                    "line": 68,
                    "column": 4
                  },
                  "end": {
                    "line": 68,
                    "column": 8
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "constraints",
                            "range": [
                              1856,
                              1867
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 12
                              },
                              "end": {
                                "line": 70,
                                "column": 23
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1870,
                                    1874
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 30
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "sketch",
                                  "range": [
                                    1875,
                                    1881
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  1870,
                                  1881
                                ],
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 37
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "getConstraintsOnSketch",
                                "range": [
                                  1882,
                                  1904
                                ],
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 60
                                  }
                                }
                              },
                              "range": [
                                1870,
                                1904
                              ],
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 26
                                },
                                "end": {
                                  "line": 70,
                                  "column": 60
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              1870,
                              1906
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 26
                              },
                              "end": {
                                "line": 70,
                                "column": 62
                              }
                            }
                          },
                          "range": [
                            1856,
                            1906
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 12
                            },
                            "end": {
                              "line": 70,
                              "column": 62
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        1852,
                        1907
                      ],
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 63
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "take all present constraints into account",
                          "range": [
                            1800,
                            1843
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 8
                            },
                            "end": {
                              "line": 69,
                              "column": 51
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ForOfStatement",
                      "left": {
                        "type": "VariableDeclaration",
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "id": {
                              "type": "Identifier",
                              "name": "constr",
                              "range": [
                                1925,
                                1931
                              ],
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 17
                                },
                                "end": {
                                  "line": 71,
                                  "column": 23
                                }
                              }
                            },
                            "init": null,
                            "range": [
                              1925,
                              1931
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 17
                              },
                              "end": {
                                "line": 71,
                                "column": 23
                              }
                            }
                          }
                        ],
                        "kind": "var",
                        "range": [
                          1921,
                          1931
                        ],
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 13
                          },
                          "end": {
                            "line": 71,
                            "column": 23
                          }
                        }
                      },
                      "right": {
                        "type": "Identifier",
                        "name": "constraints",
                        "range": [
                          1935,
                          1946
                        ],
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 27
                          },
                          "end": {
                            "line": 71,
                            "column": 38
                          }
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "constr",
                                  "range": [
                                    1966,
                                    1972
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "typename",
                                  "range": [
                                    1973,
                                    1981
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  1966,
                                  1981
                                ],
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 31
                                  }
                                }
                              },
                              "right": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "Constraint",
                                      "range": [
                                        1986,
                                        1996
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "Type",
                                      "range": [
                                        1997,
                                        2001
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "range": [
                                      1986,
                                      2001
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 51
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "INCIDENCE",
                                    "range": [
                                      2002,
                                      2011
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 61
                                      }
                                    }
                                  },
                                  "range": [
                                    1986,
                                    2011
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 61
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Literal",
                                  "value": 0,
                                  "raw": "0",
                                  "range": [
                                    2012,
                                    2013
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 62
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 63
                                    }
                                  }
                                },
                                "range": [
                                  1986,
                                  2014
                                ],
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 64
                                  }
                                }
                              },
                              "range": [
                                1966,
                                2014
                              ],
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 16
                                },
                                "end": {
                                  "line": 72,
                                  "column": 64
                                }
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2032,
                                        2036
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "incidenceDsu",
                                      "range": [
                                        2037,
                                        2049
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "range": [
                                      2032,
                                      2049
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "merge",
                                    "range": [
                                      2050,
                                      2055
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 39
                                      }
                                    }
                                  },
                                  "range": [
                                    2032,
                                    2055
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 39
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          2056,
                                          2062
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 46
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          2063,
                                          2067
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 51
                                          }
                                        }
                                      },
                                      "range": [
                                        2056,
                                        2067
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2068,
                                        2069
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 52
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 53
                                        }
                                      }
                                    },
                                    "range": [
                                      2056,
                                      2070
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 54
                                      }
                                    }
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          2072,
                                          2078
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 62
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          2079,
                                          2083
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 63
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 67
                                          }
                                        }
                                      },
                                      "range": [
                                        2072,
                                        2083
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 67
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 1,
                                      "raw": "1",
                                      "range": [
                                        2084,
                                        2085
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 68
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 69
                                        }
                                      }
                                    },
                                    "range": [
                                      2072,
                                      2086
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 56
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 70
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2032,
                                  2087
                                ],
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 71
                                  }
                                }
                              },
                              "range": [
                                2032,
                                2088
                              ],
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 16
                                },
                                "end": {
                                  "line": 73,
                                  "column": 72
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              1962,
                              2088
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 12
                              },
                              "end": {
                                "line": 73,
                                "column": 72
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "constr",
                                  "range": [
                                    2105,
                                    2111
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "typename",
                                  "range": [
                                    2112,
                                    2120
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  2105,
                                  2120
                                ],
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 31
                                  }
                                }
                              },
                              "right": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "Constraint",
                                      "range": [
                                        2125,
                                        2135
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "Type",
                                      "range": [
                                        2136,
                                        2140
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "range": [
                                      2125,
                                      2140
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 51
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "VERTICALITY",
                                    "range": [
                                      2141,
                                      2152
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 63
                                      }
                                    }
                                  },
                                  "range": [
                                    2125,
                                    2152
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 63
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Literal",
                                  "value": 0,
                                  "raw": "0",
                                  "range": [
                                    2153,
                                    2154
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 64
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 65
                                    }
                                  }
                                },
                                "range": [
                                  2125,
                                  2155
                                ],
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 66
                                  }
                                }
                              },
                              "range": [
                                2105,
                                2155
                              ],
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 16
                                },
                                "end": {
                                  "line": 74,
                                  "column": 66
                                }
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2173,
                                        2177
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "verticalSet",
                                      "range": [
                                        2178,
                                        2189
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "range": [
                                      2173,
                                      2189
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "add",
                                    "range": [
                                      2190,
                                      2193
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 36
                                      }
                                    }
                                  },
                                  "range": [
                                    2173,
                                    2193
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 36
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          2194,
                                          2200
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 75,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 75,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          2201,
                                          2205
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 75,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 75,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "range": [
                                        2194,
                                        2205
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 48
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2206,
                                        2207
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "range": [
                                      2194,
                                      2208
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 51
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2173,
                                  2209
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 52
                                  }
                                }
                              },
                              "range": [
                                2173,
                                2210
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 16
                                },
                                "end": {
                                  "line": 75,
                                  "column": 53
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              2101,
                              2210
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 12
                              },
                              "end": {
                                "line": 75,
                                "column": 53
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "constr",
                                  "range": [
                                    2227,
                                    2233
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "typename",
                                  "range": [
                                    2234,
                                    2242
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  2227,
                                  2242
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 31
                                  }
                                }
                              },
                              "right": {
                                "type": "MemberExpression",
                                "computed": true,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "Constraint",
                                      "range": [
                                        2247,
                                        2257
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "Type",
                                      "range": [
                                        2258,
                                        2262
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "range": [
                                      2247,
                                      2262
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 51
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "HORIZONTALITY",
                                    "range": [
                                      2263,
                                      2276
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 65
                                      }
                                    }
                                  },
                                  "range": [
                                    2247,
                                    2276
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 65
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Literal",
                                  "value": 0,
                                  "raw": "0",
                                  "range": [
                                    2277,
                                    2278
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 66
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 67
                                    }
                                  }
                                },
                                "range": [
                                  2247,
                                  2279
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 68
                                  }
                                }
                              },
                              "range": [
                                2227,
                                2279
                              ],
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 16
                                },
                                "end": {
                                  "line": 76,
                                  "column": 68
                                }
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2297,
                                        2301
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "horizontalSet",
                                      "range": [
                                        2302,
                                        2315
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      2297,
                                      2315
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "add",
                                    "range": [
                                      2316,
                                      2319
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 38
                                      }
                                    }
                                  },
                                  "range": [
                                    2297,
                                    2319
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 77,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 77,
                                      "column": 38
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          2320,
                                          2326
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 77,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 77,
                                            "column": 45
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          2327,
                                          2331
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 77,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 77,
                                            "column": 50
                                          }
                                        }
                                      },
                                      "range": [
                                        2320,
                                        2331
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2332,
                                        2333
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "range": [
                                      2320,
                                      2334
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 53
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2297,
                                  2335
                                ],
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 54
                                  }
                                }
                              },
                              "range": [
                                2297,
                                2336
                              ],
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 16
                                },
                                "end": {
                                  "line": 77,
                                  "column": 55
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              2223,
                              2336
                            ],
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 12
                              },
                              "end": {
                                "line": 77,
                                "column": 55
                              }
                            }
                          }
                        ],
                        "range": [
                          1948,
                          2346
                        ],
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 40
                          },
                          "end": {
                            "line": 78,
                            "column": 9
                          }
                        }
                      },
                      "range": [
                        1916,
                        2346
                      ],
                      "loc": {
                        "start": {
                          "line": 71,
                          "column": 8
                        },
                        "end": {
                          "line": 78,
                          "column": 9
                        }
                      }
                    }
                  ],
                  "range": [
                    1790,
                    2352
                  ],
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 11
                    },
                    "end": {
                      "line": 79,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1787,
                  2352
                ],
                "loc": {
                  "start": {
                    "line": 68,
                    "column": 8
                  },
                  "end": {
                    "line": 79,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1783,
                2352
              ],
              "loc": {
                "start": {
                  "line": 68,
                  "column": 4
                },
                "end": {
                  "line": 79,
                  "column": 5
                }
              },
              "trailingComments": [
                {
                  "type": "Line",
                  "value": "add new constraint to internal buffer (if it is not excessive)",
                  "range": [
                    2358,
                    2422
                  ],
                  "loc": {
                    "start": {
                      "line": 81,
                      "column": 4
                    },
                    "end": {
                      "line": 81,
                      "column": 68
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "add",
                "range": [
                  2427,
                  2430
                ],
                "loc": {
                  "start": {
                    "line": 82,
                    "column": 4
                  },
                  "end": {
                    "line": 82,
                    "column": 7
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "types",
                    "range": [
                      2431,
                      2436
                    ],
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 8
                      },
                      "end": {
                        "line": 82,
                        "column": 13
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "args",
                    "range": [
                      2438,
                      2442
                    ],
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 15
                      },
                      "end": {
                        "line": 82,
                        "column": 19
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "attributes",
                    "range": [
                      2444,
                      2454
                    ],
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 21
                      },
                      "end": {
                        "line": 82,
                        "column": 31
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "add",
                            "range": [
                              2470,
                              2473
                            ],
                            "loc": {
                              "start": {
                                "line": 83,
                                "column": 12
                              },
                              "end": {
                                "line": 83,
                                "column": 15
                              }
                            }
                          },
                          "init": {
                            "type": "Literal",
                            "value": false,
                            "raw": "false",
                            "range": [
                              2476,
                              2481
                            ],
                            "loc": {
                              "start": {
                                "line": 83,
                                "column": 18
                              },
                              "end": {
                                "line": 83,
                                "column": 23
                              }
                            }
                          },
                          "range": [
                            2470,
                            2481
                          ],
                          "loc": {
                            "start": {
                              "line": 83,
                              "column": 12
                            },
                            "end": {
                              "line": 83,
                              "column": 23
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        2466,
                        2482
                      ],
                      "loc": {
                        "start": {
                          "line": 83,
                          "column": 8
                        },
                        "end": {
                          "line": 83,
                          "column": 24
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "if the new constraint is not excessive, then take it into account",
                          "range": [
                            2491,
                            2558
                          ],
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 8
                            },
                            "end": {
                              "line": 84,
                              "column": 75
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "===",
                        "left": {
                          "type": "Identifier",
                          "name": "types",
                          "range": [
                            2571,
                            2576
                          ],
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 12
                            },
                            "end": {
                              "line": 85,
                              "column": 17
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "Constraint",
                              "range": [
                                2581,
                                2591
                              ],
                              "loc": {
                                "start": {
                                  "line": 85,
                                  "column": 22
                                },
                                "end": {
                                  "line": 85,
                                  "column": 32
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "Type",
                              "range": [
                                2592,
                                2596
                              ],
                              "loc": {
                                "start": {
                                  "line": 85,
                                  "column": 33
                                },
                                "end": {
                                  "line": 85,
                                  "column": 37
                                }
                              }
                            },
                            "range": [
                              2581,
                              2596
                            ],
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 22
                              },
                              "end": {
                                "line": 85,
                                "column": 37
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "INCIDENCE",
                            "range": [
                              2597,
                              2606
                            ],
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 38
                              },
                              "end": {
                                "line": 85,
                                "column": 47
                              }
                            }
                          },
                          "range": [
                            2581,
                            2606
                          ],
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 22
                            },
                            "end": {
                              "line": 85,
                              "column": 47
                            }
                          }
                        },
                        "range": [
                          2571,
                          2606
                        ],
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 12
                          },
                          "end": {
                            "line": 85,
                            "column": 47
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "!==",
                              "left": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2897,
                                        2901
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "incidenceDsu",
                                      "range": [
                                        2902,
                                        2914
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "range": [
                                      2897,
                                      2914
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "getHead",
                                    "range": [
                                      2915,
                                      2922
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 41
                                      }
                                    }
                                  },
                                  "range": [
                                    2897,
                                    2922
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 41
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "args",
                                      "range": [
                                        2923,
                                        2927
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 0,
                                      "raw": "0",
                                      "range": [
                                        2928,
                                        2929
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 48
                                        }
                                      }
                                    },
                                    "range": [
                                      2923,
                                      2930
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 49
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2897,
                                  2931
                                ],
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 50
                                  }
                                }
                              },
                              "right": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2936,
                                        2940
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 59
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "incidenceDsu",
                                      "range": [
                                        2941,
                                        2953
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 72
                                        }
                                      }
                                    },
                                    "range": [
                                      2936,
                                      2953
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 72
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "getHead",
                                    "range": [
                                      2954,
                                      2961
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 73
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 80
                                      }
                                    }
                                  },
                                  "range": [
                                    2936,
                                    2961
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 80
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": true,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "args",
                                      "range": [
                                        2962,
                                        2966
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 81
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 85
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Literal",
                                      "value": 1,
                                      "raw": "1",
                                      "range": [
                                        2967,
                                        2968
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 86
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 87
                                        }
                                      }
                                    },
                                    "range": [
                                      2962,
                                      2969
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 81
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 88
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2936,
                                  2970
                                ],
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 89
                                  }
                                }
                              },
                              "range": [
                                2897,
                                2970
                              ],
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 16
                                },
                                "end": {
                                  "line": 89,
                                  "column": 89
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "add",
                                      "range": [
                                        2990,
                                        2993
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "value": true,
                                      "raw": "true",
                                      "range": [
                                        2996,
                                        3000
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 26
                                        }
                                      }
                                    },
                                    "range": [
                                      2990,
                                      3000
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 90,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 90,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    2990,
                                    3001
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 90,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 90,
                                      "column": 27
                                    }
                                  }
                                },
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3018,
                                            3022
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "incidenceDsu",
                                          "range": [
                                            3023,
                                            3035
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          3018,
                                          3035
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "merge",
                                        "range": [
                                          3036,
                                          3041
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "range": [
                                        3018,
                                        3041
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "args",
                                          "range": [
                                            3042,
                                            3046
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Literal",
                                          "value": 0,
                                          "raw": "0",
                                          "range": [
                                            3047,
                                            3048
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 45
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 46
                                            }
                                          }
                                        },
                                        "range": [
                                          3042,
                                          3049
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 47
                                          }
                                        }
                                      },
                                      {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "args",
                                          "range": [
                                            3051,
                                            3055
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 49
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 53
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Literal",
                                          "value": 1,
                                          "raw": "1",
                                          "range": [
                                            3056,
                                            3057
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 55
                                            }
                                          }
                                        },
                                        "range": [
                                          3051,
                                          3058
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 56
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3018,
                                      3059
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 91,
                                        "column": 57
                                      }
                                    }
                                  },
                                  "range": [
                                    3018,
                                    3060
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 91,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 91,
                                      "column": 58
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2972,
                                3074
                              ],
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 91
                                },
                                "end": {
                                  "line": 92,
                                  "column": 13
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              2893,
                              3074
                            ],
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 12
                              },
                              "end": {
                                "line": 92,
                                "column": 13
                              }
                            },
                            "leadingComments": [
                              {
                                "type": "Line",
                                "value": "TODO: implemented more complicated handling of incidence",
                                "range": [
                                  2622,
                                  2680
                                ],
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 70
                                  }
                                }
                              },
                              {
                                "type": "Line",
                                "value": "Incidence is an equivalence either on points or on lines / arcs, but not on both together.",
                                "range": [
                                  2693,
                                  2785
                                ],
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 104
                                  }
                                }
                              },
                              {
                                "type": "Line",
                                "value": "E.g.: if a point is incident to two lines, then these lines may be NOT incident.",
                                "range": [
                                  2798,
                                  2880
                                ],
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 94
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "range": [
                          2608,
                          3084
                        ],
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 49
                          },
                          "end": {
                            "line": 93,
                            "column": 9
                          }
                        }
                      },
                      "alternate": {
                        "type": "IfStatement",
                        "test": {
                          "type": "BinaryExpression",
                          "operator": "===",
                          "left": {
                            "type": "Identifier",
                            "name": "types",
                            "range": [
                              3102,
                              3107
                            ],
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 17
                              },
                              "end": {
                                "line": 94,
                                "column": 22
                              }
                            }
                          },
                          "right": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "Constraint",
                                "range": [
                                  3112,
                                  3122
                                ],
                                "loc": {
                                  "start": {
                                    "line": 94,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 37
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "Type",
                                "range": [
                                  3123,
                                  3127
                                ],
                                "loc": {
                                  "start": {
                                    "line": 94,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 42
                                  }
                                }
                              },
                              "range": [
                                3112,
                                3127
                              ],
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 27
                                },
                                "end": {
                                  "line": 94,
                                  "column": 42
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "VERTICALITY",
                              "range": [
                                3128,
                                3139
                              ],
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 43
                                },
                                "end": {
                                  "line": 94,
                                  "column": 54
                                }
                              }
                            },
                            "range": [
                              3112,
                              3139
                            ],
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 27
                              },
                              "end": {
                                "line": 94,
                                "column": 54
                              }
                            }
                          },
                          "range": [
                            3102,
                            3139
                          ],
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 17
                            },
                            "end": {
                              "line": 94,
                              "column": 54
                            }
                          }
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "UnaryExpression",
                                "operator": "!",
                                "argument": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          3160,
                                          3164
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 21
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "verticalSet",
                                        "range": [
                                          3165,
                                          3176
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "range": [
                                        3160,
                                        3176
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "has",
                                      "range": [
                                        3177,
                                        3180
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 37
                                        }
                                      }
                                    },
                                    "range": [
                                      3160,
                                      3180
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "computed": true,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "args",
                                        "range": [
                                          3181,
                                          3185
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 42
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Literal",
                                        "value": 0,
                                        "raw": "0",
                                        "range": [
                                          3186,
                                          3187
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 43
                                          },
                                          "end": {
                                            "line": 95,
                                            "column": 44
                                          }
                                        }
                                      },
                                      "range": [
                                        3181,
                                        3188
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 45
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3160,
                                    3189
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 46
                                    }
                                  }
                                },
                                "prefix": true,
                                "range": [
                                  3159,
                                  3189
                                ],
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 95,
                                    "column": 46
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "add",
                                        "range": [
                                          3209,
                                          3212
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 96,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 96,
                                            "column": 19
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          3215,
                                          3219
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 96,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 96,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "range": [
                                        3209,
                                        3219
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 96,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 96,
                                          "column": 26
                                        }
                                      }
                                    },
                                    "range": [
                                      3209,
                                      3220
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 96,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 96,
                                        "column": 27
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3237,
                                              3241
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 20
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "verticalSet",
                                            "range": [
                                              3242,
                                              3253
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 32
                                              }
                                            }
                                          },
                                          "range": [
                                            3237,
                                            3253
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "add",
                                          "range": [
                                            3254,
                                            3257
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 33
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "range": [
                                          3237,
                                          3257
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 97,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "MemberExpression",
                                          "computed": true,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "args",
                                            "range": [
                                              3258,
                                              3262
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 37
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 41
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Literal",
                                            "value": 0,
                                            "raw": "0",
                                            "range": [
                                              3263,
                                              3264
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 42
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 43
                                              }
                                            }
                                          },
                                          "range": [
                                            3258,
                                            3265
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 37
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 44
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3237,
                                        3266
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 97,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 97,
                                          "column": 45
                                        }
                                      }
                                    },
                                    "range": [
                                      3237,
                                      3267
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 97,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 46
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3191,
                                  3281
                                ],
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 13
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3155,
                                3281
                              ],
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 12
                                },
                                "end": {
                                  "line": 98,
                                  "column": 13
                                }
                              }
                            }
                          ],
                          "range": [
                            3141,
                            3291
                          ],
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 56
                            },
                            "end": {
                              "line": 99,
                              "column": 9
                            }
                          }
                        },
                        "alternate": {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "Identifier",
                              "name": "types",
                              "range": [
                                3309,
                                3314
                              ],
                              "loc": {
                                "start": {
                                  "line": 100,
                                  "column": 17
                                },
                                "end": {
                                  "line": 100,
                                  "column": 22
                                }
                              }
                            },
                            "right": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "Constraint",
                                  "range": [
                                    3319,
                                    3329
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 100,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 100,
                                      "column": 37
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "Type",
                                  "range": [
                                    3330,
                                    3334
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 100,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 100,
                                      "column": 42
                                    }
                                  }
                                },
                                "range": [
                                  3319,
                                  3334
                                ],
                                "loc": {
                                  "start": {
                                    "line": 100,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 100,
                                    "column": 42
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "HORIZONTALITY",
                                "range": [
                                  3335,
                                  3348
                                ],
                                "loc": {
                                  "start": {
                                    "line": 100,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 100,
                                    "column": 56
                                  }
                                }
                              },
                              "range": [
                                3319,
                                3348
                              ],
                              "loc": {
                                "start": {
                                  "line": 100,
                                  "column": 27
                                },
                                "end": {
                                  "line": 100,
                                  "column": 56
                                }
                              }
                            },
                            "range": [
                              3309,
                              3348
                            ],
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 17
                              },
                              "end": {
                                "line": 100,
                                "column": 56
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "UnaryExpression",
                                  "operator": "!",
                                  "argument": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3369,
                                            3373
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 101,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 101,
                                              "column": 21
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "horizontalSet",
                                          "range": [
                                            3374,
                                            3387
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 101,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 101,
                                              "column": 35
                                            }
                                          }
                                        },
                                        "range": [
                                          3369,
                                          3387
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 101,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 101,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "has",
                                        "range": [
                                          3388,
                                          3391
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 101,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 101,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "range": [
                                        3369,
                                        3391
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 101,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 101,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "computed": true,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "args",
                                          "range": [
                                            3392,
                                            3396
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 101,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 101,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Literal",
                                          "value": 0,
                                          "raw": "0",
                                          "range": [
                                            3397,
                                            3398
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 101,
                                              "column": 45
                                            },
                                            "end": {
                                              "line": 101,
                                              "column": 46
                                            }
                                          }
                                        },
                                        "range": [
                                          3392,
                                          3399
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 101,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 101,
                                            "column": 47
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3369,
                                      3400
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 101,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 101,
                                        "column": 48
                                      }
                                    }
                                  },
                                  "prefix": true,
                                  "range": [
                                    3368,
                                    3400
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 48
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "add",
                                          "range": [
                                            3420,
                                            3423
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 102,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 102,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": true,
                                          "raw": "true",
                                          "range": [
                                            3426,
                                            3430
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 102,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 102,
                                              "column": 26
                                            }
                                          }
                                        },
                                        "range": [
                                          3420,
                                          3430
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 102,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 102,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "range": [
                                        3420,
                                        3431
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 27
                                        }
                                      }
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                3448,
                                                3452
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 103,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 103,
                                                  "column": 20
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "horizontalSet",
                                              "range": [
                                                3453,
                                                3466
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 103,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 103,
                                                  "column": 34
                                                }
                                              }
                                            },
                                            "range": [
                                              3448,
                                              3466
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 103,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 103,
                                                "column": 34
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "add",
                                            "range": [
                                              3467,
                                              3470
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 103,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 103,
                                                "column": 38
                                              }
                                            }
                                          },
                                          "range": [
                                            3448,
                                            3470
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 103,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 103,
                                              "column": 38
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": true,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "args",
                                              "range": [
                                                3471,
                                                3475
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 103,
                                                  "column": 39
                                                },
                                                "end": {
                                                  "line": 103,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Literal",
                                              "value": 0,
                                              "raw": "0",
                                              "range": [
                                                3476,
                                                3477
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 103,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 103,
                                                  "column": 45
                                                }
                                              }
                                            },
                                            "range": [
                                              3471,
                                              3478
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 103,
                                                "column": 39
                                              },
                                              "end": {
                                                "line": 103,
                                                "column": 46
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          3448,
                                          3479
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 47
                                          }
                                        }
                                      },
                                      "range": [
                                        3448,
                                        3480
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 48
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    3402,
                                    3494
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 50
                                    },
                                    "end": {
                                      "line": 104,
                                      "column": 13
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  3364,
                                  3494
                                ],
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 104,
                                    "column": 13
                                  }
                                }
                              }
                            ],
                            "range": [
                              3350,
                              3504
                            ],
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 58
                              },
                              "end": {
                                "line": 105,
                                "column": 9
                              }
                            }
                          },
                          "alternate": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "allConstraints",
                                      "range": [
                                        3536,
                                        3550
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "init": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3553,
                                              3557
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 107,
                                                "column": 33
                                              },
                                              "end": {
                                                "line": 107,
                                                "column": 37
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "sketch",
                                            "range": [
                                              3558,
                                              3564
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 107,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 107,
                                                "column": 44
                                              }
                                            }
                                          },
                                          "range": [
                                            3553,
                                            3564
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 107,
                                              "column": 33
                                            },
                                            "end": {
                                              "line": 107,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "getConstraintsOnSketch",
                                          "range": [
                                            3565,
                                            3587
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 107,
                                              "column": 45
                                            },
                                            "end": {
                                              "line": 107,
                                              "column": 67
                                            }
                                          }
                                        },
                                        "range": [
                                          3553,
                                          3587
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 107,
                                            "column": 33
                                          },
                                          "end": {
                                            "line": 107,
                                            "column": 67
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3553,
                                        3589
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 69
                                        }
                                      }
                                    },
                                    "range": [
                                      3536,
                                      3589
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 69
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  3532,
                                  3590
                                ],
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 70
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "allConstraints",
                                    "range": [
                                      3603,
                                      3617
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "allConstraints",
                                        "range": [
                                          3620,
                                          3634
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "map",
                                        "range": [
                                          3635,
                                          3638
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 47
                                          }
                                        }
                                      },
                                      "range": [
                                        3620,
                                        3638
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 108,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 108,
                                          "column": 47
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "ArrowFunctionExpression",
                                        "id": null,
                                        "params": [
                                          {
                                            "type": "Identifier",
                                            "name": "constr",
                                            "range": [
                                              3640,
                                              3646
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 49
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 55
                                              }
                                            }
                                          }
                                        ],
                                        "body": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "constr",
                                              "range": [
                                                3651,
                                                3657
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 108,
                                                  "column": 60
                                                },
                                                "end": {
                                                  "line": 108,
                                                  "column": 66
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "getData",
                                              "range": [
                                                3658,
                                                3665
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 108,
                                                  "column": 67
                                                },
                                                "end": {
                                                  "line": 108,
                                                  "column": 74
                                                }
                                              }
                                            },
                                            "range": [
                                              3651,
                                              3665
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 60
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 74
                                              }
                                            }
                                          },
                                          "arguments": [],
                                          "range": [
                                            3651,
                                            3667
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 60
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 76
                                            }
                                          }
                                        },
                                        "generator": false,
                                        "expression": true,
                                        "range": [
                                          3639,
                                          3667
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 76
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3620,
                                      3668
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 77
                                      }
                                    }
                                  },
                                  "range": [
                                    3603,
                                    3668
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 108,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 108,
                                      "column": 77
                                    }
                                  }
                                },
                                "range": [
                                  3603,
                                  3669
                                ],
                                "loc": {
                                  "start": {
                                    "line": 108,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 108,
                                    "column": 78
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "allConstraints",
                                    "range": [
                                      3682,
                                      3696
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "allConstraints",
                                        "range": [
                                          3699,
                                          3713
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 109,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "concat",
                                        "range": [
                                          3714,
                                          3720
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 109,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 50
                                          }
                                        }
                                      },
                                      "range": [
                                        3699,
                                        3720
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 109,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 109,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3721,
                                            3725
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 51
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 55
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "constraints",
                                          "range": [
                                            3726,
                                            3737
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 56
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 67
                                            }
                                          }
                                        },
                                        "range": [
                                          3721,
                                          3737
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 109,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 67
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      3699,
                                      3738
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 68
                                      }
                                    }
                                  },
                                  "range": [
                                    3682,
                                    3738
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 68
                                    }
                                  }
                                },
                                "range": [
                                  3682,
                                  3739
                                ],
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 69
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "Line",
                                    "value": "TODO: optimize this O(N) search",
                                    "range": [
                                      3752,
                                      3785
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 45
                                      }
                                    }
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "name": "add",
                                    "range": [
                                      3798,
                                      3801
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 111,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 111,
                                        "column": 15
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "operator": "!",
                                    "argument": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "allConstraints",
                                          "range": [
                                            3805,
                                            3819
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 19
                                            },
                                            "end": {
                                              "line": 111,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "some",
                                          "range": [
                                            3820,
                                            3824
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 111,
                                              "column": 38
                                            }
                                          }
                                        },
                                        "range": [
                                          3805,
                                          3824
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 111,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 111,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "ArrowFunctionExpression",
                                          "id": null,
                                          "params": [
                                            {
                                              "type": "Identifier",
                                              "name": "constr",
                                              "range": [
                                                3826,
                                                3832
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 111,
                                                  "column": 40
                                                },
                                                "end": {
                                                  "line": 111,
                                                  "column": 46
                                                }
                                              }
                                            }
                                          ],
                                          "body": {
                                            "type": "BlockStatement",
                                            "body": [
                                              {
                                                "type": "VariableDeclaration",
                                                "declarations": [
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "id": {
                                                      "type": "Identifier",
                                                      "name": "types2",
                                                      "range": [
                                                        3859,
                                                        3865
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 26
                                                        }
                                                      }
                                                    },
                                                    "init": {
                                                      "type": "MemberExpression",
                                                      "computed": true,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "constr",
                                                        "range": [
                                                          3868,
                                                          3874
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 29
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 35
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Literal",
                                                        "value": 0,
                                                        "raw": "0",
                                                        "range": [
                                                          3875,
                                                          3876
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 36
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 37
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        3868,
                                                        3877
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 29
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 38
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      3859,
                                                      3877
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 112,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 112,
                                                        "column": 38
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "id": {
                                                      "type": "Identifier",
                                                      "name": "args2",
                                                      "range": [
                                                        3879,
                                                        3884
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 40
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 45
                                                        }
                                                      }
                                                    },
                                                    "init": {
                                                      "type": "MemberExpression",
                                                      "computed": true,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "constr",
                                                        "range": [
                                                          3887,
                                                          3893
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 48
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 54
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Literal",
                                                        "value": 1,
                                                        "raw": "1",
                                                        "range": [
                                                          3894,
                                                          3895
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 55
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 56
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        3887,
                                                        3896
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 48
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 57
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      3879,
                                                      3896
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 112,
                                                        "column": 40
                                                      },
                                                      "end": {
                                                        "line": 112,
                                                        "column": 57
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "id": {
                                                      "type": "Identifier",
                                                      "name": "attributes2",
                                                      "range": [
                                                        3898,
                                                        3909
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 59
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 70
                                                        }
                                                      }
                                                    },
                                                    "init": {
                                                      "type": "MemberExpression",
                                                      "computed": true,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "constr",
                                                        "range": [
                                                          3912,
                                                          3918
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 73
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 79
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Literal",
                                                        "value": 2,
                                                        "raw": "2",
                                                        "range": [
                                                          3919,
                                                          3920
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 112,
                                                            "column": 80
                                                          },
                                                          "end": {
                                                            "line": 112,
                                                            "column": 81
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        3912,
                                                        3921
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 112,
                                                          "column": 73
                                                        },
                                                        "end": {
                                                          "line": 112,
                                                          "column": 82
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      3898,
                                                      3921
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 112,
                                                        "column": 59
                                                      },
                                                      "end": {
                                                        "line": 112,
                                                        "column": 82
                                                      }
                                                    }
                                                  }
                                                ],
                                                "kind": "var",
                                                "range": [
                                                  3855,
                                                  3922
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 112,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 112,
                                                    "column": 83
                                                  }
                                                }
                                              },
                                              {
                                                "type": "IfStatement",
                                                "test": {
                                                  "type": "BinaryExpression",
                                                  "operator": "!==",
                                                  "left": {
                                                    "type": "MemberExpression",
                                                    "computed": true,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "types2",
                                                      "range": [
                                                        3943,
                                                        3949
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 113,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 113,
                                                          "column": 26
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        3950,
                                                        3951
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 113,
                                                          "column": 27
                                                        },
                                                        "end": {
                                                          "line": 113,
                                                          "column": 28
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      3943,
                                                      3952
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 113,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 113,
                                                        "column": 29
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "MemberExpression",
                                                    "computed": true,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "types",
                                                      "range": [
                                                        3957,
                                                        3962
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 113,
                                                          "column": 34
                                                        },
                                                        "end": {
                                                          "line": 113,
                                                          "column": 39
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Literal",
                                                      "value": 0,
                                                      "raw": "0",
                                                      "range": [
                                                        3963,
                                                        3964
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 113,
                                                          "column": 40
                                                        },
                                                        "end": {
                                                          "line": 113,
                                                          "column": 41
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      3957,
                                                      3965
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 113,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 113,
                                                        "column": 42
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    3943,
                                                    3965
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 113,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 113,
                                                      "column": 42
                                                    }
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "ReturnStatement",
                                                  "argument": {
                                                    "type": "Literal",
                                                    "value": false,
                                                    "raw": "false",
                                                    "range": [
                                                      3994,
                                                      3999
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 114,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 114,
                                                        "column": 32
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    3987,
                                                    4000
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 114,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 114,
                                                      "column": 33
                                                    }
                                                  }
                                                },
                                                "alternate": null,
                                                "range": [
                                                  3939,
                                                  4000
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 113,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 114,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              {
                                                "type": "IfStatement",
                                                "test": {
                                                  "type": "BinaryExpression",
                                                  "operator": "!=",
                                                  "left": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "args2",
                                                      "range": [
                                                        4021,
                                                        4026
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 115,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 115,
                                                          "column": 25
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "length",
                                                      "range": [
                                                        4027,
                                                        4033
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 115,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 115,
                                                          "column": 32
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4021,
                                                      4033
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 115,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 115,
                                                        "column": 32
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "args",
                                                      "range": [
                                                        4037,
                                                        4041
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 115,
                                                          "column": 36
                                                        },
                                                        "end": {
                                                          "line": 115,
                                                          "column": 40
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "length",
                                                      "range": [
                                                        4042,
                                                        4048
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 115,
                                                          "column": 41
                                                        },
                                                        "end": {
                                                          "line": 115,
                                                          "column": 47
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4037,
                                                      4048
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 115,
                                                        "column": 36
                                                      },
                                                      "end": {
                                                        "line": 115,
                                                        "column": 47
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4021,
                                                    4048
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 115,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 115,
                                                      "column": 47
                                                    }
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "ReturnStatement",
                                                  "argument": {
                                                    "type": "Literal",
                                                    "value": false,
                                                    "raw": "false",
                                                    "range": [
                                                      4077,
                                                      4082
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 116,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 116,
                                                        "column": 32
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4070,
                                                    4083
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 116,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 116,
                                                      "column": 33
                                                    }
                                                  }
                                                },
                                                "alternate": null,
                                                "range": [
                                                  4017,
                                                  4083
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 115,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 116,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              {
                                                "type": "IfStatement",
                                                "test": {
                                                  "type": "LogicalExpression",
                                                  "operator": "||",
                                                  "left": {
                                                    "type": "LogicalExpression",
                                                    "operator": "||",
                                                    "left": {
                                                      "type": "LogicalExpression",
                                                      "operator": "||",
                                                      "left": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "attributes",
                                                          "range": [
                                                            4104,
                                                            4114
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 117,
                                                              "column": 20
                                                            },
                                                            "end": {
                                                              "line": 117,
                                                              "column": 30
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "value",
                                                          "range": [
                                                            4115,
                                                            4120
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 117,
                                                              "column": 31
                                                            },
                                                            "end": {
                                                              "line": 117,
                                                              "column": 36
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4104,
                                                          4120
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 117,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 117,
                                                            "column": 36
                                                          }
                                                        }
                                                      },
                                                      "right": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "attributes2",
                                                          "range": [
                                                            4124,
                                                            4135
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 117,
                                                              "column": 40
                                                            },
                                                            "end": {
                                                              "line": 117,
                                                              "column": 51
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "value",
                                                          "range": [
                                                            4136,
                                                            4141
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 117,
                                                              "column": 52
                                                            },
                                                            "end": {
                                                              "line": 117,
                                                              "column": 57
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4124,
                                                          4141
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 117,
                                                            "column": 40
                                                          },
                                                          "end": {
                                                            "line": 117,
                                                            "column": 57
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4104,
                                                        4141
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 117,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 117,
                                                          "column": 57
                                                        }
                                                      }
                                                    },
                                                    "right": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "attributes",
                                                        "range": [
                                                          4145,
                                                          4155
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 117,
                                                            "column": 61
                                                          },
                                                          "end": {
                                                            "line": 117,
                                                            "column": 71
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "expression",
                                                        "range": [
                                                          4156,
                                                          4166
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 117,
                                                            "column": 72
                                                          },
                                                          "end": {
                                                            "line": 117,
                                                            "column": 82
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4145,
                                                        4166
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 117,
                                                          "column": 61
                                                        },
                                                        "end": {
                                                          "line": 117,
                                                          "column": 82
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4104,
                                                      4166
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 117,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 117,
                                                        "column": 82
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "attributes2",
                                                      "range": [
                                                        4170,
                                                        4181
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 117,
                                                          "column": 86
                                                        },
                                                        "end": {
                                                          "line": 117,
                                                          "column": 97
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "expression",
                                                      "range": [
                                                        4182,
                                                        4192
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 117,
                                                          "column": 98
                                                        },
                                                        "end": {
                                                          "line": 117,
                                                          "column": 108
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4170,
                                                      4192
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 117,
                                                        "column": 86
                                                      },
                                                      "end": {
                                                        "line": 117,
                                                        "column": 108
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4104,
                                                    4192
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 117,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 117,
                                                      "column": 108
                                                    }
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "ReturnStatement",
                                                  "argument": {
                                                    "type": "Literal",
                                                    "value": false,
                                                    "raw": "false",
                                                    "range": [
                                                      4221,
                                                      4226
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 118,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 118,
                                                        "column": 32
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4214,
                                                    4227
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 118,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 118,
                                                      "column": 33
                                                    }
                                                  }
                                                },
                                                "alternate": null,
                                                "range": [
                                                  4100,
                                                  4227
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 117,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 118,
                                                    "column": 33
                                                  }
                                                },
                                                "trailingComments": [
                                                  {
                                                    "type": "Line",
                                                    "value": "ignore parametric constraints",
                                                    "range": [
                                                      4228,
                                                      4259
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 118,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 118,
                                                        "column": 65
                                                      }
                                                    }
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "IfStatement",
                                                "test": {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "args2",
                                                      "range": [
                                                        4281,
                                                        4286
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 120,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 120,
                                                          "column": 25
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "every",
                                                      "range": [
                                                        4287,
                                                        4292
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 120,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 120,
                                                          "column": 31
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4281,
                                                      4292
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 120,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 120,
                                                        "column": 31
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "ArrowFunctionExpression",
                                                      "id": null,
                                                      "params": [
                                                        {
                                                          "type": "Identifier",
                                                          "name": "obj",
                                                          "range": [
                                                            4294,
                                                            4297
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 120,
                                                              "column": 33
                                                            },
                                                            "end": {
                                                              "line": 120,
                                                              "column": 36
                                                            }
                                                          }
                                                        },
                                                        {
                                                          "type": "Identifier",
                                                          "name": "idx",
                                                          "range": [
                                                            4299,
                                                            4302
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 120,
                                                              "column": 38
                                                            },
                                                            "end": {
                                                              "line": 120,
                                                              "column": 41
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "body": {
                                                        "type": "BinaryExpression",
                                                        "operator": "===",
                                                        "left": {
                                                          "type": "Identifier",
                                                          "name": "obj",
                                                          "range": [
                                                            4307,
                                                            4310
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 120,
                                                              "column": 46
                                                            },
                                                            "end": {
                                                              "line": 120,
                                                              "column": 49
                                                            }
                                                          }
                                                        },
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "computed": true,
                                                          "object": {
                                                            "type": "Identifier",
                                                            "name": "args",
                                                            "range": [
                                                              4315,
                                                              4319
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 120,
                                                                "column": 54
                                                              },
                                                              "end": {
                                                                "line": 120,
                                                                "column": 58
                                                              }
                                                            }
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "name": "idx",
                                                            "range": [
                                                              4320,
                                                              4323
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 120,
                                                                "column": 59
                                                              },
                                                              "end": {
                                                                "line": 120,
                                                                "column": 62
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            4315,
                                                            4324
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 120,
                                                              "column": 54
                                                            },
                                                            "end": {
                                                              "line": 120,
                                                              "column": 63
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4307,
                                                          4324
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 120,
                                                            "column": 46
                                                          },
                                                          "end": {
                                                            "line": 120,
                                                            "column": 63
                                                          }
                                                        }
                                                      },
                                                      "generator": false,
                                                      "expression": true,
                                                      "range": [
                                                        4293,
                                                        4324
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 120,
                                                          "column": 32
                                                        },
                                                        "end": {
                                                          "line": 120,
                                                          "column": 63
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    4281,
                                                    4325
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 120,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 120,
                                                      "column": 64
                                                    }
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "ReturnStatement",
                                                  "argument": {
                                                    "type": "Literal",
                                                    "value": true,
                                                    "raw": "true",
                                                    "range": [
                                                      4354,
                                                      4358
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 121,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 121,
                                                        "column": 31
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4347,
                                                    4359
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 121,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 121,
                                                      "column": 32
                                                    }
                                                  }
                                                },
                                                "alternate": null,
                                                "range": [
                                                  4277,
                                                  4359
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 120,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 121,
                                                    "column": 32
                                                  }
                                                },
                                                "leadingComments": [
                                                  {
                                                    "type": "Line",
                                                    "value": "ignore parametric constraints",
                                                    "range": [
                                                      4228,
                                                      4259
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 118,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 118,
                                                        "column": 65
                                                      }
                                                    }
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "VariableDeclaration",
                                                "declarations": [
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "id": {
                                                      "type": "Identifier",
                                                      "name": "binaryCommutative",
                                                      "range": [
                                                        4381,
                                                        4398
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 123,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 123,
                                                          "column": 37
                                                        }
                                                      }
                                                    },
                                                    "init": {
                                                      "type": "CallExpression",
                                                      "callee": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "ArrayExpression",
                                                          "elements": [
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4423,
                                                                    4433
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 124,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 124,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4434,
                                                                    4438
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 124,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 124,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4423,
                                                                  4438
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 124,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 124,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "INCIDENCE",
                                                                "range": [
                                                                  4439,
                                                                  4448
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 124,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 124,
                                                                    "column": 45
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4423,
                                                                4448
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 124,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 124,
                                                                  "column": 45
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4470,
                                                                    4480
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 125,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 125,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4481,
                                                                    4485
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 125,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 125,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4470,
                                                                  4485
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 125,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 125,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "DISTANCE",
                                                                "range": [
                                                                  4486,
                                                                  4494
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 125,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 125,
                                                                    "column": 44
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4470,
                                                                4494
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 125,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 125,
                                                                  "column": 44
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4516,
                                                                    4526
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 126,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 126,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4527,
                                                                    4531
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 126,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 126,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4516,
                                                                  4531
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 126,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 126,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "ANGLE",
                                                                "range": [
                                                                  4532,
                                                                  4537
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 126,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 126,
                                                                    "column": 41
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4516,
                                                                4537
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 126,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 126,
                                                                  "column": 41
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4559,
                                                                    4569
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 127,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 127,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4570,
                                                                    4574
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 127,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 127,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4559,
                                                                  4574
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 127,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 127,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "TANGENCY",
                                                                "range": [
                                                                  4575,
                                                                  4583
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 127,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 127,
                                                                    "column": 44
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4559,
                                                                4583
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 127,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 127,
                                                                  "column": 44
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4605,
                                                                    4615
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 128,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 128,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4616,
                                                                    4620
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 128,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 128,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4605,
                                                                  4620
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 128,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 128,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "PERPENDICULARITY",
                                                                "range": [
                                                                  4621,
                                                                  4637
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 128,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 128,
                                                                    "column": 52
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4605,
                                                                4637
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 128,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 128,
                                                                  "column": 52
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4659,
                                                                    4669
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 129,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 129,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4670,
                                                                    4674
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 129,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 129,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4659,
                                                                  4674
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 129,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 129,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "PARALLELITY",
                                                                "range": [
                                                                  4675,
                                                                  4686
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 129,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 129,
                                                                    "column": 47
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4659,
                                                                4686
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 129,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 129,
                                                                  "column": 47
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4708,
                                                                    4718
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 130,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 130,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4719,
                                                                    4723
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 130,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 130,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4708,
                                                                  4723
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 130,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 130,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "CONCENTRIC",
                                                                "range": [
                                                                  4724,
                                                                  4734
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 130,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 130,
                                                                    "column": 46
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4708,
                                                                4734
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 130,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 130,
                                                                  "column": 46
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4756,
                                                                    4766
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 131,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 131,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4767,
                                                                    4771
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 131,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 131,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4756,
                                                                  4771
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 131,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 131,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "COLINEAR",
                                                                "range": [
                                                                  4772,
                                                                  4780
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 131,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 131,
                                                                    "column": 44
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4756,
                                                                4780
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 131,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 131,
                                                                  "column": 44
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "MemberExpression",
                                                                "computed": false,
                                                                "object": {
                                                                  "type": "Identifier",
                                                                  "name": "Constraint",
                                                                  "range": [
                                                                    4817,
                                                                    4827
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 132,
                                                                      "column": 20
                                                                    },
                                                                    "end": {
                                                                      "line": 132,
                                                                      "column": 30
                                                                    }
                                                                  }
                                                                },
                                                                "property": {
                                                                  "type": "Identifier",
                                                                  "name": "Type",
                                                                  "range": [
                                                                    4828,
                                                                    4832
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 132,
                                                                      "column": 31
                                                                    },
                                                                    "end": {
                                                                      "line": 132,
                                                                      "column": 35
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  4817,
                                                                  4832
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 132,
                                                                    "column": 20
                                                                  },
                                                                  "end": {
                                                                    "line": 132,
                                                                    "column": 35
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "EQUAL_RADIUS",
                                                                "range": [
                                                                  4833,
                                                                  4845
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 132,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 132,
                                                                    "column": 48
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                4817,
                                                                4845
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 132,
                                                                  "column": 20
                                                                },
                                                                "end": {
                                                                  "line": 132,
                                                                  "column": 48
                                                                }
                                                              },
                                                              "leadingComments": [
                                                                {
                                                                  "type": "Line",
                                                                  "value": "not sure",
                                                                  "range": [
                                                                    4786,
                                                                    4796
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 131,
                                                                      "column": 50
                                                                    },
                                                                    "end": {
                                                                      "line": 131,
                                                                      "column": 60
                                                                    }
                                                                  }
                                                                }
                                                              ],
                                                              "trailingComments": [
                                                                {
                                                                  "type": "Line",
                                                                  "value": "not sure",
                                                                  "range": [
                                                                    4847,
                                                                    4857
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 132,
                                                                      "column": 50
                                                                    },
                                                                    "end": {
                                                                      "line": 132,
                                                                      "column": 60
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          ],
                                                          "range": [
                                                            4401,
                                                            4875
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 123,
                                                              "column": 40
                                                            },
                                                            "end": {
                                                              "line": 133,
                                                              "column": 17
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "map",
                                                          "range": [
                                                            4876,
                                                            4879
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 133,
                                                              "column": 18
                                                            },
                                                            "end": {
                                                              "line": 133,
                                                              "column": 21
                                                            }
                                                          },
                                                          "leadingComments": [
                                                            {
                                                              "type": "Line",
                                                              "value": "not sure",
                                                              "range": [
                                                                4847,
                                                                4857
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 132,
                                                                  "column": 50
                                                                },
                                                                "end": {
                                                                  "line": 132,
                                                                  "column": 60
                                                                }
                                                              }
                                                            }
                                                          ]
                                                        },
                                                        "range": [
                                                          4401,
                                                          4879
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 123,
                                                            "column": 40
                                                          },
                                                          "end": {
                                                            "line": 133,
                                                            "column": 21
                                                          }
                                                        }
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "ArrowFunctionExpression",
                                                          "id": null,
                                                          "params": [
                                                            {
                                                              "type": "Identifier",
                                                              "name": "obj",
                                                              "range": [
                                                                4880,
                                                                4883
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 133,
                                                                  "column": 22
                                                                },
                                                                "end": {
                                                                  "line": 133,
                                                                  "column": 25
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "body": {
                                                            "type": "MemberExpression",
                                                            "computed": true,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "obj",
                                                              "range": [
                                                                4887,
                                                                4890
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 133,
                                                                  "column": 29
                                                                },
                                                                "end": {
                                                                  "line": 133,
                                                                  "column": 32
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Literal",
                                                              "value": 0,
                                                              "raw": "0",
                                                              "range": [
                                                                4891,
                                                                4892
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 133,
                                                                  "column": 33
                                                                },
                                                                "end": {
                                                                  "line": 133,
                                                                  "column": 34
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              4887,
                                                              4893
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 133,
                                                                "column": 29
                                                              },
                                                              "end": {
                                                                "line": 133,
                                                                "column": 35
                                                              }
                                                            }
                                                          },
                                                          "generator": false,
                                                          "expression": true,
                                                          "range": [
                                                            4880,
                                                            4893
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 133,
                                                              "column": 22
                                                            },
                                                            "end": {
                                                              "line": 133,
                                                              "column": 35
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        4401,
                                                        4894
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 123,
                                                          "column": 40
                                                        },
                                                        "end": {
                                                          "line": 133,
                                                          "column": 36
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4381,
                                                      4894
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 123,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 133,
                                                        "column": 36
                                                      }
                                                    }
                                                  }
                                                ],
                                                "kind": "var",
                                                "range": [
                                                  4377,
                                                  4895
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 123,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 133,
                                                    "column": 37
                                                  }
                                                }
                                              },
                                              {
                                                "type": "IfStatement",
                                                "test": {
                                                  "type": "LogicalExpression",
                                                  "operator": "&&",
                                                  "left": {
                                                    "type": "LogicalExpression",
                                                    "operator": "&&",
                                                    "left": {
                                                      "type": "BinaryExpression",
                                                      "operator": "!==",
                                                      "left": {
                                                        "type": "CallExpression",
                                                        "callee": {
                                                          "type": "MemberExpression",
                                                          "computed": false,
                                                          "object": {
                                                            "type": "Identifier",
                                                            "name": "binaryCommutative",
                                                            "range": [
                                                              4916,
                                                              4933
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 134,
                                                                "column": 20
                                                              },
                                                              "end": {
                                                                "line": 134,
                                                                "column": 37
                                                              }
                                                            }
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "name": "indexOf",
                                                            "range": [
                                                              4934,
                                                              4941
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 134,
                                                                "column": 38
                                                              },
                                                              "end": {
                                                                "line": 134,
                                                                "column": 45
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            4916,
                                                            4941
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 20
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 45
                                                            }
                                                          }
                                                        },
                                                        "arguments": [
                                                          {
                                                            "type": "MemberExpression",
                                                            "computed": true,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "types",
                                                              "range": [
                                                                4942,
                                                                4947
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 134,
                                                                  "column": 46
                                                                },
                                                                "end": {
                                                                  "line": 134,
                                                                  "column": 51
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Literal",
                                                              "value": 0,
                                                              "raw": "0",
                                                              "range": [
                                                                4948,
                                                                4949
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 134,
                                                                  "column": 52
                                                                },
                                                                "end": {
                                                                  "line": 134,
                                                                  "column": 53
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              4942,
                                                              4950
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 134,
                                                                "column": 46
                                                              },
                                                              "end": {
                                                                "line": 134,
                                                                "column": 54
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "range": [
                                                          4916,
                                                          4951
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 20
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 55
                                                          }
                                                        }
                                                      },
                                                      "right": {
                                                        "type": "UnaryExpression",
                                                        "operator": "-",
                                                        "argument": {
                                                          "type": "Literal",
                                                          "value": 1,
                                                          "raw": "1",
                                                          "range": [
                                                            4957,
                                                            4958
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 61
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 62
                                                            }
                                                          }
                                                        },
                                                        "prefix": true,
                                                        "range": [
                                                          4956,
                                                          4958
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 60
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 62
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4916,
                                                        4958
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 134,
                                                          "column": 20
                                                        },
                                                        "end": {
                                                          "line": 134,
                                                          "column": 62
                                                        }
                                                      }
                                                    },
                                                    "right": {
                                                      "type": "BinaryExpression",
                                                      "operator": "===",
                                                      "left": {
                                                        "type": "MemberExpression",
                                                        "computed": true,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "args",
                                                          "range": [
                                                            4962,
                                                            4966
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 66
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 70
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Literal",
                                                          "value": 0,
                                                          "raw": "0",
                                                          "range": [
                                                            4967,
                                                            4968
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 71
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 72
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4962,
                                                          4969
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 66
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 73
                                                          }
                                                        }
                                                      },
                                                      "right": {
                                                        "type": "MemberExpression",
                                                        "computed": true,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "args2",
                                                          "range": [
                                                            4974,
                                                            4979
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 78
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 83
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Literal",
                                                          "value": 1,
                                                          "raw": "1",
                                                          "range": [
                                                            4980,
                                                            4981
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 134,
                                                              "column": 84
                                                            },
                                                            "end": {
                                                              "line": 134,
                                                              "column": 85
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          4974,
                                                          4982
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 78
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 86
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4962,
                                                        4982
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 134,
                                                          "column": 66
                                                        },
                                                        "end": {
                                                          "line": 134,
                                                          "column": 86
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4916,
                                                      4982
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 134,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 134,
                                                        "column": 86
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "BinaryExpression",
                                                    "operator": "===",
                                                    "left": {
                                                      "type": "MemberExpression",
                                                      "computed": true,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "args",
                                                        "range": [
                                                          4986,
                                                          4990
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 90
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 94
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Literal",
                                                        "value": 1,
                                                        "raw": "1",
                                                        "range": [
                                                          4991,
                                                          4992
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 95
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 96
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4986,
                                                        4993
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 134,
                                                          "column": 90
                                                        },
                                                        "end": {
                                                          "line": 134,
                                                          "column": 97
                                                        }
                                                      }
                                                    },
                                                    "right": {
                                                      "type": "MemberExpression",
                                                      "computed": true,
                                                      "object": {
                                                        "type": "Identifier",
                                                        "name": "args2",
                                                        "range": [
                                                          4998,
                                                          5003
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 102
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 107
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Literal",
                                                        "value": 0,
                                                        "raw": "0",
                                                        "range": [
                                                          5004,
                                                          5005
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 134,
                                                            "column": 108
                                                          },
                                                          "end": {
                                                            "line": 134,
                                                            "column": 109
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        4998,
                                                        5006
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 134,
                                                          "column": 102
                                                        },
                                                        "end": {
                                                          "line": 134,
                                                          "column": 110
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      4986,
                                                      5006
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 134,
                                                        "column": 90
                                                      },
                                                      "end": {
                                                        "line": 134,
                                                        "column": 110
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    4916,
                                                    5006
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 134,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 134,
                                                      "column": 110
                                                    }
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "ReturnStatement",
                                                  "argument": {
                                                    "type": "Literal",
                                                    "value": true,
                                                    "raw": "true",
                                                    "range": [
                                                      5035,
                                                      5039
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 135,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 135,
                                                        "column": 31
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    5028,
                                                    5040
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 135,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 135,
                                                      "column": 32
                                                    }
                                                  }
                                                },
                                                "alternate": null,
                                                "range": [
                                                  4912,
                                                  5040
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 134,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 135,
                                                    "column": 32
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ReturnStatement",
                                                "argument": {
                                                  "type": "Literal",
                                                  "value": false,
                                                  "raw": "false",
                                                  "range": [
                                                    5065,
                                                    5070
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 137,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 137,
                                                      "column": 28
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  5058,
                                                  5071
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 137,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 137,
                                                    "column": 29
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              3837,
                                              5085
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 111,
                                                "column": 51
                                              },
                                              "end": {
                                                "line": 138,
                                                "column": 13
                                              }
                                            }
                                          },
                                          "generator": false,
                                          "expression": false,
                                          "range": [
                                            3825,
                                            5085
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 39
                                            },
                                            "end": {
                                              "line": 138,
                                              "column": 13
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3805,
                                        5086
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 111,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 138,
                                          "column": 14
                                        }
                                      }
                                    },
                                    "prefix": true,
                                    "range": [
                                      3804,
                                      5086
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 111,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 14
                                      }
                                    }
                                  },
                                  "range": [
                                    3798,
                                    5086
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 111,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 138,
                                      "column": 14
                                    }
                                  }
                                },
                                "range": [
                                  3798,
                                  5087
                                ],
                                "loc": {
                                  "start": {
                                    "line": 111,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 15
                                  }
                                },
                                "leadingComments": [
                                  {
                                    "type": "Line",
                                    "value": "TODO: optimize this O(N) search",
                                    "range": [
                                      3752,
                                      3785
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 45
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "range": [
                              3518,
                              5097
                            ],
                            "loc": {
                              "start": {
                                "line": 106,
                                "column": 13
                              },
                              "end": {
                                "line": 139,
                                "column": 9
                              }
                            }
                          },
                          "range": [
                            3305,
                            5097
                          ],
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 13
                            },
                            "end": {
                              "line": 139,
                              "column": 9
                            }
                          }
                        },
                        "range": [
                          3098,
                          5097
                        ],
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 13
                          },
                          "end": {
                            "line": 139,
                            "column": 9
                          }
                        }
                      },
                      "range": [
                        2567,
                        5097
                      ],
                      "loc": {
                        "start": {
                          "line": 85,
                          "column": 8
                        },
                        "end": {
                          "line": 139,
                          "column": 9
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "if the new constraint is not excessive, then take it into account",
                          "range": [
                            2491,
                            2558
                          ],
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 8
                            },
                            "end": {
                              "line": 84,
                              "column": 75
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "now add it internally",
                          "range": [
                            5106,
                            5129
                          ],
                          "loc": {
                            "start": {
                              "line": 140,
                              "column": 8
                            },
                            "end": {
                              "line": 140,
                              "column": 31
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "Identifier",
                        "name": "add",
                        "range": [
                          5142,
                          5145
                        ],
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 12
                          },
                          "end": {
                            "line": 141,
                            "column": 15
                          }
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "expression": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  5159,
                                  5163
                                ],
                                "loc": {
                                  "start": {
                                    "line": 142,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 142,
                                    "column": 16
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "constraints",
                                "range": [
                                  5164,
                                  5175
                                ],
                                "loc": {
                                  "start": {
                                    "line": 142,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 142,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                5159,
                                5175
                              ],
                              "loc": {
                                "start": {
                                  "line": 142,
                                  "column": 12
                                },
                                "end": {
                                  "line": 142,
                                  "column": 28
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "push",
                              "range": [
                                5176,
                                5180
                              ],
                              "loc": {
                                "start": {
                                  "line": 142,
                                  "column": 29
                                },
                                "end": {
                                  "line": 142,
                                  "column": 33
                                }
                              }
                            },
                            "range": [
                              5159,
                              5180
                            ],
                            "loc": {
                              "start": {
                                "line": 142,
                                "column": 12
                              },
                              "end": {
                                "line": 142,
                                "column": 33
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "ArrayExpression",
                              "elements": [
                                {
                                  "type": "Identifier",
                                  "name": "types",
                                  "range": [
                                    5182,
                                    5187
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 142,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 142,
                                      "column": 40
                                    }
                                  }
                                },
                                {
                                  "type": "Identifier",
                                  "name": "args",
                                  "range": [
                                    5189,
                                    5193
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 142,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 142,
                                      "column": 46
                                    }
                                  }
                                },
                                {
                                  "type": "Identifier",
                                  "name": "attributes",
                                  "range": [
                                    5195,
                                    5205
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 142,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 142,
                                      "column": 58
                                    }
                                  }
                                }
                              ],
                              "range": [
                                5181,
                                5206
                              ],
                              "loc": {
                                "start": {
                                  "line": 142,
                                  "column": 34
                                },
                                "end": {
                                  "line": 142,
                                  "column": 59
                                }
                              }
                            }
                          ],
                          "range": [
                            5159,
                            5207
                          ],
                          "loc": {
                            "start": {
                              "line": 142,
                              "column": 12
                            },
                            "end": {
                              "line": 142,
                              "column": 60
                            }
                          }
                        },
                        "range": [
                          5159,
                          5208
                        ],
                        "loc": {
                          "start": {
                            "line": 142,
                            "column": 12
                          },
                          "end": {
                            "line": 142,
                            "column": 61
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        5138,
                        5208
                      ],
                      "loc": {
                        "start": {
                          "line": 141,
                          "column": 8
                        },
                        "end": {
                          "line": 142,
                          "column": 61
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "now add it internally",
                          "range": [
                            5106,
                            5129
                          ],
                          "loc": {
                            "start": {
                              "line": 140,
                              "column": 8
                            },
                            "end": {
                              "line": 140,
                              "column": 31
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "range": [
                    2456,
                    5214
                  ],
                  "loc": {
                    "start": {
                      "line": 82,
                      "column": 33
                    },
                    "end": {
                      "line": 143,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  2430,
                  5214
                ],
                "loc": {
                  "start": {
                    "line": 82,
                    "column": 7
                  },
                  "end": {
                    "line": 143,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                2427,
                5214
              ],
              "loc": {
                "start": {
                  "line": 82,
                  "column": 4
                },
                "end": {
                  "line": 143,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "add new constraint to internal buffer (if it is not excessive)",
                  "range": [
                    2358,
                    2422
                  ],
                  "loc": {
                    "start": {
                      "line": 81,
                      "column": 4
                    },
                    "end": {
                      "line": 81,
                      "column": 68
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Line",
                  "value": "returns all constraints in the internal buffer, purges the buffer",
                  "range": [
                    5220,
                    5287
                  ],
                  "loc": {
                    "start": {
                      "line": 145,
                      "column": 4
                    },
                    "end": {
                      "line": 145,
                      "column": 71
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "commit",
                "range": [
                  5292,
                  5298
                ],
                "loc": {
                  "start": {
                    "line": 146,
                    "column": 4
                  },
                  "end": {
                    "line": 146,
                    "column": 10
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "constraints",
                            "range": [
                              5315,
                              5326
                            ],
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 12
                              },
                              "end": {
                                "line": 147,
                                "column": 23
                              }
                            }
                          },
                          "init": {
                            "type": "ArrayExpression",
                            "elements": [],
                            "range": [
                              5329,
                              5331
                            ],
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 26
                              },
                              "end": {
                                "line": 147,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            5315,
                            5331
                          ],
                          "loc": {
                            "start": {
                              "line": 147,
                              "column": 12
                            },
                            "end": {
                              "line": 147,
                              "column": 28
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        5311,
                        5332
                      ],
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 8
                        },
                        "end": {
                          "line": 147,
                          "column": 29
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                5341,
                                5345
                              ],
                              "loc": {
                                "start": {
                                  "line": 148,
                                  "column": 8
                                },
                                "end": {
                                  "line": 148,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "constraints",
                              "range": [
                                5346,
                                5357
                              ],
                              "loc": {
                                "start": {
                                  "line": 148,
                                  "column": 13
                                },
                                "end": {
                                  "line": 148,
                                  "column": 24
                                }
                              }
                            },
                            "range": [
                              5341,
                              5357
                            ],
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 8
                              },
                              "end": {
                                "line": 148,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "forEach",
                            "range": [
                              5358,
                              5365
                            ],
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 25
                              },
                              "end": {
                                "line": 148,
                                "column": 32
                              }
                            }
                          },
                          "range": [
                            5341,
                            5365
                          ],
                          "loc": {
                            "start": {
                              "line": 148,
                              "column": 8
                            },
                            "end": {
                              "line": 148,
                              "column": 32
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "id": null,
                            "params": [
                              {
                                "type": "Identifier",
                                "name": "obj",
                                "range": [
                                  5366,
                                  5369
                                ],
                                "loc": {
                                  "start": {
                                    "line": 148,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 148,
                                    "column": 36
                                  }
                                }
                              }
                            ],
                            "body": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "VariableDeclaration",
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "id": {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          5391,
                                          5397
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 149,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 149,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "init": {
                                        "type": "NewExpression",
                                        "callee": {
                                          "type": "Identifier",
                                          "name": "Constraint",
                                          "range": [
                                            5404,
                                            5414
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 149,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 149,
                                              "column": 39
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": true,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "obj",
                                              "range": [
                                                5415,
                                                5418
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 40
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 43
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Literal",
                                              "value": 0,
                                              "raw": "0",
                                              "range": [
                                                5419,
                                                5420
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 45
                                                }
                                              }
                                            },
                                            "range": [
                                              5415,
                                              5421
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 149,
                                                "column": 40
                                              },
                                              "end": {
                                                "line": 149,
                                                "column": 46
                                              }
                                            }
                                          },
                                          {
                                            "type": "MemberExpression",
                                            "computed": true,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "obj",
                                              "range": [
                                                5423,
                                                5426
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 51
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Literal",
                                              "value": 1,
                                              "raw": "1",
                                              "range": [
                                                5427,
                                                5428
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 52
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 53
                                                }
                                              }
                                            },
                                            "range": [
                                              5423,
                                              5429
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 149,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 149,
                                                "column": 54
                                              }
                                            }
                                          },
                                          {
                                            "type": "MemberExpression",
                                            "computed": true,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "obj",
                                              "range": [
                                                5431,
                                                5434
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 56
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 59
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Literal",
                                              "value": 2,
                                              "raw": "2",
                                              "range": [
                                                5435,
                                                5436
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 149,
                                                  "column": 60
                                                },
                                                "end": {
                                                  "line": 149,
                                                  "column": 61
                                                }
                                              }
                                            },
                                            "range": [
                                              5431,
                                              5437
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 149,
                                                "column": 56
                                              },
                                              "end": {
                                                "line": 149,
                                                "column": 62
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          5400,
                                          5438
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 149,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 149,
                                            "column": 63
                                          }
                                        }
                                      },
                                      "range": [
                                        5391,
                                        5438
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 149,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 149,
                                          "column": 63
                                        }
                                      }
                                    }
                                  ],
                                  "kind": "var",
                                  "range": [
                                    5387,
                                    5439
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 64
                                    }
                                  }
                                },
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "constraints",
                                        "range": [
                                          5452,
                                          5463
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 150,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 150,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "push",
                                        "range": [
                                          5464,
                                          5468
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 150,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 150,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "range": [
                                        5452,
                                        5468
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 150,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 150,
                                          "column": 28
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "constr",
                                        "range": [
                                          5469,
                                          5475
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 150,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 150,
                                            "column": 35
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      5452,
                                      5476
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 150,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 150,
                                        "column": 36
                                      }
                                    }
                                  },
                                  "range": [
                                    5452,
                                    5477
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 37
                                    }
                                  }
                                }
                              ],
                              "range": [
                                5373,
                                5487
                              ],
                              "loc": {
                                "start": {
                                  "line": 148,
                                  "column": 40
                                },
                                "end": {
                                  "line": 151,
                                  "column": 9
                                }
                              }
                            },
                            "generator": false,
                            "expression": false,
                            "range": [
                              5366,
                              5487
                            ],
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 33
                              },
                              "end": {
                                "line": 151,
                                "column": 9
                              }
                            }
                          }
                        ],
                        "range": [
                          5341,
                          5488
                        ],
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 8
                          },
                          "end": {
                            "line": 151,
                            "column": 10
                          }
                        }
                      },
                      "range": [
                        5341,
                        5489
                      ],
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 8
                        },
                        "end": {
                          "line": 151,
                          "column": 11
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              5498,
                              5502
                            ],
                            "loc": {
                              "start": {
                                "line": 152,
                                "column": 8
                              },
                              "end": {
                                "line": 152,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "constraints",
                            "range": [
                              5503,
                              5514
                            ],
                            "loc": {
                              "start": {
                                "line": 152,
                                "column": 13
                              },
                              "end": {
                                "line": 152,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            5498,
                            5514
                          ],
                          "loc": {
                            "start": {
                              "line": 152,
                              "column": 8
                            },
                            "end": {
                              "line": 152,
                              "column": 24
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            5517,
                            5519
                          ],
                          "loc": {
                            "start": {
                              "line": 152,
                              "column": 27
                            },
                            "end": {
                              "line": 152,
                              "column": 29
                            }
                          }
                        },
                        "range": [
                          5498,
                          5519
                        ],
                        "loc": {
                          "start": {
                            "line": 152,
                            "column": 8
                          },
                          "end": {
                            "line": 152,
                            "column": 29
                          }
                        }
                      },
                      "range": [
                        5498,
                        5520
                      ],
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 8
                        },
                        "end": {
                          "line": 152,
                          "column": 30
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "constraints",
                        "range": [
                          5536,
                          5547
                        ],
                        "loc": {
                          "start": {
                            "line": 153,
                            "column": 15
                          },
                          "end": {
                            "line": 153,
                            "column": 26
                          }
                        }
                      },
                      "range": [
                        5529,
                        5548
                      ],
                      "loc": {
                        "start": {
                          "line": 153,
                          "column": 8
                        },
                        "end": {
                          "line": 153,
                          "column": 27
                        }
                      }
                    }
                  ],
                  "range": [
                    5301,
                    5554
                  ],
                  "loc": {
                    "start": {
                      "line": 146,
                      "column": 13
                    },
                    "end": {
                      "line": 154,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  5298,
                  5554
                ],
                "loc": {
                  "start": {
                    "line": 146,
                    "column": 10
                  },
                  "end": {
                    "line": 154,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                5292,
                5554
              ],
              "loc": {
                "start": {
                  "line": 146,
                  "column": 4
                },
                "end": {
                  "line": 154,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "returns all constraints in the internal buffer, purges the buffer",
                  "range": [
                    5220,
                    5287
                  ],
                  "loc": {
                    "start": {
                      "line": 145,
                      "column": 4
                    },
                    "end": {
                      "line": 145,
                      "column": 71
                    }
                  }
                }
              ],
              "static": false
            }
          ],
          "range": [
            1189,
            5556
          ],
          "loc": {
            "start": {
              "line": 50,
              "column": 30
            },
            "end": {
              "line": 155,
              "column": 1
            }
          }
        },
        "range": [
          1166,
          5556
        ],
        "loc": {
          "start": {
            "line": 50,
            "column": 7
          },
          "end": {
            "line": 155,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Line",
            "value": "====================== Constraints adder ========================",
            "range": [
              1091,
              1158
            ],
            "loc": {
              "start": {
                "line": 49,
                "column": 0
              },
              "end": {
                "line": 49,
                "column": 67
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "Line",
            "value": "====================== Implied constraints generator ========================",
            "range": [
              5558,
              5637
            ],
            "loc": {
              "start": {
                "line": 157,
                "column": 0
              },
              "end": {
                "line": 157,
                "column": 79
              }
            }
          },
          {
            "type": "Block",
            "value": "\n * ConstraintGenerator - an object that generates implied constraints for some sketch\n ",
            "range": [
              5638,
              5730
            ],
            "loc": {
              "start": {
                "line": 158,
                "column": 0
              },
              "end": {
                "line": 160,
                "column": 3
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        1159,
        5556
      ],
      "loc": {
        "start": {
          "line": 50,
          "column": 0
        },
        "end": {
          "line": 155,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Line",
          "value": "====================== Constraints adder ========================",
          "range": [
            1091,
            1158
          ],
          "loc": {
            "start": {
              "line": 49,
              "column": 0
            },
            "end": {
              "line": 49,
              "column": 67
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "====================== Implied constraints generator ========================",
          "range": [
            5558,
            5637
          ],
          "loc": {
            "start": {
              "line": 157,
              "column": 0
            },
            "end": {
              "line": 157,
              "column": 79
            }
          }
        },
        {
          "type": "Block",
          "value": "\n * ConstraintGenerator - an object that generates implied constraints for some sketch\n ",
          "range": [
            5638,
            5730
          ],
          "loc": {
            "start": {
              "line": 158,
              "column": 0
            },
            "end": {
              "line": 160,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "ConstraintGenerator",
          "range": [
            5744,
            5763
          ],
          "loc": {
            "start": {
              "line": 161,
              "column": 13
            },
            "end": {
              "line": 161,
              "column": 32
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  5770,
                  5781
                ],
                "loc": {
                  "start": {
                    "line": 162,
                    "column": 4
                  },
                  "end": {
                    "line": 162,
                    "column": 15
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "sketch",
                    "range": [
                      5782,
                      5788
                    ],
                    "loc": {
                      "start": {
                        "line": 162,
                        "column": 16
                      },
                      "end": {
                        "line": 162,
                        "column": 22
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              5800,
                              5804
                            ],
                            "loc": {
                              "start": {
                                "line": 163,
                                "column": 8
                              },
                              "end": {
                                "line": 163,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "sketch",
                            "range": [
                              5805,
                              5811
                            ],
                            "loc": {
                              "start": {
                                "line": 163,
                                "column": 13
                              },
                              "end": {
                                "line": 163,
                                "column": 19
                              }
                            }
                          },
                          "range": [
                            5800,
                            5811
                          ],
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 8
                            },
                            "end": {
                              "line": 163,
                              "column": 19
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "sketch",
                          "range": [
                            5814,
                            5820
                          ],
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 22
                            },
                            "end": {
                              "line": 163,
                              "column": 28
                            }
                          }
                        },
                        "range": [
                          5800,
                          5820
                        ],
                        "loc": {
                          "start": {
                            "line": 163,
                            "column": 8
                          },
                          "end": {
                            "line": 163,
                            "column": 28
                          }
                        }
                      },
                      "range": [
                        5800,
                        5821
                      ],
                      "loc": {
                        "start": {
                          "line": 163,
                          "column": 8
                        },
                        "end": {
                          "line": 163,
                          "column": 29
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": " default options and values",
                          "range": [
                            5831,
                            5860
                          ],
                          "loc": {
                            "start": {
                              "line": 165,
                              "column": 8
                            },
                            "end": {
                              "line": 165,
                              "column": 37
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              5869,
                              5873
                            ],
                            "loc": {
                              "start": {
                                "line": 166,
                                "column": 8
                              },
                              "end": {
                                "line": 166,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "generate",
                            "range": [
                              5874,
                              5882
                            ],
                            "loc": {
                              "start": {
                                "line": 166,
                                "column": 13
                              },
                              "end": {
                                "line": 166,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            5869,
                            5882
                          ],
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 8
                            },
                            "end": {
                              "line": 166,
                              "column": 21
                            }
                          }
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "properties": [
                            {
                              "type": "Property",
                              "key": {
                                "type": "Identifier",
                                "name": "horizontality",
                                "range": [
                                  5899,
                                  5912
                                ],
                                "loc": {
                                  "start": {
                                    "line": 167,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 167,
                                    "column": 25
                                  }
                                }
                              },
                              "value": {
                                "type": "Literal",
                                "value": true,
                                "raw": "true",
                                "range": [
                                  5915,
                                  5919
                                ],
                                "loc": {
                                  "start": {
                                    "line": 167,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 167,
                                    "column": 32
                                  }
                                }
                              },
                              "kind": "init",
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "range": [
                                5899,
                                5919
                              ],
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 12
                                },
                                "end": {
                                  "line": 167,
                                  "column": 32
                                }
                              }
                            },
                            {
                              "type": "Property",
                              "key": {
                                "type": "Identifier",
                                "name": "verticality",
                                "range": [
                                  5933,
                                  5944
                                ],
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 23
                                  }
                                }
                              },
                              "value": {
                                "type": "Literal",
                                "value": true,
                                "raw": "true",
                                "range": [
                                  5947,
                                  5951
                                ],
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 30
                                  }
                                }
                              },
                              "kind": "init",
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "range": [
                                5933,
                                5951
                              ],
                              "loc": {
                                "start": {
                                  "line": 168,
                                  "column": 12
                                },
                                "end": {
                                  "line": 168,
                                  "column": 30
                                }
                              }
                            },
                            {
                              "type": "Property",
                              "key": {
                                "type": "Identifier",
                                "name": "pointCoincidence",
                                "range": [
                                  5965,
                                  5981
                                ],
                                "loc": {
                                  "start": {
                                    "line": 169,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 169,
                                    "column": 28
                                  }
                                }
                              },
                              "value": {
                                "type": "Literal",
                                "value": true,
                                "raw": "true",
                                "range": [
                                  5984,
                                  5988
                                ],
                                "loc": {
                                  "start": {
                                    "line": 169,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 169,
                                    "column": 35
                                  }
                                }
                              },
                              "kind": "init",
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "range": [
                                5965,
                                5988
                              ],
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 12
                                },
                                "end": {
                                  "line": 169,
                                  "column": 35
                                }
                              }
                            },
                            {
                              "type": "Property",
                              "key": {
                                "type": "Identifier",
                                "name": "tangency",
                                "range": [
                                  6002,
                                  6010
                                ],
                                "loc": {
                                  "start": {
                                    "line": 170,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 170,
                                    "column": 20
                                  }
                                }
                              },
                              "value": {
                                "type": "Literal",
                                "value": true,
                                "raw": "true",
                                "range": [
                                  6013,
                                  6017
                                ],
                                "loc": {
                                  "start": {
                                    "line": 170,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 170,
                                    "column": 27
                                  }
                                }
                              },
                              "kind": "init",
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "range": [
                                6002,
                                6017
                              ],
                              "loc": {
                                "start": {
                                  "line": 170,
                                  "column": 12
                                },
                                "end": {
                                  "line": 170,
                                  "column": 27
                                }
                              }
                            }
                          ],
                          "range": [
                            5885,
                            6028
                          ],
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 24
                            },
                            "end": {
                              "line": 171,
                              "column": 9
                            }
                          }
                        },
                        "range": [
                          5869,
                          6028
                        ],
                        "loc": {
                          "start": {
                            "line": 166,
                            "column": 8
                          },
                          "end": {
                            "line": 171,
                            "column": 9
                          }
                        }
                      },
                      "range": [
                        5869,
                        6029
                      ],
                      "loc": {
                        "start": {
                          "line": 166,
                          "column": 8
                        },
                        "end": {
                          "line": 171,
                          "column": 10
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": " default options and values",
                          "range": [
                            5831,
                            5860
                          ],
                          "loc": {
                            "start": {
                              "line": 165,
                              "column": 8
                            },
                            "end": {
                              "line": 165,
                              "column": 37
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Line",
                          "value": "note: it should be static, but ES6 is against it",
                          "range": [
                            6039,
                            6089
                          ],
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 8
                            },
                            "end": {
                              "line": 173,
                              "column": 58
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              6098,
                              6102
                            ],
                            "loc": {
                              "start": {
                                "line": 174,
                                "column": 8
                              },
                              "end": {
                                "line": 174,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "angularTolerance",
                            "range": [
                              6103,
                              6119
                            ],
                            "loc": {
                              "start": {
                                "line": 174,
                                "column": 13
                              },
                              "end": {
                                "line": 174,
                                "column": 29
                              }
                            }
                          },
                          "range": [
                            6098,
                            6119
                          ],
                          "loc": {
                            "start": {
                              "line": 174,
                              "column": 8
                            },
                            "end": {
                              "line": 174,
                              "column": 29
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0.000001,
                          "raw": "1e-6",
                          "range": [
                            6122,
                            6126
                          ],
                          "loc": {
                            "start": {
                              "line": 174,
                              "column": 32
                            },
                            "end": {
                              "line": 174,
                              "column": 36
                            }
                          }
                        },
                        "range": [
                          6098,
                          6126
                        ],
                        "loc": {
                          "start": {
                            "line": 174,
                            "column": 8
                          },
                          "end": {
                            "line": 174,
                            "column": 36
                          }
                        }
                      },
                      "range": [
                        6098,
                        6127
                      ],
                      "loc": {
                        "start": {
                          "line": 174,
                          "column": 8
                        },
                        "end": {
                          "line": 174,
                          "column": 37
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Line",
                          "value": "note: it should be static, but ES6 is against it",
                          "range": [
                            6039,
                            6089
                          ],
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 8
                            },
                            "end": {
                              "line": 173,
                              "column": 58
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              6136,
                              6140
                            ],
                            "loc": {
                              "start": {
                                "line": 175,
                                "column": 8
                              },
                              "end": {
                                "line": 175,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "linearTolerance",
                            "range": [
                              6141,
                              6156
                            ],
                            "loc": {
                              "start": {
                                "line": 175,
                                "column": 13
                              },
                              "end": {
                                "line": 175,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            6136,
                            6156
                          ],
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 8
                            },
                            "end": {
                              "line": 175,
                              "column": 28
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0.000001,
                          "raw": "1e-6",
                          "range": [
                            6159,
                            6163
                          ],
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 31
                            },
                            "end": {
                              "line": 175,
                              "column": 35
                            }
                          }
                        },
                        "range": [
                          6136,
                          6163
                        ],
                        "loc": {
                          "start": {
                            "line": 175,
                            "column": 8
                          },
                          "end": {
                            "line": 175,
                            "column": 35
                          }
                        }
                      },
                      "range": [
                        6136,
                        6164
                      ],
                      "loc": {
                        "start": {
                          "line": 175,
                          "column": 8
                        },
                        "end": {
                          "line": 175,
                          "column": 36
                        }
                      }
                    }
                  ],
                  "range": [
                    5790,
                    6170
                  ],
                  "loc": {
                    "start": {
                      "line": 162,
                      "column": 24
                    },
                    "end": {
                      "line": 176,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  5781,
                  6170
                ],
                "loc": {
                  "start": {
                    "line": 162,
                    "column": 15
                  },
                  "end": {
                    "line": 176,
                    "column": 5
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                5770,
                6170
              ],
              "loc": {
                "start": {
                  "line": 162,
                  "column": 4
                },
                "end": {
                  "line": 176,
                  "column": 5
                }
              },
              "trailingComments": [
                {
                  "type": "Line",
                  "value": "if relatedTo is set, then only constraints which are somehow related to objects from [relatedTo] are added",
                  "range": [
                    6177,
                    6285
                  ],
                  "loc": {
                    "start": {
                      "line": 179,
                      "column": 4
                    },
                    "end": {
                      "line": 179,
                      "column": 112
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "generateImpliedConstraints",
                "range": [
                  6290,
                  6316
                ],
                "loc": {
                  "start": {
                    "line": 180,
                    "column": 4
                  },
                  "end": {
                    "line": 180,
                    "column": 30
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "relatedTo",
                    "range": [
                      6317,
                      6326
                    ],
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 31
                      },
                      "end": {
                        "line": 180,
                        "column": 40
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "adder",
                            "range": [
                              6342,
                              6347
                            ],
                            "loc": {
                              "start": {
                                "line": 181,
                                "column": 12
                              },
                              "end": {
                                "line": 181,
                                "column": 17
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "Identifier",
                              "name": "ConstraintsAdder",
                              "range": [
                                6354,
                                6370
                              ],
                              "loc": {
                                "start": {
                                  "line": 181,
                                  "column": 24
                                },
                                "end": {
                                  "line": 181,
                                  "column": 40
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    6371,
                                    6375
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 181,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 181,
                                      "column": 45
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "sketch",
                                  "range": [
                                    6376,
                                    6382
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 181,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 181,
                                      "column": 52
                                    }
                                  }
                                },
                                "range": [
                                  6371,
                                  6382
                                ],
                                "loc": {
                                  "start": {
                                    "line": 181,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 181,
                                    "column": 52
                                  }
                                }
                              }
                            ],
                            "range": [
                              6350,
                              6383
                            ],
                            "loc": {
                              "start": {
                                "line": 181,
                                "column": 20
                              },
                              "end": {
                                "line": 181,
                                "column": 53
                              }
                            }
                          },
                          "range": [
                            6342,
                            6383
                          ],
                          "loc": {
                            "start": {
                              "line": 181,
                              "column": 12
                            },
                            "end": {
                              "line": 181,
                              "column": 53
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        6338,
                        6384
                      ],
                      "loc": {
                        "start": {
                          "line": 181,
                          "column": 8
                        },
                        "end": {
                          "line": 181,
                          "column": 54
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "mainObjects",
                            "range": [
                              6398,
                              6409
                            ],
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 12
                              },
                              "end": {
                                "line": 183,
                                "column": 23
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    6412,
                                    6416
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 30
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "sketch",
                                  "range": [
                                    6417,
                                    6423
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  6412,
                                  6423
                                ],
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 37
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "getObjectsOnSketch",
                                "range": [
                                  6424,
                                  6442
                                ],
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 56
                                  }
                                }
                              },
                              "range": [
                                6412,
                                6442
                              ],
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 26
                                },
                                "end": {
                                  "line": 183,
                                  "column": 56
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              6412,
                              6444
                            ],
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 26
                              },
                              "end": {
                                "line": 183,
                                "column": 58
                              }
                            }
                          },
                          "range": [
                            6398,
                            6444
                          ],
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 12
                            },
                            "end": {
                              "line": 183,
                              "column": 58
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        6394,
                        6445
                      ],
                      "loc": {
                        "start": {
                          "line": 183,
                          "column": 8
                        },
                        "end": {
                          "line": 183,
                          "column": 59
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "allObjects",
                            "range": [
                              6458,
                              6468
                            ],
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 12
                              },
                              "end": {
                                "line": 184,
                                "column": 22
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "Sketch",
                                "range": [
                                  6471,
                                  6477
                                ],
                                "loc": {
                                  "start": {
                                    "line": 184,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 184,
                                    "column": 31
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "ForObjectsWithChildren",
                                "range": [
                                  6478,
                                  6500
                                ],
                                "loc": {
                                  "start": {
                                    "line": 184,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 184,
                                    "column": 54
                                  }
                                }
                              },
                              "range": [
                                6471,
                                6500
                              ],
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 25
                                },
                                "end": {
                                  "line": 184,
                                  "column": 54
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "mainObjects",
                                "range": [
                                  6501,
                                  6512
                                ],
                                "loc": {
                                  "start": {
                                    "line": 184,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 184,
                                    "column": 66
                                  }
                                }
                              }
                            ],
                            "range": [
                              6471,
                              6513
                            ],
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 25
                              },
                              "end": {
                                "line": 184,
                                "column": 67
                              }
                            }
                          },
                          "range": [
                            6458,
                            6513
                          ],
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 12
                            },
                            "end": {
                              "line": 184,
                              "column": 67
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        6454,
                        6514
                      ],
                      "loc": {
                        "start": {
                          "line": 184,
                          "column": 8
                        },
                        "end": {
                          "line": 184,
                          "column": 68
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "===",
                        "left": {
                          "type": "Identifier",
                          "name": "relatedTo",
                          "range": [
                            6527,
                            6536
                          ],
                          "loc": {
                            "start": {
                              "line": 185,
                              "column": 12
                            },
                            "end": {
                              "line": 185,
                              "column": 21
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "undefined",
                          "range": [
                            6541,
                            6550
                          ],
                          "loc": {
                            "start": {
                              "line": 185,
                              "column": 26
                            },
                            "end": {
                              "line": 185,
                              "column": 35
                            }
                          }
                        },
                        "range": [
                          6527,
                          6550
                        ],
                        "loc": {
                          "start": {
                            "line": 185,
                            "column": 12
                          },
                          "end": {
                            "line": 185,
                            "column": 35
                          }
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "expression": {
                          "type": "AssignmentExpression",
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "name": "relatedTo",
                            "range": [
                              6564,
                              6573
                            ],
                            "loc": {
                              "start": {
                                "line": 186,
                                "column": 12
                              },
                              "end": {
                                "line": 186,
                                "column": 21
                              }
                            }
                          },
                          "right": {
                            "type": "Identifier",
                            "name": "allObjects",
                            "range": [
                              6576,
                              6586
                            ],
                            "loc": {
                              "start": {
                                "line": 186,
                                "column": 24
                              },
                              "end": {
                                "line": 186,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            6564,
                            6586
                          ],
                          "loc": {
                            "start": {
                              "line": 186,
                              "column": 12
                            },
                            "end": {
                              "line": 186,
                              "column": 34
                            }
                          }
                        },
                        "range": [
                          6564,
                          6587
                        ],
                        "loc": {
                          "start": {
                            "line": 186,
                            "column": 12
                          },
                          "end": {
                            "line": 186,
                            "column": 35
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        6523,
                        6587
                      ],
                      "loc": {
                        "start": {
                          "line": 185,
                          "column": 8
                        },
                        "end": {
                          "line": 186,
                          "column": 35
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "relatedToSet",
                            "range": [
                              6600,
                              6612
                            ],
                            "loc": {
                              "start": {
                                "line": 187,
                                "column": 12
                              },
                              "end": {
                                "line": 187,
                                "column": 24
                              }
                            }
                          },
                          "init": {
                            "type": "NewExpression",
                            "callee": {
                              "type": "Identifier",
                              "name": "Set",
                              "range": [
                                6619,
                                6622
                              ],
                              "loc": {
                                "start": {
                                  "line": 187,
                                  "column": 31
                                },
                                "end": {
                                  "line": 187,
                                  "column": 34
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "relatedTo",
                                "range": [
                                  6623,
                                  6632
                                ],
                                "loc": {
                                  "start": {
                                    "line": 187,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 187,
                                    "column": 44
                                  }
                                }
                              }
                            ],
                            "range": [
                              6615,
                              6633
                            ],
                            "loc": {
                              "start": {
                                "line": 187,
                                "column": 27
                              },
                              "end": {
                                "line": 187,
                                "column": 45
                              }
                            }
                          },
                          "range": [
                            6600,
                            6633
                          ],
                          "loc": {
                            "start": {
                              "line": 187,
                              "column": 12
                            },
                            "end": {
                              "line": 187,
                              "column": 45
                            }
                          }
                        }
                      ],
                      "kind": "var",
                      "range": [
                        6596,
                        6634
                      ],
                      "loc": {
                        "start": {
                          "line": 187,
                          "column": 8
                        },
                        "end": {
                          "line": 187,
                          "column": 46
                        }
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "left": {
                        "type": "VariableDeclaration",
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "id": {
                              "type": "Identifier",
                              "name": "baseObj",
                              "range": [
                                6653,
                                6660
                              ],
                              "loc": {
                                "start": {
                                  "line": 189,
                                  "column": 17
                                },
                                "end": {
                                  "line": 189,
                                  "column": 24
                                }
                              }
                            },
                            "init": null,
                            "range": [
                              6653,
                              6660
                            ],
                            "loc": {
                              "start": {
                                "line": 189,
                                "column": 17
                              },
                              "end": {
                                "line": 189,
                                "column": 24
                              }
                            }
                          }
                        ],
                        "kind": "var",
                        "range": [
                          6649,
                          6660
                        ],
                        "loc": {
                          "start": {
                            "line": 189,
                            "column": 13
                          },
                          "end": {
                            "line": 189,
                            "column": 24
                          }
                        }
                      },
                      "right": {
                        "type": "Identifier",
                        "name": "relatedTo",
                        "range": [
                          6664,
                          6673
                        ],
                        "loc": {
                          "start": {
                            "line": 189,
                            "column": 28
                          },
                          "end": {
                            "line": 189,
                            "column": 37
                          }
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "baseObj",
                                    "range": [
                                      6693,
                                      6700
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 190,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 190,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "state",
                                    "range": [
                                      6701,
                                      6706
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 190,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 190,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "range": [
                                    6693,
                                    6706
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 29
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "class",
                                  "range": [
                                    6707,
                                    6712
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 35
                                    }
                                  }
                                },
                                "range": [
                                  6693,
                                  6712
                                ],
                                "loc": {
                                  "start": {
                                    "line": 190,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 190,
                                    "column": 35
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": "CC_Line",
                                "raw": "'CC_Line'",
                                "range": [
                                  6717,
                                  6726
                                ],
                                "loc": {
                                  "start": {
                                    "line": 190,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 190,
                                    "column": 49
                                  }
                                }
                              },
                              "range": [
                                6693,
                                6726
                              ],
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 16
                                },
                                "end": {
                                  "line": 190,
                                  "column": 49
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "VariableDeclaration",
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "id": {
                                        "type": "Identifier",
                                        "name": "vec",
                                        "range": [
                                          6815,
                                          6818
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 192,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 192,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "init": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "baseObj",
                                            "range": [
                                              6821,
                                              6828
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 192,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 192,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "getTangent",
                                            "range": [
                                              6829,
                                              6839
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 192,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 192,
                                                "column": 44
                                              }
                                            }
                                          },
                                          "range": [
                                            6821,
                                            6839
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 192,
                                              "column": 26
                                            },
                                            "end": {
                                              "line": 192,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "arguments": [],
                                        "range": [
                                          6821,
                                          6841
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 192,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 192,
                                            "column": 46
                                          }
                                        }
                                      },
                                      "range": [
                                        6815,
                                        6841
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 192,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 192,
                                          "column": 46
                                        }
                                      }
                                    }
                                  ],
                                  "kind": "var",
                                  "range": [
                                    6811,
                                    6842
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 192,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 192,
                                      "column": 47
                                    }
                                  },
                                  "leadingComments": [
                                    {
                                      "type": "Line",
                                      "value": " generate implied horizontality or verticality",
                                      "range": [
                                        6746,
                                        6794
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 191,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 191,
                                          "column": 64
                                        }
                                      }
                                    }
                                  ],
                                  "trailingComments": [
                                    {
                                      "type": "Line",
                                      "value": "unit vector or zero",
                                      "range": [
                                        6843,
                                        6864
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 192,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 192,
                                          "column": 69
                                        }
                                      }
                                    }
                                  ]
                                },
                                {
                                  "type": "IfStatement",
                                  "test": {
                                    "type": "BinaryExpression",
                                    "operator": ">",
                                    "left": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "vec",
                                          "range": [
                                            6885,
                                            6888
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 193,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 193,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "length",
                                          "range": [
                                            6889,
                                            6895
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 193,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 193,
                                              "column": 30
                                            }
                                          }
                                        },
                                        "range": [
                                          6885,
                                          6895
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 193,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 193,
                                            "column": 30
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        6885,
                                        6897
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 193,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 193,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          6900,
                                          6904
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 193,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 193,
                                            "column": 39
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "angularTolerance",
                                        "range": [
                                          6905,
                                          6921
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 193,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 193,
                                            "column": 56
                                          }
                                        }
                                      },
                                      "range": [
                                        6900,
                                        6921
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 193,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 193,
                                          "column": 56
                                        }
                                      }
                                    },
                                    "range": [
                                      6885,
                                      6921
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 193,
                                        "column": 56
                                      }
                                    }
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "BinaryExpression",
                                          "operator": "<=",
                                          "left": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "Math",
                                                "range": [
                                                  6949,
                                                  6953
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 194,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 194,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "abs",
                                                "range": [
                                                  6954,
                                                  6957
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 194,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 194,
                                                    "column": 32
                                                  }
                                                }
                                              },
                                              "range": [
                                                6949,
                                                6957
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 194,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 194,
                                                  "column": 32
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "vec",
                                                  "range": [
                                                    6958,
                                                    6961
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 194,
                                                      "column": 33
                                                    },
                                                    "end": {
                                                      "line": 194,
                                                      "column": 36
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "y",
                                                  "range": [
                                                    6962,
                                                    6963
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 194,
                                                      "column": 37
                                                    },
                                                    "end": {
                                                      "line": 194,
                                                      "column": 38
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  6958,
                                                  6963
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 194,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 194,
                                                    "column": 38
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              6949,
                                              6964
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 194,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 194,
                                                "column": 39
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                6968,
                                                6972
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 194,
                                                  "column": 43
                                                },
                                                "end": {
                                                  "line": 194,
                                                  "column": 47
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "angularTolerance",
                                              "range": [
                                                6973,
                                                6989
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 194,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 194,
                                                  "column": 64
                                                }
                                              }
                                            },
                                            "range": [
                                              6968,
                                              6989
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 194,
                                                "column": 43
                                              },
                                              "end": {
                                                "line": 194,
                                                "column": 64
                                              }
                                            }
                                          },
                                          "range": [
                                            6949,
                                            6989
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 194,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 194,
                                              "column": 64
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "ExpressionStatement",
                                          "expression": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "adder",
                                                "range": [
                                                  7015,
                                                  7020
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 195,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 195,
                                                    "column": 29
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "add",
                                                "range": [
                                                  7021,
                                                  7024
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 195,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 195,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              "range": [
                                                7015,
                                                7024
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 195,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 195,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "Constraint",
                                                    "range": [
                                                      7025,
                                                      7035
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 195,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 195,
                                                        "column": 44
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "Type",
                                                    "range": [
                                                      7036,
                                                      7040
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 195,
                                                        "column": 45
                                                      },
                                                      "end": {
                                                        "line": 195,
                                                        "column": 49
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    7025,
                                                    7040
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 195,
                                                      "column": 34
                                                    },
                                                    "end": {
                                                      "line": 195,
                                                      "column": 49
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "HORIZONTALITY",
                                                  "range": [
                                                    7041,
                                                    7054
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 195,
                                                      "column": 50
                                                    },
                                                    "end": {
                                                      "line": 195,
                                                      "column": 63
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7025,
                                                  7054
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 195,
                                                    "column": 34
                                                  },
                                                  "end": {
                                                    "line": 195,
                                                    "column": 63
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ArrayExpression",
                                                "elements": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "baseObj",
                                                    "range": [
                                                      7057,
                                                      7064
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 195,
                                                        "column": 66
                                                      },
                                                      "end": {
                                                        "line": 195,
                                                        "column": 73
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  7056,
                                                  7065
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 195,
                                                    "column": 65
                                                  },
                                                  "end": {
                                                    "line": 195,
                                                    "column": 74
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ObjectExpression",
                                                "properties": [
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "fixed",
                                                      "range": [
                                                        7068,
                                                        7073
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 195,
                                                          "column": 77
                                                        },
                                                        "end": {
                                                          "line": 195,
                                                          "column": 82
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Literal",
                                                      "value": true,
                                                      "raw": "true",
                                                      "range": [
                                                        7075,
                                                        7079
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 195,
                                                          "column": 84
                                                        },
                                                        "end": {
                                                          "line": 195,
                                                          "column": 88
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      7068,
                                                      7079
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 195,
                                                        "column": 77
                                                      },
                                                      "end": {
                                                        "line": 195,
                                                        "column": 88
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "noVisualize",
                                                      "range": [
                                                        7081,
                                                        7092
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 195,
                                                          "column": 90
                                                        },
                                                        "end": {
                                                          "line": 195,
                                                          "column": 101
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Literal",
                                                      "value": true,
                                                      "raw": "true",
                                                      "range": [
                                                        7094,
                                                        7098
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 195,
                                                          "column": 103
                                                        },
                                                        "end": {
                                                          "line": 195,
                                                          "column": 107
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      7081,
                                                      7098
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 195,
                                                        "column": 90
                                                      },
                                                      "end": {
                                                        "line": 195,
                                                        "column": 107
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  7067,
                                                  7099
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 195,
                                                    "column": 76
                                                  },
                                                  "end": {
                                                    "line": 195,
                                                    "column": 108
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              7015,
                                              7100
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 195,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 195,
                                                "column": 109
                                              }
                                            }
                                          },
                                          "range": [
                                            7015,
                                            7101
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 195,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 195,
                                              "column": 110
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          6945,
                                          7101
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 194,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 195,
                                            "column": 110
                                          }
                                        }
                                      },
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "BinaryExpression",
                                          "operator": "<=",
                                          "left": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "Math",
                                                "range": [
                                                  7126,
                                                  7130
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 196,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 196,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "abs",
                                                "range": [
                                                  7131,
                                                  7134
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 196,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 196,
                                                    "column": 32
                                                  }
                                                }
                                              },
                                              "range": [
                                                7126,
                                                7134
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 196,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 196,
                                                  "column": 32
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "vec",
                                                  "range": [
                                                    7135,
                                                    7138
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 196,
                                                      "column": 33
                                                    },
                                                    "end": {
                                                      "line": 196,
                                                      "column": 36
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "x",
                                                  "range": [
                                                    7139,
                                                    7140
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 196,
                                                      "column": 37
                                                    },
                                                    "end": {
                                                      "line": 196,
                                                      "column": 38
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7135,
                                                  7140
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 196,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 196,
                                                    "column": 38
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              7126,
                                              7141
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 196,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 196,
                                                "column": 39
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                7145,
                                                7149
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 196,
                                                  "column": 43
                                                },
                                                "end": {
                                                  "line": 196,
                                                  "column": 47
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "angularTolerance",
                                              "range": [
                                                7150,
                                                7166
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 196,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 196,
                                                  "column": 64
                                                }
                                              }
                                            },
                                            "range": [
                                              7145,
                                              7166
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 196,
                                                "column": 43
                                              },
                                              "end": {
                                                "line": 196,
                                                "column": 64
                                              }
                                            }
                                          },
                                          "range": [
                                            7126,
                                            7166
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 196,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 196,
                                              "column": 64
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "ExpressionStatement",
                                          "expression": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "adder",
                                                "range": [
                                                  7192,
                                                  7197
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 197,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 197,
                                                    "column": 29
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "add",
                                                "range": [
                                                  7198,
                                                  7201
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 197,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 197,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              "range": [
                                                7192,
                                                7201
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 197,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 197,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "Constraint",
                                                    "range": [
                                                      7202,
                                                      7212
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 197,
                                                        "column": 34
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 44
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "Type",
                                                    "range": [
                                                      7213,
                                                      7217
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 197,
                                                        "column": 45
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 49
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    7202,
                                                    7217
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 197,
                                                      "column": 34
                                                    },
                                                    "end": {
                                                      "line": 197,
                                                      "column": 49
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "VERTICALITY",
                                                  "range": [
                                                    7218,
                                                    7229
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 197,
                                                      "column": 50
                                                    },
                                                    "end": {
                                                      "line": 197,
                                                      "column": 61
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7202,
                                                  7229
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 197,
                                                    "column": 34
                                                  },
                                                  "end": {
                                                    "line": 197,
                                                    "column": 61
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ArrayExpression",
                                                "elements": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "baseObj",
                                                    "range": [
                                                      7232,
                                                      7239
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 197,
                                                        "column": 64
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 71
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  7231,
                                                  7240
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 197,
                                                    "column": 63
                                                  },
                                                  "end": {
                                                    "line": 197,
                                                    "column": 72
                                                  }
                                                }
                                              },
                                              {
                                                "type": "ObjectExpression",
                                                "properties": [
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "fixed",
                                                      "range": [
                                                        7243,
                                                        7248
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 197,
                                                          "column": 75
                                                        },
                                                        "end": {
                                                          "line": 197,
                                                          "column": 80
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Literal",
                                                      "value": true,
                                                      "raw": "true",
                                                      "range": [
                                                        7250,
                                                        7254
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 197,
                                                          "column": 82
                                                        },
                                                        "end": {
                                                          "line": 197,
                                                          "column": 86
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      7243,
                                                      7254
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 197,
                                                        "column": 75
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 86
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Property",
                                                    "key": {
                                                      "type": "Identifier",
                                                      "name": "noVisualize",
                                                      "range": [
                                                        7256,
                                                        7267
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 197,
                                                          "column": 88
                                                        },
                                                        "end": {
                                                          "line": 197,
                                                          "column": 99
                                                        }
                                                      }
                                                    },
                                                    "value": {
                                                      "type": "Literal",
                                                      "value": true,
                                                      "raw": "true",
                                                      "range": [
                                                        7269,
                                                        7273
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 197,
                                                          "column": 101
                                                        },
                                                        "end": {
                                                          "line": 197,
                                                          "column": 105
                                                        }
                                                      }
                                                    },
                                                    "kind": "init",
                                                    "method": false,
                                                    "shorthand": false,
                                                    "computed": false,
                                                    "range": [
                                                      7256,
                                                      7273
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 197,
                                                        "column": 88
                                                      },
                                                      "end": {
                                                        "line": 197,
                                                        "column": 105
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  7242,
                                                  7274
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 197,
                                                    "column": 74
                                                  },
                                                  "end": {
                                                    "line": 197,
                                                    "column": 106
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              7192,
                                              7275
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 197,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 197,
                                                "column": 107
                                              }
                                            }
                                          },
                                          "range": [
                                            7192,
                                            7276
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 197,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 197,
                                              "column": 108
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          7122,
                                          7276
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 196,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 197,
                                            "column": 108
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      6923,
                                      7294
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 198,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "alternate": null,
                                  "range": [
                                    6881,
                                    7294
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 193,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 198,
                                      "column": 17
                                    }
                                  },
                                  "leadingComments": [
                                    {
                                      "type": "Line",
                                      "value": "unit vector or zero",
                                      "range": [
                                        6843,
                                        6864
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 192,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 192,
                                          "column": 69
                                        }
                                      }
                                    }
                                  ]
                                }
                              ],
                              "range": [
                                6728,
                                7308
                              ],
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 51
                                },
                                "end": {
                                  "line": 199,
                                  "column": 13
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              6689,
                              7308
                            ],
                            "loc": {
                              "start": {
                                "line": 190,
                                "column": 12
                              },
                              "end": {
                                "line": 199,
                                "column": 13
                              }
                            }
                          },
                          {
                            "type": "ForOfStatement",
                            "left": {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "otherObj",
                                    "range": [
                                      7331,
                                      7339
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 201,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 201,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "init": null,
                                  "range": [
                                    7331,
                                    7339
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 201,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 201,
                                      "column": 29
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                7327,
                                7339
                              ],
                              "loc": {
                                "start": {
                                  "line": 201,
                                  "column": 17
                                },
                                "end": {
                                  "line": 201,
                                  "column": 29
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "allObjects",
                              "range": [
                                7343,
                                7353
                              ],
                              "loc": {
                                "start": {
                                  "line": 201,
                                  "column": 33
                                },
                                "end": {
                                  "line": 201,
                                  "column": 43
                                }
                              }
                            },
                            "body": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "IfStatement",
                                  "test": {
                                    "type": "LogicalExpression",
                                    "operator": "&&",
                                    "left": {
                                      "type": "LogicalExpression",
                                      "operator": "&&",
                                      "left": {
                                        "type": "BinaryExpression",
                                        "operator": "===",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "baseObj",
                                              "range": [
                                                7377,
                                                7384
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 202,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "state",
                                              "range": [
                                                7385,
                                                7390
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 202,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "range": [
                                              7377,
                                              7390
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 202,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 202,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "class",
                                            "range": [
                                              7391,
                                              7396
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 202,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 202,
                                                "column": 39
                                              }
                                            }
                                          },
                                          "range": [
                                            7377,
                                            7396
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 202,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 202,
                                              "column": 39
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": "CC_Point",
                                          "raw": "'CC_Point'",
                                          "range": [
                                            7401,
                                            7411
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 202,
                                              "column": 44
                                            },
                                            "end": {
                                              "line": 202,
                                              "column": 54
                                            }
                                          }
                                        },
                                        "range": [
                                          7377,
                                          7411
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 202,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 202,
                                            "column": 54
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "BinaryExpression",
                                        "operator": "===",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "otherObj",
                                              "range": [
                                                7415,
                                                7423
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 58
                                                },
                                                "end": {
                                                  "line": 202,
                                                  "column": 66
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "state",
                                              "range": [
                                                7424,
                                                7429
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 202,
                                                  "column": 67
                                                },
                                                "end": {
                                                  "line": 202,
                                                  "column": 72
                                                }
                                              }
                                            },
                                            "range": [
                                              7415,
                                              7429
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 202,
                                                "column": 58
                                              },
                                              "end": {
                                                "line": 202,
                                                "column": 72
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "class",
                                            "range": [
                                              7430,
                                              7435
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 202,
                                                "column": 73
                                              },
                                              "end": {
                                                "line": 202,
                                                "column": 78
                                              }
                                            }
                                          },
                                          "range": [
                                            7415,
                                            7435
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 202,
                                              "column": 58
                                            },
                                            "end": {
                                              "line": 202,
                                              "column": 78
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": "CC_Point",
                                          "raw": "'CC_Point'",
                                          "range": [
                                            7440,
                                            7450
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 202,
                                              "column": 83
                                            },
                                            "end": {
                                              "line": 202,
                                              "column": 93
                                            }
                                          }
                                        },
                                        "range": [
                                          7415,
                                          7450
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 202,
                                            "column": 58
                                          },
                                          "end": {
                                            "line": 202,
                                            "column": 93
                                          }
                                        }
                                      },
                                      "range": [
                                        7377,
                                        7450
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 202,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 202,
                                          "column": 93
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "BinaryExpression",
                                      "operator": "<=",
                                      "left": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "baseObj",
                                              "range": [
                                                7471,
                                                7478
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 203,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 203,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "position",
                                              "range": [
                                                7479,
                                                7487
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 203,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 203,
                                                  "column": 36
                                                }
                                              }
                                            },
                                            "range": [
                                              7471,
                                              7487
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 203,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 203,
                                                "column": 36
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "distanceTo",
                                            "range": [
                                              7488,
                                              7498
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 203,
                                                "column": 37
                                              },
                                              "end": {
                                                "line": 203,
                                                "column": 47
                                              }
                                            }
                                          },
                                          "range": [
                                            7471,
                                            7498
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 203,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 203,
                                              "column": 47
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "otherObj",
                                              "range": [
                                                7499,
                                                7507
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 203,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 203,
                                                  "column": 56
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "position",
                                              "range": [
                                                7508,
                                                7516
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 203,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 203,
                                                  "column": 65
                                                }
                                              }
                                            },
                                            "range": [
                                              7499,
                                              7516
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 203,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 203,
                                                "column": 65
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          7471,
                                          7517
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 203,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 203,
                                            "column": 66
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            7521,
                                            7525
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 203,
                                              "column": 70
                                            },
                                            "end": {
                                              "line": 203,
                                              "column": 74
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "linearTolerance",
                                          "range": [
                                            7526,
                                            7541
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 203,
                                              "column": 75
                                            },
                                            "end": {
                                              "line": 203,
                                              "column": 90
                                            }
                                          }
                                        },
                                        "range": [
                                          7521,
                                          7541
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 203,
                                            "column": 70
                                          },
                                          "end": {
                                            "line": 203,
                                            "column": 90
                                          }
                                        }
                                      },
                                      "range": [
                                        7471,
                                        7541
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 203,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 203,
                                          "column": 90
                                        }
                                      }
                                    },
                                    "range": [
                                      7377,
                                      7541
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 202,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 203,
                                        "column": 90
                                      }
                                    }
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "adder",
                                              "range": [
                                                7625,
                                                7630
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 205,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 205,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "add",
                                              "range": [
                                                7631,
                                                7634
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 205,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 205,
                                                  "column": 29
                                                }
                                              }
                                            },
                                            "range": [
                                              7625,
                                              7634
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 205,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 205,
                                                "column": 29
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "Constraint",
                                                  "range": [
                                                    7635,
                                                    7645
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 30
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 40
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "Type",
                                                  "range": [
                                                    7646,
                                                    7650
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 41
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 45
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7635,
                                                  7650
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 205,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 205,
                                                    "column": 45
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "INCIDENCE",
                                                "range": [
                                                  7651,
                                                  7660
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 205,
                                                    "column": 46
                                                  },
                                                  "end": {
                                                    "line": 205,
                                                    "column": 55
                                                  }
                                                }
                                              },
                                              "range": [
                                                7635,
                                                7660
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 205,
                                                  "column": 30
                                                },
                                                "end": {
                                                  "line": 205,
                                                  "column": 55
                                                }
                                              }
                                            },
                                            {
                                              "type": "ArrayExpression",
                                              "elements": [
                                                {
                                                  "type": "Identifier",
                                                  "name": "baseObj",
                                                  "range": [
                                                    7663,
                                                    7670
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 58
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 65
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "Identifier",
                                                  "name": "otherObj",
                                                  "range": [
                                                    7672,
                                                    7680
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 67
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 75
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                7662,
                                                7681
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 205,
                                                  "column": 57
                                                },
                                                "end": {
                                                  "line": 205,
                                                  "column": 76
                                                }
                                              }
                                            },
                                            {
                                              "type": "ObjectExpression",
                                              "properties": [
                                                {
                                                  "type": "Property",
                                                  "key": {
                                                    "type": "Identifier",
                                                    "name": "noVisualize",
                                                    "range": [
                                                      7684,
                                                      7695
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 205,
                                                        "column": 79
                                                      },
                                                      "end": {
                                                        "line": 205,
                                                        "column": 90
                                                      }
                                                    }
                                                  },
                                                  "value": {
                                                    "type": "Literal",
                                                    "value": true,
                                                    "raw": "true",
                                                    "range": [
                                                      7697,
                                                      7701
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 205,
                                                        "column": 92
                                                      },
                                                      "end": {
                                                        "line": 205,
                                                        "column": 96
                                                      }
                                                    }
                                                  },
                                                  "kind": "init",
                                                  "method": false,
                                                  "shorthand": false,
                                                  "computed": false,
                                                  "range": [
                                                    7684,
                                                    7701
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 205,
                                                      "column": 79
                                                    },
                                                    "end": {
                                                      "line": 205,
                                                      "column": 96
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                7683,
                                                7702
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 205,
                                                  "column": 78
                                                },
                                                "end": {
                                                  "line": 205,
                                                  "column": 97
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            7625,
                                            7703
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 205,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 205,
                                              "column": 98
                                            }
                                          }
                                        },
                                        "range": [
                                          7625,
                                          7704
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 205,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 205,
                                            "column": 99
                                          }
                                        },
                                        "leadingComments": [
                                          {
                                            "type": "Line",
                                            "value": " generate implied incidence of points",
                                            "range": [
                                              7565,
                                              7604
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 204,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 204,
                                                "column": 59
                                              }
                                            }
                                          }
                                        ],
                                        "trailingComments": [
                                          {
                                            "type": "Line",
                                            "value": " generate implied tangency of touching endpoints",
                                            "range": [
                                              7726,
                                              7776
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 207,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 207,
                                                "column": 70
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      {
                                        "type": "VariableDeclaration",
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "basePar",
                                              "range": [
                                                7801,
                                                7808
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 31
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "baseObj",
                                                "range": [
                                                  7811,
                                                  7818
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 34
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 41
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "parent",
                                                "range": [
                                                  7819,
                                                  7825
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 42
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 48
                                                  }
                                                }
                                              },
                                              "range": [
                                                7811,
                                                7825
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 34
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 48
                                                }
                                              }
                                            },
                                            "range": [
                                              7801,
                                              7825
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 208,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 208,
                                                "column": 48
                                              }
                                            }
                                          },
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "otherPar",
                                              "range": [
                                                7827,
                                                7835
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 50
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 58
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "otherObj",
                                                "range": [
                                                  7838,
                                                  7846
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 61
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 69
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "parent",
                                                "range": [
                                                  7847,
                                                  7853
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 208,
                                                    "column": 70
                                                  },
                                                  "end": {
                                                    "line": 208,
                                                    "column": 76
                                                  }
                                                }
                                              },
                                              "range": [
                                                7838,
                                                7853
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 208,
                                                  "column": 61
                                                },
                                                "end": {
                                                  "line": 208,
                                                  "column": 76
                                                }
                                              }
                                            },
                                            "range": [
                                              7827,
                                              7853
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 208,
                                                "column": 50
                                              },
                                              "end": {
                                                "line": 208,
                                                "column": 76
                                              }
                                            }
                                          }
                                        ],
                                        "kind": "var",
                                        "range": [
                                          7797,
                                          7854
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 208,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 208,
                                            "column": 77
                                          }
                                        },
                                        "leadingComments": [
                                          {
                                            "type": "Line",
                                            "value": " generate implied tangency of touching endpoints",
                                            "range": [
                                              7726,
                                              7776
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 207,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 207,
                                                "column": 70
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "LogicalExpression",
                                          "operator": "&&",
                                          "left": {
                                            "type": "LogicalExpression",
                                            "operator": "&&",
                                            "left": {
                                              "type": "LogicalExpression",
                                              "operator": "&&",
                                              "left": {
                                                "type": "BinaryExpression",
                                                "operator": "!==",
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "basePar",
                                                      "range": [
                                                        7879,
                                                        7886
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 209,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 209,
                                                          "column": 31
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "state",
                                                      "range": [
                                                        7887,
                                                        7892
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 209,
                                                          "column": 32
                                                        },
                                                        "end": {
                                                          "line": 209,
                                                          "column": 37
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      7879,
                                                      7892
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 209,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 209,
                                                        "column": 37
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "class",
                                                    "range": [
                                                      7893,
                                                      7898
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 209,
                                                        "column": 38
                                                      },
                                                      "end": {
                                                        "line": 209,
                                                        "column": 43
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    7879,
                                                    7898
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 209,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 209,
                                                      "column": 43
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "Literal",
                                                  "value": "CC_Sketch",
                                                  "raw": "'CC_Sketch'",
                                                  "range": [
                                                    7903,
                                                    7914
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 209,
                                                      "column": 48
                                                    },
                                                    "end": {
                                                      "line": 209,
                                                      "column": 59
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7879,
                                                  7914
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 59
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "BinaryExpression",
                                                "operator": "!==",
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "otherPar",
                                                      "range": [
                                                        7918,
                                                        7926
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 209,
                                                          "column": 63
                                                        },
                                                        "end": {
                                                          "line": 209,
                                                          "column": 71
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "state",
                                                      "range": [
                                                        7927,
                                                        7932
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 209,
                                                          "column": 72
                                                        },
                                                        "end": {
                                                          "line": 209,
                                                          "column": 77
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      7918,
                                                      7932
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 209,
                                                        "column": 63
                                                      },
                                                      "end": {
                                                        "line": 209,
                                                        "column": 77
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "class",
                                                    "range": [
                                                      7933,
                                                      7938
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 209,
                                                        "column": 78
                                                      },
                                                      "end": {
                                                        "line": 209,
                                                        "column": 83
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    7918,
                                                    7938
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 209,
                                                      "column": 63
                                                    },
                                                    "end": {
                                                      "line": 209,
                                                      "column": 83
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "Literal",
                                                  "value": "CC_Sketch",
                                                  "raw": "'CC_Sketch'",
                                                  "range": [
                                                    7943,
                                                    7954
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 209,
                                                      "column": 88
                                                    },
                                                    "end": {
                                                      "line": 209,
                                                      "column": 99
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  7918,
                                                  7954
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 63
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 99
                                                  }
                                                }
                                              },
                                              "range": [
                                                7879,
                                                7954
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 209,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 209,
                                                  "column": 99
                                                }
                                              }
                                            },
                                            "right": {
                                              "type": "BinaryExpression",
                                              "operator": "!==",
                                              "left": {
                                                "type": "Identifier",
                                                "name": "basePar",
                                                "range": [
                                                  7958,
                                                  7965
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 103
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 110
                                                  }
                                                }
                                              },
                                              "right": {
                                                "type": "Identifier",
                                                "name": "otherPar",
                                                "range": [
                                                  7970,
                                                  7978
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 115
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 123
                                                  }
                                                }
                                              },
                                              "range": [
                                                7958,
                                                7978
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 209,
                                                  "column": 103
                                                },
                                                "end": {
                                                  "line": 209,
                                                  "column": 123
                                                }
                                              }
                                            },
                                            "range": [
                                              7879,
                                              7978
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 209,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 209,
                                                "column": 123
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "relatedToSet",
                                                "range": [
                                                  7982,
                                                  7994
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 127
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 139
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "has",
                                                "range": [
                                                  7995,
                                                  7998
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 140
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 143
                                                  }
                                                }
                                              },
                                              "range": [
                                                7982,
                                                7998
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 209,
                                                  "column": 127
                                                },
                                                "end": {
                                                  "line": 209,
                                                  "column": 143
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "name": "basePar",
                                                "range": [
                                                  7999,
                                                  8006
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 209,
                                                    "column": 144
                                                  },
                                                  "end": {
                                                    "line": 209,
                                                    "column": 151
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              7982,
                                              8007
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 209,
                                                "column": 127
                                              },
                                              "end": {
                                                "line": 209,
                                                "column": 152
                                              }
                                            }
                                          },
                                          "range": [
                                            7879,
                                            8007
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 209,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 209,
                                              "column": 152
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "IfStatement",
                                              "test": {
                                                "type": "LogicalExpression",
                                                "operator": "&&",
                                                "left": {
                                                  "type": "BinaryExpression",
                                                  "operator": "!==",
                                                  "left": {
                                                    "type": "CallExpression",
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "basePar",
                                                          "range": [
                                                            8039,
                                                            8046
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 210,
                                                              "column": 28
                                                            },
                                                            "end": {
                                                              "line": 210,
                                                              "column": 35
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "points",
                                                          "range": [
                                                            8047,
                                                            8053
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 210,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 210,
                                                              "column": 42
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8039,
                                                          8053
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 28
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 42
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "indexOf",
                                                        "range": [
                                                          8054,
                                                          8061
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 43
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 50
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        8039,
                                                        8061
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 210,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 210,
                                                          "column": 50
                                                        }
                                                      }
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "Identifier",
                                                        "name": "baseObj",
                                                        "range": [
                                                          8062,
                                                          8069
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 51
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 58
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      8039,
                                                      8070
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 210,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 210,
                                                        "column": 59
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "UnaryExpression",
                                                    "operator": "-",
                                                    "argument": {
                                                      "type": "Literal",
                                                      "value": 1,
                                                      "raw": "1",
                                                      "range": [
                                                        8076,
                                                        8077
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 210,
                                                          "column": 65
                                                        },
                                                        "end": {
                                                          "line": 210,
                                                          "column": 66
                                                        }
                                                      }
                                                    },
                                                    "prefix": true,
                                                    "range": [
                                                      8075,
                                                      8077
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 210,
                                                        "column": 64
                                                      },
                                                      "end": {
                                                        "line": 210,
                                                        "column": 66
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    8039,
                                                    8077
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 210,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 210,
                                                      "column": 66
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "BinaryExpression",
                                                  "operator": "!==",
                                                  "left": {
                                                    "type": "CallExpression",
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "computed": false,
                                                      "object": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "otherPar",
                                                          "range": [
                                                            8081,
                                                            8089
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 210,
                                                              "column": 70
                                                            },
                                                            "end": {
                                                              "line": 210,
                                                              "column": 78
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "points",
                                                          "range": [
                                                            8090,
                                                            8096
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 210,
                                                              "column": 79
                                                            },
                                                            "end": {
                                                              "line": 210,
                                                              "column": 85
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8081,
                                                          8096
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 70
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 85
                                                          }
                                                        }
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "name": "indexOf",
                                                        "range": [
                                                          8097,
                                                          8104
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 86
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 93
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        8081,
                                                        8104
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 210,
                                                          "column": 70
                                                        },
                                                        "end": {
                                                          "line": 210,
                                                          "column": 93
                                                        }
                                                      }
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "Identifier",
                                                        "name": "otherObj",
                                                        "range": [
                                                          8105,
                                                          8113
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 210,
                                                            "column": 94
                                                          },
                                                          "end": {
                                                            "line": 210,
                                                            "column": 102
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "range": [
                                                      8081,
                                                      8114
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 210,
                                                        "column": 70
                                                      },
                                                      "end": {
                                                        "line": 210,
                                                        "column": 103
                                                      }
                                                    }
                                                  },
                                                  "right": {
                                                    "type": "UnaryExpression",
                                                    "operator": "-",
                                                    "argument": {
                                                      "type": "Literal",
                                                      "value": 1,
                                                      "raw": "1",
                                                      "range": [
                                                        8120,
                                                        8121
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 210,
                                                          "column": 109
                                                        },
                                                        "end": {
                                                          "line": 210,
                                                          "column": 110
                                                        }
                                                      }
                                                    },
                                                    "prefix": true,
                                                    "range": [
                                                      8119,
                                                      8121
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 210,
                                                        "column": 108
                                                      },
                                                      "end": {
                                                        "line": 210,
                                                        "column": 110
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    8081,
                                                    8121
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 210,
                                                      "column": 70
                                                    },
                                                    "end": {
                                                      "line": 210,
                                                      "column": 110
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  8039,
                                                  8121
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 210,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 210,
                                                    "column": 110
                                                  }
                                                }
                                              },
                                              "consequent": {
                                                "type": "BlockStatement",
                                                "body": [
                                                  {
                                                    "type": "VariableDeclaration",
                                                    "declarations": [
                                                      {
                                                        "type": "VariableDeclarator",
                                                        "id": {
                                                          "type": "Identifier",
                                                          "name": "baseDir",
                                                          "range": [
                                                            8157,
                                                            8164
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 211,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 211,
                                                              "column": 39
                                                            }
                                                          }
                                                        },
                                                        "init": {
                                                          "type": "CallExpression",
                                                          "callee": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "basePar",
                                                              "range": [
                                                                8167,
                                                                8174
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 211,
                                                                  "column": 42
                                                                },
                                                                "end": {
                                                                  "line": 211,
                                                                  "column": 49
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "getTangent",
                                                              "range": [
                                                                8175,
                                                                8185
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 211,
                                                                  "column": 50
                                                                },
                                                                "end": {
                                                                  "line": 211,
                                                                  "column": 60
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              8167,
                                                              8185
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 211,
                                                                "column": 42
                                                              },
                                                              "end": {
                                                                "line": 211,
                                                                "column": 60
                                                              }
                                                            }
                                                          },
                                                          "arguments": [
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "baseObj",
                                                                "range": [
                                                                  8186,
                                                                  8193
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 211,
                                                                    "column": 61
                                                                  },
                                                                  "end": {
                                                                    "line": 211,
                                                                    "column": 68
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "position",
                                                                "range": [
                                                                  8194,
                                                                  8202
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 211,
                                                                    "column": 69
                                                                  },
                                                                  "end": {
                                                                    "line": 211,
                                                                    "column": 77
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8186,
                                                                8202
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 211,
                                                                  "column": 61
                                                                },
                                                                "end": {
                                                                  "line": 211,
                                                                  "column": 77
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "range": [
                                                            8167,
                                                            8203
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 211,
                                                              "column": 42
                                                            },
                                                            "end": {
                                                              "line": 211,
                                                              "column": 78
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8157,
                                                          8203
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 211,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 211,
                                                            "column": 78
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "type": "VariableDeclarator",
                                                        "id": {
                                                          "type": "Identifier",
                                                          "name": "otherDir",
                                                          "range": [
                                                            8237,
                                                            8245
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 212,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 212,
                                                              "column": 40
                                                            }
                                                          }
                                                        },
                                                        "init": {
                                                          "type": "CallExpression",
                                                          "callee": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "otherPar",
                                                              "range": [
                                                                8248,
                                                                8256
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 212,
                                                                  "column": 43
                                                                },
                                                                "end": {
                                                                  "line": 212,
                                                                  "column": 51
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "getTangent",
                                                              "range": [
                                                                8257,
                                                                8267
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 212,
                                                                  "column": 52
                                                                },
                                                                "end": {
                                                                  "line": 212,
                                                                  "column": 62
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              8248,
                                                              8267
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 212,
                                                                "column": 43
                                                              },
                                                              "end": {
                                                                "line": 212,
                                                                "column": 62
                                                              }
                                                            }
                                                          },
                                                          "arguments": [
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "otherObj",
                                                                "range": [
                                                                  8268,
                                                                  8276
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 212,
                                                                    "column": 63
                                                                  },
                                                                  "end": {
                                                                    "line": 212,
                                                                    "column": 71
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "position",
                                                                "range": [
                                                                  8277,
                                                                  8285
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 212,
                                                                    "column": 72
                                                                  },
                                                                  "end": {
                                                                    "line": 212,
                                                                    "column": 80
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8268,
                                                                8285
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 212,
                                                                  "column": 63
                                                                },
                                                                "end": {
                                                                  "line": 212,
                                                                  "column": 80
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "range": [
                                                            8248,
                                                            8286
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 212,
                                                              "column": 43
                                                            },
                                                            "end": {
                                                              "line": 212,
                                                              "column": 81
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8237,
                                                          8286
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 212,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 212,
                                                            "column": 81
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "kind": "var",
                                                    "range": [
                                                      8153,
                                                      8287
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 211,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 212,
                                                        "column": 82
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "IfStatement",
                                                    "test": {
                                                      "type": "LogicalExpression",
                                                      "operator": "&&",
                                                      "left": {
                                                        "type": "LogicalExpression",
                                                        "operator": "&&",
                                                        "left": {
                                                          "type": "BinaryExpression",
                                                          "operator": ">",
                                                          "left": {
                                                            "type": "CallExpression",
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "baseDir",
                                                                "range": [
                                                                  8320,
                                                                  8327
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 213,
                                                                    "column": 32
                                                                  },
                                                                  "end": {
                                                                    "line": 213,
                                                                    "column": 39
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "length",
                                                                "range": [
                                                                  8328,
                                                                  8334
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 213,
                                                                    "column": 40
                                                                  },
                                                                  "end": {
                                                                    "line": 213,
                                                                    "column": 46
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8320,
                                                                8334
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 32
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 46
                                                                }
                                                              }
                                                            },
                                                            "arguments": [],
                                                            "range": [
                                                              8320,
                                                              8336
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 213,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 213,
                                                                "column": 48
                                                              }
                                                            }
                                                          },
                                                          "right": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "ThisExpression",
                                                              "range": [
                                                                8339,
                                                                8343
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 51
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 55
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "linearTolerance",
                                                              "range": [
                                                                8344,
                                                                8359
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 56
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 71
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              8339,
                                                              8359
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 213,
                                                                "column": 51
                                                              },
                                                              "end": {
                                                                "line": 213,
                                                                "column": 71
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            8320,
                                                            8359
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 213,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 213,
                                                              "column": 71
                                                            }
                                                          }
                                                        },
                                                        "right": {
                                                          "type": "BinaryExpression",
                                                          "operator": ">",
                                                          "left": {
                                                            "type": "CallExpression",
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "otherDir",
                                                                "range": [
                                                                  8363,
                                                                  8371
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 213,
                                                                    "column": 75
                                                                  },
                                                                  "end": {
                                                                    "line": 213,
                                                                    "column": 83
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "length",
                                                                "range": [
                                                                  8372,
                                                                  8378
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 213,
                                                                    "column": 84
                                                                  },
                                                                  "end": {
                                                                    "line": 213,
                                                                    "column": 90
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8363,
                                                                8378
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 75
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 90
                                                                }
                                                              }
                                                            },
                                                            "arguments": [],
                                                            "range": [
                                                              8363,
                                                              8380
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 213,
                                                                "column": 75
                                                              },
                                                              "end": {
                                                                "line": 213,
                                                                "column": 92
                                                              }
                                                            }
                                                          },
                                                          "right": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "ThisExpression",
                                                              "range": [
                                                                8383,
                                                                8387
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 95
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 99
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "linearTolerance",
                                                              "range": [
                                                                8388,
                                                                8403
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 213,
                                                                  "column": 100
                                                                },
                                                                "end": {
                                                                  "line": 213,
                                                                  "column": 115
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              8383,
                                                              8403
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 213,
                                                                "column": 95
                                                              },
                                                              "end": {
                                                                "line": 213,
                                                                "column": 115
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            8363,
                                                            8403
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 213,
                                                              "column": 75
                                                            },
                                                            "end": {
                                                              "line": 213,
                                                              "column": 115
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8320,
                                                          8403
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 213,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 213,
                                                            "column": 115
                                                          }
                                                        }
                                                      },
                                                      "right": {
                                                        "type": "BinaryExpression",
                                                        "operator": "<=",
                                                        "left": {
                                                          "type": "CallExpression",
                                                          "callee": {
                                                            "type": "MemberExpression",
                                                            "computed": false,
                                                            "object": {
                                                              "type": "Identifier",
                                                              "name": "Math",
                                                              "range": [
                                                                8436,
                                                                8440
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 214,
                                                                  "column": 32
                                                                },
                                                                "end": {
                                                                  "line": 214,
                                                                  "column": 36
                                                                }
                                                              }
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "name": "abs",
                                                              "range": [
                                                                8441,
                                                                8444
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 214,
                                                                  "column": 37
                                                                },
                                                                "end": {
                                                                  "line": 214,
                                                                  "column": 40
                                                                }
                                                              }
                                                            },
                                                            "range": [
                                                              8436,
                                                              8444
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 214,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 214,
                                                                "column": 40
                                                              }
                                                            }
                                                          },
                                                          "arguments": [
                                                            {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "CallExpression",
                                                                "callee": {
                                                                  "type": "MemberExpression",
                                                                  "computed": false,
                                                                  "object": {
                                                                    "type": "Identifier",
                                                                    "name": "baseDir",
                                                                    "range": [
                                                                      8445,
                                                                      8452
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 214,
                                                                        "column": 41
                                                                      },
                                                                      "end": {
                                                                        "line": 214,
                                                                        "column": 48
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "name": "cross",
                                                                    "range": [
                                                                      8453,
                                                                      8458
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 214,
                                                                        "column": 49
                                                                      },
                                                                      "end": {
                                                                        "line": 214,
                                                                        "column": 54
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    8445,
                                                                    8458
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 214,
                                                                      "column": 41
                                                                    },
                                                                    "end": {
                                                                      "line": 214,
                                                                      "column": 54
                                                                    }
                                                                  }
                                                                },
                                                                "arguments": [
                                                                  {
                                                                    "type": "Identifier",
                                                                    "name": "otherDir",
                                                                    "range": [
                                                                      8459,
                                                                      8467
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 214,
                                                                        "column": 55
                                                                      },
                                                                      "end": {
                                                                        "line": 214,
                                                                        "column": 63
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "range": [
                                                                  8445,
                                                                  8468
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 214,
                                                                    "column": 41
                                                                  },
                                                                  "end": {
                                                                    "line": 214,
                                                                    "column": 64
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "z",
                                                                "range": [
                                                                  8469,
                                                                  8470
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 214,
                                                                    "column": 65
                                                                  },
                                                                  "end": {
                                                                    "line": 214,
                                                                    "column": 66
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8445,
                                                                8470
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 214,
                                                                  "column": 41
                                                                },
                                                                "end": {
                                                                  "line": 214,
                                                                  "column": 66
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "range": [
                                                            8436,
                                                            8471
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 214,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 214,
                                                              "column": 67
                                                            }
                                                          }
                                                        },
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "computed": false,
                                                          "object": {
                                                            "type": "ThisExpression",
                                                            "range": [
                                                              8475,
                                                              8479
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 214,
                                                                "column": 71
                                                              },
                                                              "end": {
                                                                "line": 214,
                                                                "column": 75
                                                              }
                                                            }
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "name": "angularTolerance",
                                                            "range": [
                                                              8480,
                                                              8496
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 214,
                                                                "column": 76
                                                              },
                                                              "end": {
                                                                "line": 214,
                                                                "column": 92
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            8475,
                                                            8496
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 214,
                                                              "column": 71
                                                            },
                                                            "end": {
                                                              "line": 214,
                                                              "column": 92
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          8436,
                                                          8496
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 214,
                                                            "column": 32
                                                          },
                                                          "end": {
                                                            "line": 214,
                                                            "column": 92
                                                          }
                                                        }
                                                      },
                                                      "range": [
                                                        8320,
                                                        8496
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 213,
                                                          "column": 32
                                                        },
                                                        "end": {
                                                          "line": 214,
                                                          "column": 92
                                                        }
                                                      }
                                                    },
                                                    "consequent": {
                                                      "type": "BlockStatement",
                                                      "body": [
                                                        {
                                                          "type": "VariableDeclaration",
                                                          "declarations": [
                                                            {
                                                              "type": "VariableDeclarator",
                                                              "id": {
                                                                "type": "Identifier",
                                                                "name": "type",
                                                                "range": [
                                                                  8536,
                                                                  8540
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 215,
                                                                    "column": 36
                                                                  },
                                                                  "end": {
                                                                    "line": 215,
                                                                    "column": 40
                                                                  }
                                                                }
                                                              },
                                                              "init": {
                                                                "type": "ConditionalExpression",
                                                                "test": {
                                                                  "type": "LogicalExpression",
                                                                  "operator": "&&",
                                                                  "left": {
                                                                    "type": "BinaryExpression",
                                                                    "operator": "===",
                                                                    "left": {
                                                                      "type": "MemberExpression",
                                                                      "computed": false,
                                                                      "object": {
                                                                        "type": "Identifier",
                                                                        "name": "basePar",
                                                                        "range": [
                                                                          8544,
                                                                          8551
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 215,
                                                                            "column": 44
                                                                          },
                                                                          "end": {
                                                                            "line": 215,
                                                                            "column": 51
                                                                          }
                                                                        }
                                                                      },
                                                                      "property": {
                                                                        "type": "Identifier",
                                                                        "name": "class",
                                                                        "range": [
                                                                          8552,
                                                                          8557
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 215,
                                                                            "column": 52
                                                                          },
                                                                          "end": {
                                                                            "line": 215,
                                                                            "column": 57
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        8544,
                                                                        8557
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 215,
                                                                          "column": 44
                                                                        },
                                                                        "end": {
                                                                          "line": 215,
                                                                          "column": 57
                                                                        }
                                                                      }
                                                                    },
                                                                    "right": {
                                                                      "type": "Literal",
                                                                      "value": "CC_Line",
                                                                      "raw": "'CC_Line'",
                                                                      "range": [
                                                                        8562,
                                                                        8571
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 215,
                                                                          "column": 62
                                                                        },
                                                                        "end": {
                                                                          "line": 215,
                                                                          "column": 71
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      8544,
                                                                      8571
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 215,
                                                                        "column": 44
                                                                      },
                                                                      "end": {
                                                                        "line": 215,
                                                                        "column": 71
                                                                      }
                                                                    }
                                                                  },
                                                                  "right": {
                                                                    "type": "BinaryExpression",
                                                                    "operator": "===",
                                                                    "left": {
                                                                      "type": "MemberExpression",
                                                                      "computed": false,
                                                                      "object": {
                                                                        "type": "Identifier",
                                                                        "name": "otherPar",
                                                                        "range": [
                                                                          8575,
                                                                          8583
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 215,
                                                                            "column": 75
                                                                          },
                                                                          "end": {
                                                                            "line": 215,
                                                                            "column": 83
                                                                          }
                                                                        }
                                                                      },
                                                                      "property": {
                                                                        "type": "Identifier",
                                                                        "name": "class",
                                                                        "range": [
                                                                          8584,
                                                                          8589
                                                                        ],
                                                                        "loc": {
                                                                          "start": {
                                                                            "line": 215,
                                                                            "column": 84
                                                                          },
                                                                          "end": {
                                                                            "line": 215,
                                                                            "column": 89
                                                                          }
                                                                        }
                                                                      },
                                                                      "range": [
                                                                        8575,
                                                                        8589
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 215,
                                                                          "column": 75
                                                                        },
                                                                        "end": {
                                                                          "line": 215,
                                                                          "column": 89
                                                                        }
                                                                      }
                                                                    },
                                                                    "right": {
                                                                      "type": "Literal",
                                                                      "value": "CC_Line",
                                                                      "raw": "'CC_Line'",
                                                                      "range": [
                                                                        8594,
                                                                        8603
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 215,
                                                                          "column": 94
                                                                        },
                                                                        "end": {
                                                                          "line": 215,
                                                                          "column": 103
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      8575,
                                                                      8603
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 215,
                                                                        "column": 75
                                                                      },
                                                                      "end": {
                                                                        "line": 215,
                                                                        "column": 103
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    8544,
                                                                    8603
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 215,
                                                                      "column": 44
                                                                    },
                                                                    "end": {
                                                                      "line": 215,
                                                                      "column": 103
                                                                    }
                                                                  }
                                                                },
                                                                "consequent": {
                                                                  "type": "MemberExpression",
                                                                  "computed": false,
                                                                  "object": {
                                                                    "type": "MemberExpression",
                                                                    "computed": false,
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "name": "Constraint",
                                                                      "range": [
                                                                        8643,
                                                                        8653
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 216,
                                                                          "column": 38
                                                                        },
                                                                        "end": {
                                                                          "line": 216,
                                                                          "column": 48
                                                                        }
                                                                      }
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "name": "Type",
                                                                      "range": [
                                                                        8654,
                                                                        8658
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 216,
                                                                          "column": 49
                                                                        },
                                                                        "end": {
                                                                          "line": 216,
                                                                          "column": 53
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      8643,
                                                                      8658
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 216,
                                                                        "column": 38
                                                                      },
                                                                      "end": {
                                                                        "line": 216,
                                                                        "column": 53
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "name": "INCIDENCE",
                                                                    "range": [
                                                                      8659,
                                                                      8668
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 216,
                                                                        "column": 54
                                                                      },
                                                                      "end": {
                                                                        "line": 216,
                                                                        "column": 63
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    8643,
                                                                    8668
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 216,
                                                                      "column": 38
                                                                    },
                                                                    "end": {
                                                                      "line": 216,
                                                                      "column": 63
                                                                    }
                                                                  }
                                                                },
                                                                "alternate": {
                                                                  "type": "MemberExpression",
                                                                  "computed": false,
                                                                  "object": {
                                                                    "type": "MemberExpression",
                                                                    "computed": false,
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "name": "Constraint",
                                                                      "range": [
                                                                        8707,
                                                                        8717
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 217,
                                                                          "column": 38
                                                                        },
                                                                        "end": {
                                                                          "line": 217,
                                                                          "column": 48
                                                                        }
                                                                      }
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "name": "Type",
                                                                      "range": [
                                                                        8718,
                                                                        8722
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 217,
                                                                          "column": 49
                                                                        },
                                                                        "end": {
                                                                          "line": 217,
                                                                          "column": 53
                                                                        }
                                                                      }
                                                                    },
                                                                    "range": [
                                                                      8707,
                                                                      8722
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 217,
                                                                        "column": 38
                                                                      },
                                                                      "end": {
                                                                        "line": 217,
                                                                        "column": 53
                                                                      }
                                                                    }
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "name": "TANGENCY",
                                                                    "range": [
                                                                      8723,
                                                                      8731
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 217,
                                                                        "column": 54
                                                                      },
                                                                      "end": {
                                                                        "line": 217,
                                                                        "column": 62
                                                                      }
                                                                    }
                                                                  },
                                                                  "range": [
                                                                    8707,
                                                                    8731
                                                                  ],
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 217,
                                                                      "column": 38
                                                                    },
                                                                    "end": {
                                                                      "line": 217,
                                                                      "column": 62
                                                                    }
                                                                  }
                                                                },
                                                                "range": [
                                                                  8543,
                                                                  8731
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 215,
                                                                    "column": 43
                                                                  },
                                                                  "end": {
                                                                    "line": 217,
                                                                    "column": 62
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8536,
                                                                8731
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 215,
                                                                  "column": 36
                                                                },
                                                                "end": {
                                                                  "line": 217,
                                                                  "column": 62
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "kind": "var",
                                                          "range": [
                                                            8532,
                                                            8732
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 215,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 217,
                                                              "column": 63
                                                            }
                                                          }
                                                        },
                                                        {
                                                          "type": "ExpressionStatement",
                                                          "expression": {
                                                            "type": "CallExpression",
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "computed": false,
                                                              "object": {
                                                                "type": "Identifier",
                                                                "name": "adder",
                                                                "range": [
                                                                  8765,
                                                                  8770
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 218,
                                                                    "column": 32
                                                                  },
                                                                  "end": {
                                                                    "line": 218,
                                                                    "column": 37
                                                                  }
                                                                }
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "name": "add",
                                                                "range": [
                                                                  8771,
                                                                  8774
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 218,
                                                                    "column": 38
                                                                  },
                                                                  "end": {
                                                                    "line": 218,
                                                                    "column": 41
                                                                  }
                                                                }
                                                              },
                                                              "range": [
                                                                8765,
                                                                8774
                                                              ],
                                                              "loc": {
                                                                "start": {
                                                                  "line": 218,
                                                                  "column": 32
                                                                },
                                                                "end": {
                                                                  "line": 218,
                                                                  "column": 41
                                                                }
                                                              }
                                                            },
                                                            "arguments": [
                                                              {
                                                                "type": "Identifier",
                                                                "name": "type",
                                                                "range": [
                                                                  8775,
                                                                  8779
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 218,
                                                                    "column": 42
                                                                  },
                                                                  "end": {
                                                                    "line": 218,
                                                                    "column": 46
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "type": "ArrayExpression",
                                                                "elements": [
                                                                  {
                                                                    "type": "Identifier",
                                                                    "name": "basePar",
                                                                    "range": [
                                                                      8782,
                                                                      8789
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 218,
                                                                        "column": 49
                                                                      },
                                                                      "end": {
                                                                        "line": 218,
                                                                        "column": 56
                                                                      }
                                                                    }
                                                                  },
                                                                  {
                                                                    "type": "Identifier",
                                                                    "name": "otherPar",
                                                                    "range": [
                                                                      8791,
                                                                      8799
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 218,
                                                                        "column": 58
                                                                      },
                                                                      "end": {
                                                                        "line": 218,
                                                                        "column": 66
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "range": [
                                                                  8781,
                                                                  8800
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 218,
                                                                    "column": 48
                                                                  },
                                                                  "end": {
                                                                    "line": 218,
                                                                    "column": 67
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "type": "ObjectExpression",
                                                                "properties": [
                                                                  {
                                                                    "type": "Property",
                                                                    "key": {
                                                                      "type": "Identifier",
                                                                      "name": "noVisualize",
                                                                      "range": [
                                                                        8803,
                                                                        8814
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 218,
                                                                          "column": 70
                                                                        },
                                                                        "end": {
                                                                          "line": 218,
                                                                          "column": 81
                                                                        }
                                                                      }
                                                                    },
                                                                    "value": {
                                                                      "type": "Literal",
                                                                      "value": true,
                                                                      "raw": "true",
                                                                      "range": [
                                                                        8816,
                                                                        8820
                                                                      ],
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 218,
                                                                          "column": 83
                                                                        },
                                                                        "end": {
                                                                          "line": 218,
                                                                          "column": 87
                                                                        }
                                                                      }
                                                                    },
                                                                    "kind": "init",
                                                                    "method": false,
                                                                    "shorthand": false,
                                                                    "computed": false,
                                                                    "range": [
                                                                      8803,
                                                                      8820
                                                                    ],
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 218,
                                                                        "column": 70
                                                                      },
                                                                      "end": {
                                                                        "line": 218,
                                                                        "column": 87
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "range": [
                                                                  8802,
                                                                  8821
                                                                ],
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 218,
                                                                    "column": 69
                                                                  },
                                                                  "end": {
                                                                    "line": 218,
                                                                    "column": 88
                                                                  }
                                                                }
                                                              }
                                                            ],
                                                            "range": [
                                                              8765,
                                                              8822
                                                            ],
                                                            "loc": {
                                                              "start": {
                                                                "line": 218,
                                                                "column": 32
                                                              },
                                                              "end": {
                                                                "line": 218,
                                                                "column": 89
                                                              }
                                                            }
                                                          },
                                                          "range": [
                                                            8765,
                                                            8823
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 218,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 218,
                                                              "column": 90
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        8498,
                                                        8853
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 214,
                                                          "column": 94
                                                        },
                                                        "end": {
                                                          "line": 219,
                                                          "column": 29
                                                        }
                                                      }
                                                    },
                                                    "alternate": null,
                                                    "range": [
                                                      8316,
                                                      8853
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 213,
                                                        "column": 28
                                                      },
                                                      "end": {
                                                        "line": 219,
                                                        "column": 29
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  8123,
                                                  8879
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 210,
                                                    "column": 112
                                                  },
                                                  "end": {
                                                    "line": 220,
                                                    "column": 25
                                                  }
                                                }
                                              },
                                              "alternate": null,
                                              "range": [
                                                8035,
                                                8879
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 210,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 220,
                                                  "column": 25
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            8009,
                                            8901
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 209,
                                              "column": 154
                                            },
                                            "end": {
                                              "line": 221,
                                              "column": 21
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          7875,
                                          8901
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 209,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 221,
                                            "column": 21
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      7543,
                                      8919
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 203,
                                        "column": 92
                                      },
                                      "end": {
                                        "line": 222,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "alternate": null,
                                  "range": [
                                    7373,
                                    8919
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 202,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 222,
                                      "column": 17
                                    }
                                  }
                                }
                              ],
                              "range": [
                                7355,
                                8933
                              ],
                              "loc": {
                                "start": {
                                  "line": 201,
                                  "column": 45
                                },
                                "end": {
                                  "line": 223,
                                  "column": 13
                                }
                              }
                            },
                            "range": [
                              7322,
                              8933
                            ],
                            "loc": {
                              "start": {
                                "line": 201,
                                "column": 12
                              },
                              "end": {
                                "line": 223,
                                "column": 13
                              }
                            }
                          }
                        ],
                        "range": [
                          6675,
                          8943
                        ],
                        "loc": {
                          "start": {
                            "line": 189,
                            "column": 39
                          },
                          "end": {
                            "line": 224,
                            "column": 9
                          }
                        }
                      },
                      "range": [
                        6644,
                        8943
                      ],
                      "loc": {
                        "start": {
                          "line": 189,
                          "column": 8
                        },
                        "end": {
                          "line": 224,
                          "column": 9
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "adder",
                            "range": [
                              8960,
                              8965
                            ],
                            "loc": {
                              "start": {
                                "line": 226,
                                "column": 15
                              },
                              "end": {
                                "line": 226,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "commit",
                            "range": [
                              8966,
                              8972
                            ],
                            "loc": {
                              "start": {
                                "line": 226,
                                "column": 21
                              },
                              "end": {
                                "line": 226,
                                "column": 27
                              }
                            }
                          },
                          "range": [
                            8960,
                            8972
                          ],
                          "loc": {
                            "start": {
                              "line": 226,
                              "column": 15
                            },
                            "end": {
                              "line": 226,
                              "column": 27
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          8960,
                          8974
                        ],
                        "loc": {
                          "start": {
                            "line": 226,
                            "column": 15
                          },
                          "end": {
                            "line": 226,
                            "column": 29
                          }
                        }
                      },
                      "range": [
                        8953,
                        8975
                      ],
                      "loc": {
                        "start": {
                          "line": 226,
                          "column": 8
                        },
                        "end": {
                          "line": 226,
                          "column": 30
                        }
                      }
                    }
                  ],
                  "range": [
                    6328,
                    8981
                  ],
                  "loc": {
                    "start": {
                      "line": 180,
                      "column": 42
                    },
                    "end": {
                      "line": 227,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  6316,
                  8981
                ],
                "loc": {
                  "start": {
                    "line": 180,
                    "column": 30
                  },
                  "end": {
                    "line": 227,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                6290,
                8981
              ],
              "loc": {
                "start": {
                  "line": 180,
                  "column": 4
                },
                "end": {
                  "line": 227,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": "if relatedTo is set, then only constraints which are somehow related to objects from [relatedTo] are added",
                  "range": [
                    6177,
                    6285
                  ],
                  "loc": {
                    "start": {
                      "line": 179,
                      "column": 4
                    },
                    "end": {
                      "line": 179,
                      "column": 112
                    }
                  }
                }
              ],
              "static": false
            }
          ],
          "range": [
            5764,
            8983
          ],
          "loc": {
            "start": {
              "line": 161,
              "column": 33
            },
            "end": {
              "line": 228,
              "column": 1
            }
          }
        },
        "range": [
          5738,
          8983
        ],
        "loc": {
          "start": {
            "line": 161,
            "column": 7
          },
          "end": {
            "line": 228,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Line",
            "value": "====================== Implied constraints generator ========================",
            "range": [
              5558,
              5637
            ],
            "loc": {
              "start": {
                "line": 157,
                "column": 0
              },
              "end": {
                "line": 157,
                "column": 79
              }
            }
          },
          {
            "type": "Block",
            "value": "\n * ConstraintGenerator - an object that generates implied constraints for some sketch\n ",
            "range": [
              5638,
              5730
            ],
            "loc": {
              "start": {
                "line": 158,
                "column": 0
              },
              "end": {
                "line": 160,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        5731,
        8983
      ],
      "loc": {
        "start": {
          "line": 161,
          "column": 0
        },
        "end": {
          "line": 228,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Line",
          "value": "====================== Implied constraints generator ========================",
          "range": [
            5558,
            5637
          ],
          "loc": {
            "start": {
              "line": 157,
              "column": 0
            },
            "end": {
              "line": 157,
              "column": 79
            }
          }
        },
        {
          "type": "Block",
          "value": "\n * ConstraintGenerator - an object that generates implied constraints for some sketch\n ",
          "range": [
            5638,
            5730
          ],
          "loc": {
            "start": {
              "line": 158,
              "column": 0
            },
            "end": {
              "line": 160,
              "column": 3
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    8983
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 228,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Line",
      "value": "====================== Disjoint Set Union ========================",
      "range": [
        123,
        191
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 68
        }
      }
    },
    {
      "type": "Line",
      "value": "====================== Constraints adder ========================",
      "range": [
        1091,
        1158
      ],
      "loc": {
        "start": {
          "line": 49,
          "column": 0
        },
        "end": {
          "line": 49,
          "column": 67
        }
      }
    },
    {
      "type": "Line",
      "value": "the sketch we are going to add constraints to",
      "range": [
        1225,
        1272
      ],
      "loc": {
        "start": {
          "line": 52,
          "column": 8
        },
        "end": {
          "line": 52,
          "column": 55
        }
      }
    },
    {
      "type": "Line",
      "value": "the list of constraints which really should be added",
      "range": [
        1311,
        1365
      ],
      "loc": {
        "start": {
          "line": 54,
          "column": 8
        },
        "end": {
          "line": 54,
          "column": 62
        }
      }
    },
    {
      "type": "Line",
      "value": "dsu structures for incident and inc-tangent point groups",
      "range": [
        1406,
        1464
      ],
      "loc": {
        "start": {
          "line": 57,
          "column": 8
        },
        "end": {
          "line": 57,
          "column": 66
        }
      }
    },
    {
      "type": "Line",
      "value": "this.tangencyDsu = new DSU();    //TODO!",
      "range": [
        1512,
        1554
      ],
      "loc": {
        "start": {
          "line": 59,
          "column": 8
        },
        "end": {
          "line": 59,
          "column": 50
        }
      }
    },
    {
      "type": "Line",
      "value": "sets of horizontal and vertical lines",
      "range": [
        1563,
        1602
      ],
      "loc": {
        "start": {
          "line": 60,
          "column": 8
        },
        "end": {
          "line": 60,
          "column": 47
        }
      }
    },
    {
      "type": "Line",
      "value": "preprocess all objects and constraints currently on sketch",
      "range": [
        1690,
        1750
      ],
      "loc": {
        "start": {
          "line": 64,
          "column": 8
        },
        "end": {
          "line": 64,
          "column": 68
        }
      }
    },
    {
      "type": "Line",
      "value": "take all present constraints into account",
      "range": [
        1800,
        1843
      ],
      "loc": {
        "start": {
          "line": 69,
          "column": 8
        },
        "end": {
          "line": 69,
          "column": 51
        }
      }
    },
    {
      "type": "Line",
      "value": "add new constraint to internal buffer (if it is not excessive)",
      "range": [
        2358,
        2422
      ],
      "loc": {
        "start": {
          "line": 81,
          "column": 4
        },
        "end": {
          "line": 81,
          "column": 68
        }
      }
    },
    {
      "type": "Line",
      "value": "if the new constraint is not excessive, then take it into account",
      "range": [
        2491,
        2558
      ],
      "loc": {
        "start": {
          "line": 84,
          "column": 8
        },
        "end": {
          "line": 84,
          "column": 75
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO: implemented more complicated handling of incidence",
      "range": [
        2622,
        2680
      ],
      "loc": {
        "start": {
          "line": 86,
          "column": 12
        },
        "end": {
          "line": 86,
          "column": 70
        }
      }
    },
    {
      "type": "Line",
      "value": "Incidence is an equivalence either on points or on lines / arcs, but not on both together.",
      "range": [
        2693,
        2785
      ],
      "loc": {
        "start": {
          "line": 87,
          "column": 12
        },
        "end": {
          "line": 87,
          "column": 104
        }
      }
    },
    {
      "type": "Line",
      "value": "E.g.: if a point is incident to two lines, then these lines may be NOT incident.",
      "range": [
        2798,
        2880
      ],
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 94
        }
      }
    },
    {
      "type": "Line",
      "value": "TODO: optimize this O(N) search",
      "range": [
        3752,
        3785
      ],
      "loc": {
        "start": {
          "line": 110,
          "column": 12
        },
        "end": {
          "line": 110,
          "column": 45
        }
      }
    },
    {
      "type": "Line",
      "value": "ignore parametric constraints",
      "range": [
        4228,
        4259
      ],
      "loc": {
        "start": {
          "line": 118,
          "column": 34
        },
        "end": {
          "line": 118,
          "column": 65
        }
      }
    },
    {
      "type": "Line",
      "value": "not sure",
      "range": [
        4786,
        4796
      ],
      "loc": {
        "start": {
          "line": 131,
          "column": 50
        },
        "end": {
          "line": 131,
          "column": 60
        }
      }
    },
    {
      "type": "Line",
      "value": "not sure",
      "range": [
        4847,
        4857
      ],
      "loc": {
        "start": {
          "line": 132,
          "column": 50
        },
        "end": {
          "line": 132,
          "column": 60
        }
      }
    },
    {
      "type": "Line",
      "value": "now add it internally",
      "range": [
        5106,
        5129
      ],
      "loc": {
        "start": {
          "line": 140,
          "column": 8
        },
        "end": {
          "line": 140,
          "column": 31
        }
      }
    },
    {
      "type": "Line",
      "value": "returns all constraints in the internal buffer, purges the buffer",
      "range": [
        5220,
        5287
      ],
      "loc": {
        "start": {
          "line": 145,
          "column": 4
        },
        "end": {
          "line": 145,
          "column": 71
        }
      }
    },
    {
      "type": "Line",
      "value": "====================== Implied constraints generator ========================",
      "range": [
        5558,
        5637
      ],
      "loc": {
        "start": {
          "line": 157,
          "column": 0
        },
        "end": {
          "line": 157,
          "column": 79
        }
      }
    },
    {
      "type": "Block",
      "value": "\n * ConstraintGenerator - an object that generates implied constraints for some sketch\n ",
      "range": [
        5638,
        5730
      ],
      "loc": {
        "start": {
          "line": 158,
          "column": 0
        },
        "end": {
          "line": 160,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": " default options and values",
      "range": [
        5831,
        5860
      ],
      "loc": {
        "start": {
          "line": 165,
          "column": 8
        },
        "end": {
          "line": 165,
          "column": 37
        }
      }
    },
    {
      "type": "Line",
      "value": "note: it should be static, but ES6 is against it",
      "range": [
        6039,
        6089
      ],
      "loc": {
        "start": {
          "line": 173,
          "column": 8
        },
        "end": {
          "line": 173,
          "column": 58
        }
      }
    },
    {
      "type": "Line",
      "value": "if relatedTo is set, then only constraints which are somehow related to objects from [relatedTo] are added",
      "range": [
        6177,
        6285
      ],
      "loc": {
        "start": {
          "line": 179,
          "column": 4
        },
        "end": {
          "line": 179,
          "column": 112
        }
      }
    },
    {
      "type": "Line",
      "value": " generate implied horizontality or verticality",
      "range": [
        6746,
        6794
      ],
      "loc": {
        "start": {
          "line": 191,
          "column": 16
        },
        "end": {
          "line": 191,
          "column": 64
        }
      }
    },
    {
      "type": "Line",
      "value": "unit vector or zero",
      "range": [
        6843,
        6864
      ],
      "loc": {
        "start": {
          "line": 192,
          "column": 48
        },
        "end": {
          "line": 192,
          "column": 69
        }
      }
    },
    {
      "type": "Line",
      "value": " generate implied incidence of points",
      "range": [
        7565,
        7604
      ],
      "loc": {
        "start": {
          "line": 204,
          "column": 20
        },
        "end": {
          "line": 204,
          "column": 59
        }
      }
    },
    {
      "type": "Line",
      "value": " generate implied tangency of touching endpoints",
      "range": [
        7726,
        7776
      ],
      "loc": {
        "start": {
          "line": 207,
          "column": 20
        },
        "end": {
          "line": 207,
          "column": 70
        }
      }
    }
  ]
}