{
  "type": "Program",
  "start": 0,
  "end": 9819,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 254,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "ImportDeclaration",
      "start": 0,
      "end": 57,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 57
        }
      },
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "start": 8,
          "end": 13,
          "loc": {
            "start": {
              "line": 1,
              "column": 8
            },
            "end": {
              "line": 1,
              "column": 13
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 8,
            "end": 13,
            "loc": {
              "start": {
                "line": 1,
                "column": 8
              },
              "end": {
                "line": 1,
                "column": 13
              }
            },
            "name": "Point"
          },
          "local": {
            "type": "Identifier",
            "start": 8,
            "end": 13,
            "loc": {
              "start": {
                "line": 1,
                "column": 8
              },
              "end": {
                "line": 1,
                "column": 13
              }
            },
            "name": "Point"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 15,
          "end": 19,
          "loc": {
            "start": {
              "line": 1,
              "column": 15
            },
            "end": {
              "line": 1,
              "column": 19
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 15,
            "end": 19,
            "loc": {
              "start": {
                "line": 1,
                "column": 15
              },
              "end": {
                "line": 1,
                "column": 19
              }
            },
            "name": "Line"
          },
          "local": {
            "type": "Identifier",
            "start": 15,
            "end": 19,
            "loc": {
              "start": {
                "line": 1,
                "column": 15
              },
              "end": {
                "line": 1,
                "column": 19
              }
            },
            "name": "Line"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 21,
          "end": 24,
          "loc": {
            "start": {
              "line": 1,
              "column": 21
            },
            "end": {
              "line": 1,
              "column": 24
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 21,
            "end": 24,
            "loc": {
              "start": {
                "line": 1,
                "column": 21
              },
              "end": {
                "line": 1,
                "column": 24
              }
            },
            "name": "Arc"
          },
          "local": {
            "type": "Identifier",
            "start": 21,
            "end": 24,
            "loc": {
              "start": {
                "line": 1,
                "column": 21
              },
              "end": {
                "line": 1,
                "column": 24
              }
            },
            "name": "Arc"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 31,
        "end": 56,
        "loc": {
          "start": {
            "line": 1,
            "column": 31
          },
          "end": {
            "line": 1,
            "column": 56
          }
        },
        "value": "../sketcher/geomobjects",
        "rawValue": "../sketcher/geomobjects",
        "raw": "'../sketcher/geomobjects'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 58,
      "end": 84,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 26
        }
      },
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "start": 65,
          "end": 70,
          "loc": {
            "start": {
              "line": 2,
              "column": 7
            },
            "end": {
              "line": 2,
              "column": 12
            }
          },
          "local": {
            "type": "Identifier",
            "start": 65,
            "end": 70,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 12
              }
            },
            "name": "THREE"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 76,
        "end": 83,
        "loc": {
          "start": {
            "line": 2,
            "column": 18
          },
          "end": {
            "line": 2,
            "column": 25
          }
        },
        "value": "three",
        "rawValue": "three",
        "raw": "'three'"
      }
    },
    {
      "type": "ExpressionStatement",
      "start": 86,
      "end": 196,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 2
        }
      },
      "expression": {
        "type": "AssignmentExpression",
        "start": 86,
        "end": 195,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 1
          }
        },
        "operator": "=",
        "left": {
          "type": "MemberExpression",
          "start": 86,
          "end": 99,
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 4,
              "column": 13
            }
          },
          "object": {
            "type": "Identifier",
            "start": 86,
            "end": 91,
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 4,
                "column": 5
              }
            },
            "name": "THREE"
          },
          "property": {
            "type": "Identifier",
            "start": 92,
            "end": 99,
            "loc": {
              "start": {
                "line": 4,
                "column": 6
              },
              "end": {
                "line": 4,
                "column": 13
              }
            },
            "name": "cross2d"
          },
          "computed": false
        },
        "right": {
          "type": "FunctionExpression",
          "start": 102,
          "end": 195,
          "loc": {
            "start": {
              "line": 4,
              "column": 16
            },
            "end": {
              "line": 6,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 92,
            "end": 99,
            "loc": {
              "start": {
                "line": 4,
                "column": 6
              },
              "end": {
                "line": 4,
                "column": 13
              }
            },
            "name": "cross2d"
          },
          "generator": false,
          "expression": false,
          "async": false,
          "params": [
            {
              "type": "Identifier",
              "start": 111,
              "end": 112,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 25
                },
                "end": {
                  "line": 4,
                  "column": 26
                }
              },
              "name": "a"
            },
            {
              "type": "Identifier",
              "start": 114,
              "end": 115,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 28
                },
                "end": {
                  "line": 4,
                  "column": 29
                }
              },
              "name": "b"
            }
          ],
          "body": {
            "type": "BlockStatement",
            "start": 117,
            "end": 195,
            "loc": {
              "start": {
                "line": 4,
                "column": 31
              },
              "end": {
                "line": 6,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ReturnStatement",
                "start": 164,
                "end": 193,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 4
                  },
                  "end": {
                    "line": 5,
                    "column": 33
                  }
                },
                "argument": {
                  "type": "BinaryExpression",
                  "start": 171,
                  "end": 192,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 11
                    },
                    "end": {
                      "line": 5,
                      "column": 32
                    }
                  },
                  "left": {
                    "type": "BinaryExpression",
                    "start": 171,
                    "end": 180,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 11
                      },
                      "end": {
                        "line": 5,
                        "column": 20
                      }
                    },
                    "left": {
                      "type": "MemberExpression",
                      "start": 171,
                      "end": 174,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 11
                        },
                        "end": {
                          "line": 5,
                          "column": 14
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 171,
                        "end": 172,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 11
                          },
                          "end": {
                            "line": 5,
                            "column": 12
                          }
                        },
                        "name": "a",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 173,
                        "end": 174,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 13
                          },
                          "end": {
                            "line": 5,
                            "column": 14
                          }
                        },
                        "name": "x"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 177,
                      "end": 180,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 17
                        },
                        "end": {
                          "line": 5,
                          "column": 20
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 177,
                        "end": 178,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 17
                          },
                          "end": {
                            "line": 5,
                            "column": 18
                          }
                        },
                        "name": "b"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 179,
                        "end": 180,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 19
                          },
                          "end": {
                            "line": 5,
                            "column": 20
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    },
                    "leadingComments": null
                  },
                  "operator": "-",
                  "right": {
                    "type": "BinaryExpression",
                    "start": 183,
                    "end": 192,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 23
                      },
                      "end": {
                        "line": 5,
                        "column": 32
                      }
                    },
                    "left": {
                      "type": "MemberExpression",
                      "start": 183,
                      "end": 186,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 23
                        },
                        "end": {
                          "line": 5,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 183,
                        "end": 184,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 23
                          },
                          "end": {
                            "line": 5,
                            "column": 24
                          }
                        },
                        "name": "a"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 185,
                        "end": 186,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 25
                          },
                          "end": {
                            "line": 5,
                            "column": 26
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 189,
                      "end": 192,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 29
                        },
                        "end": {
                          "line": 5,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 189,
                        "end": 190,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 29
                          },
                          "end": {
                            "line": 5,
                            "column": 30
                          }
                        },
                        "name": "b"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 191,
                        "end": 192,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 31
                          },
                          "end": {
                            "line": 5,
                            "column": 32
                          }
                        },
                        "name": "x"
                      },
                      "computed": false
                    }
                  },
                  "leadingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "TODO: properly install into THREE?...",
                    "start": 120,
                    "end": 159,
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 34
                      },
                      "end": {
                        "line": 4,
                        "column": 73
                      }
                    },
                    "range": [
                      120,
                      159
                    ]
                  }
                ]
              }
            ]
          }
        }
      }
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 198,
      "end": 1024,
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 25,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 205,
        "end": 1024,
        "loc": {
          "start": {
            "line": 8,
            "column": 7
          },
          "end": {
            "line": 25,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 214,
          "end": 229,
          "loc": {
            "start": {
              "line": 8,
              "column": 16
            },
            "end": {
              "line": 8,
              "column": 31
            }
          },
          "name": "drawArcBy_S_T_E"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 230,
            "end": 238,
            "loc": {
              "start": {
                "line": 8,
                "column": 32
              },
              "end": {
                "line": 8,
                "column": 40
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 240,
            "end": 252,
            "loc": {
              "start": {
                "line": 8,
                "column": 42
              },
              "end": {
                "line": 8,
                "column": 54
              }
            },
            "name": "startTangent"
          },
          {
            "type": "Identifier",
            "start": 254,
            "end": 260,
            "loc": {
              "start": {
                "line": 8,
                "column": 56
              },
              "end": {
                "line": 8,
                "column": 62
              }
            },
            "name": "endPos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 262,
          "end": 1024,
          "loc": {
            "start": {
              "line": 8,
              "column": 64
            },
            "end": {
              "line": 25,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 308,
              "end": 347,
              "loc": {
                "start": {
                  "line": 10,
                  "column": 4
                },
                "end": {
                  "line": 10,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 312,
                  "end": 346,
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 8
                    },
                    "end": {
                      "line": 10,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 312,
                    "end": 315,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 8
                      },
                      "end": {
                        "line": 10,
                        "column": 11
                      }
                    },
                    "name": "dir",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 318,
                    "end": 346,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 14
                      },
                      "end": {
                        "line": 10,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 318,
                      "end": 336,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 14
                        },
                        "end": {
                          "line": 10,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 318,
                        "end": 332,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 14
                          },
                          "end": {
                            "line": 10,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 318,
                          "end": 330,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 14
                            },
                            "end": {
                              "line": 10,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 318,
                            "end": 324,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 14
                              },
                              "end": {
                                "line": 10,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 325,
                            "end": 330,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 21
                              },
                              "end": {
                                "line": 10,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 333,
                        "end": 336,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 29
                          },
                          "end": {
                            "line": 10,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 337,
                        "end": 345,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 33
                          },
                          "end": {
                            "line": 10,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "should we create a line or an arc",
                  "start": 268,
                  "end": 303,
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 4
                    },
                    "end": {
                      "line": 9,
                      "column": 39
                    }
                  },
                  "range": [
                    268,
                    303
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 352,
              "end": 429,
              "loc": {
                "start": {
                  "line": 11,
                  "column": 4
                },
                "end": {
                  "line": 11,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 356,
                  "end": 428,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 8
                    },
                    "end": {
                      "line": 11,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 356,
                    "end": 362,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 8
                      },
                      "end": {
                        "line": 11,
                        "column": 14
                      }
                    },
                    "name": "onLine"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 365,
                    "end": 428,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 17
                      },
                      "end": {
                        "line": 11,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 365,
                      "end": 385,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 17
                        },
                        "end": {
                          "line": 11,
                          "column": 37
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 365,
                        "end": 381,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 17
                          },
                          "end": {
                            "line": 11,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 365,
                          "end": 379,
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 17
                            },
                            "end": {
                              "line": 11,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 365,
                            "end": 373,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 17
                              },
                              "end": {
                                "line": 11,
                                "column": 25
                              }
                            },
                            "name": "startPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 374,
                            "end": 379,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 26
                              },
                              "end": {
                                "line": 11,
                                "column": 31
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 382,
                        "end": 385,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 34
                          },
                          "end": {
                            "line": 11,
                            "column": 37
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 386,
                        "end": 427,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 38
                          },
                          "end": {
                            "line": 11,
                            "column": 79
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 386,
                          "end": 413,
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 38
                            },
                            "end": {
                              "line": 11,
                              "column": 65
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 386,
                            "end": 397,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 38
                              },
                              "end": {
                                "line": 11,
                                "column": 49
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 386,
                              "end": 395,
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 38
                                },
                                "end": {
                                  "line": 11,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 386,
                                "end": 389,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 41
                                  }
                                },
                                "name": "dir"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 390,
                                "end": 395,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 47
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 398,
                            "end": 413,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 50
                              },
                              "end": {
                                "line": 11,
                                "column": 65
                              }
                            },
                            "name": "projectOnVector"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 414,
                            "end": 426,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 66
                              },
                              "end": {
                                "line": 11,
                                "column": 78
                              }
                            },
                            "name": "startTangent"
                          }
                        ]
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 434,
              "end": 473,
              "loc": {
                "start": {
                  "line": 12,
                  "column": 4
                },
                "end": {
                  "line": 12,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 438,
                  "end": 472,
                  "loc": {
                    "start": {
                      "line": 12,
                      "column": 8
                    },
                    "end": {
                      "line": 12,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 438,
                    "end": 444,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 8
                      },
                      "end": {
                        "line": 12,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 447,
                    "end": 472,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 17
                      },
                      "end": {
                        "line": 12,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 447,
                      "end": 464,
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 17
                        },
                        "end": {
                          "line": 12,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 447,
                        "end": 453,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 17
                          },
                          "end": {
                            "line": 12,
                            "column": 23
                          }
                        },
                        "name": "onLine"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 454,
                        "end": 464,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 24
                          },
                          "end": {
                            "line": 12,
                            "column": 34
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 465,
                        "end": 471,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 35
                          },
                          "end": {
                            "line": 12,
                            "column": 41
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 478,
              "end": 532,
              "loc": {
                "start": {
                  "line": 13,
                  "column": 4
                },
                "end": {
                  "line": 13,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 482,
                  "end": 531,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 8
                    },
                    "end": {
                      "line": 13,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 482,
                    "end": 490,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 8
                      },
                      "end": {
                        "line": 13,
                        "column": 16
                      }
                    },
                    "name": "isLinear"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 494,
                    "end": 530,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 20
                      },
                      "end": {
                        "line": 13,
                        "column": 56
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 494,
                      "end": 500,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 20
                        },
                        "end": {
                          "line": 13,
                          "column": 26
                        }
                      },
                      "name": "height"
                    },
                    "operator": "<=",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 504,
                      "end": 530,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 30
                        },
                        "end": {
                          "line": 13,
                          "column": 56
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 504,
                        "end": 523,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 30
                          },
                          "end": {
                            "line": 13,
                            "column": 49
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 504,
                          "end": 516,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 30
                            },
                            "end": {
                              "line": 13,
                              "column": 42
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 504,
                            "end": 514,
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 30
                              },
                              "end": {
                                "line": 13,
                                "column": 40
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 504,
                              "end": 507,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 30
                                },
                                "end": {
                                  "line": 13,
                                  "column": 33
                                }
                              },
                              "name": "dir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 508,
                              "end": 514,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 34
                                },
                                "end": {
                                  "line": 13,
                                  "column": 40
                                }
                              },
                              "name": "length"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "operator": "*",
                        "right": {
                          "type": "Literal",
                          "start": 519,
                          "end": 523,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 45
                            },
                            "end": {
                              "line": 13,
                              "column": 49
                            }
                          },
                          "value": 0.001,
                          "rawValue": 0.001,
                          "raw": "1e-3"
                        }
                      },
                      "operator": "+",
                      "right": {
                        "type": "Literal",
                        "start": 526,
                        "end": 530,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 52
                          },
                          "end": {
                            "line": 13,
                            "column": 56
                          }
                        },
                        "value": 0.001,
                        "rawValue": 0.001,
                        "raw": "1e-3"
                      }
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 538,
              "end": 1022,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 4
                },
                "end": {
                  "line": 24,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 542,
                "end": 550,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 8
                  },
                  "end": {
                    "line": 15,
                    "column": 16
                  }
                },
                "name": "isLinear"
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 560,
                "end": 598,
                "loc": {
                  "start": {
                    "line": 16,
                    "column": 8
                  },
                  "end": {
                    "line": 16,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 567,
                  "end": 597,
                  "loc": {
                    "start": {
                      "line": 16,
                      "column": 15
                    },
                    "end": {
                      "line": 16,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 568,
                      "end": 583,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 16
                        },
                        "end": {
                          "line": 16,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 568,
                        "end": 573,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 16
                          },
                          "end": {
                            "line": 16,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 575,
                        "end": 583,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 23
                          },
                          "end": {
                            "line": 16,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 585,
                      "end": 596,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 33
                        },
                        "end": {
                          "line": 16,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 585,
                        "end": 588,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 33
                          },
                          "end": {
                            "line": 16,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 590,
                        "end": 596,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 38
                          },
                          "end": {
                            "line": 16,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                }
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 608,
                "end": 1022,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 9
                  },
                  "end": {
                    "line": 24,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 682,
                    "end": 734,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 8
                      },
                      "end": {
                        "line": 19,
                        "column": 60
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 686,
                        "end": 733,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 12
                          },
                          "end": {
                            "line": 19,
                            "column": 59
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 686,
                          "end": 692,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 12
                            },
                            "end": {
                              "line": 19,
                              "column": 18
                            }
                          },
                          "name": "normal",
                          "leadingComments": null
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 695,
                          "end": 733,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 21
                            },
                            "end": {
                              "line": 19,
                              "column": 59
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 695,
                            "end": 731,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 21
                              },
                              "end": {
                                "line": 19,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 695,
                              "end": 721,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 21
                                },
                                "end": {
                                  "line": 19,
                                  "column": 47
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 695,
                                "end": 713,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 39
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 695,
                                  "end": 709,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 35
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 695,
                                    "end": 707,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 33
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 695,
                                      "end": 701,
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 27
                                        }
                                      },
                                      "name": "endPos"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 702,
                                      "end": 707,
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 33
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 710,
                                  "end": 713,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 39
                                    }
                                  },
                                  "name": "sub"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 714,
                                  "end": 720,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 46
                                    }
                                  },
                                  "name": "onLine"
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 722,
                              "end": 731,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 48
                                },
                                "end": {
                                  "line": 19,
                                  "column": 57
                                }
                              },
                              "name": "normalize"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      }
                    ],
                    "kind": "var",
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": "the ugly math of getting center point and orientation",
                        "start": 618,
                        "end": 673,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 8
                          },
                          "end": {
                            "line": 18,
                            "column": 63
                          }
                        },
                        "range": [
                          618,
                          673
                        ]
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 743,
                    "end": 804,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 8
                      },
                      "end": {
                        "line": 20,
                        "column": 69
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 747,
                        "end": 803,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 68
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 747,
                          "end": 751,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 12
                            },
                            "end": {
                              "line": 20,
                              "column": 16
                            }
                          },
                          "name": "dist"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 754,
                          "end": 803,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 19
                            },
                            "end": {
                              "line": 20,
                              "column": 68
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 754,
                            "end": 788,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 19
                              },
                              "end": {
                                "line": 20,
                                "column": 53
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 754,
                              "end": 778,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 19
                                },
                                "end": {
                                  "line": 20,
                                  "column": 43
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 754,
                                "end": 760,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 25
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 761,
                                "end": 778,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 43
                                  }
                                },
                                "name": "distanceToSquared"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 779,
                                "end": 787,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 52
                                  }
                                },
                                "name": "startPos"
                              }
                            ]
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 792,
                            "end": 802,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 57
                              },
                              "end": {
                                "line": 20,
                                "column": 67
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 792,
                              "end": 793,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 57
                                },
                                "end": {
                                  "line": 20,
                                  "column": 58
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 796,
                              "end": 802,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 61
                                },
                                "end": {
                                  "line": 20,
                                  "column": 67
                                }
                              },
                              "name": "height"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 813,
                    "end": 861,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 8
                      },
                      "end": {
                        "line": 21,
                        "column": 56
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 817,
                        "end": 860,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 12
                          },
                          "end": {
                            "line": 21,
                            "column": 55
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 817,
                          "end": 822,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 12
                            },
                            "end": {
                              "line": 21,
                              "column": 17
                            }
                          },
                          "name": "cross"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 825,
                          "end": 860,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 20
                            },
                            "end": {
                              "line": 21,
                              "column": 55
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 825,
                            "end": 838,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 20
                              },
                              "end": {
                                "line": 21,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 825,
                              "end": 830,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 20
                                },
                                "end": {
                                  "line": 21,
                                  "column": 25
                                }
                              },
                              "name": "THREE"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 831,
                              "end": 838,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 26
                                },
                                "end": {
                                  "line": 21,
                                  "column": 33
                                }
                              },
                              "name": "cross2d"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 839,
                              "end": 845,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 34
                                },
                                "end": {
                                  "line": 21,
                                  "column": 40
                                }
                              },
                              "name": "normal"
                            },
                            {
                              "type": "Identifier",
                              "start": 847,
                              "end": 859,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 42
                                },
                                "end": {
                                  "line": 21,
                                  "column": 54
                                }
                              },
                              "name": "startTangent"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 870,
                    "end": 930,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 8
                      },
                      "end": {
                        "line": 22,
                        "column": 68
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 874,
                        "end": 929,
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 12
                          },
                          "end": {
                            "line": 22,
                            "column": 67
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 874,
                          "end": 877,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 12
                            },
                            "end": {
                              "line": 22,
                              "column": 15
                            }
                          },
                          "name": "ctr"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 880,
                          "end": 929,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 18
                            },
                            "end": {
                              "line": 22,
                              "column": 67
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 880,
                            "end": 919,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 18
                              },
                              "end": {
                                "line": 22,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 880,
                              "end": 915,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 18
                                },
                                "end": {
                                  "line": 22,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 880,
                                "end": 909,
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 880,
                                  "end": 894,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 32
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 880,
                                    "end": 892,
                                    "loc": {
                                      "start": {
                                        "line": 22,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 22,
                                        "column": 30
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 880,
                                      "end": 886,
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 24
                                        }
                                      },
                                      "name": "normal"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 887,
                                      "end": 892,
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 30
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 895,
                                  "end": 909,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 47
                                    }
                                  },
                                  "name": "multiplyScalar"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 910,
                                  "end": 914,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 52
                                    }
                                  },
                                  "name": "dist"
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 916,
                              "end": 919,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 54
                                },
                                "end": {
                                  "line": 22,
                                  "column": 57
                                }
                              },
                              "name": "add"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 920,
                              "end": 928,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 58
                                },
                                "end": {
                                  "line": 22,
                                  "column": 66
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 939,
                    "end": 1016,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 8
                      },
                      "end": {
                        "line": 23,
                        "column": 85
                      }
                    },
                    "argument": {
                      "type": "ObjectExpression",
                      "start": 946,
                      "end": 1015,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 15
                        },
                        "end": {
                          "line": 23,
                          "column": 84
                        }
                      },
                      "properties": [
                        {
                          "type": "Property",
                          "start": 947,
                          "end": 962,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 16
                            },
                            "end": {
                              "line": 23,
                              "column": 31
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 947,
                            "end": 952,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 16
                              },
                              "end": {
                                "line": 23,
                                "column": 21
                              }
                            },
                            "name": "start"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 954,
                            "end": 962,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 23
                              },
                              "end": {
                                "line": 23,
                                "column": 31
                              }
                            },
                            "name": "startPos"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 964,
                          "end": 975,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 33
                            },
                            "end": {
                              "line": 23,
                              "column": 44
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 964,
                            "end": 967,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 33
                              },
                              "end": {
                                "line": 23,
                                "column": 36
                              }
                            },
                            "name": "end"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 969,
                            "end": 975,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 38
                              },
                              "end": {
                                "line": 23,
                                "column": 44
                              }
                            },
                            "name": "endPos"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 977,
                          "end": 988,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 46
                            },
                            "end": {
                              "line": 23,
                              "column": 57
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 977,
                            "end": 983,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 46
                              },
                              "end": {
                                "line": 23,
                                "column": 52
                              }
                            },
                            "name": "center"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 985,
                            "end": 988,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 54
                              },
                              "end": {
                                "line": 23,
                                "column": 57
                              }
                            },
                            "name": "ctr"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 990,
                          "end": 1014,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 59
                            },
                            "end": {
                              "line": 23,
                              "column": 83
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 990,
                            "end": 999,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 59
                              },
                              "end": {
                                "line": 23,
                                "column": 68
                              }
                            },
                            "name": "clockwise"
                          },
                          "value": {
                            "type": "BinaryExpression",
                            "start": 1002,
                            "end": 1013,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 71
                              },
                              "end": {
                                "line": 23,
                                "column": 82
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 1002,
                              "end": 1007,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 71
                                },
                                "end": {
                                  "line": 23,
                                  "column": 76
                                }
                              },
                              "name": "cross"
                            },
                            "operator": ">",
                            "right": {
                              "type": "Literal",
                              "start": 1010,
                              "end": 1013,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 79
                                },
                                "end": {
                                  "line": 23,
                                  "column": 82
                                }
                              },
                              "value": 0,
                              "rawValue": 0,
                              "raw": "0.0"
                            },
                            "parenthesizedExpression": true
                          },
                          "kind": "init"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of center is only partly used and may change",
            "start": 1026,
            "end": 1087,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 61
              }
            },
            "range": [
              1026,
              1087
            ]
          }
        ],
        "leadingComments": []
      },
      "specifiers": [],
      "source": null,
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of center is only partly used and may change",
          "start": 1026,
          "end": 1087,
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 27,
              "column": 61
            }
          },
          "range": [
            1026,
            1087
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1088,
      "end": 1604,
      "loc": {
        "start": {
          "line": 28,
          "column": 0
        },
        "end": {
          "line": 37,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1095,
        "end": 1604,
        "loc": {
          "start": {
            "line": 28,
            "column": 7
          },
          "end": {
            "line": 37,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1104,
          "end": 1120,
          "loc": {
            "start": {
              "line": 28,
              "column": 16
            },
            "end": {
              "line": 28,
              "column": 32
            }
          },
          "name": "drawArcBy_S_E_Ch",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1121,
            "end": 1129,
            "loc": {
              "start": {
                "line": 28,
                "column": 33
              },
              "end": {
                "line": 28,
                "column": 41
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 1131,
            "end": 1137,
            "loc": {
              "start": {
                "line": 28,
                "column": 43
              },
              "end": {
                "line": 28,
                "column": 49
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 1139,
            "end": 1152,
            "loc": {
              "start": {
                "line": 28,
                "column": 51
              },
              "end": {
                "line": 28,
                "column": 64
              }
            },
            "name": "centerPosHint"
          },
          {
            "type": "Identifier",
            "start": 1154,
            "end": 1164,
            "loc": {
              "start": {
                "line": 28,
                "column": 66
              },
              "end": {
                "line": 28,
                "column": 76
              }
            },
            "name": "takeLarger"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1166,
          "end": 1604,
          "loc": {
            "start": {
              "line": 28,
              "column": 78
            },
            "end": {
              "line": 37,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 1172,
              "end": 1227,
              "loc": {
                "start": {
                  "line": 29,
                  "column": 4
                },
                "end": {
                  "line": 29,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1176,
                  "end": 1226,
                  "loc": {
                    "start": {
                      "line": 29,
                      "column": 8
                    },
                    "end": {
                      "line": 29,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1176,
                    "end": 1179,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 8
                      },
                      "end": {
                        "line": 29,
                        "column": 11
                      }
                    },
                    "name": "mid"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1182,
                    "end": 1226,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 14
                      },
                      "end": {
                        "line": 29,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1182,
                      "end": 1223,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 14
                        },
                        "end": {
                          "line": 29,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1182,
                        "end": 1210,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 14
                          },
                          "end": {
                            "line": 29,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1182,
                          "end": 1200,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 14
                            },
                            "end": {
                              "line": 29,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1182,
                            "end": 1196,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 14
                              },
                              "end": {
                                "line": 29,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1182,
                              "end": 1194,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 14
                                },
                                "end": {
                                  "line": 29,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1182,
                                "end": 1188,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1189,
                                "end": 1194,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1197,
                            "end": 1200,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 29
                              },
                              "end": {
                                "line": 29,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1201,
                            "end": 1209,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 33
                              },
                              "end": {
                                "line": 29,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1211,
                        "end": 1223,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 43
                          },
                          "end": {
                            "line": 29,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 1224,
                        "end": 1225,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 56
                          },
                          "end": {
                            "line": 29,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1232,
              "end": 1271,
              "loc": {
                "start": {
                  "line": 30,
                  "column": 4
                },
                "end": {
                  "line": 30,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1236,
                  "end": 1270,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 8
                    },
                    "end": {
                      "line": 30,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1236,
                    "end": 1239,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 8
                      },
                      "end": {
                        "line": 30,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1242,
                    "end": 1270,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 14
                      },
                      "end": {
                        "line": 30,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1242,
                      "end": 1260,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 14
                        },
                        "end": {
                          "line": 30,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1242,
                        "end": 1256,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 14
                          },
                          "end": {
                            "line": 30,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1242,
                          "end": 1254,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 14
                            },
                            "end": {
                              "line": 30,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1242,
                            "end": 1248,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 14
                              },
                              "end": {
                                "line": 30,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1249,
                            "end": 1254,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 21
                              },
                              "end": {
                                "line": 30,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1257,
                        "end": 1260,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 29
                          },
                          "end": {
                            "line": 30,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1261,
                        "end": 1269,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 33
                          },
                          "end": {
                            "line": 30,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1276,
              "end": 1324,
              "loc": {
                "start": {
                  "line": 31,
                  "column": 4
                },
                "end": {
                  "line": 31,
                  "column": 52
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1280,
                  "end": 1323,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 8
                    },
                    "end": {
                      "line": 31,
                      "column": 51
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1280,
                    "end": 1283,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 8
                      },
                      "end": {
                        "line": 31,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 1286,
                    "end": 1323,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 14
                      },
                      "end": {
                        "line": 31,
                        "column": 51
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1290,
                      "end": 1303,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 18
                        },
                        "end": {
                          "line": 31,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1290,
                        "end": 1295,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 18
                          },
                          "end": {
                            "line": 31,
                            "column": 23
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1296,
                        "end": 1303,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 24
                          },
                          "end": {
                            "line": 31,
                            "column": 31
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "UnaryExpression",
                        "start": 1304,
                        "end": 1310,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 32
                          },
                          "end": {
                            "line": 31,
                            "column": 38
                          }
                        },
                        "operator": "-",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 1305,
                          "end": 1310,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 33
                            },
                            "end": {
                              "line": 31,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1305,
                            "end": 1308,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 33
                              },
                              "end": {
                                "line": 31,
                                "column": 36
                              }
                            },
                            "name": "dir"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1309,
                            "end": 1310,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 37
                              },
                              "end": {
                                "line": 31,
                                "column": 38
                              }
                            },
                            "name": "y"
                          },
                          "computed": false
                        }
                      },
                      {
                        "type": "MemberExpression",
                        "start": 1312,
                        "end": 1317,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 40
                          },
                          "end": {
                            "line": 31,
                            "column": 45
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 1312,
                          "end": 1315,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 40
                            },
                            "end": {
                              "line": 31,
                              "column": 43
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1316,
                          "end": 1317,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 44
                            },
                            "end": {
                              "line": 31,
                              "column": 45
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      {
                        "type": "Literal",
                        "start": 1319,
                        "end": 1322,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 47
                          },
                          "end": {
                            "line": 31,
                            "column": 50
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1329,
              "end": 1376,
              "loc": {
                "start": {
                  "line": 32,
                  "column": 4
                },
                "end": {
                  "line": 32,
                  "column": 51
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1333,
                  "end": 1375,
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 8
                    },
                    "end": {
                      "line": 32,
                      "column": 50
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1333,
                    "end": 1342,
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 8
                      },
                      "end": {
                        "line": 32,
                        "column": 17
                      }
                    },
                    "name": "dirMidPos"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1345,
                    "end": 1375,
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 20
                      },
                      "end": {
                        "line": 32,
                        "column": 50
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1345,
                      "end": 1370,
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 20
                        },
                        "end": {
                          "line": 32,
                          "column": 45
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1345,
                        "end": 1366,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 20
                          },
                          "end": {
                            "line": 32,
                            "column": 41
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1345,
                          "end": 1364,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 20
                            },
                            "end": {
                              "line": 32,
                              "column": 39
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1345,
                            "end": 1358,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 20
                              },
                              "end": {
                                "line": 32,
                                "column": 33
                              }
                            },
                            "name": "centerPosHint"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1359,
                            "end": 1364,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 34
                              },
                              "end": {
                                "line": 32,
                                "column": 39
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1367,
                        "end": 1370,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 42
                          },
                          "end": {
                            "line": 32,
                            "column": 45
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1371,
                        "end": 1374,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 46
                          },
                          "end": {
                            "line": 32,
                            "column": 49
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1381,
              "end": 1439,
              "loc": {
                "start": {
                  "line": 33,
                  "column": 4
                },
                "end": {
                  "line": 33,
                  "column": 62
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1385,
                  "end": 1438,
                  "loc": {
                    "start": {
                      "line": 33,
                      "column": 8
                    },
                    "end": {
                      "line": 33,
                      "column": 61
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1385,
                    "end": 1388,
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 8
                      },
                      "end": {
                        "line": 33,
                        "column": 11
                      }
                    },
                    "name": "ctr"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1391,
                    "end": 1438,
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 14
                      },
                      "end": {
                        "line": 33,
                        "column": 61
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1391,
                      "end": 1433,
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 14
                        },
                        "end": {
                          "line": 33,
                          "column": 56
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1391,
                        "end": 1429,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 14
                          },
                          "end": {
                            "line": 33,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1391,
                          "end": 1424,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 14
                            },
                            "end": {
                              "line": 33,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1391,
                            "end": 1408,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 14
                              },
                              "end": {
                                "line": 33,
                                "column": 31
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1391,
                              "end": 1406,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 14
                                },
                                "end": {
                                  "line": 33,
                                  "column": 29
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1391,
                                "end": 1400,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 23
                                  }
                                },
                                "name": "dirMidPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1401,
                                "end": 1406,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 29
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1409,
                            "end": 1424,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 32
                              },
                              "end": {
                                "line": 33,
                                "column": 47
                              }
                            },
                            "name": "projectOnVector"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1425,
                            "end": 1428,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 48
                              },
                              "end": {
                                "line": 33,
                                "column": 51
                              }
                            },
                            "name": "per"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1430,
                        "end": 1433,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 53
                          },
                          "end": {
                            "line": 33,
                            "column": 56
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1434,
                        "end": 1437,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 57
                          },
                          "end": {
                            "line": 33,
                            "column": 60
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1444,
              "end": 1473,
              "loc": {
                "start": {
                  "line": 34,
                  "column": 4
                },
                "end": {
                  "line": 34,
                  "column": 33
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1448,
                  "end": 1472,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 8
                    },
                    "end": {
                      "line": 34,
                      "column": 32
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1448,
                    "end": 1451,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 8
                      },
                      "end": {
                        "line": 34,
                        "column": 11
                      }
                    },
                    "name": "dot"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1454,
                    "end": 1472,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 14
                      },
                      "end": {
                        "line": 34,
                        "column": 32
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1454,
                      "end": 1467,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 14
                        },
                        "end": {
                          "line": 34,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1454,
                        "end": 1463,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 14
                          },
                          "end": {
                            "line": 34,
                            "column": 23
                          }
                        },
                        "name": "dirMidPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1464,
                        "end": 1467,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 24
                          },
                          "end": {
                            "line": 34,
                            "column": 27
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1468,
                        "end": 1471,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 28
                          },
                          "end": {
                            "line": 34,
                            "column": 31
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1478,
              "end": 1524,
              "loc": {
                "start": {
                  "line": 35,
                  "column": 4
                },
                "end": {
                  "line": 35,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1482,
                  "end": 1523,
                  "loc": {
                    "start": {
                      "line": 35,
                      "column": 8
                    },
                    "end": {
                      "line": 35,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1482,
                    "end": 1491,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 8
                      },
                      "end": {
                        "line": 35,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 1494,
                    "end": 1523,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 20
                      },
                      "end": {
                        "line": 35,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "BinaryExpression",
                      "start": 1495,
                      "end": 1504,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 21
                        },
                        "end": {
                          "line": 35,
                          "column": 30
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 1495,
                        "end": 1498,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 21
                          },
                          "end": {
                            "line": 35,
                            "column": 24
                          }
                        },
                        "name": "dot"
                      },
                      "operator": "<",
                      "right": {
                        "type": "Literal",
                        "start": 1501,
                        "end": 1504,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 27
                          },
                          "end": {
                            "line": 35,
                            "column": 30
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      },
                      "parenthesizedExpression": true
                    },
                    "operator": "!=",
                    "right": {
                      "type": "UnaryExpression",
                      "start": 1510,
                      "end": 1522,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 36
                        },
                        "end": {
                          "line": 35,
                          "column": 48
                        }
                      },
                      "operator": "!",
                      "prefix": true,
                      "argument": {
                        "type": "UnaryExpression",
                        "start": 1511,
                        "end": 1522,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 37
                          },
                          "end": {
                            "line": 35,
                            "column": 48
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1512,
                          "end": 1522,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 38
                            },
                            "end": {
                              "line": 35,
                              "column": 48
                            }
                          },
                          "name": "takeLarger"
                        }
                      },
                      "parenthesizedExpression": true
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 1529,
              "end": 1602,
              "loc": {
                "start": {
                  "line": 36,
                  "column": 4
                },
                "end": {
                  "line": 36,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 1536,
                "end": 1601,
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 11
                  },
                  "end": {
                    "line": 36,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 1537,
                    "end": 1552,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 12
                      },
                      "end": {
                        "line": 36,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1537,
                      "end": 1542,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 12
                        },
                        "end": {
                          "line": 36,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1544,
                      "end": 1552,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 19
                        },
                        "end": {
                          "line": 36,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1554,
                    "end": 1565,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 29
                      },
                      "end": {
                        "line": 36,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1554,
                      "end": 1557,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 29
                        },
                        "end": {
                          "line": 36,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1559,
                      "end": 1565,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 34
                        },
                        "end": {
                          "line": 36,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1567,
                    "end": 1578,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 42
                      },
                      "end": {
                        "line": 36,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1567,
                      "end": 1573,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 42
                        },
                        "end": {
                          "line": 36,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1575,
                      "end": 1578,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 50
                        },
                        "end": {
                          "line": 36,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1580,
                    "end": 1600,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 55
                      },
                      "end": {
                        "line": 36,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1580,
                      "end": 1589,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 55
                        },
                        "end": {
                          "line": 36,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1591,
                      "end": 1600,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 66
                        },
                        "end": {
                          "line": 36,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of center is only partly used and may change",
            "start": 1026,
            "end": 1087,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 61
              }
            },
            "range": [
              1026,
              1087
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of control point is only partly used and may change",
            "start": 1606,
            "end": 1674,
            "loc": {
              "start": {
                "line": 39,
                "column": 0
              },
              "end": {
                "line": 39,
                "column": 68
              }
            },
            "range": [
              1606,
              1674
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of center is only partly used and may change",
          "start": 1026,
          "end": 1087,
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 27,
              "column": 61
            }
          },
          "range": [
            1026,
            1087
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of control point is only partly used and may change",
          "start": 1606,
          "end": 1674,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 68
            }
          },
          "range": [
            1606,
            1674
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1675,
      "end": 2439,
      "loc": {
        "start": {
          "line": 40,
          "column": 0
        },
        "end": {
          "line": 55,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1682,
        "end": 2439,
        "loc": {
          "start": {
            "line": 40,
            "column": 7
          },
          "end": {
            "line": 55,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1691,
          "end": 1708,
          "loc": {
            "start": {
              "line": 40,
              "column": 16
            },
            "end": {
              "line": 40,
              "column": 33
            }
          },
          "name": "drawArcBy_S_E_CPh",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1709,
            "end": 1717,
            "loc": {
              "start": {
                "line": 40,
                "column": 34
              },
              "end": {
                "line": 40,
                "column": 42
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 1719,
            "end": 1725,
            "loc": {
              "start": {
                "line": 40,
                "column": 44
              },
              "end": {
                "line": 40,
                "column": 50
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 1727,
            "end": 1743,
            "loc": {
              "start": {
                "line": 40,
                "column": 52
              },
              "end": {
                "line": 40,
                "column": 68
              }
            },
            "name": "controlPointHint"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1745,
          "end": 2439,
          "loc": {
            "start": {
              "line": 40,
              "column": 70
            },
            "end": {
              "line": 55,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 1751,
              "end": 1806,
              "loc": {
                "start": {
                  "line": 41,
                  "column": 4
                },
                "end": {
                  "line": 41,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1755,
                  "end": 1805,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 8
                    },
                    "end": {
                      "line": 41,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1755,
                    "end": 1758,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 8
                      },
                      "end": {
                        "line": 41,
                        "column": 11
                      }
                    },
                    "name": "mid"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1761,
                    "end": 1805,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 14
                      },
                      "end": {
                        "line": 41,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1761,
                      "end": 1802,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 14
                        },
                        "end": {
                          "line": 41,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1761,
                        "end": 1789,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 14
                          },
                          "end": {
                            "line": 41,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1761,
                          "end": 1779,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 14
                            },
                            "end": {
                              "line": 41,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1761,
                            "end": 1775,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 14
                              },
                              "end": {
                                "line": 41,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1761,
                              "end": 1773,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 14
                                },
                                "end": {
                                  "line": 41,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1761,
                                "end": 1767,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1768,
                                "end": 1773,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1776,
                            "end": 1779,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 29
                              },
                              "end": {
                                "line": 41,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1780,
                            "end": 1788,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 33
                              },
                              "end": {
                                "line": 41,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1790,
                        "end": 1802,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 43
                          },
                          "end": {
                            "line": 41,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 1803,
                        "end": 1804,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 56
                          },
                          "end": {
                            "line": 41,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1811,
              "end": 1850,
              "loc": {
                "start": {
                  "line": 42,
                  "column": 4
                },
                "end": {
                  "line": 42,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1815,
                  "end": 1849,
                  "loc": {
                    "start": {
                      "line": 42,
                      "column": 8
                    },
                    "end": {
                      "line": 42,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1815,
                    "end": 1818,
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 8
                      },
                      "end": {
                        "line": 42,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1821,
                    "end": 1849,
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 14
                      },
                      "end": {
                        "line": 42,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1821,
                      "end": 1839,
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 14
                        },
                        "end": {
                          "line": 42,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1821,
                        "end": 1835,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 14
                          },
                          "end": {
                            "line": 42,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1821,
                          "end": 1833,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 14
                            },
                            "end": {
                              "line": 42,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1821,
                            "end": 1827,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 14
                              },
                              "end": {
                                "line": 42,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1828,
                            "end": 1833,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 21
                              },
                              "end": {
                                "line": 42,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1836,
                        "end": 1839,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 29
                          },
                          "end": {
                            "line": 42,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1840,
                        "end": 1848,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 33
                          },
                          "end": {
                            "line": 42,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1855,
              "end": 1903,
              "loc": {
                "start": {
                  "line": 43,
                  "column": 4
                },
                "end": {
                  "line": 43,
                  "column": 52
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1859,
                  "end": 1902,
                  "loc": {
                    "start": {
                      "line": 43,
                      "column": 8
                    },
                    "end": {
                      "line": 43,
                      "column": 51
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1859,
                    "end": 1862,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 8
                      },
                      "end": {
                        "line": 43,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 1865,
                    "end": 1902,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 14
                      },
                      "end": {
                        "line": 43,
                        "column": 51
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1869,
                      "end": 1882,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 18
                        },
                        "end": {
                          "line": 43,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1869,
                        "end": 1874,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 18
                          },
                          "end": {
                            "line": 43,
                            "column": 23
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1875,
                        "end": 1882,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 24
                          },
                          "end": {
                            "line": 43,
                            "column": 31
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "UnaryExpression",
                        "start": 1883,
                        "end": 1889,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 32
                          },
                          "end": {
                            "line": 43,
                            "column": 38
                          }
                        },
                        "operator": "-",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 1884,
                          "end": 1889,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 33
                            },
                            "end": {
                              "line": 43,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1884,
                            "end": 1887,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 33
                              },
                              "end": {
                                "line": 43,
                                "column": 36
                              }
                            },
                            "name": "dir"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1888,
                            "end": 1889,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 37
                              },
                              "end": {
                                "line": 43,
                                "column": 38
                              }
                            },
                            "name": "y"
                          },
                          "computed": false
                        }
                      },
                      {
                        "type": "MemberExpression",
                        "start": 1891,
                        "end": 1896,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 40
                          },
                          "end": {
                            "line": 43,
                            "column": 45
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 1891,
                          "end": 1894,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 40
                            },
                            "end": {
                              "line": 43,
                              "column": 43
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1895,
                          "end": 1896,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 44
                            },
                            "end": {
                              "line": 43,
                              "column": 45
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      {
                        "type": "Literal",
                        "start": 1898,
                        "end": 1901,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 47
                          },
                          "end": {
                            "line": 43,
                            "column": 50
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1908,
              "end": 1958,
              "loc": {
                "start": {
                  "line": 44,
                  "column": 4
                },
                "end": {
                  "line": 44,
                  "column": 54
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1912,
                  "end": 1957,
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 8
                    },
                    "end": {
                      "line": 44,
                      "column": 53
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1912,
                    "end": 1921,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 8
                      },
                      "end": {
                        "line": 44,
                        "column": 17
                      }
                    },
                    "name": "dirMidPos"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1924,
                    "end": 1957,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 20
                      },
                      "end": {
                        "line": 44,
                        "column": 53
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1924,
                      "end": 1952,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 20
                        },
                        "end": {
                          "line": 44,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1924,
                        "end": 1948,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 20
                          },
                          "end": {
                            "line": 44,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1924,
                          "end": 1946,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 20
                            },
                            "end": {
                              "line": 44,
                              "column": 42
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1924,
                            "end": 1940,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 20
                              },
                              "end": {
                                "line": 44,
                                "column": 36
                              }
                            },
                            "name": "controlPointHint"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1941,
                            "end": 1946,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 37
                              },
                              "end": {
                                "line": 44,
                                "column": 42
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1949,
                        "end": 1952,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 45
                          },
                          "end": {
                            "line": 44,
                            "column": 48
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1953,
                        "end": 1956,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 49
                          },
                          "end": {
                            "line": 44,
                            "column": 52
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1963,
              "end": 2019,
              "loc": {
                "start": {
                  "line": 45,
                  "column": 4
                },
                "end": {
                  "line": 45,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1967,
                  "end": 2018,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 8
                    },
                    "end": {
                      "line": 45,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1967,
                    "end": 1977,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 8
                      },
                      "end": {
                        "line": 45,
                        "column": 18
                      }
                    },
                    "name": "dirMidCtrl"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1980,
                    "end": 2018,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 21
                      },
                      "end": {
                        "line": 45,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1980,
                      "end": 2013,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 21
                        },
                        "end": {
                          "line": 45,
                          "column": 54
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1980,
                        "end": 1997,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 21
                          },
                          "end": {
                            "line": 45,
                            "column": 38
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1980,
                          "end": 1995,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 21
                            },
                            "end": {
                              "line": 45,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1980,
                            "end": 1989,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 21
                              },
                              "end": {
                                "line": 45,
                                "column": 30
                              }
                            },
                            "name": "dirMidPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1990,
                            "end": 1995,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 31
                              },
                              "end": {
                                "line": 45,
                                "column": 36
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1998,
                        "end": 2013,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 39
                          },
                          "end": {
                            "line": 45,
                            "column": 54
                          }
                        },
                        "name": "projectOnVector"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2014,
                        "end": 2017,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 55
                          },
                          "end": {
                            "line": 45,
                            "column": 58
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2024,
              "end": 2057,
              "loc": {
                "start": {
                  "line": 46,
                  "column": 4
                },
                "end": {
                  "line": 46,
                  "column": 37
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2028,
                  "end": 2056,
                  "loc": {
                    "start": {
                      "line": 46,
                      "column": 8
                    },
                    "end": {
                      "line": 46,
                      "column": 36
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2028,
                    "end": 2034,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 8
                      },
                      "end": {
                        "line": 46,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2037,
                    "end": 2056,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 17
                      },
                      "end": {
                        "line": 46,
                        "column": 36
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2037,
                      "end": 2054,
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 17
                        },
                        "end": {
                          "line": 46,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2037,
                        "end": 2047,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 17
                          },
                          "end": {
                            "line": 46,
                            "column": 27
                          }
                        },
                        "name": "dirMidCtrl"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2048,
                        "end": 2054,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 28
                          },
                          "end": {
                            "line": 46,
                            "column": 34
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 2062,
              "end": 2128,
              "loc": {
                "start": {
                  "line": 47,
                  "column": 4
                },
                "end": {
                  "line": 48,
                  "column": 46
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 2066,
                "end": 2080,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 8
                  },
                  "end": {
                    "line": 47,
                    "column": 22
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 2066,
                  "end": 2072,
                  "loc": {
                    "start": {
                      "line": 47,
                      "column": 8
                    },
                    "end": {
                      "line": 47,
                      "column": 14
                    }
                  },
                  "name": "height"
                },
                "operator": "<=",
                "right": {
                  "type": "Literal",
                  "start": 2076,
                  "end": 2080,
                  "loc": {
                    "start": {
                      "line": 47,
                      "column": 18
                    },
                    "end": {
                      "line": 47,
                      "column": 22
                    }
                  },
                  "value": 0.001,
                  "rawValue": 0.001,
                  "raw": "1e-3"
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 2090,
                "end": 2128,
                "loc": {
                  "start": {
                    "line": 48,
                    "column": 8
                  },
                  "end": {
                    "line": 48,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 2097,
                  "end": 2127,
                  "loc": {
                    "start": {
                      "line": 48,
                      "column": 15
                    },
                    "end": {
                      "line": 48,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 2098,
                      "end": 2113,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 16
                        },
                        "end": {
                          "line": 48,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 2098,
                        "end": 2103,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 16
                          },
                          "end": {
                            "line": 48,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 2105,
                        "end": 2113,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 23
                          },
                          "end": {
                            "line": 48,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 2115,
                      "end": 2126,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 33
                        },
                        "end": {
                          "line": 48,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 2115,
                        "end": 2118,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 33
                          },
                          "end": {
                            "line": 48,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 2120,
                        "end": 2126,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 38
                          },
                          "end": {
                            "line": 48,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 2133,
              "end": 2167,
              "loc": {
                "start": {
                  "line": 49,
                  "column": 4
                },
                "end": {
                  "line": 49,
                  "column": 38
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2137,
                  "end": 2166,
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 8
                    },
                    "end": {
                      "line": 49,
                      "column": 37
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2137,
                    "end": 2145,
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 8
                      },
                      "end": {
                        "line": 49,
                        "column": 16
                      }
                    },
                    "name": "halfDist"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2148,
                    "end": 2166,
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 19
                      },
                      "end": {
                        "line": 49,
                        "column": 37
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 2148,
                      "end": 2160,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 19
                        },
                        "end": {
                          "line": 49,
                          "column": 31
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 2148,
                        "end": 2158,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 19
                          },
                          "end": {
                            "line": 49,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2148,
                          "end": 2151,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 19
                            },
                            "end": {
                              "line": 49,
                              "column": 22
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2152,
                          "end": 2158,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 23
                            },
                            "end": {
                              "line": 49,
                              "column": 29
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "operator": "/",
                    "right": {
                      "type": "Literal",
                      "start": 2163,
                      "end": 2166,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 34
                        },
                        "end": {
                          "line": 49,
                          "column": 37
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2.0"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2172,
              "end": 2227,
              "loc": {
                "start": {
                  "line": 50,
                  "column": 4
                },
                "end": {
                  "line": 50,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2176,
                  "end": 2226,
                  "loc": {
                    "start": {
                      "line": 50,
                      "column": 8
                    },
                    "end": {
                      "line": 50,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2176,
                    "end": 2181,
                    "loc": {
                      "start": {
                        "line": 50,
                        "column": 8
                      },
                      "end": {
                        "line": 50,
                        "column": 13
                      }
                    },
                    "name": "coeff"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2184,
                    "end": 2226,
                    "loc": {
                      "start": {
                        "line": 50,
                        "column": 16
                      },
                      "end": {
                        "line": 50,
                        "column": 58
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 2184,
                      "end": 2206,
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 16
                        },
                        "end": {
                          "line": 50,
                          "column": 38
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 2186,
                        "end": 2205,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 18
                          },
                          "end": {
                            "line": 50,
                            "column": 37
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 2186,
                          "end": 2194,
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 18
                            },
                            "end": {
                              "line": 50,
                              "column": 26
                            }
                          },
                          "name": "halfDist"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 2197,
                          "end": 2205,
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 29
                            },
                            "end": {
                              "line": 50,
                              "column": 37
                            }
                          },
                          "name": "halfDist"
                        },
                        "parenthesizedExpression": true
                      }
                    },
                    "operator": "/",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 2210,
                      "end": 2225,
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 42
                        },
                        "end": {
                          "line": 50,
                          "column": 57
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 2210,
                        "end": 2216,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 42
                          },
                          "end": {
                            "line": 50,
                            "column": 48
                          }
                        },
                        "name": "height"
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 2219,
                        "end": 2225,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 51
                          },
                          "end": {
                            "line": 50,
                            "column": 57
                          }
                        },
                        "name": "height"
                      },
                      "parenthesizedExpression": true
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2232,
              "end": 2292,
              "loc": {
                "start": {
                  "line": 51,
                  "column": 4
                },
                "end": {
                  "line": 51,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2236,
                  "end": 2291,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 8
                    },
                    "end": {
                      "line": 51,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2236,
                    "end": 2239,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 8
                      },
                      "end": {
                        "line": 51,
                        "column": 11
                      }
                    },
                    "name": "ctr"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2242,
                    "end": 2291,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 14
                      },
                      "end": {
                        "line": 51,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2242,
                      "end": 2286,
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 14
                        },
                        "end": {
                          "line": 51,
                          "column": 58
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 2242,
                        "end": 2282,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 14
                          },
                          "end": {
                            "line": 51,
                            "column": 54
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2242,
                          "end": 2275,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 14
                            },
                            "end": {
                              "line": 51,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 2242,
                            "end": 2260,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 14
                              },
                              "end": {
                                "line": 51,
                                "column": 32
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2242,
                              "end": 2258,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 14
                                },
                                "end": {
                                  "line": 51,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2242,
                                "end": 2252,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 24
                                  }
                                },
                                "name": "dirMidCtrl"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2253,
                                "end": 2258,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 30
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2261,
                            "end": 2275,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 33
                              },
                              "end": {
                                "line": 51,
                                "column": 47
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 2276,
                            "end": 2281,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 48
                              },
                              "end": {
                                "line": 51,
                                "column": 53
                              }
                            },
                            "name": "coeff"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2283,
                        "end": 2286,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 55
                          },
                          "end": {
                            "line": 51,
                            "column": 58
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2287,
                        "end": 2290,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 59
                          },
                          "end": {
                            "line": 51,
                            "column": 62
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2297,
              "end": 2326,
              "loc": {
                "start": {
                  "line": 52,
                  "column": 4
                },
                "end": {
                  "line": 52,
                  "column": 33
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2301,
                  "end": 2325,
                  "loc": {
                    "start": {
                      "line": 52,
                      "column": 8
                    },
                    "end": {
                      "line": 52,
                      "column": 32
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2301,
                    "end": 2304,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 8
                      },
                      "end": {
                        "line": 52,
                        "column": 11
                      }
                    },
                    "name": "dot"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2307,
                    "end": 2325,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 14
                      },
                      "end": {
                        "line": 52,
                        "column": 32
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2307,
                      "end": 2320,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 14
                        },
                        "end": {
                          "line": 52,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2307,
                        "end": 2316,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 14
                          },
                          "end": {
                            "line": 52,
                            "column": 23
                          }
                        },
                        "name": "dirMidPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2317,
                        "end": 2320,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 24
                          },
                          "end": {
                            "line": 52,
                            "column": 27
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2321,
                        "end": 2324,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 28
                          },
                          "end": {
                            "line": 52,
                            "column": 31
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2331,
              "end": 2359,
              "loc": {
                "start": {
                  "line": 53,
                  "column": 4
                },
                "end": {
                  "line": 53,
                  "column": 32
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2335,
                  "end": 2358,
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 8
                    },
                    "end": {
                      "line": 53,
                      "column": 31
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2335,
                    "end": 2344,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 8
                      },
                      "end": {
                        "line": 53,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2348,
                    "end": 2357,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 21
                      },
                      "end": {
                        "line": 53,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 2348,
                      "end": 2351,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 21
                        },
                        "end": {
                          "line": 53,
                          "column": 24
                        }
                      },
                      "name": "dot"
                    },
                    "operator": ">",
                    "right": {
                      "type": "Literal",
                      "start": 2354,
                      "end": 2357,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 27
                        },
                        "end": {
                          "line": 53,
                          "column": 30
                        }
                      },
                      "value": 0,
                      "rawValue": 0,
                      "raw": "0.0"
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 2364,
              "end": 2437,
              "loc": {
                "start": {
                  "line": 54,
                  "column": 4
                },
                "end": {
                  "line": 54,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 2371,
                "end": 2436,
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 11
                  },
                  "end": {
                    "line": 54,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 2372,
                    "end": 2387,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 12
                      },
                      "end": {
                        "line": 54,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2372,
                      "end": 2377,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 12
                        },
                        "end": {
                          "line": 54,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2379,
                      "end": 2387,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 19
                        },
                        "end": {
                          "line": 54,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2389,
                    "end": 2400,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 29
                      },
                      "end": {
                        "line": 54,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2389,
                      "end": 2392,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 29
                        },
                        "end": {
                          "line": 54,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2394,
                      "end": 2400,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 34
                        },
                        "end": {
                          "line": 54,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2402,
                    "end": 2413,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 42
                      },
                      "end": {
                        "line": 54,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2402,
                      "end": 2408,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 42
                        },
                        "end": {
                          "line": 54,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2410,
                      "end": 2413,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 50
                        },
                        "end": {
                          "line": 54,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2415,
                    "end": 2435,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 55
                      },
                      "end": {
                        "line": 54,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2415,
                      "end": 2424,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 55
                        },
                        "end": {
                          "line": 54,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2426,
                      "end": 2435,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 66
                        },
                        "end": {
                          "line": 54,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of control point is only partly used and may change",
            "start": 1606,
            "end": 1674,
            "loc": {
              "start": {
                "line": 39,
                "column": 0
              },
              "end": {
                "line": 39,
                "column": 68
              }
            },
            "range": [
              1606,
              1674
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
            "start": 2441,
            "end": 2536,
            "loc": {
              "start": {
                "line": 57,
                "column": 0
              },
              "end": {
                "line": 57,
                "column": 95
              }
            },
            "range": [
              2441,
              2536
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of control point is only partly used and may change",
          "start": 1606,
          "end": 1674,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 68
            }
          },
          "range": [
            1606,
            1674
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
          "start": 2441,
          "end": 2536,
          "loc": {
            "start": {
              "line": 57,
              "column": 0
            },
            "end": {
              "line": 57,
              "column": 95
            }
          },
          "range": [
            2441,
            2536
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 2537,
      "end": 4314,
      "loc": {
        "start": {
          "line": 58,
          "column": 0
        },
        "end": {
          "line": 99,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 2544,
        "end": 4314,
        "loc": {
          "start": {
            "line": 58,
            "column": 7
          },
          "end": {
            "line": 99,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2553,
          "end": 2568,
          "loc": {
            "start": {
              "line": 58,
              "column": 16
            },
            "end": {
              "line": 58,
              "column": 31
            }
          },
          "name": "drawArcBy_S_E_M",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 2569,
            "end": 2577,
            "loc": {
              "start": {
                "line": 58,
                "column": 32
              },
              "end": {
                "line": 58,
                "column": 40
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 2579,
            "end": 2585,
            "loc": {
              "start": {
                "line": 58,
                "column": 42
              },
              "end": {
                "line": 58,
                "column": 48
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 2587,
            "end": 2596,
            "loc": {
              "start": {
                "line": 58,
                "column": 50
              },
              "end": {
                "line": 58,
                "column": 59
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 2598,
          "end": 4314,
          "loc": {
            "start": {
              "line": 58,
              "column": 61
            },
            "end": {
              "line": 99,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 2675,
              "end": 2713,
              "loc": {
                "start": {
                  "line": 60,
                  "column": 4
                },
                "end": {
                  "line": 60,
                  "column": 42
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2679,
                  "end": 2712,
                  "loc": {
                    "start": {
                      "line": 60,
                      "column": 8
                    },
                    "end": {
                      "line": 60,
                      "column": 41
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2679,
                    "end": 2682,
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 8
                      },
                      "end": {
                        "line": 60,
                        "column": 11
                      }
                    },
                    "name": "lSE",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2685,
                    "end": 2712,
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 14
                      },
                      "end": {
                        "line": 60,
                        "column": 41
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2685,
                      "end": 2704,
                      "loc": {
                        "start": {
                          "line": 60,
                          "column": 14
                        },
                        "end": {
                          "line": 60,
                          "column": 33
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2685,
                        "end": 2693,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 14
                          },
                          "end": {
                            "line": 60,
                            "column": 22
                          }
                        },
                        "name": "startPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2694,
                        "end": 2704,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 23
                          },
                          "end": {
                            "line": 60,
                            "column": 33
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2705,
                        "end": 2711,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 34
                          },
                          "end": {
                            "line": 60,
                            "column": 40
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "since vector math is a huge pain in JS, we do it in a stupid way",
                  "start": 2604,
                  "end": 2670,
                  "loc": {
                    "start": {
                      "line": 59,
                      "column": 4
                    },
                    "end": {
                      "line": 59,
                      "column": 70
                    }
                  },
                  "range": [
                    2604,
                    2670
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 2718,
              "end": 2759,
              "loc": {
                "start": {
                  "line": 61,
                  "column": 4
                },
                "end": {
                  "line": 61,
                  "column": 45
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2722,
                  "end": 2758,
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 8
                    },
                    "end": {
                      "line": 61,
                      "column": 44
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2722,
                    "end": 2725,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 8
                      },
                      "end": {
                        "line": 61,
                        "column": 11
                      }
                    },
                    "name": "lSM"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2728,
                    "end": 2758,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 14
                      },
                      "end": {
                        "line": 61,
                        "column": 44
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2728,
                      "end": 2747,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 14
                        },
                        "end": {
                          "line": 61,
                          "column": 33
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2728,
                        "end": 2736,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 14
                          },
                          "end": {
                            "line": 61,
                            "column": 22
                          }
                        },
                        "name": "startPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2737,
                        "end": 2747,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 23
                          },
                          "end": {
                            "line": 61,
                            "column": 33
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2748,
                        "end": 2757,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 34
                          },
                          "end": {
                            "line": 61,
                            "column": 43
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2764,
              "end": 2803,
              "loc": {
                "start": {
                  "line": 62,
                  "column": 4
                },
                "end": {
                  "line": 62,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2768,
                  "end": 2802,
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 8
                    },
                    "end": {
                      "line": 62,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2768,
                    "end": 2771,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 8
                      },
                      "end": {
                        "line": 62,
                        "column": 11
                      }
                    },
                    "name": "lEM"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2774,
                    "end": 2802,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 14
                      },
                      "end": {
                        "line": 62,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2774,
                      "end": 2791,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 14
                        },
                        "end": {
                          "line": 62,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2774,
                        "end": 2780,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 14
                          },
                          "end": {
                            "line": 62,
                            "column": 20
                          }
                        },
                        "name": "endPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2781,
                        "end": 2791,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 21
                          },
                          "end": {
                            "line": 62,
                            "column": 31
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2792,
                        "end": 2801,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 32
                          },
                          "end": {
                            "line": 62,
                            "column": 41
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2808,
              "end": 2903,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 4
                },
                "end": {
                  "line": 63,
                  "column": 99
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2812,
                  "end": 2902,
                  "loc": {
                    "start": {
                      "line": 63,
                      "column": 8
                    },
                    "end": {
                      "line": 63,
                      "column": 98
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2812,
                    "end": 2817,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 8
                      },
                      "end": {
                        "line": 63,
                        "column": 13
                      }
                    },
                    "name": "sArea"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2820,
                    "end": 2902,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 16
                      },
                      "end": {
                        "line": 63,
                        "column": 98
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 2820,
                      "end": 2896,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 16
                        },
                        "end": {
                          "line": 63,
                          "column": 92
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 2820,
                        "end": 2833,
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 16
                          },
                          "end": {
                            "line": 63,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2820,
                          "end": 2825,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 16
                            },
                            "end": {
                              "line": 63,
                              "column": 21
                            }
                          },
                          "name": "THREE"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2826,
                          "end": 2833,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 22
                            },
                            "end": {
                              "line": 63,
                              "column": 29
                            }
                          },
                          "name": "cross2d"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 2834,
                          "end": 2862,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 30
                            },
                            "end": {
                              "line": 63,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2834,
                            "end": 2852,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 30
                              },
                              "end": {
                                "line": 63,
                                "column": 48
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 2834,
                              "end": 2848,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 30
                                },
                                "end": {
                                  "line": 63,
                                  "column": 44
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2834,
                                "end": 2846,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 42
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2834,
                                  "end": 2840,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 36
                                    }
                                  },
                                  "name": "endPos"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2841,
                                  "end": 2846,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 42
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2849,
                              "end": 2852,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 45
                                },
                                "end": {
                                  "line": 63,
                                  "column": 48
                                }
                              },
                              "name": "sub"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2853,
                              "end": 2861,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 49
                                },
                                "end": {
                                  "line": 63,
                                  "column": 57
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        },
                        {
                          "type": "CallExpression",
                          "start": 2864,
                          "end": 2895,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 60
                            },
                            "end": {
                              "line": 63,
                              "column": 91
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2864,
                            "end": 2885,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 60
                              },
                              "end": {
                                "line": 63,
                                "column": 81
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 2864,
                              "end": 2881,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 60
                                },
                                "end": {
                                  "line": 63,
                                  "column": 77
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2864,
                                "end": 2879,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 60
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 75
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2864,
                                  "end": 2873,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 69
                                    }
                                  },
                                  "name": "middlePos"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2874,
                                  "end": 2879,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 70
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 75
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2882,
                              "end": 2885,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 78
                                },
                                "end": {
                                  "line": 63,
                                  "column": 81
                                }
                              },
                              "name": "sub"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2886,
                              "end": 2894,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 82
                                },
                                "end": {
                                  "line": 63,
                                  "column": 90
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        }
                      ]
                    },
                    "operator": "/",
                    "right": {
                      "type": "Literal",
                      "start": 2899,
                      "end": 2902,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 95
                        },
                        "end": {
                          "line": 63,
                          "column": 98
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2.0"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2908,
              "end": 2935,
              "loc": {
                "start": {
                  "line": 64,
                  "column": 4
                },
                "end": {
                  "line": 64,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2912,
                  "end": 2934,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 8
                    },
                    "end": {
                      "line": 64,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2912,
                    "end": 2916,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 8
                      },
                      "end": {
                        "line": 64,
                        "column": 12
                      }
                    },
                    "name": "area"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2919,
                    "end": 2934,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 15
                      },
                      "end": {
                        "line": 64,
                        "column": 30
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2919,
                      "end": 2927,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 15
                        },
                        "end": {
                          "line": 64,
                          "column": 23
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2919,
                        "end": 2923,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 15
                          },
                          "end": {
                            "line": 64,
                            "column": 19
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2924,
                        "end": 2927,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 20
                          },
                          "end": {
                            "line": 64,
                            "column": 23
                          }
                        },
                        "name": "abs"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2928,
                        "end": 2933,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 24
                          },
                          "end": {
                            "line": 64,
                            "column": 29
                          }
                        },
                        "name": "sArea"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 2940,
              "end": 3017,
              "loc": {
                "start": {
                  "line": 65,
                  "column": 4
                },
                "end": {
                  "line": 66,
                  "column": 46
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 2944,
                "end": 2969,
                "loc": {
                  "start": {
                    "line": 65,
                    "column": 8
                  },
                  "end": {
                    "line": 65,
                    "column": 33
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 2944,
                  "end": 2948,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 8
                    },
                    "end": {
                      "line": 65,
                      "column": 12
                    }
                  },
                  "name": "area"
                },
                "operator": "<=",
                "right": {
                  "type": "BinaryExpression",
                  "start": 2952,
                  "end": 2969,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 16
                    },
                    "end": {
                      "line": 65,
                      "column": 33
                    }
                  },
                  "left": {
                    "type": "BinaryExpression",
                    "start": 2952,
                    "end": 2962,
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 16
                      },
                      "end": {
                        "line": 65,
                        "column": 26
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 2952,
                      "end": 2956,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 16
                        },
                        "end": {
                          "line": 65,
                          "column": 20
                        }
                      },
                      "value": 0.001,
                      "rawValue": 0.001,
                      "raw": "1e-3"
                    },
                    "operator": "*",
                    "right": {
                      "type": "Identifier",
                      "start": 2959,
                      "end": 2962,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 23
                        },
                        "end": {
                          "line": 65,
                          "column": 26
                        }
                      },
                      "name": "lSE"
                    }
                  },
                  "operator": "+",
                  "right": {
                    "type": "Literal",
                    "start": 2965,
                    "end": 2969,
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 29
                      },
                      "end": {
                        "line": 65,
                        "column": 33
                      }
                    },
                    "value": 0.001,
                    "rawValue": 0.001,
                    "raw": "1e-3"
                  }
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 2979,
                "end": 3017,
                "loc": {
                  "start": {
                    "line": 66,
                    "column": 8
                  },
                  "end": {
                    "line": 66,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 2986,
                  "end": 3016,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 15
                    },
                    "end": {
                      "line": 66,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 2987,
                      "end": 3002,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 16
                        },
                        "end": {
                          "line": 66,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 2987,
                        "end": 2992,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 16
                          },
                          "end": {
                            "line": 66,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 2994,
                        "end": 3002,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 23
                          },
                          "end": {
                            "line": 66,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 3004,
                      "end": 3015,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 33
                        },
                        "end": {
                          "line": 66,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 3004,
                        "end": 3007,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 33
                          },
                          "end": {
                            "line": 66,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 3009,
                        "end": 3015,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 38
                          },
                          "end": {
                            "line": 66,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                },
                "trailingComments": null
              },
              "alternate": null,
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting radius with school math",
                  "start": 3022,
                  "end": 3055,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 4
                    },
                    "end": {
                      "line": 67,
                      "column": 37
                    }
                  },
                  "range": [
                    3022,
                    3055
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3060,
              "end": 3106,
              "loc": {
                "start": {
                  "line": 68,
                  "column": 4
                },
                "end": {
                  "line": 68,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3064,
                  "end": 3105,
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 8
                    },
                    "end": {
                      "line": 68,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3064,
                    "end": 3070,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 8
                      },
                      "end": {
                        "line": 68,
                        "column": 14
                      }
                    },
                    "name": "radius",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 3073,
                    "end": 3105,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 17
                      },
                      "end": {
                        "line": 68,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "BinaryExpression",
                      "start": 3074,
                      "end": 3089,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 18
                        },
                        "end": {
                          "line": 68,
                          "column": 33
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 3074,
                        "end": 3083,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 18
                          },
                          "end": {
                            "line": 68,
                            "column": 27
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 3074,
                          "end": 3077,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 18
                            },
                            "end": {
                              "line": 68,
                              "column": 21
                            }
                          },
                          "name": "lSE"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 3080,
                          "end": 3083,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 24
                            },
                            "end": {
                              "line": 68,
                              "column": 27
                            }
                          },
                          "name": "lSM"
                        }
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3086,
                        "end": 3089,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 30
                          },
                          "end": {
                            "line": 68,
                            "column": 33
                          }
                        },
                        "name": "lEM"
                      },
                      "parenthesizedExpression": true
                    },
                    "operator": "/",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 3094,
                      "end": 3104,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 38
                        },
                        "end": {
                          "line": 68,
                          "column": 48
                        }
                      },
                      "left": {
                        "type": "Literal",
                        "start": 3094,
                        "end": 3097,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 38
                          },
                          "end": {
                            "line": 68,
                            "column": 41
                          }
                        },
                        "value": 4,
                        "rawValue": 4,
                        "raw": "4.0"
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3100,
                        "end": 3104,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 44
                          },
                          "end": {
                            "line": 68,
                            "column": 48
                          }
                        },
                        "name": "area"
                      },
                      "parenthesizedExpression": true
                    }
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting radius with school math",
                  "start": 3022,
                  "end": 3055,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 4
                    },
                    "end": {
                      "line": 67,
                      "column": 37
                    }
                  },
                  "range": [
                    3022,
                    3055
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 3111,
              "end": 3157,
              "loc": {
                "start": {
                  "line": 69,
                  "column": 4
                },
                "end": {
                  "line": 69,
                  "column": 50
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 3111,
                "end": 3156,
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 4
                  },
                  "end": {
                    "line": 69,
                    "column": 49
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 3111,
                  "end": 3117,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 4
                    },
                    "end": {
                      "line": 69,
                      "column": 10
                    }
                  },
                  "name": "radius"
                },
                "right": {
                  "type": "CallExpression",
                  "start": 3120,
                  "end": 3156,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 13
                    },
                    "end": {
                      "line": 69,
                      "column": 49
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 3120,
                    "end": 3128,
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 13
                      },
                      "end": {
                        "line": 69,
                        "column": 21
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 3120,
                      "end": 3124,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 13
                        },
                        "end": {
                          "line": 69,
                          "column": 17
                        }
                      },
                      "name": "Math"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 3125,
                      "end": 3128,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 18
                        },
                        "end": {
                          "line": 69,
                          "column": 21
                        }
                      },
                      "name": "max"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 3129,
                      "end": 3135,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 22
                        },
                        "end": {
                          "line": 69,
                          "column": 28
                        }
                      },
                      "name": "radius"
                    },
                    {
                      "type": "BinaryExpression",
                      "start": 3137,
                      "end": 3155,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 30
                        },
                        "end": {
                          "line": 69,
                          "column": 48
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 3138,
                        "end": 3148,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 31
                          },
                          "end": {
                            "line": 69,
                            "column": 41
                          }
                        },
                        "left": {
                          "type": "Literal",
                          "start": 3138,
                          "end": 3141,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 31
                            },
                            "end": {
                              "line": 69,
                              "column": 34
                            }
                          },
                          "value": 0.5,
                          "rawValue": 0.5,
                          "raw": "0.5"
                        },
                        "operator": "+",
                        "right": {
                          "type": "Literal",
                          "start": 3144,
                          "end": 3148,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 37
                            },
                            "end": {
                              "line": 69,
                              "column": 41
                            }
                          },
                          "value": 1e-9,
                          "rawValue": 1e-9,
                          "raw": "1e-9"
                        },
                        "parenthesizedExpression": true
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3152,
                        "end": 3155,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 45
                          },
                          "end": {
                            "line": 69,
                            "column": 48
                          }
                        },
                        "name": "lSE"
                      }
                    }
                  ]
                }
              }
            },
            {
              "type": "VariableDeclaration",
              "start": 3162,
              "end": 3220,
              "loc": {
                "start": {
                  "line": 70,
                  "column": 4
                },
                "end": {
                  "line": 70,
                  "column": 62
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3166,
                  "end": 3219,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 8
                    },
                    "end": {
                      "line": 70,
                      "column": 61
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3166,
                    "end": 3172,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 8
                      },
                      "end": {
                        "line": 70,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3175,
                    "end": 3219,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 17
                      },
                      "end": {
                        "line": 70,
                        "column": 61
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3175,
                      "end": 3184,
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 17
                        },
                        "end": {
                          "line": 70,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 3175,
                        "end": 3179,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 17
                          },
                          "end": {
                            "line": 70,
                            "column": 21
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3180,
                        "end": 3184,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 22
                          },
                          "end": {
                            "line": 70,
                            "column": 26
                          }
                        },
                        "name": "sqrt"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "BinaryExpression",
                        "start": 3185,
                        "end": 3218,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 27
                          },
                          "end": {
                            "line": 70,
                            "column": 60
                          }
                        },
                        "left": {
                          "type": "BinaryExpression",
                          "start": 3185,
                          "end": 3200,
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 27
                            },
                            "end": {
                              "line": 70,
                              "column": 42
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 3185,
                            "end": 3191,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 27
                              },
                              "end": {
                                "line": 70,
                                "column": 33
                              }
                            },
                            "name": "radius"
                          },
                          "operator": "*",
                          "right": {
                            "type": "Identifier",
                            "start": 3194,
                            "end": 3200,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 36
                              },
                              "end": {
                                "line": 70,
                                "column": 42
                              }
                            },
                            "name": "radius"
                          }
                        },
                        "operator": "-",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 3203,
                          "end": 3218,
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 45
                            },
                            "end": {
                              "line": 70,
                              "column": 60
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 3203,
                            "end": 3212,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 45
                              },
                              "end": {
                                "line": 70,
                                "column": 54
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 3203,
                              "end": 3206,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 45
                                },
                                "end": {
                                  "line": 70,
                                  "column": 48
                                }
                              },
                              "name": "lSE"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 3209,
                              "end": 3212,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 51
                                },
                                "end": {
                                  "line": 70,
                                  "column": 54
                                }
                              },
                              "name": "lSE"
                            }
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 3215,
                            "end": 3218,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 57
                              },
                              "end": {
                                "line": 70,
                                "column": 60
                              }
                            },
                            "value": 4,
                            "rawValue": 4,
                            "raw": "4.0"
                          }
                        }
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "copy-pasting middle perpendicular",
                  "start": 3225,
                  "end": 3260,
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 4
                    },
                    "end": {
                      "line": 71,
                      "column": 39
                    }
                  },
                  "range": [
                    3225,
                    3260
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3265,
              "end": 3320,
              "loc": {
                "start": {
                  "line": 72,
                  "column": 4
                },
                "end": {
                  "line": 72,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3269,
                  "end": 3319,
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 8
                    },
                    "end": {
                      "line": 72,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3269,
                    "end": 3272,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 8
                      },
                      "end": {
                        "line": 72,
                        "column": 11
                      }
                    },
                    "name": "mid",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3275,
                    "end": 3319,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 14
                      },
                      "end": {
                        "line": 72,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3275,
                      "end": 3316,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 14
                        },
                        "end": {
                          "line": 72,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 3275,
                        "end": 3303,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 14
                          },
                          "end": {
                            "line": 72,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3275,
                          "end": 3293,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 14
                            },
                            "end": {
                              "line": 72,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 3275,
                            "end": 3289,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 14
                              },
                              "end": {
                                "line": 72,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3275,
                              "end": 3287,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 14
                                },
                                "end": {
                                  "line": 72,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3275,
                                "end": 3281,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3282,
                                "end": 3287,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3290,
                            "end": 3293,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 29
                              },
                              "end": {
                                "line": 72,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3294,
                            "end": 3302,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 33
                              },
                              "end": {
                                "line": 72,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3304,
                        "end": 3316,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 43
                          },
                          "end": {
                            "line": 72,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 3317,
                        "end": 3318,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 56
                          },
                          "end": {
                            "line": 72,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "copy-pasting middle perpendicular",
                  "start": 3225,
                  "end": 3260,
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 4
                    },
                    "end": {
                      "line": 71,
                      "column": 39
                    }
                  },
                  "range": [
                    3225,
                    3260
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3325,
              "end": 3364,
              "loc": {
                "start": {
                  "line": 73,
                  "column": 4
                },
                "end": {
                  "line": 73,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3329,
                  "end": 3363,
                  "loc": {
                    "start": {
                      "line": 73,
                      "column": 8
                    },
                    "end": {
                      "line": 73,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3329,
                    "end": 3332,
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 8
                      },
                      "end": {
                        "line": 73,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3335,
                    "end": 3363,
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 14
                      },
                      "end": {
                        "line": 73,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3335,
                      "end": 3353,
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 14
                        },
                        "end": {
                          "line": 73,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 3335,
                        "end": 3349,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 14
                          },
                          "end": {
                            "line": 73,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3335,
                          "end": 3347,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 14
                            },
                            "end": {
                              "line": 73,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3335,
                            "end": 3341,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 14
                              },
                              "end": {
                                "line": 73,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3342,
                            "end": 3347,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 21
                              },
                              "end": {
                                "line": 73,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3350,
                        "end": 3353,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 29
                          },
                          "end": {
                            "line": 73,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 3354,
                        "end": 3362,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 33
                          },
                          "end": {
                            "line": 73,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 3369,
              "end": 3429,
              "loc": {
                "start": {
                  "line": 74,
                  "column": 4
                },
                "end": {
                  "line": 74,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3373,
                  "end": 3428,
                  "loc": {
                    "start": {
                      "line": 74,
                      "column": 8
                    },
                    "end": {
                      "line": 74,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3373,
                    "end": 3376,
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 8
                      },
                      "end": {
                        "line": 74,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3379,
                    "end": 3428,
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 14
                      },
                      "end": {
                        "line": 74,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3379,
                      "end": 3426,
                      "loc": {
                        "start": {
                          "line": 74,
                          "column": 14
                        },
                        "end": {
                          "line": 74,
                          "column": 61
                        }
                      },
                      "object": {
                        "type": "NewExpression",
                        "start": 3379,
                        "end": 3416,
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 14
                          },
                          "end": {
                            "line": 74,
                            "column": 51
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3383,
                          "end": 3396,
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 18
                            },
                            "end": {
                              "line": 74,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3383,
                            "end": 3388,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 18
                              },
                              "end": {
                                "line": 74,
                                "column": 23
                              }
                            },
                            "name": "THREE"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3389,
                            "end": 3396,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 24
                              },
                              "end": {
                                "line": 74,
                                "column": 31
                              }
                            },
                            "name": "Vector3"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "UnaryExpression",
                            "start": 3397,
                            "end": 3403,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 32
                              },
                              "end": {
                                "line": 74,
                                "column": 38
                              }
                            },
                            "operator": "-",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 3398,
                              "end": 3403,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 33
                                },
                                "end": {
                                  "line": 74,
                                  "column": 38
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3398,
                                "end": 3401,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 36
                                  }
                                },
                                "name": "dir"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3402,
                                "end": 3403,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 38
                                  }
                                },
                                "name": "y"
                              },
                              "computed": false
                            }
                          },
                          {
                            "type": "MemberExpression",
                            "start": 3405,
                            "end": 3410,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 40
                              },
                              "end": {
                                "line": 74,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3405,
                              "end": 3408,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 40
                                },
                                "end": {
                                  "line": 74,
                                  "column": 43
                                }
                              },
                              "name": "dir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3409,
                              "end": 3410,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 44
                                },
                                "end": {
                                  "line": 74,
                                  "column": 45
                                }
                              },
                              "name": "x"
                            },
                            "computed": false
                          },
                          {
                            "type": "Literal",
                            "start": 3412,
                            "end": 3415,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 47
                              },
                              "end": {
                                "line": 74,
                                "column": 50
                              }
                            },
                            "value": 0,
                            "rawValue": 0,
                            "raw": "0.0"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3417,
                        "end": 3426,
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 52
                          },
                          "end": {
                            "line": 74,
                            "column": 61
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting center (choose best of two cases)",
                  "start": 3434,
                  "end": 3477,
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 47
                    }
                  },
                  "range": [
                    3434,
                    3477
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3482,
              "end": 3504,
              "loc": {
                "start": {
                  "line": 76,
                  "column": 4
                },
                "end": {
                  "line": 76,
                  "column": 26
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3486,
                  "end": 3489,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 8
                    },
                    "end": {
                      "line": 76,
                      "column": 11
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3486,
                    "end": 3489,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 8
                      },
                      "end": {
                        "line": 76,
                        "column": 11
                      }
                    },
                    "name": "ctr",
                    "leadingComments": null
                  },
                  "init": null,
                  "leadingComments": null
                },
                {
                  "type": "VariableDeclarator",
                  "start": 3491,
                  "end": 3503,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 13
                    },
                    "end": {
                      "line": 76,
                      "column": 25
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3491,
                    "end": 3495,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 13
                      },
                      "end": {
                        "line": 76,
                        "column": 17
                      }
                    },
                    "name": "dist"
                  },
                  "init": {
                    "type": "Literal",
                    "start": 3498,
                    "end": 3503,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 20
                      },
                      "end": {
                        "line": 76,
                        "column": 25
                      }
                    },
                    "value": 1e+50,
                    "rawValue": 1e+50,
                    "raw": "1e+50"
                  }
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting center (choose best of two cases)",
                  "start": 3434,
                  "end": 3477,
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 47
                    }
                  },
                  "range": [
                    3434,
                    3477
                  ]
                }
              ]
            },
            {
              "type": "ForStatement",
              "start": 3509,
              "end": 3774,
              "loc": {
                "start": {
                  "line": 77,
                  "column": 4
                },
                "end": {
                  "line": 84,
                  "column": 5
                }
              },
              "init": {
                "type": "VariableDeclaration",
                "start": 3514,
                "end": 3523,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 9
                  },
                  "end": {
                    "line": 77,
                    "column": 18
                  }
                },
                "declarations": [
                  {
                    "type": "VariableDeclarator",
                    "start": 3518,
                    "end": 3523,
                    "loc": {
                      "start": {
                        "line": 77,
                        "column": 13
                      },
                      "end": {
                        "line": 77,
                        "column": 18
                      }
                    },
                    "id": {
                      "type": "Identifier",
                      "start": 3518,
                      "end": 3519,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 13
                        },
                        "end": {
                          "line": 77,
                          "column": 14
                        }
                      },
                      "name": "i"
                    },
                    "init": {
                      "type": "Literal",
                      "start": 3522,
                      "end": 3523,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 17
                        },
                        "end": {
                          "line": 77,
                          "column": 18
                        }
                      },
                      "value": 0,
                      "rawValue": 0,
                      "raw": "0"
                    }
                  }
                ],
                "kind": "var"
              },
              "test": {
                "type": "BinaryExpression",
                "start": 3525,
                "end": 3530,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 20
                  },
                  "end": {
                    "line": 77,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 3525,
                  "end": 3526,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 20
                    },
                    "end": {
                      "line": 77,
                      "column": 21
                    }
                  },
                  "name": "i"
                },
                "operator": "<",
                "right": {
                  "type": "Literal",
                  "start": 3529,
                  "end": 3530,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 24
                    },
                    "end": {
                      "line": 77,
                      "column": 25
                    }
                  },
                  "value": 2,
                  "rawValue": 2,
                  "raw": "2"
                }
              },
              "update": {
                "type": "UpdateExpression",
                "start": 3532,
                "end": 3535,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 27
                  },
                  "end": {
                    "line": 77,
                    "column": 30
                  }
                },
                "operator": "++",
                "prefix": false,
                "argument": {
                  "type": "Identifier",
                  "start": 3532,
                  "end": 3533,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 27
                    },
                    "end": {
                      "line": 77,
                      "column": 28
                    }
                  },
                  "name": "i"
                }
              },
              "body": {
                "type": "BlockStatement",
                "start": 3537,
                "end": 3774,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 32
                  },
                  "end": {
                    "line": 84,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 3547,
                    "end": 3613,
                    "loc": {
                      "start": {
                        "line": 78,
                        "column": 8
                      },
                      "end": {
                        "line": 78,
                        "column": 74
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 3551,
                        "end": 3612,
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 12
                          },
                          "end": {
                            "line": 78,
                            "column": 73
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3551,
                          "end": 3555,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 12
                            },
                            "end": {
                              "line": 78,
                              "column": 16
                            }
                          },
                          "name": "tCtr"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 3558,
                          "end": 3612,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 19
                            },
                            "end": {
                              "line": 78,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3558,
                            "end": 3607,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 19
                              },
                              "end": {
                                "line": 78,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 3558,
                              "end": 3603,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 19
                                },
                                "end": {
                                  "line": 78,
                                  "column": 64
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 3558,
                                "end": 3584,
                                "loc": {
                                  "start": {
                                    "line": 78,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 45
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 3558,
                                  "end": 3569,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 30
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 3558,
                                    "end": 3567,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3558,
                                      "end": 3561,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 22
                                        }
                                      },
                                      "name": "per"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3562,
                                      "end": 3567,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 28
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3570,
                                  "end": 3584,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 45
                                    }
                                  },
                                  "name": "multiplyScalar"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "BinaryExpression",
                                  "start": 3585,
                                  "end": 3602,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 63
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3585,
                                    "end": 3591,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 52
                                      }
                                    },
                                    "name": "height"
                                  },
                                  "operator": "*",
                                  "right": {
                                    "type": "ConditionalExpression",
                                    "start": 3595,
                                    "end": 3601,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 56
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 62
                                      }
                                    },
                                    "test": {
                                      "type": "Identifier",
                                      "start": 3595,
                                      "end": 3596,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 57
                                        }
                                      },
                                      "name": "i"
                                    },
                                    "consequent": {
                                      "type": "Literal",
                                      "start": 3597,
                                      "end": 3598,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 58
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 59
                                        }
                                      },
                                      "value": 1,
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "alternate": {
                                      "type": "UnaryExpression",
                                      "start": 3599,
                                      "end": 3601,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 62
                                        }
                                      },
                                      "operator": "-",
                                      "prefix": true,
                                      "argument": {
                                        "type": "Literal",
                                        "start": 3600,
                                        "end": 3601,
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 61
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 62
                                          }
                                        },
                                        "value": 1,
                                        "rawValue": 1,
                                        "raw": "1"
                                      }
                                    },
                                    "parenthesizedExpression": true
                                  }
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3604,
                              "end": 3607,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 65
                                },
                                "end": {
                                  "line": 78,
                                  "column": 68
                                }
                              },
                              "name": "add"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 3608,
                              "end": 3611,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 69
                                },
                                "end": {
                                  "line": 78,
                                  "column": 72
                                }
                              },
                              "name": "mid"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 3622,
                    "end": 3680,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 8
                      },
                      "end": {
                        "line": 79,
                        "column": 66
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 3626,
                        "end": 3679,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 12
                          },
                          "end": {
                            "line": 79,
                            "column": 65
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3626,
                          "end": 3631,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 12
                            },
                            "end": {
                              "line": 79,
                              "column": 17
                            }
                          },
                          "name": "tDist"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 3634,
                          "end": 3679,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 20
                            },
                            "end": {
                              "line": 79,
                              "column": 65
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3634,
                            "end": 3642,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 20
                              },
                              "end": {
                                "line": 79,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3634,
                              "end": 3638,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 20
                                },
                                "end": {
                                  "line": 79,
                                  "column": 24
                                }
                              },
                              "name": "Math"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3639,
                              "end": 3642,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 25
                                },
                                "end": {
                                  "line": 79,
                                  "column": 28
                                }
                              },
                              "name": "abs"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "BinaryExpression",
                              "start": 3643,
                              "end": 3678,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 29
                                },
                                "end": {
                                  "line": 79,
                                  "column": 64
                                }
                              },
                              "left": {
                                "type": "CallExpression",
                                "start": 3643,
                                "end": 3669,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 55
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3643,
                                  "end": 3658,
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 44
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3643,
                                    "end": 3647,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 33
                                      }
                                    },
                                    "name": "tCtr"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3648,
                                    "end": 3658,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 44
                                      }
                                    },
                                    "name": "distanceTo"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3659,
                                    "end": 3668,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 45
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 54
                                      }
                                    },
                                    "name": "middlePos"
                                  }
                                ]
                              },
                              "operator": "-",
                              "right": {
                                "type": "Identifier",
                                "start": 3672,
                                "end": 3678,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 64
                                  }
                                },
                                "name": "radius"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "IfStatement",
                    "start": 3689,
                    "end": 3768,
                    "loc": {
                      "start": {
                        "line": 80,
                        "column": 8
                      },
                      "end": {
                        "line": 83,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 3693,
                      "end": 3705,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 12
                        },
                        "end": {
                          "line": 80,
                          "column": 24
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 3693,
                        "end": 3697,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 12
                          },
                          "end": {
                            "line": 80,
                            "column": 16
                          }
                        },
                        "name": "dist"
                      },
                      "operator": ">",
                      "right": {
                        "type": "Identifier",
                        "start": 3700,
                        "end": 3705,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 19
                          },
                          "end": {
                            "line": 80,
                            "column": 24
                          }
                        },
                        "name": "tDist"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 3707,
                      "end": 3768,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 26
                        },
                        "end": {
                          "line": 83,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 3721,
                          "end": 3734,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 12
                            },
                            "end": {
                              "line": 81,
                              "column": 25
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 3721,
                            "end": 3733,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 12
                              },
                              "end": {
                                "line": 81,
                                "column": 24
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 3721,
                              "end": 3725,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 12
                                },
                                "end": {
                                  "line": 81,
                                  "column": 16
                                }
                              },
                              "name": "dist"
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 3728,
                              "end": 3733,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 19
                                },
                                "end": {
                                  "line": 81,
                                  "column": 24
                                }
                              },
                              "name": "tDist"
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 3747,
                          "end": 3758,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 12
                            },
                            "end": {
                              "line": 82,
                              "column": 23
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 3747,
                            "end": 3757,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 12
                              },
                              "end": {
                                "line": 82,
                                "column": 22
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 3747,
                              "end": 3750,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 12
                                },
                                "end": {
                                  "line": 82,
                                  "column": 15
                                }
                              },
                              "name": "ctr"
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 3753,
                              "end": 3757,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 18
                                },
                                "end": {
                                  "line": 82,
                                  "column": 22
                                }
                              },
                              "name": "tCtr"
                            }
                          }
                        }
                      ]
                    },
                    "alternate": null
                  }
                ],
                "trailingComments": null
              },
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "get polar angles of all points",
                  "start": 3779,
                  "end": 3811,
                  "loc": {
                    "start": {
                      "line": 85,
                      "column": 4
                    },
                    "end": {
                      "line": 85,
                      "column": 36
                    }
                  },
                  "range": [
                    3779,
                    3811
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3816,
              "end": 3929,
              "loc": {
                "start": {
                  "line": 86,
                  "column": 4
                },
                "end": {
                  "line": 89,
                  "column": 6
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3820,
                  "end": 3928,
                  "loc": {
                    "start": {
                      "line": 86,
                      "column": 8
                    },
                    "end": {
                      "line": 89,
                      "column": 5
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3820,
                    "end": 3828,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 8
                      },
                      "end": {
                        "line": 86,
                        "column": 16
                      }
                    },
                    "name": "getAngle",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "ArrowFunctionExpression",
                    "start": 3831,
                    "end": 3928,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 19
                      },
                      "end": {
                        "line": 89,
                        "column": 5
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 3832,
                        "end": 3835,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 20
                          },
                          "end": {
                            "line": 86,
                            "column": 23
                          }
                        },
                        "name": "pos"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 3840,
                      "end": 3928,
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 28
                        },
                        "end": {
                          "line": 89,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 3850,
                          "end": 3881,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 8
                            },
                            "end": {
                              "line": 87,
                              "column": 39
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 3854,
                              "end": 3880,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 12
                                },
                                "end": {
                                  "line": 87,
                                  "column": 38
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3854,
                                "end": 3857,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 15
                                  }
                                },
                                "name": "dir"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 3860,
                                "end": 3880,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3860,
                                  "end": 3875,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 33
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 3860,
                                    "end": 3871,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 29
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 3860,
                                      "end": 3869,
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 27
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 3860,
                                        "end": 3863,
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 21
                                          }
                                        },
                                        "name": "pos"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3864,
                                        "end": 3869,
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 27
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3872,
                                    "end": 3875,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 33
                                      }
                                    },
                                    "name": "sub"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3876,
                                    "end": 3879,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 37
                                      }
                                    },
                                    "name": "ctr"
                                  }
                                ]
                              }
                            }
                          ],
                          "kind": "var"
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 3890,
                          "end": 3922,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 8
                            },
                            "end": {
                              "line": 88,
                              "column": 40
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 3897,
                            "end": 3921,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 15
                              },
                              "end": {
                                "line": 88,
                                "column": 39
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3897,
                              "end": 3907,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 15
                                },
                                "end": {
                                  "line": 88,
                                  "column": 25
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3897,
                                "end": 3901,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 19
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3902,
                                "end": 3907,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 25
                                  }
                                },
                                "name": "atan2"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 3908,
                                "end": 3913,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 31
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3908,
                                  "end": 3911,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 29
                                    }
                                  },
                                  "name": "dir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3912,
                                  "end": 3913,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 31
                                    }
                                  },
                                  "name": "y"
                                },
                                "computed": false
                              },
                              {
                                "type": "MemberExpression",
                                "start": 3915,
                                "end": 3920,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 38
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3915,
                                  "end": 3918,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 36
                                    }
                                  },
                                  "name": "dir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3919,
                                  "end": 3920,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 38
                                    }
                                  },
                                  "name": "x"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "get polar angles of all points",
                  "start": 3779,
                  "end": 3811,
                  "loc": {
                    "start": {
                      "line": 85,
                      "column": 4
                    },
                    "end": {
                      "line": 85,
                      "column": 36
                    }
                  },
                  "range": [
                    3779,
                    3811
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3934,
              "end": 3968,
              "loc": {
                "start": {
                  "line": 90,
                  "column": 4
                },
                "end": {
                  "line": 90,
                  "column": 38
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3938,
                  "end": 3967,
                  "loc": {
                    "start": {
                      "line": 90,
                      "column": 8
                    },
                    "end": {
                      "line": 90,
                      "column": 37
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3938,
                    "end": 3946,
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 8
                      },
                      "end": {
                        "line": 90,
                        "column": 16
                      }
                    },
                    "name": "startAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3949,
                    "end": 3967,
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 19
                      },
                      "end": {
                        "line": 90,
                        "column": 37
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 3949,
                      "end": 3957,
                      "loc": {
                        "start": {
                          "line": 90,
                          "column": 19
                        },
                        "end": {
                          "line": 90,
                          "column": 27
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 3958,
                        "end": 3966,
                        "loc": {
                          "start": {
                            "line": 90,
                            "column": 28
                          },
                          "end": {
                            "line": 90,
                            "column": 36
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 3973,
              "end": 4003,
              "loc": {
                "start": {
                  "line": 91,
                  "column": 4
                },
                "end": {
                  "line": 91,
                  "column": 34
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3977,
                  "end": 4002,
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 8
                    },
                    "end": {
                      "line": 91,
                      "column": 33
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3977,
                    "end": 3983,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 8
                      },
                      "end": {
                        "line": 91,
                        "column": 14
                      }
                    },
                    "name": "endAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3986,
                    "end": 4002,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 17
                      },
                      "end": {
                        "line": 91,
                        "column": 33
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 3986,
                      "end": 3994,
                      "loc": {
                        "start": {
                          "line": 91,
                          "column": 17
                        },
                        "end": {
                          "line": 91,
                          "column": 25
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 3995,
                        "end": 4001,
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 26
                          },
                          "end": {
                            "line": 91,
                            "column": 32
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4008,
              "end": 4044,
              "loc": {
                "start": {
                  "line": 92,
                  "column": 4
                },
                "end": {
                  "line": 92,
                  "column": 40
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4012,
                  "end": 4043,
                  "loc": {
                    "start": {
                      "line": 92,
                      "column": 8
                    },
                    "end": {
                      "line": 92,
                      "column": 39
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4012,
                    "end": 4021,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 8
                      },
                      "end": {
                        "line": 92,
                        "column": 17
                      }
                    },
                    "name": "middleAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4024,
                    "end": 4043,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 20
                      },
                      "end": {
                        "line": 92,
                        "column": 39
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 4024,
                      "end": 4032,
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 20
                        },
                        "end": {
                          "line": 92,
                          "column": 28
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4033,
                        "end": 4042,
                        "loc": {
                          "start": {
                            "line": 92,
                            "column": 29
                          },
                          "end": {
                            "line": 92,
                            "column": 38
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "check which part of circle to take",
                  "start": 4049,
                  "end": 4085,
                  "loc": {
                    "start": {
                      "line": 93,
                      "column": 4
                    },
                    "end": {
                      "line": 93,
                      "column": 40
                    }
                  },
                  "range": [
                    4049,
                    4085
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4090,
              "end": 4135,
              "loc": {
                "start": {
                  "line": 94,
                  "column": 4
                },
                "end": {
                  "line": 94,
                  "column": 49
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 4094,
                "end": 4111,
                "loc": {
                  "start": {
                    "line": 94,
                    "column": 8
                  },
                  "end": {
                    "line": 94,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 4094,
                  "end": 4100,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 8
                    },
                    "end": {
                      "line": 94,
                      "column": 14
                    }
                  },
                  "name": "endAng",
                  "leadingComments": null
                },
                "operator": "<",
                "right": {
                  "type": "Identifier",
                  "start": 4103,
                  "end": 4111,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 17
                    },
                    "end": {
                      "line": 94,
                      "column": 25
                    }
                  },
                  "name": "startAng"
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 4113,
                "end": 4135,
                "loc": {
                  "start": {
                    "line": 94,
                    "column": 27
                  },
                  "end": {
                    "line": 94,
                    "column": 49
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 4113,
                  "end": 4134,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 27
                    },
                    "end": {
                      "line": 94,
                      "column": 48
                    }
                  },
                  "operator": "+=",
                  "left": {
                    "type": "Identifier",
                    "start": 4113,
                    "end": 4119,
                    "loc": {
                      "start": {
                        "line": 94,
                        "column": 27
                      },
                      "end": {
                        "line": 94,
                        "column": 33
                      }
                    },
                    "name": "endAng"
                  },
                  "right": {
                    "type": "BinaryExpression",
                    "start": 4123,
                    "end": 4134,
                    "loc": {
                      "start": {
                        "line": 94,
                        "column": 37
                      },
                      "end": {
                        "line": 94,
                        "column": 48
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 4123,
                      "end": 4124,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 37
                        },
                        "end": {
                          "line": 94,
                          "column": 38
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2"
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 4127,
                      "end": 4134,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 41
                        },
                        "end": {
                          "line": 94,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4127,
                        "end": 4131,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 41
                          },
                          "end": {
                            "line": 94,
                            "column": 45
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4132,
                        "end": 4134,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 46
                          },
                          "end": {
                            "line": 94,
                            "column": 48
                          }
                        },
                        "name": "PI"
                      },
                      "computed": false
                    }
                  }
                }
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "check which part of circle to take",
                  "start": 4049,
                  "end": 4085,
                  "loc": {
                    "start": {
                      "line": 93,
                      "column": 4
                    },
                    "end": {
                      "line": 93,
                      "column": 40
                    }
                  },
                  "range": [
                    4049,
                    4085
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4140,
              "end": 4191,
              "loc": {
                "start": {
                  "line": 95,
                  "column": 4
                },
                "end": {
                  "line": 95,
                  "column": 55
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 4144,
                "end": 4164,
                "loc": {
                  "start": {
                    "line": 95,
                    "column": 8
                  },
                  "end": {
                    "line": 95,
                    "column": 28
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 4144,
                  "end": 4153,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 8
                    },
                    "end": {
                      "line": 95,
                      "column": 17
                    }
                  },
                  "name": "middleAng"
                },
                "operator": "<",
                "right": {
                  "type": "Identifier",
                  "start": 4156,
                  "end": 4164,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 20
                    },
                    "end": {
                      "line": 95,
                      "column": 28
                    }
                  },
                  "name": "startAng"
                }
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 4166,
                "end": 4191,
                "loc": {
                  "start": {
                    "line": 95,
                    "column": 30
                  },
                  "end": {
                    "line": 95,
                    "column": 55
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 4166,
                  "end": 4190,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 30
                    },
                    "end": {
                      "line": 95,
                      "column": 54
                    }
                  },
                  "operator": "+=",
                  "left": {
                    "type": "Identifier",
                    "start": 4166,
                    "end": 4175,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 30
                      },
                      "end": {
                        "line": 95,
                        "column": 39
                      }
                    },
                    "name": "middleAng"
                  },
                  "right": {
                    "type": "BinaryExpression",
                    "start": 4179,
                    "end": 4190,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 43
                      },
                      "end": {
                        "line": 95,
                        "column": 54
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 4179,
                      "end": 4180,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 43
                        },
                        "end": {
                          "line": 95,
                          "column": 44
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2"
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 4183,
                      "end": 4190,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 47
                        },
                        "end": {
                          "line": 95,
                          "column": 54
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4183,
                        "end": 4187,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 47
                          },
                          "end": {
                            "line": 95,
                            "column": 51
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4188,
                        "end": 4190,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 52
                          },
                          "end": {
                            "line": 95,
                            "column": 54
                          }
                        },
                        "name": "PI"
                      },
                      "computed": false
                    }
                  }
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 4196,
              "end": 4233,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 4
                },
                "end": {
                  "line": 96,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4200,
                  "end": 4232,
                  "loc": {
                    "start": {
                      "line": 96,
                      "column": 8
                    },
                    "end": {
                      "line": 96,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4200,
                    "end": 4209,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 8
                      },
                      "end": {
                        "line": 96,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 4213,
                    "end": 4231,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 21
                      },
                      "end": {
                        "line": 96,
                        "column": 39
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 4213,
                      "end": 4222,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 21
                        },
                        "end": {
                          "line": 96,
                          "column": 30
                        }
                      },
                      "name": "middleAng"
                    },
                    "operator": ">",
                    "right": {
                      "type": "Identifier",
                      "start": 4225,
                      "end": 4231,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 33
                        },
                        "end": {
                          "line": 96,
                          "column": 39
                        }
                      },
                      "name": "endAng"
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 4239,
              "end": 4312,
              "loc": {
                "start": {
                  "line": 98,
                  "column": 4
                },
                "end": {
                  "line": 98,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 4246,
                "end": 4311,
                "loc": {
                  "start": {
                    "line": 98,
                    "column": 11
                  },
                  "end": {
                    "line": 98,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 4247,
                    "end": 4262,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 12
                      },
                      "end": {
                        "line": 98,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4247,
                      "end": 4252,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 12
                        },
                        "end": {
                          "line": 98,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4254,
                      "end": 4262,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 19
                        },
                        "end": {
                          "line": 98,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4264,
                    "end": 4275,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 29
                      },
                      "end": {
                        "line": 98,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4264,
                      "end": 4267,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 29
                        },
                        "end": {
                          "line": 98,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4269,
                      "end": 4275,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 34
                        },
                        "end": {
                          "line": 98,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4277,
                    "end": 4288,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 42
                      },
                      "end": {
                        "line": 98,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4277,
                      "end": 4283,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 42
                        },
                        "end": {
                          "line": 98,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4285,
                      "end": 4288,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 50
                        },
                        "end": {
                          "line": 98,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4290,
                    "end": 4310,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 55
                      },
                      "end": {
                        "line": 98,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4290,
                      "end": 4299,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 55
                        },
                        "end": {
                          "line": 98,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4301,
                      "end": 4310,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 66
                        },
                        "end": {
                          "line": 98,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
            "start": 2441,
            "end": 2536,
            "loc": {
              "start": {
                "line": 57,
                "column": 0
              },
              "end": {
                "line": 57,
                "column": 95
              }
            },
            "range": [
              2441,
              2536
            ]
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
          "start": 2441,
          "end": 2536,
          "loc": {
            "start": {
              "line": 57,
              "column": 0
            },
            "end": {
              "line": 57,
              "column": 95
            }
          },
          "range": [
            2441,
            2536
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 4316,
      "end": 7344,
      "loc": {
        "start": {
          "line": 101,
          "column": 0
        },
        "end": {
          "line": 188,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 4323,
        "end": 7344,
        "loc": {
          "start": {
            "line": 101,
            "column": 7
          },
          "end": {
            "line": 188,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 4332,
          "end": 4349,
          "loc": {
            "start": {
              "line": 101,
              "column": 16
            },
            "end": {
              "line": 101,
              "column": 33
            }
          },
          "name": "drawArcBy_Angle_M"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 4350,
            "end": 4359,
            "loc": {
              "start": {
                "line": 101,
                "column": 34
              },
              "end": {
                "line": 101,
                "column": 43
              }
            },
            "name": "vertexPos"
          },
          {
            "type": "Identifier",
            "start": 4361,
            "end": 4369,
            "loc": {
              "start": {
                "line": 101,
                "column": 45
              },
              "end": {
                "line": 101,
                "column": 53
              }
            },
            "name": "startDir"
          },
          {
            "type": "Identifier",
            "start": 4371,
            "end": 4377,
            "loc": {
              "start": {
                "line": 101,
                "column": 55
              },
              "end": {
                "line": 101,
                "column": 61
              }
            },
            "name": "endDir"
          },
          {
            "type": "Identifier",
            "start": 4379,
            "end": 4388,
            "loc": {
              "start": {
                "line": 101,
                "column": 63
              },
              "end": {
                "line": 101,
                "column": 72
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 4390,
          "end": 7344,
          "loc": {
            "start": {
              "line": 101,
              "column": 74
            },
            "end": {
              "line": 188,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 4414,
              "end": 4434,
              "loc": {
                "start": {
                  "line": 104,
                  "column": 4
                },
                "end": {
                  "line": 104,
                  "column": 24
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4418,
                  "end": 4433,
                  "loc": {
                    "start": {
                      "line": 104,
                      "column": 8
                    },
                    "end": {
                      "line": 104,
                      "column": 23
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4418,
                    "end": 4421,
                    "loc": {
                      "start": {
                        "line": 104,
                        "column": 8
                      },
                      "end": {
                        "line": 104,
                        "column": 11
                      }
                    },
                    "name": "len",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "Identifier",
                    "start": 4424,
                    "end": 4433,
                    "loc": {
                      "start": {
                        "line": 104,
                        "column": 14
                      },
                      "end": {
                        "line": 104,
                        "column": 23
                      }
                    },
                    "name": "undefined"
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " to return",
                  "start": 4397,
                  "end": 4409,
                  "loc": {
                    "start": {
                      "line": 103,
                      "column": 4
                    },
                    "end": {
                      "line": 103,
                      "column": 16
                    }
                  },
                  "range": [
                    4397,
                    4409
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 4439,
              "end": 4477,
              "loc": {
                "start": {
                  "line": 105,
                  "column": 4
                },
                "end": {
                  "line": 105,
                  "column": 42
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4443,
                  "end": 4476,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 8
                    },
                    "end": {
                      "line": 105,
                      "column": 41
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4443,
                    "end": 4449,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 8
                      },
                      "end": {
                        "line": 105,
                        "column": 14
                      }
                    },
                    "name": "center"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 4452,
                    "end": 4476,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 17
                      },
                      "end": {
                        "line": 105,
                        "column": 41
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4456,
                      "end": 4469,
                      "loc": {
                        "start": {
                          "line": 105,
                          "column": 21
                        },
                        "end": {
                          "line": 105,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4456,
                        "end": 4461,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 21
                          },
                          "end": {
                            "line": 105,
                            "column": 26
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4462,
                        "end": 4469,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 27
                          },
                          "end": {
                            "line": 105,
                            "column": 34
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 4470,
                        "end": 4471,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 35
                          },
                          "end": {
                            "line": 105,
                            "column": 36
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      },
                      {
                        "type": "Literal",
                        "start": 4472,
                        "end": 4473,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 37
                          },
                          "end": {
                            "line": 105,
                            "column": 38
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      },
                      {
                        "type": "Literal",
                        "start": 4474,
                        "end": 4475,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 39
                          },
                          "end": {
                            "line": 105,
                            "column": 40
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4483,
              "end": 4560,
              "loc": {
                "start": {
                  "line": 107,
                  "column": 4
                },
                "end": {
                  "line": 107,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4487,
                  "end": 4559,
                  "loc": {
                    "start": {
                      "line": 107,
                      "column": 8
                    },
                    "end": {
                      "line": 107,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4487,
                    "end": 4496,
                    "loc": {
                      "start": {
                        "line": 107,
                        "column": 8
                      },
                      "end": {
                        "line": 107,
                        "column": 17
                      }
                    },
                    "name": "centerDir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4499,
                    "end": 4559,
                    "loc": {
                      "start": {
                        "line": 107,
                        "column": 20
                      },
                      "end": {
                        "line": 107,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4499,
                      "end": 4557,
                      "loc": {
                        "start": {
                          "line": 107,
                          "column": 20
                        },
                        "end": {
                          "line": 107,
                          "column": 78
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 4499,
                        "end": 4547,
                        "loc": {
                          "start": {
                            "line": 107,
                            "column": 20
                          },
                          "end": {
                            "line": 107,
                            "column": 68
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4499,
                          "end": 4542,
                          "loc": {
                            "start": {
                              "line": 107,
                              "column": 20
                            },
                            "end": {
                              "line": 107,
                              "column": 63
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 4499,
                            "end": 4527,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 20
                              },
                              "end": {
                                "line": 107,
                                "column": 48
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 4499,
                              "end": 4519,
                              "loc": {
                                "start": {
                                  "line": 107,
                                  "column": 20
                                },
                                "end": {
                                  "line": 107,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 4499,
                                "end": 4515,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4499,
                                  "end": 4513,
                                  "loc": {
                                    "start": {
                                      "line": 107,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 107,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4499,
                                    "end": 4507,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 28
                                      }
                                    },
                                    "name": "startDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4508,
                                    "end": 4513,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4516,
                                "end": 4519,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4520,
                                "end": 4526,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 47
                                  }
                                },
                                "name": "endDir"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4528,
                            "end": 4542,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 49
                              },
                              "end": {
                                "line": 107,
                                "column": 63
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 4543,
                            "end": 4546,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 64
                              },
                              "end": {
                                "line": 107,
                                "column": 67
                              }
                            },
                            "value": 0.5,
                            "rawValue": 0.5,
                            "raw": "0.5"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4548,
                        "end": 4557,
                        "loc": {
                          "start": {
                            "line": 107,
                            "column": 69
                          },
                          "end": {
                            "line": 107,
                            "column": 78
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4565,
              "end": 4619,
              "loc": {
                "start": {
                  "line": 108,
                  "column": 4
                },
                "end": {
                  "line": 108,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4569,
                  "end": 4618,
                  "loc": {
                    "start": {
                      "line": 108,
                      "column": 8
                    },
                    "end": {
                      "line": 108,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4569,
                    "end": 4583,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 8
                      },
                      "end": {
                        "line": 108,
                        "column": 22
                      }
                    },
                    "name": "vertexToMiddle"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4586,
                    "end": 4618,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 25
                      },
                      "end": {
                        "line": 108,
                        "column": 57
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4586,
                      "end": 4607,
                      "loc": {
                        "start": {
                          "line": 108,
                          "column": 25
                        },
                        "end": {
                          "line": 108,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 4586,
                        "end": 4603,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 25
                          },
                          "end": {
                            "line": 108,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4586,
                          "end": 4601,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 25
                            },
                            "end": {
                              "line": 108,
                              "column": 40
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 4586,
                            "end": 4595,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 25
                              },
                              "end": {
                                "line": 108,
                                "column": 34
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4596,
                            "end": 4601,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 35
                              },
                              "end": {
                                "line": 108,
                                "column": 40
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4604,
                        "end": 4607,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 43
                          },
                          "end": {
                            "line": 108,
                            "column": 46
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4608,
                        "end": 4617,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 47
                          },
                          "end": {
                            "line": 108,
                            "column": 56
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 4625,
                  "end": 4717,
                  "loc": {
                    "start": {
                      "line": 110,
                      "column": 4
                    },
                    "end": {
                      "line": 110,
                      "column": 96
                    }
                  },
                  "range": [
                    4625,
                    4717
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4722,
              "end": 4815,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 4
                },
                "end": {
                  "line": 112,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 4726,
                "end": 4793,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 8
                  },
                  "end": {
                    "line": 111,
                    "column": 75
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 4726,
                  "end": 4756,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 8
                    },
                    "end": {
                      "line": 111,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 4726,
                    "end": 4749,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 8
                      },
                      "end": {
                        "line": 111,
                        "column": 31
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4726,
                      "end": 4747,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 8
                        },
                        "end": {
                          "line": 111,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4726,
                        "end": 4740,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 8
                          },
                          "end": {
                            "line": 111,
                            "column": 22
                          }
                        },
                        "name": "vertexToMiddle",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4741,
                        "end": 4747,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 23
                          },
                          "end": {
                            "line": 111,
                            "column": 29
                          }
                        },
                        "name": "length"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "arguments": [],
                    "leadingComments": null
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 4752,
                    "end": 4756,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 34
                      },
                      "end": {
                        "line": 111,
                        "column": 38
                      }
                    },
                    "value": 0.01,
                    "rawValue": 0.01,
                    "raw": "1e-2"
                  },
                  "leadingComments": null
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 4760,
                  "end": 4793,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 42
                    },
                    "end": {
                      "line": 111,
                      "column": 75
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 4760,
                    "end": 4789,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 42
                      },
                      "end": {
                        "line": 111,
                        "column": 71
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4760,
                      "end": 4778,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 42
                        },
                        "end": {
                          "line": 111,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4760,
                        "end": 4774,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 42
                          },
                          "end": {
                            "line": 111,
                            "column": 56
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4775,
                        "end": 4778,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 57
                          },
                          "end": {
                            "line": 111,
                            "column": 60
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4779,
                        "end": 4788,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 61
                          },
                          "end": {
                            "line": 111,
                            "column": 70
                          }
                        },
                        "name": "centerDir"
                      }
                    ]
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 4792,
                    "end": 4793,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 74
                      },
                      "end": {
                        "line": 111,
                        "column": 75
                      }
                    },
                    "value": 0,
                    "rawValue": 0,
                    "raw": "0"
                  }
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 4803,
                "end": 4815,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 8
                  },
                  "end": {
                    "line": 112,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 4810,
                  "end": 4814,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 15
                    },
                    "end": {
                      "line": 112,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                },
                "trailingComments": null
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 4625,
                  "end": 4717,
                  "loc": {
                    "start": {
                      "line": 110,
                      "column": 4
                    },
                    "end": {
                      "line": 110,
                      "column": 96
                    }
                  },
                  "range": [
                    4625,
                    4717
                  ]
                }
              ],
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if  middlepos is out of filletAngle but its projection to centerDir isn't",
                  "start": 4821,
                  "end": 4897,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 4
                    },
                    "end": {
                      "line": 114,
                      "column": 80
                    }
                  },
                  "range": [
                    4821,
                    4897
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 4902,
              "end": 4939,
              "loc": {
                "start": {
                  "line": 115,
                  "column": 4
                },
                "end": {
                  "line": 115,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4906,
                  "end": 4938,
                  "loc": {
                    "start": {
                      "line": 115,
                      "column": 8
                    },
                    "end": {
                      "line": 115,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4906,
                    "end": 4911,
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 8
                      },
                      "end": {
                        "line": 115,
                        "column": 13
                      }
                    },
                    "name": "alpha",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4914,
                    "end": 4938,
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 16
                      },
                      "end": {
                        "line": 115,
                        "column": 40
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4914,
                      "end": 4928,
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 16
                        },
                        "end": {
                          "line": 115,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4914,
                        "end": 4920,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 16
                          },
                          "end": {
                            "line": 115,
                            "column": 22
                          }
                        },
                        "name": "endDir"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4921,
                        "end": 4928,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 23
                          },
                          "end": {
                            "line": 115,
                            "column": 30
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4929,
                        "end": 4937,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 31
                          },
                          "end": {
                            "line": 115,
                            "column": 39
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if  middlepos is out of filletAngle but its projection to centerDir isn't",
                  "start": 4821,
                  "end": 4897,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 4
                    },
                    "end": {
                      "line": 114,
                      "column": 80
                    }
                  },
                  "range": [
                    4821,
                    4897
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 4944,
              "end": 4999,
              "loc": {
                "start": {
                  "line": 116,
                  "column": 4
                },
                "end": {
                  "line": 116,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4948,
                  "end": 4998,
                  "loc": {
                    "start": {
                      "line": 116,
                      "column": 8
                    },
                    "end": {
                      "line": 116,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4948,
                    "end": 4963,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 8
                      },
                      "end": {
                        "line": 116,
                        "column": 23
                      }
                    },
                    "name": "angleMidToStart"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4966,
                    "end": 4998,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 26
                      },
                      "end": {
                        "line": 116,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4966,
                      "end": 4988,
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 26
                        },
                        "end": {
                          "line": 116,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4966,
                        "end": 4980,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 26
                          },
                          "end": {
                            "line": 116,
                            "column": 40
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4981,
                        "end": 4988,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 41
                          },
                          "end": {
                            "line": 116,
                            "column": 48
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4989,
                        "end": 4997,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 49
                          },
                          "end": {
                            "line": 116,
                            "column": 57
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 5004,
              "end": 5055,
              "loc": {
                "start": {
                  "line": 117,
                  "column": 4
                },
                "end": {
                  "line": 117,
                  "column": 55
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5008,
                  "end": 5054,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 8
                    },
                    "end": {
                      "line": 117,
                      "column": 54
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5008,
                    "end": 5021,
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 8
                      },
                      "end": {
                        "line": 117,
                        "column": 21
                      }
                    },
                    "name": "angleMidToEnd"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5024,
                    "end": 5054,
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 24
                      },
                      "end": {
                        "line": 117,
                        "column": 54
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5024,
                      "end": 5046,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 24
                        },
                        "end": {
                          "line": 117,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5024,
                        "end": 5038,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 24
                          },
                          "end": {
                            "line": 117,
                            "column": 38
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5039,
                        "end": 5046,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 39
                          },
                          "end": {
                            "line": 117,
                            "column": 46
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5047,
                        "end": 5053,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 47
                          },
                          "end": {
                            "line": 117,
                            "column": 53
                          }
                        },
                        "name": "endDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " project middlepos onto one of the directions if it is out of filletAngle",
                  "start": 5061,
                  "end": 5136,
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 4
                    },
                    "end": {
                      "line": 119,
                      "column": 79
                    }
                  },
                  "range": [
                    5061,
                    5136
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 5141,
              "end": 5204,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 4
                },
                "end": {
                  "line": 120,
                  "column": 67
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5145,
                  "end": 5203,
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 8
                    },
                    "end": {
                      "line": 120,
                      "column": 66
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5145,
                    "end": 5153,
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 8
                      },
                      "end": {
                        "line": 120,
                        "column": 16
                      }
                    },
                    "name": "maxAngle",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5156,
                    "end": 5203,
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 19
                      },
                      "end": {
                        "line": 120,
                        "column": 66
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5156,
                      "end": 5164,
                      "loc": {
                        "start": {
                          "line": 120,
                          "column": 19
                        },
                        "end": {
                          "line": 120,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5156,
                        "end": 5160,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 19
                          },
                          "end": {
                            "line": 120,
                            "column": 23
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5161,
                        "end": 5164,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 24
                          },
                          "end": {
                            "line": 120,
                            "column": 27
                          }
                        },
                        "name": "max"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5165,
                        "end": 5180,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 28
                          },
                          "end": {
                            "line": 120,
                            "column": 43
                          }
                        },
                        "name": "angleMidToStart"
                      },
                      {
                        "type": "Identifier",
                        "start": 5182,
                        "end": 5195,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 45
                          },
                          "end": {
                            "line": 120,
                            "column": 58
                          }
                        },
                        "name": "angleMidToEnd"
                      },
                      {
                        "type": "Identifier",
                        "start": 5197,
                        "end": 5202,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 60
                          },
                          "end": {
                            "line": 120,
                            "column": 65
                          }
                        },
                        "name": "alpha"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " project middlepos onto one of the directions if it is out of filletAngle",
                  "start": 5061,
                  "end": 5136,
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 4
                    },
                    "end": {
                      "line": 119,
                      "column": 79
                    }
                  },
                  "range": [
                    5061,
                    5136
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 5209,
              "end": 5445,
              "loc": {
                "start": {
                  "line": 121,
                  "column": 4
                },
                "end": {
                  "line": 128,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 5213,
                "end": 5231,
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 8
                  },
                  "end": {
                    "line": 121,
                    "column": 26
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 5213,
                  "end": 5221,
                  "loc": {
                    "start": {
                      "line": 121,
                      "column": 8
                    },
                    "end": {
                      "line": 121,
                      "column": 16
                    }
                  },
                  "name": "maxAngle"
                },
                "operator": "!==",
                "right": {
                  "type": "Identifier",
                  "start": 5226,
                  "end": 5231,
                  "loc": {
                    "start": {
                      "line": 121,
                      "column": 21
                    },
                    "end": {
                      "line": 121,
                      "column": 26
                    }
                  },
                  "name": "alpha"
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 5233,
                "end": 5445,
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 28
                  },
                  "end": {
                    "line": 128,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "IfStatement",
                    "start": 5243,
                    "end": 5439,
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 8
                      },
                      "end": {
                        "line": 127,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 5247,
                      "end": 5275,
                      "loc": {
                        "start": {
                          "line": 122,
                          "column": 12
                        },
                        "end": {
                          "line": 122,
                          "column": 40
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 5247,
                        "end": 5262,
                        "loc": {
                          "start": {
                            "line": 122,
                            "column": 12
                          },
                          "end": {
                            "line": 122,
                            "column": 27
                          }
                        },
                        "name": "angleMidToStart"
                      },
                      "operator": "===",
                      "right": {
                        "type": "Identifier",
                        "start": 5267,
                        "end": 5275,
                        "loc": {
                          "start": {
                            "line": 122,
                            "column": 32
                          },
                          "end": {
                            "line": 122,
                            "column": 40
                          }
                        },
                        "name": "maxAngle"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 5277,
                      "end": 5334,
                      "loc": {
                        "start": {
                          "line": 122,
                          "column": 42
                        },
                        "end": {
                          "line": 124,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 5291,
                          "end": 5324,
                          "loc": {
                            "start": {
                              "line": 123,
                              "column": 12
                            },
                            "end": {
                              "line": 123,
                              "column": 45
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 5291,
                            "end": 5323,
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 12
                              },
                              "end": {
                                "line": 123,
                                "column": 44
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 5291,
                              "end": 5294,
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 12
                                },
                                "end": {
                                  "line": 123,
                                  "column": 15
                                }
                              },
                              "name": "len"
                            },
                            "right": {
                              "type": "CallExpression",
                              "start": 5297,
                              "end": 5323,
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 18
                                },
                                "end": {
                                  "line": 123,
                                  "column": 44
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 5297,
                                "end": 5315,
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5297,
                                  "end": 5311,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 32
                                    }
                                  },
                                  "name": "vertexToMiddle"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5312,
                                  "end": 5315,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 36
                                    }
                                  },
                                  "name": "dot"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 5316,
                                  "end": 5322,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 43
                                    }
                                  },
                                  "name": "endDir"
                                }
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "alternate": {
                      "type": "IfStatement",
                      "start": 5348,
                      "end": 5439,
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 13
                        },
                        "end": {
                          "line": 127,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 5352,
                        "end": 5378,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 17
                          },
                          "end": {
                            "line": 125,
                            "column": 43
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 5352,
                          "end": 5365,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 17
                            },
                            "end": {
                              "line": 125,
                              "column": 30
                            }
                          },
                          "name": "angleMidToEnd"
                        },
                        "operator": "===",
                        "right": {
                          "type": "Identifier",
                          "start": 5370,
                          "end": 5378,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 35
                            },
                            "end": {
                              "line": 125,
                              "column": 43
                            }
                          },
                          "name": "maxAngle"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 5380,
                        "end": 5439,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 45
                          },
                          "end": {
                            "line": 127,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 5394,
                            "end": 5429,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 12
                              },
                              "end": {
                                "line": 126,
                                "column": 47
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 5394,
                              "end": 5428,
                              "loc": {
                                "start": {
                                  "line": 126,
                                  "column": 12
                                },
                                "end": {
                                  "line": 126,
                                  "column": 46
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 5394,
                                "end": 5397,
                                "loc": {
                                  "start": {
                                    "line": 126,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 126,
                                    "column": 15
                                  }
                                },
                                "name": "len"
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 5400,
                                "end": 5428,
                                "loc": {
                                  "start": {
                                    "line": 126,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 126,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5400,
                                  "end": 5418,
                                  "loc": {
                                    "start": {
                                      "line": 126,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 126,
                                      "column": 36
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5400,
                                    "end": 5414,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 32
                                      }
                                    },
                                    "name": "vertexToMiddle"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5415,
                                    "end": 5418,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 36
                                      }
                                    },
                                    "name": "dot"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5419,
                                    "end": 5427,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 45
                                      }
                                    },
                                    "name": "startDir"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "alternate": null
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 5451,
              "end": 5847,
              "loc": {
                "start": {
                  "line": 130,
                  "column": 4
                },
                "end": {
                  "line": 138,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 5455,
                "end": 5458,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 8
                  },
                  "end": {
                    "line": 130,
                    "column": 11
                  }
                },
                "name": "len"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 5460,
                "end": 5847,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 13
                  },
                  "end": {
                    "line": 138,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 5470,
                    "end": 5558,
                    "loc": {
                      "start": {
                        "line": 131,
                        "column": 8
                      },
                      "end": {
                        "line": 131,
                        "column": 96
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 5470,
                      "end": 5557,
                      "loc": {
                        "start": {
                          "line": 131,
                          "column": 8
                        },
                        "end": {
                          "line": 131,
                          "column": 95
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "start": 5470,
                        "end": 5476,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 8
                          },
                          "end": {
                            "line": 131,
                            "column": 14
                          }
                        },
                        "name": "center"
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 5479,
                        "end": 5557,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 17
                          },
                          "end": {
                            "line": 131,
                            "column": 95
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5479,
                          "end": 5500,
                          "loc": {
                            "start": {
                              "line": 131,
                              "column": 17
                            },
                            "end": {
                              "line": 131,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 5479,
                            "end": 5496,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 17
                              },
                              "end": {
                                "line": 131,
                                "column": 34
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5479,
                              "end": 5494,
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 17
                                },
                                "end": {
                                  "line": 131,
                                  "column": 32
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 5479,
                                "end": 5488,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 26
                                  }
                                },
                                "name": "vertexPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5489,
                                "end": 5494,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 32
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5497,
                            "end": 5500,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 35
                              },
                              "end": {
                                "line": 131,
                                "column": 38
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "start": 5501,
                            "end": 5556,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 39
                              },
                              "end": {
                                "line": 131,
                                "column": 94
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5501,
                              "end": 5533,
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 39
                                },
                                "end": {
                                  "line": 131,
                                  "column": 71
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5501,
                                "end": 5518,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 56
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5501,
                                  "end": 5516,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 54
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5501,
                                    "end": 5510,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 48
                                      }
                                    },
                                    "name": "centerDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5511,
                                    "end": 5516,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 54
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5519,
                                "end": 5533,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 57
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 71
                                  }
                                },
                                "name": "multiplyScalar"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "BinaryExpression",
                                "start": 5534,
                                "end": 5555,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 72
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 93
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 5534,
                                  "end": 5537,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 72
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 75
                                    }
                                  },
                                  "name": "len"
                                },
                                "operator": "/",
                                "right": {
                                  "type": "CallExpression",
                                  "start": 5538,
                                  "end": 5555,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 76
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 93
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 5538,
                                    "end": 5546,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 76
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 84
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 5538,
                                      "end": 5542,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 76
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 80
                                        }
                                      },
                                      "name": "Math"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5543,
                                      "end": 5546,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 81
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 84
                                        }
                                      },
                                      "name": "cos"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "BinaryExpression",
                                      "start": 5547,
                                      "end": 5554,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 85
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 92
                                        }
                                      },
                                      "left": {
                                        "type": "Identifier",
                                        "start": 5547,
                                        "end": 5552,
                                        "loc": {
                                          "start": {
                                            "line": 131,
                                            "column": 85
                                          },
                                          "end": {
                                            "line": 131,
                                            "column": 90
                                          }
                                        },
                                        "name": "alpha"
                                      },
                                      "operator": "/",
                                      "right": {
                                        "type": "Literal",
                                        "start": 5553,
                                        "end": 5554,
                                        "loc": {
                                          "start": {
                                            "line": 131,
                                            "column": 91
                                          },
                                          "end": {
                                            "line": 131,
                                            "column": 92
                                          }
                                        },
                                        "value": 2,
                                        "rawValue": 2,
                                        "raw": "2"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        ]
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " fillet angle < 180 => cos(alpha/2) != 0",
                        "start": 5559,
                        "end": 5601,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 97
                          },
                          "end": {
                            "line": 131,
                            "column": 139
                          }
                        },
                        "range": [
                          5559,
                          5601
                        ]
                      }
                    ]
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 5610,
                    "end": 5841,
                    "loc": {
                      "start": {
                        "line": 132,
                        "column": 8
                      },
                      "end": {
                        "line": 137,
                        "column": 10
                      }
                    },
                    "argument": {
                      "type": "ObjectExpression",
                      "start": 5617,
                      "end": 5840,
                      "loc": {
                        "start": {
                          "line": 132,
                          "column": 15
                        },
                        "end": {
                          "line": 137,
                          "column": 9
                        }
                      },
                      "properties": [
                        {
                          "type": "Property",
                          "start": 5631,
                          "end": 5697,
                          "loc": {
                            "start": {
                              "line": 133,
                              "column": 12
                            },
                            "end": {
                              "line": 133,
                              "column": 78
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5631,
                            "end": 5636,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 12
                              },
                              "end": {
                                "line": 133,
                                "column": 17
                              }
                            },
                            "name": "start",
                            "leadingComments": null
                          },
                          "value": {
                            "type": "CallExpression",
                            "start": 5638,
                            "end": 5697,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 19
                              },
                              "end": {
                                "line": 133,
                                "column": 78
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5638,
                              "end": 5659,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 19
                                },
                                "end": {
                                  "line": 133,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5638,
                                "end": 5655,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5638,
                                  "end": 5653,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5638,
                                    "end": 5647,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 28
                                      }
                                    },
                                    "name": "vertexPos"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5648,
                                    "end": 5653,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5656,
                                "end": 5659,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "CallExpression",
                                "start": 5660,
                                "end": 5696,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 77
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5660,
                                  "end": 5691,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 72
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 5660,
                                    "end": 5676,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 57
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 5660,
                                      "end": 5674,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 55
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5660,
                                        "end": 5668,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 49
                                          }
                                        },
                                        "name": "startDir"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5669,
                                        "end": 5674,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 50
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 55
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5677,
                                    "end": 5691,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 72
                                      }
                                    },
                                    "name": "multiplyScalar"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5692,
                                    "end": 5695,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 73
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 76
                                      }
                                    },
                                    "name": "len"
                                  }
                                ]
                              }
                            ]
                          },
                          "kind": "init",
                          "leadingComments": null
                        },
                        {
                          "type": "Property",
                          "start": 5711,
                          "end": 5773,
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 12
                            },
                            "end": {
                              "line": 134,
                              "column": 74
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5711,
                            "end": 5714,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 12
                              },
                              "end": {
                                "line": 134,
                                "column": 15
                              }
                            },
                            "name": "end"
                          },
                          "value": {
                            "type": "CallExpression",
                            "start": 5716,
                            "end": 5773,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 17
                              },
                              "end": {
                                "line": 134,
                                "column": 74
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5716,
                              "end": 5737,
                              "loc": {
                                "start": {
                                  "line": 134,
                                  "column": 17
                                },
                                "end": {
                                  "line": 134,
                                  "column": 38
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5716,
                                "end": 5733,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 34
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5716,
                                  "end": 5731,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5716,
                                    "end": 5725,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 26
                                      }
                                    },
                                    "name": "vertexPos"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5726,
                                    "end": 5731,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 32
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5734,
                                "end": 5737,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 38
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "CallExpression",
                                "start": 5738,
                                "end": 5772,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 73
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5738,
                                  "end": 5767,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 68
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 5738,
                                    "end": 5752,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 53
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 5738,
                                      "end": 5750,
                                      "loc": {
                                        "start": {
                                          "line": 134,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 134,
                                          "column": 51
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5738,
                                        "end": 5744,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 45
                                          }
                                        },
                                        "name": "endDir"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5745,
                                        "end": 5750,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 51
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5753,
                                    "end": 5767,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 68
                                      }
                                    },
                                    "name": "multiplyScalar"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5768,
                                    "end": 5771,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 69
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 72
                                      }
                                    },
                                    "name": "len"
                                  }
                                ]
                              }
                            ]
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 5787,
                          "end": 5801,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 12
                            },
                            "end": {
                              "line": 135,
                              "column": 26
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5787,
                            "end": 5793,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 12
                              },
                              "end": {
                                "line": 135,
                                "column": 18
                              }
                            },
                            "name": "center"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 5795,
                            "end": 5801,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 20
                              },
                              "end": {
                                "line": 135,
                                "column": 26
                              }
                            },
                            "name": "center"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 5815,
                          "end": 5830,
                          "loc": {
                            "start": {
                              "line": 136,
                              "column": 12
                            },
                            "end": {
                              "line": 136,
                              "column": 27
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5815,
                            "end": 5824,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 12
                              },
                              "end": {
                                "line": 136,
                                "column": 21
                              }
                            },
                            "name": "clockwise"
                          },
                          "value": {
                            "type": "Literal",
                            "start": 5826,
                            "end": 5830,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 23
                              },
                              "end": {
                                "line": 136,
                                "column": 27
                              }
                            },
                            "value": true,
                            "rawValue": true,
                            "raw": "true"
                          },
                          "kind": "init"
                        }
                      ],
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " fillet angle < 180 => cos(alpha/2) != 0",
                        "start": 5559,
                        "end": 5601,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 97
                          },
                          "end": {
                            "line": 131,
                            "column": 139
                          }
                        },
                        "range": [
                          5559,
                          5601
                        ]
                      }
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 5854,
              "end": 5903,
              "loc": {
                "start": {
                  "line": 141,
                  "column": 4
                },
                "end": {
                  "line": 141,
                  "column": 53
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5858,
                  "end": 5902,
                  "loc": {
                    "start": {
                      "line": 141,
                      "column": 8
                    },
                    "end": {
                      "line": 141,
                      "column": 52
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5858,
                    "end": 5867,
                    "loc": {
                      "start": {
                        "line": 141,
                        "column": 8
                      },
                      "end": {
                        "line": 141,
                        "column": 17
                      }
                    },
                    "name": "middleNew"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5870,
                    "end": 5902,
                    "loc": {
                      "start": {
                        "line": 141,
                        "column": 20
                      },
                      "end": {
                        "line": 141,
                        "column": 52
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5870,
                      "end": 5891,
                      "loc": {
                        "start": {
                          "line": 141,
                          "column": 20
                        },
                        "end": {
                          "line": 141,
                          "column": 41
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 5870,
                        "end": 5887,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 20
                          },
                          "end": {
                            "line": 141,
                            "column": 37
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5870,
                          "end": 5885,
                          "loc": {
                            "start": {
                              "line": 141,
                              "column": 20
                            },
                            "end": {
                              "line": 141,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5870,
                            "end": 5879,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 20
                              },
                              "end": {
                                "line": 141,
                                "column": 29
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5880,
                            "end": 5885,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 30
                              },
                              "end": {
                                "line": 141,
                                "column": 35
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5888,
                        "end": 5891,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 38
                          },
                          "end": {
                            "line": 141,
                            "column": 41
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5892,
                        "end": 5901,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 42
                          },
                          "end": {
                            "line": 141,
                            "column": 51
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 5909,
              "end": 5956,
              "loc": {
                "start": {
                  "line": 143,
                  "column": 4
                },
                "end": {
                  "line": 143,
                  "column": 51
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5913,
                  "end": 5955,
                  "loc": {
                    "start": {
                      "line": 143,
                      "column": 8
                    },
                    "end": {
                      "line": 143,
                      "column": 50
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5913,
                    "end": 5920,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 8
                      },
                      "end": {
                        "line": 143,
                        "column": 15
                      }
                    },
                    "name": "sinA2Sq"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5923,
                    "end": 5955,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 18
                      },
                      "end": {
                        "line": 143,
                        "column": 50
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5923,
                      "end": 5931,
                      "loc": {
                        "start": {
                          "line": 143,
                          "column": 18
                        },
                        "end": {
                          "line": 143,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5923,
                        "end": 5927,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 18
                          },
                          "end": {
                            "line": 143,
                            "column": 22
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5928,
                        "end": 5931,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 23
                          },
                          "end": {
                            "line": 143,
                            "column": 26
                          }
                        },
                        "name": "pow"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 5932,
                        "end": 5951,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 27
                          },
                          "end": {
                            "line": 143,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5932,
                          "end": 5940,
                          "loc": {
                            "start": {
                              "line": 143,
                              "column": 27
                            },
                            "end": {
                              "line": 143,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5932,
                            "end": 5936,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 27
                              },
                              "end": {
                                "line": 143,
                                "column": 31
                              }
                            },
                            "name": "Math"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5937,
                            "end": 5940,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 32
                              },
                              "end": {
                                "line": 143,
                                "column": 35
                              }
                            },
                            "name": "sin"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "BinaryExpression",
                            "start": 5941,
                            "end": 5950,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 36
                              },
                              "end": {
                                "line": 143,
                                "column": 45
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 5941,
                              "end": 5946,
                              "loc": {
                                "start": {
                                  "line": 143,
                                  "column": 36
                                },
                                "end": {
                                  "line": 143,
                                  "column": 41
                                }
                              },
                              "name": "alpha"
                            },
                            "operator": "/",
                            "right": {
                              "type": "Literal",
                              "start": 5949,
                              "end": 5950,
                              "loc": {
                                "start": {
                                  "line": 143,
                                  "column": 44
                                },
                                "end": {
                                  "line": 143,
                                  "column": 45
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            }
                          }
                        ]
                      },
                      {
                        "type": "Literal",
                        "start": 5953,
                        "end": 5954,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 48
                          },
                          "end": {
                            "line": 143,
                            "column": 49
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 5961,
              "end": 5987,
              "loc": {
                "start": {
                  "line": 144,
                  "column": 4
                },
                "end": {
                  "line": 144,
                  "column": 30
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5965,
                  "end": 5986,
                  "loc": {
                    "start": {
                      "line": 144,
                      "column": 8
                    },
                    "end": {
                      "line": 144,
                      "column": 29
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5965,
                    "end": 5972,
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 8
                      },
                      "end": {
                        "line": 144,
                        "column": 15
                      }
                    },
                    "name": "cosA2Sq"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 5975,
                    "end": 5986,
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 18
                      },
                      "end": {
                        "line": 144,
                        "column": 29
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 5975,
                      "end": 5976,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 18
                        },
                        "end": {
                          "line": 144,
                          "column": 19
                        }
                      },
                      "value": 1,
                      "rawValue": 1,
                      "raw": "1"
                    },
                    "operator": "-",
                    "right": {
                      "type": "Identifier",
                      "start": 5979,
                      "end": 5986,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 22
                        },
                        "end": {
                          "line": 144,
                          "column": 29
                        }
                      },
                      "name": "sinA2Sq"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 5993,
              "end": 6023,
              "loc": {
                "start": {
                  "line": 146,
                  "column": 4
                },
                "end": {
                  "line": 146,
                  "column": 34
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5997,
                  "end": 6022,
                  "loc": {
                    "start": {
                      "line": 146,
                      "column": 8
                    },
                    "end": {
                      "line": 146,
                      "column": 33
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5997,
                    "end": 5999,
                    "loc": {
                      "start": {
                        "line": 146,
                        "column": 8
                      },
                      "end": {
                        "line": 146,
                        "column": 10
                      }
                    },
                    "name": "A0"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 6002,
                    "end": 6022,
                    "loc": {
                      "start": {
                        "line": 146,
                        "column": 13
                      },
                      "end": {
                        "line": 146,
                        "column": 33
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 6002,
                      "end": 6020,
                      "loc": {
                        "start": {
                          "line": 146,
                          "column": 13
                        },
                        "end": {
                          "line": 146,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6002,
                        "end": 6011,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 13
                          },
                          "end": {
                            "line": 146,
                            "column": 22
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6012,
                        "end": 6020,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 23
                          },
                          "end": {
                            "line": 146,
                            "column": 31
                          }
                        },
                        "name": "lengthSq"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6028,
              "end": 6055,
              "loc": {
                "start": {
                  "line": 147,
                  "column": 4
                },
                "end": {
                  "line": 147,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6032,
                  "end": 6054,
                  "loc": {
                    "start": {
                      "line": 147,
                      "column": 8
                    },
                    "end": {
                      "line": 147,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6032,
                    "end": 6034,
                    "loc": {
                      "start": {
                        "line": 147,
                        "column": 8
                      },
                      "end": {
                        "line": 147,
                        "column": 10
                      }
                    },
                    "name": "A1"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 6037,
                    "end": 6054,
                    "loc": {
                      "start": {
                        "line": 147,
                        "column": 13
                      },
                      "end": {
                        "line": 147,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 6037,
                      "end": 6040,
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 13
                        },
                        "end": {
                          "line": 147,
                          "column": 16
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "Literal",
                        "start": 6039,
                        "end": 6040,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 15
                          },
                          "end": {
                            "line": 147,
                            "column": 16
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 6043,
                      "end": 6054,
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 19
                        },
                        "end": {
                          "line": 147,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6043,
                        "end": 6052,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 19
                          },
                          "end": {
                            "line": 147,
                            "column": 28
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6053,
                        "end": 6054,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 29
                          },
                          "end": {
                            "line": 147,
                            "column": 30
                          }
                        },
                        "name": "x"
                      },
                      "computed": false
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6060,
              "end": 6087,
              "loc": {
                "start": {
                  "line": 148,
                  "column": 4
                },
                "end": {
                  "line": 148,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6064,
                  "end": 6086,
                  "loc": {
                    "start": {
                      "line": 148,
                      "column": 8
                    },
                    "end": {
                      "line": 148,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6064,
                    "end": 6066,
                    "loc": {
                      "start": {
                        "line": 148,
                        "column": 8
                      },
                      "end": {
                        "line": 148,
                        "column": 10
                      }
                    },
                    "name": "A2"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 6069,
                    "end": 6086,
                    "loc": {
                      "start": {
                        "line": 148,
                        "column": 13
                      },
                      "end": {
                        "line": 148,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 6069,
                      "end": 6072,
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 13
                        },
                        "end": {
                          "line": 148,
                          "column": 16
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "Literal",
                        "start": 6071,
                        "end": 6072,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 15
                          },
                          "end": {
                            "line": 148,
                            "column": 16
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 6075,
                      "end": 6086,
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 19
                        },
                        "end": {
                          "line": 148,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6075,
                        "end": 6084,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 19
                          },
                          "end": {
                            "line": 148,
                            "column": 28
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6085,
                        "end": 6086,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 29
                          },
                          "end": {
                            "line": 148,
                            "column": 30
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    }
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "if (centerDir.x === 0) {",
                  "start": 6093,
                  "end": 6119,
                  "loc": {
                    "start": {
                      "line": 150,
                      "column": 4
                    },
                    "end": {
                      "line": 150,
                      "column": 30
                    }
                  },
                  "range": [
                    6093,
                    6119
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var sign = centerDir.dot(new THREE.Vector3(0,1,0));",
                  "start": 6124,
                  "end": 6181,
                  "loc": {
                    "start": {
                      "line": 151,
                      "column": 4
                    },
                    "end": {
                      "line": 151,
                      "column": 61
                    }
                  },
                  "range": [
                    6124,
                    6181
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var discr = Math.pow(A2, 2) - 4 * cosA2Sq * A0;",
                  "start": 6186,
                  "end": 6239,
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 4
                    },
                    "end": {
                      "line": 152,
                      "column": 57
                    }
                  },
                  "range": [
                    6186,
                    6239
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var Oy = (-A2 + sign * Math.sqrt(discr)) / (2 * cosA2Sq);",
                  "start": 6244,
                  "end": 6307,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 4
                    },
                    "end": {
                      "line": 153,
                      "column": 67
                    }
                  },
                  "range": [
                    6244,
                    6307
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "",
                  "start": 6312,
                  "end": 6314,
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 4
                    },
                    "end": {
                      "line": 154,
                      "column": 6
                    }
                  },
                  "range": [
                    6312,
                    6314
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.x = 0;",
                  "start": 6319,
                  "end": 6338,
                  "loc": {
                    "start": {
                      "line": 155,
                      "column": 4
                    },
                    "end": {
                      "line": 155,
                      "column": 23
                    }
                  },
                  "range": [
                    6319,
                    6338
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.y = Oy;",
                  "start": 6343,
                  "end": 6363,
                  "loc": {
                    "start": {
                      "line": 156,
                      "column": 4
                    },
                    "end": {
                      "line": 156,
                      "column": 24
                    }
                  },
                  "range": [
                    6343,
                    6363
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "} else",
                  "start": 6368,
                  "end": 6376,
                  "loc": {
                    "start": {
                      "line": 157,
                      "column": 4
                    },
                    "end": {
                      "line": 157,
                      "column": 12
                    }
                  },
                  "range": [
                    6368,
                    6376
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 6381,
              "end": 7047,
              "loc": {
                "start": {
                  "line": 158,
                  "column": 4
                },
                "end": {
                  "line": 177,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 6385,
                "end": 6402,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 8
                  },
                  "end": {
                    "line": 158,
                    "column": 25
                  }
                },
                "left": {
                  "type": "MemberExpression",
                  "start": 6385,
                  "end": 6396,
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 8
                    },
                    "end": {
                      "line": 158,
                      "column": 19
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 6385,
                    "end": 6394,
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 8
                      },
                      "end": {
                        "line": 158,
                        "column": 17
                      }
                    },
                    "name": "centerDir",
                    "leadingComments": null
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 6395,
                    "end": 6396,
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 18
                      },
                      "end": {
                        "line": 158,
                        "column": 19
                      }
                    },
                    "name": "y"
                  },
                  "computed": false,
                  "leadingComments": null
                },
                "operator": "===",
                "right": {
                  "type": "Literal",
                  "start": 6401,
                  "end": 6402,
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 24
                    },
                    "end": {
                      "line": 158,
                      "column": 25
                    }
                  },
                  "value": 0,
                  "rawValue": 0,
                  "raw": "0"
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 6404,
                "end": 6639,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 27
                  },
                  "end": {
                    "line": 165,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 6414,
                    "end": 6465,
                    "loc": {
                      "start": {
                        "line": 159,
                        "column": 8
                      },
                      "end": {
                        "line": 159,
                        "column": 59
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6418,
                        "end": 6464,
                        "loc": {
                          "start": {
                            "line": 159,
                            "column": 12
                          },
                          "end": {
                            "line": 159,
                            "column": 58
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6418,
                          "end": 6422,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 12
                            },
                            "end": {
                              "line": 159,
                              "column": 16
                            }
                          },
                          "name": "sign"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 6425,
                          "end": 6464,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 19
                            },
                            "end": {
                              "line": 159,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 6425,
                            "end": 6438,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 19
                              },
                              "end": {
                                "line": 159,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6425,
                              "end": 6434,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 19
                                },
                                "end": {
                                  "line": 159,
                                  "column": 28
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6435,
                              "end": 6438,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 29
                                },
                                "end": {
                                  "line": 159,
                                  "column": 32
                                }
                              },
                              "name": "dot"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 6439,
                              "end": 6463,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 33
                                },
                                "end": {
                                  "line": 159,
                                  "column": 57
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 6443,
                                "end": 6456,
                                "loc": {
                                  "start": {
                                    "line": 159,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 159,
                                    "column": 50
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 6443,
                                  "end": 6448,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 42
                                    }
                                  },
                                  "name": "THREE"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 6449,
                                  "end": 6456,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 50
                                    }
                                  },
                                  "name": "Vector3"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "start": 6457,
                                  "end": 6458,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 52
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6459,
                                  "end": 6460,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 54
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6461,
                                  "end": 6462,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 56
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6474,
                    "end": 6521,
                    "loc": {
                      "start": {
                        "line": 160,
                        "column": 8
                      },
                      "end": {
                        "line": 160,
                        "column": 55
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6478,
                        "end": 6520,
                        "loc": {
                          "start": {
                            "line": 160,
                            "column": 12
                          },
                          "end": {
                            "line": 160,
                            "column": 54
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6478,
                          "end": 6483,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 12
                            },
                            "end": {
                              "line": 160,
                              "column": 17
                            }
                          },
                          "name": "discr"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6486,
                          "end": 6520,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 20
                            },
                            "end": {
                              "line": 160,
                              "column": 54
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 6486,
                            "end": 6501,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 20
                              },
                              "end": {
                                "line": 160,
                                "column": 35
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 6486,
                              "end": 6494,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 20
                                },
                                "end": {
                                  "line": 160,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 6486,
                                "end": 6490,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 24
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 6491,
                                "end": 6494,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 28
                                  }
                                },
                                "name": "pow"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 6495,
                                "end": 6497,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 31
                                  }
                                },
                                "name": "A1"
                              },
                              {
                                "type": "Literal",
                                "start": 6499,
                                "end": 6500,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 34
                                  }
                                },
                                "value": 2,
                                "rawValue": 2,
                                "raw": "2"
                              }
                            ]
                          },
                          "operator": "-",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6504,
                            "end": 6520,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 38
                              },
                              "end": {
                                "line": 160,
                                "column": 54
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 6504,
                              "end": 6515,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 38
                                },
                                "end": {
                                  "line": 160,
                                  "column": 49
                                }
                              },
                              "left": {
                                "type": "Literal",
                                "start": 6504,
                                "end": 6505,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 39
                                  }
                                },
                                "value": 4,
                                "rawValue": 4,
                                "raw": "4"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 6508,
                                "end": 6515,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 49
                                  }
                                },
                                "name": "cosA2Sq"
                              }
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6518,
                              "end": 6520,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 52
                                },
                                "end": {
                                  "line": 160,
                                  "column": 54
                                }
                              },
                              "name": "A0"
                            }
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6530,
                    "end": 6587,
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 8
                      },
                      "end": {
                        "line": 161,
                        "column": 65
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6534,
                        "end": 6586,
                        "loc": {
                          "start": {
                            "line": 161,
                            "column": 12
                          },
                          "end": {
                            "line": 161,
                            "column": 64
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6534,
                          "end": 6536,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 12
                            },
                            "end": {
                              "line": 161,
                              "column": 14
                            }
                          },
                          "name": "Ox"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6539,
                          "end": 6586,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 17
                            },
                            "end": {
                              "line": 161,
                              "column": 64
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6540,
                            "end": 6569,
                            "loc": {
                              "start": {
                                "line": 161,
                                "column": 18
                              },
                              "end": {
                                "line": 161,
                                "column": 47
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 6540,
                              "end": 6543,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 18
                                },
                                "end": {
                                  "line": 161,
                                  "column": 21
                                }
                              },
                              "operator": "-",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 6541,
                                "end": 6543,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 21
                                  }
                                },
                                "name": "A1"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 6546,
                              "end": 6569,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 24
                                },
                                "end": {
                                  "line": 161,
                                  "column": 47
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 6546,
                                "end": 6550,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 28
                                  }
                                },
                                "name": "sign"
                              },
                              "operator": "*",
                              "right": {
                                "type": "CallExpression",
                                "start": 6553,
                                "end": 6569,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 47
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 6553,
                                  "end": 6562,
                                  "loc": {
                                    "start": {
                                      "line": 161,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 161,
                                      "column": 40
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 6553,
                                    "end": 6557,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 35
                                      }
                                    },
                                    "name": "Math"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 6558,
                                    "end": 6562,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 40
                                      }
                                    },
                                    "name": "sqrt"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 6563,
                                    "end": 6568,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 46
                                      }
                                    },
                                    "name": "discr"
                                  }
                                ]
                              }
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6574,
                            "end": 6585,
                            "loc": {
                              "start": {
                                "line": 161,
                                "column": 52
                              },
                              "end": {
                                "line": 161,
                                "column": 63
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 6574,
                              "end": 6575,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 52
                                },
                                "end": {
                                  "line": 161,
                                  "column": 53
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6578,
                              "end": 6585,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 56
                                },
                                "end": {
                                  "line": 161,
                                  "column": 63
                                }
                              },
                              "name": "cosA2Sq"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 6597,
                    "end": 6611,
                    "loc": {
                      "start": {
                        "line": 163,
                        "column": 8
                      },
                      "end": {
                        "line": 163,
                        "column": 22
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 6597,
                      "end": 6610,
                      "loc": {
                        "start": {
                          "line": 163,
                          "column": 8
                        },
                        "end": {
                          "line": 163,
                          "column": 21
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 6597,
                        "end": 6605,
                        "loc": {
                          "start": {
                            "line": 163,
                            "column": 8
                          },
                          "end": {
                            "line": 163,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 6597,
                          "end": 6603,
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 8
                            },
                            "end": {
                              "line": 163,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6604,
                          "end": 6605,
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 15
                            },
                            "end": {
                              "line": 163,
                              "column": 16
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 6608,
                        "end": 6610,
                        "loc": {
                          "start": {
                            "line": 163,
                            "column": 19
                          },
                          "end": {
                            "line": 163,
                            "column": 21
                          }
                        },
                        "name": "Ox"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 6620,
                    "end": 6633,
                    "loc": {
                      "start": {
                        "line": 164,
                        "column": 8
                      },
                      "end": {
                        "line": 164,
                        "column": 21
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 6620,
                      "end": 6632,
                      "loc": {
                        "start": {
                          "line": 164,
                          "column": 8
                        },
                        "end": {
                          "line": 164,
                          "column": 20
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 6620,
                        "end": 6628,
                        "loc": {
                          "start": {
                            "line": 164,
                            "column": 8
                          },
                          "end": {
                            "line": 164,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 6620,
                          "end": 6626,
                          "loc": {
                            "start": {
                              "line": 164,
                              "column": 8
                            },
                            "end": {
                              "line": 164,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6627,
                          "end": 6628,
                          "loc": {
                            "start": {
                              "line": 164,
                              "column": 15
                            },
                            "end": {
                              "line": 164,
                              "column": 16
                            }
                          },
                          "name": "y"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Literal",
                        "start": 6631,
                        "end": 6632,
                        "loc": {
                          "start": {
                            "line": 164,
                            "column": 19
                          },
                          "end": {
                            "line": 164,
                            "column": 20
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      }
                    }
                  }
                ]
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 6645,
                "end": 7047,
                "loc": {
                  "start": {
                    "line": 165,
                    "column": 11
                  },
                  "end": {
                    "line": 177,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 6655,
                    "end": 6706,
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 8
                      },
                      "end": {
                        "line": 166,
                        "column": 59
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6659,
                        "end": 6705,
                        "loc": {
                          "start": {
                            "line": 166,
                            "column": 12
                          },
                          "end": {
                            "line": 166,
                            "column": 58
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6659,
                          "end": 6663,
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 12
                            },
                            "end": {
                              "line": 166,
                              "column": 16
                            }
                          },
                          "name": "sign"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 6666,
                          "end": 6705,
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 19
                            },
                            "end": {
                              "line": 166,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 6666,
                            "end": 6679,
                            "loc": {
                              "start": {
                                "line": 166,
                                "column": 19
                              },
                              "end": {
                                "line": 166,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6666,
                              "end": 6675,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 19
                                },
                                "end": {
                                  "line": 166,
                                  "column": 28
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6676,
                              "end": 6679,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 29
                                },
                                "end": {
                                  "line": 166,
                                  "column": 32
                                }
                              },
                              "name": "dot"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 6680,
                              "end": 6704,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 33
                                },
                                "end": {
                                  "line": 166,
                                  "column": 57
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 6684,
                                "end": 6697,
                                "loc": {
                                  "start": {
                                    "line": 166,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 166,
                                    "column": 50
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 6684,
                                  "end": 6689,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 42
                                    }
                                  },
                                  "name": "THREE"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 6690,
                                  "end": 6697,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 50
                                    }
                                  },
                                  "name": "Vector3"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "start": 6698,
                                  "end": 6699,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 52
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6700,
                                  "end": 6701,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 54
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6702,
                                  "end": 6703,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 56
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6715,
                    "end": 6758,
                    "loc": {
                      "start": {
                        "line": 167,
                        "column": 8
                      },
                      "end": {
                        "line": 167,
                        "column": 51
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6719,
                        "end": 6757,
                        "loc": {
                          "start": {
                            "line": 167,
                            "column": 12
                          },
                          "end": {
                            "line": 167,
                            "column": 50
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6719,
                          "end": 6729,
                          "loc": {
                            "start": {
                              "line": 167,
                              "column": 12
                            },
                            "end": {
                              "line": 167,
                              "column": 22
                            }
                          },
                          "name": "proportion"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6732,
                          "end": 6757,
                          "loc": {
                            "start": {
                              "line": 167,
                              "column": 25
                            },
                            "end": {
                              "line": 167,
                              "column": 50
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 6732,
                            "end": 6743,
                            "loc": {
                              "start": {
                                "line": 167,
                                "column": 25
                              },
                              "end": {
                                "line": 167,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6732,
                              "end": 6741,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 25
                                },
                                "end": {
                                  "line": 167,
                                  "column": 34
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6742,
                              "end": 6743,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 35
                                },
                                "end": {
                                  "line": 167,
                                  "column": 36
                                }
                              },
                              "name": "x"
                            },
                            "computed": false
                          },
                          "operator": "/",
                          "right": {
                            "type": "MemberExpression",
                            "start": 6746,
                            "end": 6757,
                            "loc": {
                              "start": {
                                "line": 167,
                                "column": 39
                              },
                              "end": {
                                "line": 167,
                                "column": 50
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6746,
                              "end": 6755,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 39
                                },
                                "end": {
                                  "line": 167,
                                  "column": 48
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6756,
                              "end": 6757,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 49
                                },
                                "end": {
                                  "line": 167,
                                  "column": 50
                                }
                              },
                              "name": "y"
                            },
                            "computed": false
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6767,
                    "end": 6815,
                    "loc": {
                      "start": {
                        "line": 168,
                        "column": 8
                      },
                      "end": {
                        "line": 168,
                        "column": 56
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6771,
                        "end": 6814,
                        "loc": {
                          "start": {
                            "line": 168,
                            "column": 12
                          },
                          "end": {
                            "line": 168,
                            "column": 55
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6771,
                          "end": 6772,
                          "loc": {
                            "start": {
                              "line": 168,
                              "column": 12
                            },
                            "end": {
                              "line": 168,
                              "column": 13
                            }
                          },
                          "name": "A"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6775,
                          "end": 6814,
                          "loc": {
                            "start": {
                              "line": 168,
                              "column": 16
                            },
                            "end": {
                              "line": 168,
                              "column": 55
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6776,
                            "end": 6803,
                            "loc": {
                              "start": {
                                "line": 168,
                                "column": 17
                              },
                              "end": {
                                "line": 168,
                                "column": 44
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 6776,
                              "end": 6799,
                              "loc": {
                                "start": {
                                  "line": 168,
                                  "column": 17
                                },
                                "end": {
                                  "line": 168,
                                  "column": 40
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 6776,
                                "end": 6786,
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 27
                                  }
                                },
                                "name": "proportion"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 6789,
                                "end": 6799,
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 40
                                  }
                                },
                                "name": "proportion"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "Literal",
                              "start": 6802,
                              "end": 6803,
                              "loc": {
                                "start": {
                                  "line": 168,
                                  "column": 43
                                },
                                "end": {
                                  "line": 168,
                                  "column": 44
                                }
                              },
                              "value": 1,
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "*",
                          "right": {
                            "type": "Identifier",
                            "start": 6807,
                            "end": 6814,
                            "loc": {
                              "start": {
                                "line": 168,
                                "column": 48
                              },
                              "end": {
                                "line": 168,
                                "column": 55
                              }
                            },
                            "name": "cosA2Sq"
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6824,
                    "end": 6853,
                    "loc": {
                      "start": {
                        "line": 169,
                        "column": 8
                      },
                      "end": {
                        "line": 169,
                        "column": 37
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6828,
                        "end": 6852,
                        "loc": {
                          "start": {
                            "line": 169,
                            "column": 12
                          },
                          "end": {
                            "line": 169,
                            "column": 36
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6828,
                          "end": 6829,
                          "loc": {
                            "start": {
                              "line": 169,
                              "column": 12
                            },
                            "end": {
                              "line": 169,
                              "column": 13
                            }
                          },
                          "name": "B"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6832,
                          "end": 6852,
                          "loc": {
                            "start": {
                              "line": 169,
                              "column": 16
                            },
                            "end": {
                              "line": 169,
                              "column": 36
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6832,
                            "end": 6847,
                            "loc": {
                              "start": {
                                "line": 169,
                                "column": 16
                              },
                              "end": {
                                "line": 169,
                                "column": 31
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 6832,
                              "end": 6834,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 16
                                },
                                "end": {
                                  "line": 169,
                                  "column": 18
                                }
                              },
                              "name": "A1"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6837,
                              "end": 6847,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 21
                                },
                                "end": {
                                  "line": 169,
                                  "column": 31
                                }
                              },
                              "name": "proportion"
                            }
                          },
                          "operator": "+",
                          "right": {
                            "type": "Identifier",
                            "start": 6850,
                            "end": 6852,
                            "loc": {
                              "start": {
                                "line": 169,
                                "column": 34
                              },
                              "end": {
                                "line": 169,
                                "column": 36
                              }
                            },
                            "name": "A2"
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6862,
                    "end": 6873,
                    "loc": {
                      "start": {
                        "line": 170,
                        "column": 8
                      },
                      "end": {
                        "line": 170,
                        "column": 19
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6866,
                        "end": 6872,
                        "loc": {
                          "start": {
                            "line": 170,
                            "column": 12
                          },
                          "end": {
                            "line": 170,
                            "column": 18
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6866,
                          "end": 6867,
                          "loc": {
                            "start": {
                              "line": 170,
                              "column": 12
                            },
                            "end": {
                              "line": 170,
                              "column": 13
                            }
                          },
                          "name": "C"
                        },
                        "init": {
                          "type": "Identifier",
                          "start": 6870,
                          "end": 6872,
                          "loc": {
                            "start": {
                              "line": 170,
                              "column": 16
                            },
                            "end": {
                              "line": 170,
                              "column": 18
                            }
                          },
                          "name": "A0"
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6883,
                    "end": 6922,
                    "loc": {
                      "start": {
                        "line": 172,
                        "column": 8
                      },
                      "end": {
                        "line": 172,
                        "column": 47
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6887,
                        "end": 6921,
                        "loc": {
                          "start": {
                            "line": 172,
                            "column": 12
                          },
                          "end": {
                            "line": 172,
                            "column": 46
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6887,
                          "end": 6892,
                          "loc": {
                            "start": {
                              "line": 172,
                              "column": 12
                            },
                            "end": {
                              "line": 172,
                              "column": 17
                            }
                          },
                          "name": "discr"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6895,
                          "end": 6921,
                          "loc": {
                            "start": {
                              "line": 172,
                              "column": 20
                            },
                            "end": {
                              "line": 172,
                              "column": 46
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 6895,
                            "end": 6909,
                            "loc": {
                              "start": {
                                "line": 172,
                                "column": 20
                              },
                              "end": {
                                "line": 172,
                                "column": 34
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 6895,
                              "end": 6903,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 20
                                },
                                "end": {
                                  "line": 172,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 6895,
                                "end": 6899,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 24
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 6900,
                                "end": 6903,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 28
                                  }
                                },
                                "name": "pow"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 6904,
                                "end": 6905,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 30
                                  }
                                },
                                "name": "B"
                              },
                              {
                                "type": "Literal",
                                "start": 6907,
                                "end": 6908,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 33
                                  }
                                },
                                "value": 2,
                                "rawValue": 2,
                                "raw": "2"
                              }
                            ]
                          },
                          "operator": "-",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6912,
                            "end": 6921,
                            "loc": {
                              "start": {
                                "line": 172,
                                "column": 37
                              },
                              "end": {
                                "line": 172,
                                "column": 46
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 6912,
                              "end": 6917,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 37
                                },
                                "end": {
                                  "line": 172,
                                  "column": 42
                                }
                              },
                              "left": {
                                "type": "Literal",
                                "start": 6912,
                                "end": 6913,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 38
                                  }
                                },
                                "value": 4,
                                "rawValue": 4,
                                "raw": "4"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 6916,
                                "end": 6917,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 42
                                  }
                                },
                                "name": "A"
                              }
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6920,
                              "end": 6921,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 45
                                },
                                "end": {
                                  "line": 172,
                                  "column": 46
                                }
                              },
                              "name": "C"
                            }
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6931,
                    "end": 6981,
                    "loc": {
                      "start": {
                        "line": 173,
                        "column": 8
                      },
                      "end": {
                        "line": 173,
                        "column": 58
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6935,
                        "end": 6980,
                        "loc": {
                          "start": {
                            "line": 173,
                            "column": 12
                          },
                          "end": {
                            "line": 173,
                            "column": 57
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6935,
                          "end": 6937,
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 12
                            },
                            "end": {
                              "line": 173,
                              "column": 14
                            }
                          },
                          "name": "Oy"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6940,
                          "end": 6980,
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 17
                            },
                            "end": {
                              "line": 173,
                              "column": 57
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6941,
                            "end": 6969,
                            "loc": {
                              "start": {
                                "line": 173,
                                "column": 18
                              },
                              "end": {
                                "line": 173,
                                "column": 46
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 6941,
                              "end": 6943,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 18
                                },
                                "end": {
                                  "line": 173,
                                  "column": 20
                                }
                              },
                              "operator": "-",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 6942,
                                "end": 6943,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 20
                                  }
                                },
                                "name": "B"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 6946,
                              "end": 6969,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 23
                                },
                                "end": {
                                  "line": 173,
                                  "column": 46
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 6946,
                                "end": 6950,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 27
                                  }
                                },
                                "name": "sign"
                              },
                              "operator": "*",
                              "right": {
                                "type": "CallExpression",
                                "start": 6953,
                                "end": 6969,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 6953,
                                  "end": 6962,
                                  "loc": {
                                    "start": {
                                      "line": 173,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 173,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 6953,
                                    "end": 6957,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 34
                                      }
                                    },
                                    "name": "Math"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 6958,
                                    "end": 6962,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 39
                                      }
                                    },
                                    "name": "sqrt"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 6963,
                                    "end": 6968,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 45
                                      }
                                    },
                                    "name": "discr"
                                  }
                                ]
                              }
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6974,
                            "end": 6979,
                            "loc": {
                              "start": {
                                "line": 173,
                                "column": 51
                              },
                              "end": {
                                "line": 173,
                                "column": 56
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 6974,
                              "end": 6975,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 51
                                },
                                "end": {
                                  "line": 173,
                                  "column": 52
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6978,
                              "end": 6979,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 55
                                },
                                "end": {
                                  "line": 173,
                                  "column": 56
                                }
                              },
                              "name": "A"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 6991,
                    "end": 7018,
                    "loc": {
                      "start": {
                        "line": 175,
                        "column": 8
                      },
                      "end": {
                        "line": 175,
                        "column": 35
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 6991,
                      "end": 7017,
                      "loc": {
                        "start": {
                          "line": 175,
                          "column": 8
                        },
                        "end": {
                          "line": 175,
                          "column": 34
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 6991,
                        "end": 6999,
                        "loc": {
                          "start": {
                            "line": 175,
                            "column": 8
                          },
                          "end": {
                            "line": 175,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 6991,
                          "end": 6997,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 8
                            },
                            "end": {
                              "line": 175,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6998,
                          "end": 6999,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 15
                            },
                            "end": {
                              "line": 175,
                              "column": 16
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "start": 7002,
                        "end": 7017,
                        "loc": {
                          "start": {
                            "line": 175,
                            "column": 19
                          },
                          "end": {
                            "line": 175,
                            "column": 34
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 7002,
                          "end": 7004,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 19
                            },
                            "end": {
                              "line": 175,
                              "column": 21
                            }
                          },
                          "name": "Oy"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 7007,
                          "end": 7017,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 24
                            },
                            "end": {
                              "line": 175,
                              "column": 34
                            }
                          },
                          "name": "proportion"
                        }
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 7027,
                    "end": 7041,
                    "loc": {
                      "start": {
                        "line": 176,
                        "column": 8
                      },
                      "end": {
                        "line": 176,
                        "column": 22
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 7027,
                      "end": 7040,
                      "loc": {
                        "start": {
                          "line": 176,
                          "column": 8
                        },
                        "end": {
                          "line": 176,
                          "column": 21
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 7027,
                        "end": 7035,
                        "loc": {
                          "start": {
                            "line": 176,
                            "column": 8
                          },
                          "end": {
                            "line": 176,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7027,
                          "end": 7033,
                          "loc": {
                            "start": {
                              "line": 176,
                              "column": 8
                            },
                            "end": {
                              "line": 176,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7034,
                          "end": 7035,
                          "loc": {
                            "start": {
                              "line": 176,
                              "column": 15
                            },
                            "end": {
                              "line": 176,
                              "column": 16
                            }
                          },
                          "name": "y"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 7038,
                        "end": 7040,
                        "loc": {
                          "start": {
                            "line": 176,
                            "column": 19
                          },
                          "end": {
                            "line": 176,
                            "column": 21
                          }
                        },
                        "name": "Oy"
                      }
                    }
                  }
                ]
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "if (centerDir.x === 0) {",
                  "start": 6093,
                  "end": 6119,
                  "loc": {
                    "start": {
                      "line": 150,
                      "column": 4
                    },
                    "end": {
                      "line": 150,
                      "column": 30
                    }
                  },
                  "range": [
                    6093,
                    6119
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var sign = centerDir.dot(new THREE.Vector3(0,1,0));",
                  "start": 6124,
                  "end": 6181,
                  "loc": {
                    "start": {
                      "line": 151,
                      "column": 4
                    },
                    "end": {
                      "line": 151,
                      "column": 61
                    }
                  },
                  "range": [
                    6124,
                    6181
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var discr = Math.pow(A2, 2) - 4 * cosA2Sq * A0;",
                  "start": 6186,
                  "end": 6239,
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 4
                    },
                    "end": {
                      "line": 152,
                      "column": 57
                    }
                  },
                  "range": [
                    6186,
                    6239
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var Oy = (-A2 + sign * Math.sqrt(discr)) / (2 * cosA2Sq);",
                  "start": 6244,
                  "end": 6307,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 4
                    },
                    "end": {
                      "line": 153,
                      "column": 67
                    }
                  },
                  "range": [
                    6244,
                    6307
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "",
                  "start": 6312,
                  "end": 6314,
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 4
                    },
                    "end": {
                      "line": 154,
                      "column": 6
                    }
                  },
                  "range": [
                    6312,
                    6314
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.x = 0;",
                  "start": 6319,
                  "end": 6338,
                  "loc": {
                    "start": {
                      "line": 155,
                      "column": 4
                    },
                    "end": {
                      "line": 155,
                      "column": 23
                    }
                  },
                  "range": [
                    6319,
                    6338
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.y = Oy;",
                  "start": 6343,
                  "end": 6363,
                  "loc": {
                    "start": {
                      "line": 156,
                      "column": 4
                    },
                    "end": {
                      "line": 156,
                      "column": 24
                    }
                  },
                  "range": [
                    6343,
                    6363
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "} else",
                  "start": 6368,
                  "end": 6376,
                  "loc": {
                    "start": {
                      "line": 157,
                      "column": 4
                    },
                    "end": {
                      "line": 157,
                      "column": 12
                    }
                  },
                  "range": [
                    6368,
                    6376
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 7053,
              "end": 7099,
              "loc": {
                "start": {
                  "line": 179,
                  "column": 4
                },
                "end": {
                  "line": 179,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7057,
                  "end": 7098,
                  "loc": {
                    "start": {
                      "line": 179,
                      "column": 8
                    },
                    "end": {
                      "line": 179,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7057,
                    "end": 7060,
                    "loc": {
                      "start": {
                        "line": 179,
                        "column": 8
                      },
                      "end": {
                        "line": 179,
                        "column": 11
                      }
                    },
                    "name": "len"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 7063,
                    "end": 7098,
                    "loc": {
                      "start": {
                        "line": 179,
                        "column": 14
                      },
                      "end": {
                        "line": 179,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 7063,
                      "end": 7078,
                      "loc": {
                        "start": {
                          "line": 179,
                          "column": 14
                        },
                        "end": {
                          "line": 179,
                          "column": 29
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7063,
                        "end": 7076,
                        "loc": {
                          "start": {
                            "line": 179,
                            "column": 14
                          },
                          "end": {
                            "line": 179,
                            "column": 27
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7063,
                          "end": 7069,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 14
                            },
                            "end": {
                              "line": 179,
                              "column": 20
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7070,
                          "end": 7076,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 21
                            },
                            "end": {
                              "line": 179,
                              "column": 27
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "operator": "*",
                    "right": {
                      "type": "CallExpression",
                      "start": 7081,
                      "end": 7098,
                      "loc": {
                        "start": {
                          "line": 179,
                          "column": 32
                        },
                        "end": {
                          "line": 179,
                          "column": 49
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7081,
                        "end": 7089,
                        "loc": {
                          "start": {
                            "line": 179,
                            "column": 32
                          },
                          "end": {
                            "line": 179,
                            "column": 40
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7081,
                          "end": 7085,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 32
                            },
                            "end": {
                              "line": 179,
                              "column": 36
                            }
                          },
                          "name": "Math"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7086,
                          "end": 7089,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 37
                            },
                            "end": {
                              "line": 179,
                              "column": 40
                            }
                          },
                          "name": "cos"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "BinaryExpression",
                          "start": 7090,
                          "end": 7097,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 41
                            },
                            "end": {
                              "line": 179,
                              "column": 48
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 7090,
                            "end": 7095,
                            "loc": {
                              "start": {
                                "line": 179,
                                "column": 41
                              },
                              "end": {
                                "line": 179,
                                "column": 46
                              }
                            },
                            "name": "alpha"
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 7096,
                            "end": 7097,
                            "loc": {
                              "start": {
                                "line": 179,
                                "column": 47
                              },
                              "end": {
                                "line": 179,
                                "column": 48
                              }
                            },
                            "value": 2,
                            "rawValue": 2,
                            "raw": "2"
                          }
                        }
                      ]
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ExpressionStatement",
              "start": 7104,
              "end": 7126,
              "loc": {
                "start": {
                  "line": 180,
                  "column": 4
                },
                "end": {
                  "line": 180,
                  "column": 26
                }
              },
              "expression": {
                "type": "CallExpression",
                "start": 7104,
                "end": 7125,
                "loc": {
                  "start": {
                    "line": 180,
                    "column": 4
                  },
                  "end": {
                    "line": 180,
                    "column": 25
                  }
                },
                "callee": {
                  "type": "MemberExpression",
                  "start": 7104,
                  "end": 7114,
                  "loc": {
                    "start": {
                      "line": 180,
                      "column": 4
                    },
                    "end": {
                      "line": 180,
                      "column": 14
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 7104,
                    "end": 7110,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 4
                      },
                      "end": {
                        "line": 180,
                        "column": 10
                      }
                    },
                    "name": "center"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 7111,
                    "end": 7114,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 11
                      },
                      "end": {
                        "line": 180,
                        "column": 14
                      }
                    },
                    "name": "add"
                  },
                  "computed": false
                },
                "arguments": [
                  {
                    "type": "Identifier",
                    "start": 7115,
                    "end": 7124,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 15
                      },
                      "end": {
                        "line": 180,
                        "column": 24
                      }
                    },
                    "name": "vertexPos"
                  }
                ]
              }
            },
            {
              "type": "ReturnStatement",
              "start": 7132,
              "end": 7342,
              "loc": {
                "start": {
                  "line": 182,
                  "column": 4
                },
                "end": {
                  "line": 187,
                  "column": 5
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 7139,
                "end": 7342,
                "loc": {
                  "start": {
                    "line": 182,
                    "column": 11
                  },
                  "end": {
                    "line": 187,
                    "column": 5
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 7149,
                    "end": 7215,
                    "loc": {
                      "start": {
                        "line": 183,
                        "column": 8
                      },
                      "end": {
                        "line": 183,
                        "column": 74
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7149,
                      "end": 7154,
                      "loc": {
                        "start": {
                          "line": 183,
                          "column": 8
                        },
                        "end": {
                          "line": 183,
                          "column": 13
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 7156,
                      "end": 7215,
                      "loc": {
                        "start": {
                          "line": 183,
                          "column": 15
                        },
                        "end": {
                          "line": 183,
                          "column": 74
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7156,
                        "end": 7177,
                        "loc": {
                          "start": {
                            "line": 183,
                            "column": 15
                          },
                          "end": {
                            "line": 183,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 7156,
                          "end": 7173,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 15
                            },
                            "end": {
                              "line": 183,
                              "column": 32
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7156,
                            "end": 7171,
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 15
                              },
                              "end": {
                                "line": 183,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 7156,
                              "end": 7165,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 15
                                },
                                "end": {
                                  "line": 183,
                                  "column": 24
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7166,
                              "end": 7171,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 25
                                },
                                "end": {
                                  "line": 183,
                                  "column": 30
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7174,
                          "end": 7177,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 33
                            },
                            "end": {
                              "line": 183,
                              "column": 36
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 7178,
                          "end": 7214,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 37
                            },
                            "end": {
                              "line": 183,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7178,
                            "end": 7209,
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 37
                              },
                              "end": {
                                "line": 183,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 7178,
                              "end": 7194,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 37
                                },
                                "end": {
                                  "line": 183,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 7178,
                                "end": 7192,
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 51
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 7178,
                                  "end": 7186,
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 45
                                    }
                                  },
                                  "name": "startDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 7187,
                                  "end": 7192,
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 51
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7195,
                              "end": 7209,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 54
                                },
                                "end": {
                                  "line": 183,
                                  "column": 68
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 7210,
                              "end": 7213,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 69
                                },
                                "end": {
                                  "line": 183,
                                  "column": 72
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7225,
                    "end": 7287,
                    "loc": {
                      "start": {
                        "line": 184,
                        "column": 8
                      },
                      "end": {
                        "line": 184,
                        "column": 70
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7225,
                      "end": 7228,
                      "loc": {
                        "start": {
                          "line": 184,
                          "column": 8
                        },
                        "end": {
                          "line": 184,
                          "column": 11
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 7230,
                      "end": 7287,
                      "loc": {
                        "start": {
                          "line": 184,
                          "column": 13
                        },
                        "end": {
                          "line": 184,
                          "column": 70
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7230,
                        "end": 7251,
                        "loc": {
                          "start": {
                            "line": 184,
                            "column": 13
                          },
                          "end": {
                            "line": 184,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 7230,
                          "end": 7247,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 13
                            },
                            "end": {
                              "line": 184,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7230,
                            "end": 7245,
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 13
                              },
                              "end": {
                                "line": 184,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 7230,
                              "end": 7239,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 13
                                },
                                "end": {
                                  "line": 184,
                                  "column": 22
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7240,
                              "end": 7245,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 23
                                },
                                "end": {
                                  "line": 184,
                                  "column": 28
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7248,
                          "end": 7251,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 31
                            },
                            "end": {
                              "line": 184,
                              "column": 34
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 7252,
                          "end": 7286,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 35
                            },
                            "end": {
                              "line": 184,
                              "column": 69
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7252,
                            "end": 7281,
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 35
                              },
                              "end": {
                                "line": 184,
                                "column": 64
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 7252,
                              "end": 7266,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 35
                                },
                                "end": {
                                  "line": 184,
                                  "column": 49
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 7252,
                                "end": 7264,
                                "loc": {
                                  "start": {
                                    "line": 184,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 184,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 7252,
                                  "end": 7258,
                                  "loc": {
                                    "start": {
                                      "line": 184,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 184,
                                      "column": 41
                                    }
                                  },
                                  "name": "endDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 7259,
                                  "end": 7264,
                                  "loc": {
                                    "start": {
                                      "line": 184,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 184,
                                      "column": 47
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7267,
                              "end": 7281,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 50
                                },
                                "end": {
                                  "line": 184,
                                  "column": 64
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 7282,
                              "end": 7285,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 65
                                },
                                "end": {
                                  "line": 184,
                                  "column": 68
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7297,
                    "end": 7311,
                    "loc": {
                      "start": {
                        "line": 185,
                        "column": 8
                      },
                      "end": {
                        "line": 185,
                        "column": 22
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7297,
                      "end": 7303,
                      "loc": {
                        "start": {
                          "line": 185,
                          "column": 8
                        },
                        "end": {
                          "line": 185,
                          "column": 14
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 7305,
                      "end": 7311,
                      "loc": {
                        "start": {
                          "line": 185,
                          "column": 16
                        },
                        "end": {
                          "line": 185,
                          "column": 22
                        }
                      },
                      "name": "center"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7321,
                    "end": 7336,
                    "loc": {
                      "start": {
                        "line": 186,
                        "column": 8
                      },
                      "end": {
                        "line": 186,
                        "column": 23
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7321,
                      "end": 7330,
                      "loc": {
                        "start": {
                          "line": 186,
                          "column": 8
                        },
                        "end": {
                          "line": 186,
                          "column": 17
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Literal",
                      "start": 7332,
                      "end": 7336,
                      "loc": {
                        "start": {
                          "line": 186,
                          "column": 19
                        },
                        "end": {
                          "line": 186,
                          "column": 23
                        }
                      },
                      "value": true,
                      "rawValue": true,
                      "raw": "true"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 7346,
      "end": 8103,
      "loc": {
        "start": {
          "line": 190,
          "column": 0
        },
        "end": {
          "line": 206,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 7353,
        "end": 8103,
        "loc": {
          "start": {
            "line": 190,
            "column": 7
          },
          "end": {
            "line": 206,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 7362,
          "end": 7380,
          "loc": {
            "start": {
              "line": 190,
              "column": 16
            },
            "end": {
              "line": 190,
              "column": 34
            }
          },
          "name": "drawLineBy_Angle_M"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 7381,
            "end": 7390,
            "loc": {
              "start": {
                "line": 190,
                "column": 35
              },
              "end": {
                "line": 190,
                "column": 44
              }
            },
            "name": "vertexPos"
          },
          {
            "type": "Identifier",
            "start": 7392,
            "end": 7400,
            "loc": {
              "start": {
                "line": 190,
                "column": 46
              },
              "end": {
                "line": 190,
                "column": 54
              }
            },
            "name": "startDir"
          },
          {
            "type": "Identifier",
            "start": 7402,
            "end": 7408,
            "loc": {
              "start": {
                "line": 190,
                "column": 56
              },
              "end": {
                "line": 190,
                "column": 62
              }
            },
            "name": "endDir"
          },
          {
            "type": "Identifier",
            "start": 7410,
            "end": 7419,
            "loc": {
              "start": {
                "line": 190,
                "column": 64
              },
              "end": {
                "line": 190,
                "column": 73
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 7421,
          "end": 8103,
          "loc": {
            "start": {
              "line": 190,
              "column": 75
            },
            "end": {
              "line": 206,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ExpressionStatement",
              "start": 7427,
              "end": 7440,
              "loc": {
                "start": {
                  "line": 191,
                  "column": 4
                },
                "end": {
                  "line": 191,
                  "column": 17
                }
              },
              "expression": {
                "type": "Literal",
                "start": 7427,
                "end": 7439,
                "loc": {
                  "start": {
                    "line": 191,
                    "column": 4
                  },
                  "end": {
                    "line": 191,
                    "column": 16
                  }
                },
                "value": "use strict",
                "rawValue": "use strict",
                "raw": "\"use strict\""
              }
            },
            {
              "type": "VariableDeclaration",
              "start": 7446,
              "end": 7523,
              "loc": {
                "start": {
                  "line": 193,
                  "column": 4
                },
                "end": {
                  "line": 193,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7450,
                  "end": 7522,
                  "loc": {
                    "start": {
                      "line": 193,
                      "column": 8
                    },
                    "end": {
                      "line": 193,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7450,
                    "end": 7459,
                    "loc": {
                      "start": {
                        "line": 193,
                        "column": 8
                      },
                      "end": {
                        "line": 193,
                        "column": 17
                      }
                    },
                    "name": "centerDir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7462,
                    "end": 7522,
                    "loc": {
                      "start": {
                        "line": 193,
                        "column": 20
                      },
                      "end": {
                        "line": 193,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7462,
                      "end": 7520,
                      "loc": {
                        "start": {
                          "line": 193,
                          "column": 20
                        },
                        "end": {
                          "line": 193,
                          "column": 78
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 7462,
                        "end": 7510,
                        "loc": {
                          "start": {
                            "line": 193,
                            "column": 20
                          },
                          "end": {
                            "line": 193,
                            "column": 68
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 7462,
                          "end": 7505,
                          "loc": {
                            "start": {
                              "line": 193,
                              "column": 20
                            },
                            "end": {
                              "line": 193,
                              "column": 63
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 7462,
                            "end": 7490,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 20
                              },
                              "end": {
                                "line": 193,
                                "column": 48
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 7462,
                              "end": 7482,
                              "loc": {
                                "start": {
                                  "line": 193,
                                  "column": 20
                                },
                                "end": {
                                  "line": 193,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 7462,
                                "end": 7478,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 7462,
                                  "end": 7476,
                                  "loc": {
                                    "start": {
                                      "line": 193,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 193,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 7462,
                                    "end": 7470,
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 193,
                                        "column": 28
                                      }
                                    },
                                    "name": "startDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 7471,
                                    "end": 7476,
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 193,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 7479,
                                "end": 7482,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 7483,
                                "end": 7489,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 47
                                  }
                                },
                                "name": "endDir"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 7491,
                            "end": 7505,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 49
                              },
                              "end": {
                                "line": 193,
                                "column": 63
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 7506,
                            "end": 7509,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 64
                              },
                              "end": {
                                "line": 193,
                                "column": 67
                              }
                            },
                            "value": 0.5,
                            "rawValue": 0.5,
                            "raw": "0.5"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7511,
                        "end": 7520,
                        "loc": {
                          "start": {
                            "line": 193,
                            "column": 69
                          },
                          "end": {
                            "line": 193,
                            "column": 78
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 7528,
              "end": 7582,
              "loc": {
                "start": {
                  "line": 194,
                  "column": 4
                },
                "end": {
                  "line": 194,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7532,
                  "end": 7581,
                  "loc": {
                    "start": {
                      "line": 194,
                      "column": 8
                    },
                    "end": {
                      "line": 194,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7532,
                    "end": 7546,
                    "loc": {
                      "start": {
                        "line": 194,
                        "column": 8
                      },
                      "end": {
                        "line": 194,
                        "column": 22
                      }
                    },
                    "name": "vertexToMiddle"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7549,
                    "end": 7581,
                    "loc": {
                      "start": {
                        "line": 194,
                        "column": 25
                      },
                      "end": {
                        "line": 194,
                        "column": 57
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7549,
                      "end": 7570,
                      "loc": {
                        "start": {
                          "line": 194,
                          "column": 25
                        },
                        "end": {
                          "line": 194,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 7549,
                        "end": 7566,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 25
                          },
                          "end": {
                            "line": 194,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 7549,
                          "end": 7564,
                          "loc": {
                            "start": {
                              "line": 194,
                              "column": 25
                            },
                            "end": {
                              "line": 194,
                              "column": 40
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 7549,
                            "end": 7558,
                            "loc": {
                              "start": {
                                "line": 194,
                                "column": 25
                              },
                              "end": {
                                "line": 194,
                                "column": 34
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 7559,
                            "end": 7564,
                            "loc": {
                              "start": {
                                "line": 194,
                                "column": 35
                              },
                              "end": {
                                "line": 194,
                                "column": 40
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7567,
                        "end": 7570,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 43
                          },
                          "end": {
                            "line": 194,
                            "column": 46
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 7571,
                        "end": 7580,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 47
                          },
                          "end": {
                            "line": 194,
                            "column": 56
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 7588,
                  "end": 7680,
                  "loc": {
                    "start": {
                      "line": 196,
                      "column": 4
                    },
                    "end": {
                      "line": 196,
                      "column": 96
                    }
                  },
                  "range": [
                    7588,
                    7680
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 7685,
              "end": 7778,
              "loc": {
                "start": {
                  "line": 197,
                  "column": 4
                },
                "end": {
                  "line": 198,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 7689,
                "end": 7756,
                "loc": {
                  "start": {
                    "line": 197,
                    "column": 8
                  },
                  "end": {
                    "line": 197,
                    "column": 75
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 7689,
                  "end": 7719,
                  "loc": {
                    "start": {
                      "line": 197,
                      "column": 8
                    },
                    "end": {
                      "line": 197,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 7689,
                    "end": 7712,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 8
                      },
                      "end": {
                        "line": 197,
                        "column": 31
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7689,
                      "end": 7710,
                      "loc": {
                        "start": {
                          "line": 197,
                          "column": 8
                        },
                        "end": {
                          "line": 197,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7689,
                        "end": 7703,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 8
                          },
                          "end": {
                            "line": 197,
                            "column": 22
                          }
                        },
                        "name": "vertexToMiddle",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7704,
                        "end": 7710,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 23
                          },
                          "end": {
                            "line": 197,
                            "column": 29
                          }
                        },
                        "name": "length"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "arguments": [],
                    "leadingComments": null
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 7715,
                    "end": 7719,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 34
                      },
                      "end": {
                        "line": 197,
                        "column": 38
                      }
                    },
                    "value": 0.01,
                    "rawValue": 0.01,
                    "raw": "1e-2"
                  },
                  "leadingComments": null
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 7723,
                  "end": 7756,
                  "loc": {
                    "start": {
                      "line": 197,
                      "column": 42
                    },
                    "end": {
                      "line": 197,
                      "column": 75
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 7723,
                    "end": 7752,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 42
                      },
                      "end": {
                        "line": 197,
                        "column": 71
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7723,
                      "end": 7741,
                      "loc": {
                        "start": {
                          "line": 197,
                          "column": 42
                        },
                        "end": {
                          "line": 197,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7723,
                        "end": 7737,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 42
                          },
                          "end": {
                            "line": 197,
                            "column": 56
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7738,
                        "end": 7741,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 57
                          },
                          "end": {
                            "line": 197,
                            "column": 60
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 7742,
                        "end": 7751,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 61
                          },
                          "end": {
                            "line": 197,
                            "column": 70
                          }
                        },
                        "name": "centerDir"
                      }
                    ]
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 7755,
                    "end": 7756,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 74
                      },
                      "end": {
                        "line": 197,
                        "column": 75
                      }
                    },
                    "value": 0,
                    "rawValue": 0,
                    "raw": "0"
                  }
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 7766,
                "end": 7778,
                "loc": {
                  "start": {
                    "line": 198,
                    "column": 8
                  },
                  "end": {
                    "line": 198,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 7773,
                  "end": 7777,
                  "loc": {
                    "start": {
                      "line": 198,
                      "column": 15
                    },
                    "end": {
                      "line": 198,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                }
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 7588,
                  "end": 7680,
                  "loc": {
                    "start": {
                      "line": 196,
                      "column": 4
                    },
                    "end": {
                      "line": 196,
                      "column": 96
                    }
                  },
                  "range": [
                    7588,
                    7680
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 7784,
              "end": 7821,
              "loc": {
                "start": {
                  "line": 200,
                  "column": 4
                },
                "end": {
                  "line": 200,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7788,
                  "end": 7820,
                  "loc": {
                    "start": {
                      "line": 200,
                      "column": 8
                    },
                    "end": {
                      "line": 200,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7788,
                    "end": 7793,
                    "loc": {
                      "start": {
                        "line": 200,
                        "column": 8
                      },
                      "end": {
                        "line": 200,
                        "column": 13
                      }
                    },
                    "name": "alpha"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7796,
                    "end": 7820,
                    "loc": {
                      "start": {
                        "line": 200,
                        "column": 16
                      },
                      "end": {
                        "line": 200,
                        "column": 40
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7796,
                      "end": 7810,
                      "loc": {
                        "start": {
                          "line": 200,
                          "column": 16
                        },
                        "end": {
                          "line": 200,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7796,
                        "end": 7802,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 16
                          },
                          "end": {
                            "line": 200,
                            "column": 22
                          }
                        },
                        "name": "endDir"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7803,
                        "end": 7810,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 23
                          },
                          "end": {
                            "line": 200,
                            "column": 30
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 7811,
                        "end": 7819,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 31
                          },
                          "end": {
                            "line": 200,
                            "column": 39
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 7826,
              "end": 7886,
              "loc": {
                "start": {
                  "line": 201,
                  "column": 4
                },
                "end": {
                  "line": 201,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7830,
                  "end": 7885,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 8
                    },
                    "end": {
                      "line": 201,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7830,
                    "end": 7833,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 8
                      },
                      "end": {
                        "line": 201,
                        "column": 11
                      }
                    },
                    "name": "len"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 7836,
                    "end": 7885,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 14
                      },
                      "end": {
                        "line": 201,
                        "column": 63
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 7836,
                      "end": 7865,
                      "loc": {
                        "start": {
                          "line": 201,
                          "column": 14
                        },
                        "end": {
                          "line": 201,
                          "column": 43
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7836,
                        "end": 7854,
                        "loc": {
                          "start": {
                            "line": 201,
                            "column": 14
                          },
                          "end": {
                            "line": 201,
                            "column": 32
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7836,
                          "end": 7850,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 14
                            },
                            "end": {
                              "line": 201,
                              "column": 28
                            }
                          },
                          "name": "vertexToMiddle"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7851,
                          "end": 7854,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 29
                            },
                            "end": {
                              "line": 201,
                              "column": 32
                            }
                          },
                          "name": "dot"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 7855,
                          "end": 7864,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 33
                            },
                            "end": {
                              "line": 201,
                              "column": 42
                            }
                          },
                          "name": "centerDir"
                        }
                      ]
                    },
                    "operator": "/",
                    "right": {
                      "type": "CallExpression",
                      "start": 7868,
                      "end": 7885,
                      "loc": {
                        "start": {
                          "line": 201,
                          "column": 46
                        },
                        "end": {
                          "line": 201,
                          "column": 63
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7868,
                        "end": 7876,
                        "loc": {
                          "start": {
                            "line": 201,
                            "column": 46
                          },
                          "end": {
                            "line": 201,
                            "column": 54
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7868,
                          "end": 7872,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 46
                            },
                            "end": {
                              "line": 201,
                              "column": 50
                            }
                          },
                          "name": "Math"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7873,
                          "end": 7876,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 51
                            },
                            "end": {
                              "line": 201,
                              "column": 54
                            }
                          },
                          "name": "cos"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "BinaryExpression",
                          "start": 7877,
                          "end": 7884,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 55
                            },
                            "end": {
                              "line": 201,
                              "column": 62
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 7877,
                            "end": 7882,
                            "loc": {
                              "start": {
                                "line": 201,
                                "column": 55
                              },
                              "end": {
                                "line": 201,
                                "column": 60
                              }
                            },
                            "name": "alpha"
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 7883,
                            "end": 7884,
                            "loc": {
                              "start": {
                                "line": 201,
                                "column": 61
                              },
                              "end": {
                                "line": 201,
                                "column": 62
                              }
                            },
                            "value": 2,
                            "rawValue": 2,
                            "raw": "2"
                          }
                        }
                      ]
                    }
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " we have appropriate fillet angle so cos != 0",
                  "start": 7887,
                  "end": 7934,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 65
                    },
                    "end": {
                      "line": 201,
                      "column": 112
                    }
                  },
                  "range": [
                    7887,
                    7934
                  ]
                }
              ]
            },
            {
              "type": "ReturnStatement",
              "start": 7939,
              "end": 8101,
              "loc": {
                "start": {
                  "line": 202,
                  "column": 4
                },
                "end": {
                  "line": 205,
                  "column": 5
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 7946,
                "end": 8101,
                "loc": {
                  "start": {
                    "line": 202,
                    "column": 11
                  },
                  "end": {
                    "line": 205,
                    "column": 5
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 7956,
                    "end": 8022,
                    "loc": {
                      "start": {
                        "line": 203,
                        "column": 8
                      },
                      "end": {
                        "line": 203,
                        "column": 74
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7956,
                      "end": 7961,
                      "loc": {
                        "start": {
                          "line": 203,
                          "column": 8
                        },
                        "end": {
                          "line": 203,
                          "column": 13
                        }
                      },
                      "name": "start",
                      "leadingComments": null
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 7963,
                      "end": 8022,
                      "loc": {
                        "start": {
                          "line": 203,
                          "column": 15
                        },
                        "end": {
                          "line": 203,
                          "column": 74
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7963,
                        "end": 7984,
                        "loc": {
                          "start": {
                            "line": 203,
                            "column": 15
                          },
                          "end": {
                            "line": 203,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 7963,
                          "end": 7980,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 15
                            },
                            "end": {
                              "line": 203,
                              "column": 32
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7963,
                            "end": 7978,
                            "loc": {
                              "start": {
                                "line": 203,
                                "column": 15
                              },
                              "end": {
                                "line": 203,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 7963,
                              "end": 7972,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 15
                                },
                                "end": {
                                  "line": 203,
                                  "column": 24
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7973,
                              "end": 7978,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 25
                                },
                                "end": {
                                  "line": 203,
                                  "column": 30
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7981,
                          "end": 7984,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 33
                            },
                            "end": {
                              "line": 203,
                              "column": 36
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 7985,
                          "end": 8021,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 37
                            },
                            "end": {
                              "line": 203,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7985,
                            "end": 8016,
                            "loc": {
                              "start": {
                                "line": 203,
                                "column": 37
                              },
                              "end": {
                                "line": 203,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 7985,
                              "end": 8001,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 37
                                },
                                "end": {
                                  "line": 203,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 7985,
                                "end": 7999,
                                "loc": {
                                  "start": {
                                    "line": 203,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 203,
                                    "column": 51
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 7985,
                                  "end": 7993,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 45
                                    }
                                  },
                                  "name": "startDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 7994,
                                  "end": 7999,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 51
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8002,
                              "end": 8016,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 54
                                },
                                "end": {
                                  "line": 203,
                                  "column": 68
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 8017,
                              "end": 8020,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 69
                                },
                                "end": {
                                  "line": 203,
                                  "column": 72
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init",
                    "leadingComments": null
                  },
                  {
                    "type": "Property",
                    "start": 8032,
                    "end": 8094,
                    "loc": {
                      "start": {
                        "line": 204,
                        "column": 8
                      },
                      "end": {
                        "line": 204,
                        "column": 70
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 8032,
                      "end": 8035,
                      "loc": {
                        "start": {
                          "line": 204,
                          "column": 8
                        },
                        "end": {
                          "line": 204,
                          "column": 11
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 8037,
                      "end": 8094,
                      "loc": {
                        "start": {
                          "line": 204,
                          "column": 13
                        },
                        "end": {
                          "line": 204,
                          "column": 70
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8037,
                        "end": 8058,
                        "loc": {
                          "start": {
                            "line": 204,
                            "column": 13
                          },
                          "end": {
                            "line": 204,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 8037,
                          "end": 8054,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 13
                            },
                            "end": {
                              "line": 204,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8037,
                            "end": 8052,
                            "loc": {
                              "start": {
                                "line": 204,
                                "column": 13
                              },
                              "end": {
                                "line": 204,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 8037,
                              "end": 8046,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 13
                                },
                                "end": {
                                  "line": 204,
                                  "column": 22
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8047,
                              "end": 8052,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 23
                                },
                                "end": {
                                  "line": 204,
                                  "column": 28
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8055,
                          "end": 8058,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 31
                            },
                            "end": {
                              "line": 204,
                              "column": 34
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 8059,
                          "end": 8093,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 35
                            },
                            "end": {
                              "line": 204,
                              "column": 69
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8059,
                            "end": 8088,
                            "loc": {
                              "start": {
                                "line": 204,
                                "column": 35
                              },
                              "end": {
                                "line": 204,
                                "column": 64
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 8059,
                              "end": 8073,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 35
                                },
                                "end": {
                                  "line": 204,
                                  "column": 49
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 8059,
                                "end": 8071,
                                "loc": {
                                  "start": {
                                    "line": 204,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 204,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8059,
                                  "end": 8065,
                                  "loc": {
                                    "start": {
                                      "line": 204,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 204,
                                      "column": 41
                                    }
                                  },
                                  "name": "endDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8066,
                                  "end": 8071,
                                  "loc": {
                                    "start": {
                                      "line": 204,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 204,
                                      "column": 47
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8074,
                              "end": 8088,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 50
                                },
                                "end": {
                                  "line": 204,
                                  "column": 64
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 8089,
                              "end": 8092,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 65
                                },
                                "end": {
                                  "line": 204,
                                  "column": 68
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  }
                ],
                "leadingComments": null
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " we have appropriate fillet angle so cos != 0",
                  "start": 7887,
                  "end": 7934,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 65
                    },
                    "end": {
                      "line": 201,
                      "column": 112
                    }
                  },
                  "range": [
                    7887,
                    7934
                  ]
                }
              ]
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 8105,
      "end": 8880,
      "loc": {
        "start": {
          "line": 208,
          "column": 0
        },
        "end": {
          "line": 232,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 8112,
        "end": 8880,
        "loc": {
          "start": {
            "line": 208,
            "column": 7
          },
          "end": {
            "line": 232,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 8121,
          "end": 8137,
          "loc": {
            "start": {
              "line": 208,
              "column": 16
            },
            "end": {
              "line": 208,
              "column": 32
            }
          },
          "name": "createGeomObject"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 8138,
            "end": 8148,
            "loc": {
              "start": {
                "line": 208,
                "column": 33
              },
              "end": {
                "line": 208,
                "column": 43
              }
            },
            "name": "geomParams"
          },
          {
            "type": "Identifier",
            "start": 8150,
            "end": 8159,
            "loc": {
              "start": {
                "line": 208,
                "column": 45
              },
              "end": {
                "line": 208,
                "column": 54
              }
            },
            "name": "oldObject"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 8161,
          "end": 8880,
          "loc": {
            "start": {
              "line": 208,
              "column": 56
            },
            "end": {
              "line": 232,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 8198,
              "end": 8218,
              "loc": {
                "start": {
                  "line": 210,
                  "column": 4
                },
                "end": {
                  "line": 210,
                  "column": 24
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 8202,
                  "end": 8217,
                  "loc": {
                    "start": {
                      "line": 210,
                      "column": 8
                    },
                    "end": {
                      "line": 210,
                      "column": 23
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 8202,
                    "end": 8209,
                    "loc": {
                      "start": {
                        "line": 210,
                        "column": 8
                      },
                      "end": {
                        "line": 210,
                        "column": 15
                      }
                    },
                    "name": "newType",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "Identifier",
                    "start": 8212,
                    "end": 8217,
                    "loc": {
                      "start": {
                        "line": 210,
                        "column": 18
                      },
                      "end": {
                        "line": 210,
                        "column": 23
                      }
                    },
                    "name": "Point"
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "detect new geometry type",
                  "start": 8167,
                  "end": 8193,
                  "loc": {
                    "start": {
                      "line": 209,
                      "column": 4
                    },
                    "end": {
                      "line": 209,
                      "column": 30
                    }
                  },
                  "range": [
                    8167,
                    8193
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 8223,
              "end": 8305,
              "loc": {
                "start": {
                  "line": 211,
                  "column": 4
                },
                "end": {
                  "line": 212,
                  "column": 44
                }
              },
              "test": {
                "type": "MemberExpression",
                "start": 8227,
                "end": 8244,
                "loc": {
                  "start": {
                    "line": 211,
                    "column": 8
                  },
                  "end": {
                    "line": 211,
                    "column": 25
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 8227,
                  "end": 8237,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 8
                    },
                    "end": {
                      "line": 211,
                      "column": 18
                    }
                  },
                  "name": "geomParams"
                },
                "property": {
                  "type": "Identifier",
                  "start": 8238,
                  "end": 8244,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 19
                    },
                    "end": {
                      "line": 211,
                      "column": 25
                    }
                  },
                  "name": "center"
                },
                "computed": false
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 8246,
                "end": 8260,
                "loc": {
                  "start": {
                    "line": 211,
                    "column": 27
                  },
                  "end": {
                    "line": 211,
                    "column": 41
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 8246,
                  "end": 8259,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 27
                    },
                    "end": {
                      "line": 211,
                      "column": 40
                    }
                  },
                  "operator": "=",
                  "left": {
                    "type": "Identifier",
                    "start": 8246,
                    "end": 8253,
                    "loc": {
                      "start": {
                        "line": 211,
                        "column": 27
                      },
                      "end": {
                        "line": 211,
                        "column": 34
                      }
                    },
                    "name": "newType"
                  },
                  "right": {
                    "type": "Identifier",
                    "start": 8256,
                    "end": 8259,
                    "loc": {
                      "start": {
                        "line": 211,
                        "column": 37
                      },
                      "end": {
                        "line": 211,
                        "column": 40
                      }
                    },
                    "name": "Arc"
                  }
                }
              },
              "alternate": {
                "type": "IfStatement",
                "start": 8270,
                "end": 8305,
                "loc": {
                  "start": {
                    "line": 212,
                    "column": 9
                  },
                  "end": {
                    "line": 212,
                    "column": 44
                  }
                },
                "test": {
                  "type": "MemberExpression",
                  "start": 8274,
                  "end": 8288,
                  "loc": {
                    "start": {
                      "line": 212,
                      "column": 13
                    },
                    "end": {
                      "line": 212,
                      "column": 27
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 8274,
                    "end": 8284,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 13
                      },
                      "end": {
                        "line": 212,
                        "column": 23
                      }
                    },
                    "name": "geomParams"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 8285,
                    "end": 8288,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 24
                      },
                      "end": {
                        "line": 212,
                        "column": 27
                      }
                    },
                    "name": "end"
                  },
                  "computed": false
                },
                "consequent": {
                  "type": "ExpressionStatement",
                  "start": 8290,
                  "end": 8305,
                  "loc": {
                    "start": {
                      "line": 212,
                      "column": 29
                    },
                    "end": {
                      "line": 212,
                      "column": 44
                    }
                  },
                  "expression": {
                    "type": "AssignmentExpression",
                    "start": 8290,
                    "end": 8304,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 29
                      },
                      "end": {
                        "line": 212,
                        "column": 43
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 8290,
                      "end": 8297,
                      "loc": {
                        "start": {
                          "line": 212,
                          "column": 29
                        },
                        "end": {
                          "line": 212,
                          "column": 36
                        }
                      },
                      "name": "newType"
                    },
                    "right": {
                      "type": "Identifier",
                      "start": 8300,
                      "end": 8304,
                      "loc": {
                        "start": {
                          "line": 212,
                          "column": 39
                        },
                        "end": {
                          "line": 212,
                          "column": 43
                        }
                      },
                      "name": "Line"
                    }
                  }
                },
                "alternate": null
              }
            },
            {
              "type": "IfStatement",
              "start": 8311,
              "end": 8442,
              "loc": {
                "start": {
                  "line": 214,
                  "column": 4
                },
                "end": {
                  "line": 217,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 8315,
                "end": 8346,
                "loc": {
                  "start": {
                    "line": 214,
                    "column": 8
                  },
                  "end": {
                    "line": 214,
                    "column": 39
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "BinaryExpression",
                  "start": 8317,
                  "end": 8345,
                  "loc": {
                    "start": {
                      "line": 214,
                      "column": 10
                    },
                    "end": {
                      "line": 214,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 8317,
                    "end": 8326,
                    "loc": {
                      "start": {
                        "line": 214,
                        "column": 10
                      },
                      "end": {
                        "line": 214,
                        "column": 19
                      }
                    },
                    "name": "oldObject"
                  },
                  "operator": "instanceof",
                  "right": {
                    "type": "Identifier",
                    "start": 8338,
                    "end": 8345,
                    "loc": {
                      "start": {
                        "line": 214,
                        "column": 31
                      },
                      "end": {
                        "line": 214,
                        "column": 38
                      }
                    },
                    "name": "newType"
                  },
                  "parenthesizedExpression": true
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 8348,
                "end": 8442,
                "loc": {
                  "start": {
                    "line": 214,
                    "column": 41
                  },
                  "end": {
                    "line": 217,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 8410,
                    "end": 8436,
                    "loc": {
                      "start": {
                        "line": 216,
                        "column": 8
                      },
                      "end": {
                        "line": 216,
                        "column": 34
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 8410,
                      "end": 8435,
                      "loc": {
                        "start": {
                          "line": 216,
                          "column": 8
                        },
                        "end": {
                          "line": 216,
                          "column": 33
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "start": 8410,
                        "end": 8419,
                        "loc": {
                          "start": {
                            "line": 216,
                            "column": 8
                          },
                          "end": {
                            "line": 216,
                            "column": 17
                          }
                        },
                        "name": "oldObject",
                        "leadingComments": null
                      },
                      "right": {
                        "type": "NewExpression",
                        "start": 8422,
                        "end": 8435,
                        "loc": {
                          "start": {
                            "line": 216,
                            "column": 20
                          },
                          "end": {
                            "line": 216,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 8426,
                          "end": 8433,
                          "loc": {
                            "start": {
                              "line": 216,
                              "column": 24
                            },
                            "end": {
                              "line": 216,
                              "column": 31
                            }
                          },
                          "name": "newType"
                        },
                        "arguments": []
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": "slow path: we have to create a new object",
                        "start": 8358,
                        "end": 8401,
                        "loc": {
                          "start": {
                            "line": 215,
                            "column": 8
                          },
                          "end": {
                            "line": 215,
                            "column": 51
                          }
                        },
                        "range": [
                          8358,
                          8401
                        ]
                      }
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 8448,
              "end": 8823,
              "loc": {
                "start": {
                  "line": 219,
                  "column": 4
                },
                "end": {
                  "line": 228,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 8452,
                "end": 8469,
                "loc": {
                  "start": {
                    "line": 219,
                    "column": 8
                  },
                  "end": {
                    "line": 219,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 8452,
                  "end": 8459,
                  "loc": {
                    "start": {
                      "line": 219,
                      "column": 8
                    },
                    "end": {
                      "line": 219,
                      "column": 15
                    }
                  },
                  "name": "newType"
                },
                "operator": "===",
                "right": {
                  "type": "Identifier",
                  "start": 8464,
                  "end": 8469,
                  "loc": {
                    "start": {
                      "line": 219,
                      "column": 20
                    },
                    "end": {
                      "line": 219,
                      "column": 25
                    }
                  },
                  "name": "Point"
                }
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 8479,
                "end": 8521,
                "loc": {
                  "start": {
                    "line": 220,
                    "column": 8
                  },
                  "end": {
                    "line": 220,
                    "column": 50
                  }
                },
                "expression": {
                  "type": "CallExpression",
                  "start": 8479,
                  "end": 8520,
                  "loc": {
                    "start": {
                      "line": 220,
                      "column": 8
                    },
                    "end": {
                      "line": 220,
                      "column": 49
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 8479,
                    "end": 8502,
                    "loc": {
                      "start": {
                        "line": 220,
                        "column": 8
                      },
                      "end": {
                        "line": 220,
                        "column": 31
                      }
                    },
                    "object": {
                      "type": "MemberExpression",
                      "start": 8479,
                      "end": 8497,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 8
                        },
                        "end": {
                          "line": 220,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 8479,
                        "end": 8488,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 8
                          },
                          "end": {
                            "line": 220,
                            "column": 17
                          }
                        },
                        "name": "oldObject"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 8489,
                        "end": 8497,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 18
                          },
                          "end": {
                            "line": 220,
                            "column": 26
                          }
                        },
                        "name": "position"
                      },
                      "computed": false
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 8498,
                      "end": 8502,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 27
                        },
                        "end": {
                          "line": 220,
                          "column": 31
                        }
                      },
                      "name": "copy"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "MemberExpression",
                      "start": 8503,
                      "end": 8519,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 32
                        },
                        "end": {
                          "line": 220,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 8503,
                        "end": 8513,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 32
                          },
                          "end": {
                            "line": 220,
                            "column": 42
                          }
                        },
                        "name": "geomParams"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 8514,
                        "end": 8519,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 43
                          },
                          "end": {
                            "line": 220,
                            "column": 48
                          }
                        },
                        "name": "start"
                      },
                      "computed": false
                    }
                  ]
                }
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 8531,
                "end": 8823,
                "loc": {
                  "start": {
                    "line": 221,
                    "column": 9
                  },
                  "end": {
                    "line": 228,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 8541,
                    "end": 8593,
                    "loc": {
                      "start": {
                        "line": 222,
                        "column": 8
                      },
                      "end": {
                        "line": 222,
                        "column": 60
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 8541,
                      "end": 8592,
                      "loc": {
                        "start": {
                          "line": 222,
                          "column": 8
                        },
                        "end": {
                          "line": 222,
                          "column": 59
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8541,
                        "end": 8574,
                        "loc": {
                          "start": {
                            "line": 222,
                            "column": 8
                          },
                          "end": {
                            "line": 222,
                            "column": 41
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 8541,
                          "end": 8569,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 8
                            },
                            "end": {
                              "line": 222,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 8541,
                            "end": 8560,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 8
                              },
                              "end": {
                                "line": 222,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 8541,
                              "end": 8557,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 8
                                },
                                "end": {
                                  "line": 222,
                                  "column": 24
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8541,
                                "end": 8550,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 17
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8551,
                                "end": 8557,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 24
                                  }
                                },
                                "name": "points"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Literal",
                              "start": 8558,
                              "end": 8559,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 25
                                },
                                "end": {
                                  "line": 222,
                                  "column": 26
                                }
                              },
                              "value": 0,
                              "rawValue": 0,
                              "raw": "0"
                            },
                            "computed": true
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8561,
                            "end": 8569,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 28
                              },
                              "end": {
                                "line": 222,
                                "column": 36
                              }
                            },
                            "name": "position"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8570,
                          "end": 8574,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 37
                            },
                            "end": {
                              "line": 222,
                              "column": 41
                            }
                          },
                          "name": "copy"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 8575,
                          "end": 8591,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 42
                            },
                            "end": {
                              "line": 222,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 8575,
                            "end": 8585,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 42
                              },
                              "end": {
                                "line": 222,
                                "column": 52
                              }
                            },
                            "name": "geomParams"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8586,
                            "end": 8591,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 53
                              },
                              "end": {
                                "line": 222,
                                "column": 58
                              }
                            },
                            "name": "start"
                          },
                          "computed": false
                        }
                      ]
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 8602,
                    "end": 8652,
                    "loc": {
                      "start": {
                        "line": 223,
                        "column": 8
                      },
                      "end": {
                        "line": 223,
                        "column": 58
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 8602,
                      "end": 8651,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 8
                        },
                        "end": {
                          "line": 223,
                          "column": 57
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8602,
                        "end": 8635,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 8
                          },
                          "end": {
                            "line": 223,
                            "column": 41
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 8602,
                          "end": 8630,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 8
                            },
                            "end": {
                              "line": 223,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 8602,
                            "end": 8621,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 8
                              },
                              "end": {
                                "line": 223,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 8602,
                              "end": 8618,
                              "loc": {
                                "start": {
                                  "line": 223,
                                  "column": 8
                                },
                                "end": {
                                  "line": 223,
                                  "column": 24
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8602,
                                "end": 8611,
                                "loc": {
                                  "start": {
                                    "line": 223,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 223,
                                    "column": 17
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8612,
                                "end": 8618,
                                "loc": {
                                  "start": {
                                    "line": 223,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 223,
                                    "column": 24
                                  }
                                },
                                "name": "points"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Literal",
                              "start": 8619,
                              "end": 8620,
                              "loc": {
                                "start": {
                                  "line": 223,
                                  "column": 25
                                },
                                "end": {
                                  "line": 223,
                                  "column": 26
                                }
                              },
                              "value": 1,
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "computed": true
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8622,
                            "end": 8630,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 28
                              },
                              "end": {
                                "line": 223,
                                "column": 36
                              }
                            },
                            "name": "position"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8631,
                          "end": 8635,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 37
                            },
                            "end": {
                              "line": 223,
                              "column": 41
                            }
                          },
                          "name": "copy"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 8636,
                          "end": 8650,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 42
                            },
                            "end": {
                              "line": 223,
                              "column": 56
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 8636,
                            "end": 8646,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 42
                              },
                              "end": {
                                "line": 223,
                                "column": 52
                              }
                            },
                            "name": "geomParams"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8647,
                            "end": 8650,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 53
                              },
                              "end": {
                                "line": 223,
                                "column": 56
                              }
                            },
                            "name": "end"
                          },
                          "computed": false
                        }
                      ]
                    }
                  },
                  {
                    "type": "IfStatement",
                    "start": 8661,
                    "end": 8817,
                    "loc": {
                      "start": {
                        "line": 224,
                        "column": 8
                      },
                      "end": {
                        "line": 227,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 8665,
                      "end": 8680,
                      "loc": {
                        "start": {
                          "line": 224,
                          "column": 12
                        },
                        "end": {
                          "line": 224,
                          "column": 27
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 8665,
                        "end": 8672,
                        "loc": {
                          "start": {
                            "line": 224,
                            "column": 12
                          },
                          "end": {
                            "line": 224,
                            "column": 19
                          }
                        },
                        "name": "newType"
                      },
                      "operator": "===",
                      "right": {
                        "type": "Identifier",
                        "start": 8677,
                        "end": 8680,
                        "loc": {
                          "start": {
                            "line": 224,
                            "column": 24
                          },
                          "end": {
                            "line": 224,
                            "column": 27
                          }
                        },
                        "name": "Arc"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 8682,
                      "end": 8817,
                      "loc": {
                        "start": {
                          "line": 224,
                          "column": 29
                        },
                        "end": {
                          "line": 227,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 8696,
                          "end": 8751,
                          "loc": {
                            "start": {
                              "line": 225,
                              "column": 12
                            },
                            "end": {
                              "line": 225,
                              "column": 67
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 8696,
                            "end": 8750,
                            "loc": {
                              "start": {
                                "line": 225,
                                "column": 12
                              },
                              "end": {
                                "line": 225,
                                "column": 66
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 8696,
                              "end": 8731,
                              "loc": {
                                "start": {
                                  "line": 225,
                                  "column": 12
                                },
                                "end": {
                                  "line": 225,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 8696,
                                "end": 8726,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 42
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 8696,
                                  "end": 8717,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 33
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 8696,
                                    "end": 8705,
                                    "loc": {
                                      "start": {
                                        "line": 225,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 225,
                                        "column": 21
                                      }
                                    },
                                    "name": "oldObject"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 8706,
                                    "end": 8717,
                                    "loc": {
                                      "start": {
                                        "line": 225,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 225,
                                        "column": 33
                                      }
                                    },
                                    "name": "centerPoint"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8718,
                                  "end": 8726,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 42
                                    }
                                  },
                                  "name": "position"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8727,
                                "end": 8731,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 47
                                  }
                                },
                                "name": "copy"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 8732,
                                "end": 8749,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 65
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8732,
                                  "end": 8742,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 58
                                    }
                                  },
                                  "name": "geomParams"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8743,
                                  "end": 8749,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 65
                                    }
                                  },
                                  "name": "center"
                                },
                                "computed": false
                              }
                            ]
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 8764,
                          "end": 8807,
                          "loc": {
                            "start": {
                              "line": 226,
                              "column": 12
                            },
                            "end": {
                              "line": 226,
                              "column": 55
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 8764,
                            "end": 8806,
                            "loc": {
                              "start": {
                                "line": 226,
                                "column": 12
                              },
                              "end": {
                                "line": 226,
                                "column": 54
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 8764,
                              "end": 8783,
                              "loc": {
                                "start": {
                                  "line": 226,
                                  "column": 12
                                },
                                "end": {
                                  "line": 226,
                                  "column": 31
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8764,
                                "end": 8773,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 21
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8774,
                                "end": 8783,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 31
                                  }
                                },
                                "name": "clockwise"
                              },
                              "computed": false
                            },
                            "right": {
                              "type": "MemberExpression",
                              "start": 8786,
                              "end": 8806,
                              "loc": {
                                "start": {
                                  "line": 226,
                                  "column": 34
                                },
                                "end": {
                                  "line": 226,
                                  "column": 54
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8786,
                                "end": 8796,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 44
                                  }
                                },
                                "name": "geomParams"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8797,
                                "end": 8806,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 54
                                  }
                                },
                                "name": "clockwise"
                              },
                              "computed": false
                            }
                          }
                        }
                      ]
                    },
                    "alternate": null
                  }
                ]
              }
            },
            {
              "type": "ExpressionStatement",
              "start": 8829,
              "end": 8856,
              "loc": {
                "start": {
                  "line": 230,
                  "column": 4
                },
                "end": {
                  "line": 230,
                  "column": 31
                }
              },
              "expression": {
                "type": "CallExpression",
                "start": 8829,
                "end": 8855,
                "loc": {
                  "start": {
                    "line": 230,
                    "column": 4
                  },
                  "end": {
                    "line": 230,
                    "column": 30
                  }
                },
                "callee": {
                  "type": "MemberExpression",
                  "start": 8829,
                  "end": 8853,
                  "loc": {
                    "start": {
                      "line": 230,
                      "column": 4
                    },
                    "end": {
                      "line": 230,
                      "column": 28
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 8829,
                    "end": 8838,
                    "loc": {
                      "start": {
                        "line": 230,
                        "column": 4
                      },
                      "end": {
                        "line": 230,
                        "column": 13
                      }
                    },
                    "name": "oldObject"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 8839,
                    "end": 8853,
                    "loc": {
                      "start": {
                        "line": 230,
                        "column": 14
                      },
                      "end": {
                        "line": 230,
                        "column": 28
                      }
                    },
                    "name": "updateGeometry"
                  },
                  "computed": false
                },
                "arguments": []
              }
            },
            {
              "type": "ReturnStatement",
              "start": 8861,
              "end": 8878,
              "loc": {
                "start": {
                  "line": 231,
                  "column": 4
                },
                "end": {
                  "line": 231,
                  "column": 21
                }
              },
              "argument": {
                "type": "Identifier",
                "start": 8868,
                "end": 8877,
                "loc": {
                  "start": {
                    "line": 231,
                    "column": 11
                  },
                  "end": {
                    "line": 231,
                    "column": 20
                  }
                },
                "name": "oldObject"
              }
            }
          ],
          "trailingComments": null
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "returns intersection point of given two lines",
            "start": 8882,
            "end": 8929,
            "loc": {
              "start": {
                "line": 234,
                "column": 0
              },
              "end": {
                "line": 234,
                "column": 47
              }
            },
            "range": [
              8882,
              8929
            ]
          },
          {
            "type": "CommentLine",
            "value": "if angularTolerance is set, then null is returned when lines are parallel",
            "start": 8930,
            "end": 9005,
            "loc": {
              "start": {
                "line": 235,
                "column": 0
              },
              "end": {
                "line": 235,
                "column": 75
              }
            },
            "range": [
              8930,
              9005
            ]
          }
        ],
        "leadingComments": []
      },
      "specifiers": [],
      "source": null,
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "returns intersection point of given two lines",
          "start": 8882,
          "end": 8929,
          "loc": {
            "start": {
              "line": 234,
              "column": 0
            },
            "end": {
              "line": 234,
              "column": 47
            }
          },
          "range": [
            8882,
            8929
          ]
        },
        {
          "type": "CommentLine",
          "value": "if angularTolerance is set, then null is returned when lines are parallel",
          "start": 8930,
          "end": 9005,
          "loc": {
            "start": {
              "line": 235,
              "column": 0
            },
            "end": {
              "line": 235,
              "column": 75
            }
          },
          "range": [
            8930,
            9005
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 9006,
      "end": 9817,
      "loc": {
        "start": {
          "line": 236,
          "column": 0
        },
        "end": {
          "line": 253,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 9013,
        "end": 9817,
        "loc": {
          "start": {
            "line": 236,
            "column": 7
          },
          "end": {
            "line": 253,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 9022,
          "end": 9036,
          "loc": {
            "start": {
              "line": 236,
              "column": 16
            },
            "end": {
              "line": 236,
              "column": 30
            }
          },
          "name": "intersectLines",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 9037,
            "end": 9041,
            "loc": {
              "start": {
                "line": 236,
                "column": 31
              },
              "end": {
                "line": 236,
                "column": 35
              }
            },
            "name": "pntA"
          },
          {
            "type": "Identifier",
            "start": 9043,
            "end": 9047,
            "loc": {
              "start": {
                "line": 236,
                "column": 37
              },
              "end": {
                "line": 236,
                "column": 41
              }
            },
            "name": "dirA"
          },
          {
            "type": "Identifier",
            "start": 9049,
            "end": 9053,
            "loc": {
              "start": {
                "line": 236,
                "column": 43
              },
              "end": {
                "line": 236,
                "column": 47
              }
            },
            "name": "pntB"
          },
          {
            "type": "Identifier",
            "start": 9055,
            "end": 9059,
            "loc": {
              "start": {
                "line": 236,
                "column": 49
              },
              "end": {
                "line": 236,
                "column": 53
              }
            },
            "name": "dirB"
          },
          {
            "type": "Identifier",
            "start": 9061,
            "end": 9077,
            "loc": {
              "start": {
                "line": 236,
                "column": 55
              },
              "end": {
                "line": 236,
                "column": 71
              }
            },
            "name": "angularTolerance"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 9079,
          "end": 9817,
          "loc": {
            "start": {
              "line": 236,
              "column": 73
            },
            "end": {
              "line": 253,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ExpressionStatement",
              "start": 9085,
              "end": 9130,
              "loc": {
                "start": {
                  "line": 237,
                  "column": 4
                },
                "end": {
                  "line": 237,
                  "column": 49
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9085,
                "end": 9129,
                "loc": {
                  "start": {
                    "line": 237,
                    "column": 4
                  },
                  "end": {
                    "line": 237,
                    "column": 48
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9085,
                  "end": 9101,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 4
                    },
                    "end": {
                      "line": 237,
                      "column": 20
                    }
                  },
                  "name": "angularTolerance"
                },
                "right": {
                  "type": "LogicalExpression",
                  "start": 9104,
                  "end": 9129,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 23
                    },
                    "end": {
                      "line": 237,
                      "column": 48
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 9104,
                    "end": 9120,
                    "loc": {
                      "start": {
                        "line": 237,
                        "column": 23
                      },
                      "end": {
                        "line": 237,
                        "column": 39
                      }
                    },
                    "name": "angularTolerance"
                  },
                  "operator": "||",
                  "right": {
                    "type": "Literal",
                    "start": 9124,
                    "end": 9129,
                    "loc": {
                      "start": {
                        "line": 237,
                        "column": 43
                      },
                      "end": {
                        "line": 237,
                        "column": 48
                      }
                    },
                    "value": 1e-15,
                    "rawValue": 1e-15,
                    "raw": "1e-15"
                  }
                }
              },
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "mach.eps. by default",
                  "start": 9131,
                  "end": 9153,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 50
                    },
                    "end": {
                      "line": 237,
                      "column": 72
                    }
                  },
                  "range": [
                    9131,
                    9153
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 9158,
              "end": 9190,
              "loc": {
                "start": {
                  "line": 238,
                  "column": 4
                },
                "end": {
                  "line": 238,
                  "column": 36
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9158,
                "end": 9189,
                "loc": {
                  "start": {
                    "line": 238,
                    "column": 4
                  },
                  "end": {
                    "line": 238,
                    "column": 35
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9158,
                  "end": 9162,
                  "loc": {
                    "start": {
                      "line": 238,
                      "column": 4
                    },
                    "end": {
                      "line": 238,
                      "column": 8
                    }
                  },
                  "name": "dirA",
                  "leadingComments": null
                },
                "right": {
                  "type": "CallExpression",
                  "start": 9165,
                  "end": 9189,
                  "loc": {
                    "start": {
                      "line": 238,
                      "column": 11
                    },
                    "end": {
                      "line": 238,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9165,
                    "end": 9187,
                    "loc": {
                      "start": {
                        "line": 238,
                        "column": 11
                      },
                      "end": {
                        "line": 238,
                        "column": 33
                      }
                    },
                    "object": {
                      "type": "CallExpression",
                      "start": 9165,
                      "end": 9177,
                      "loc": {
                        "start": {
                          "line": 238,
                          "column": 11
                        },
                        "end": {
                          "line": 238,
                          "column": 23
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 9165,
                        "end": 9175,
                        "loc": {
                          "start": {
                            "line": 238,
                            "column": 11
                          },
                          "end": {
                            "line": 238,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 9165,
                          "end": 9169,
                          "loc": {
                            "start": {
                              "line": 238,
                              "column": 11
                            },
                            "end": {
                              "line": 238,
                              "column": 15
                            }
                          },
                          "name": "dirA"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 9170,
                          "end": 9175,
                          "loc": {
                            "start": {
                              "line": 238,
                              "column": 16
                            },
                            "end": {
                              "line": 238,
                              "column": 21
                            }
                          },
                          "name": "clone"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9178,
                      "end": 9187,
                      "loc": {
                        "start": {
                          "line": 238,
                          "column": 24
                        },
                        "end": {
                          "line": 238,
                          "column": 33
                        }
                      },
                      "name": "normalize"
                    },
                    "computed": false
                  },
                  "arguments": []
                },
                "leadingComments": null
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "mach.eps. by default",
                  "start": 9131,
                  "end": 9153,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 50
                    },
                    "end": {
                      "line": 237,
                      "column": 72
                    }
                  },
                  "range": [
                    9131,
                    9153
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 9195,
              "end": 9227,
              "loc": {
                "start": {
                  "line": 239,
                  "column": 4
                },
                "end": {
                  "line": 239,
                  "column": 36
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9195,
                "end": 9226,
                "loc": {
                  "start": {
                    "line": 239,
                    "column": 4
                  },
                  "end": {
                    "line": 239,
                    "column": 35
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9195,
                  "end": 9199,
                  "loc": {
                    "start": {
                      "line": 239,
                      "column": 4
                    },
                    "end": {
                      "line": 239,
                      "column": 8
                    }
                  },
                  "name": "dirB"
                },
                "right": {
                  "type": "CallExpression",
                  "start": 9202,
                  "end": 9226,
                  "loc": {
                    "start": {
                      "line": 239,
                      "column": 11
                    },
                    "end": {
                      "line": 239,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9202,
                    "end": 9224,
                    "loc": {
                      "start": {
                        "line": 239,
                        "column": 11
                      },
                      "end": {
                        "line": 239,
                        "column": 33
                      }
                    },
                    "object": {
                      "type": "CallExpression",
                      "start": 9202,
                      "end": 9214,
                      "loc": {
                        "start": {
                          "line": 239,
                          "column": 11
                        },
                        "end": {
                          "line": 239,
                          "column": 23
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 9202,
                        "end": 9212,
                        "loc": {
                          "start": {
                            "line": 239,
                            "column": 11
                          },
                          "end": {
                            "line": 239,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 9202,
                          "end": 9206,
                          "loc": {
                            "start": {
                              "line": 239,
                              "column": 11
                            },
                            "end": {
                              "line": 239,
                              "column": 15
                            }
                          },
                          "name": "dirB"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 9207,
                          "end": 9212,
                          "loc": {
                            "start": {
                              "line": 239,
                              "column": 16
                            },
                            "end": {
                              "line": 239,
                              "column": 21
                            }
                          },
                          "name": "clone"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9215,
                      "end": 9224,
                      "loc": {
                        "start": {
                          "line": 239,
                          "column": 24
                        },
                        "end": {
                          "line": 239,
                          "column": 33
                        }
                      },
                      "name": "normalize"
                    },
                    "computed": false
                  },
                  "arguments": []
                }
              }
            },
            {
              "type": "IfStatement",
              "start": 9232,
              "end": 9312,
              "loc": {
                "start": {
                  "line": 240,
                  "column": 4
                },
                "end": {
                  "line": 241,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 9236,
                "end": 9278,
                "loc": {
                  "start": {
                    "line": 240,
                    "column": 8
                  },
                  "end": {
                    "line": 240,
                    "column": 50
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 9236,
                  "end": 9255,
                  "loc": {
                    "start": {
                      "line": 240,
                      "column": 8
                    },
                    "end": {
                      "line": 240,
                      "column": 27
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 9236,
                    "end": 9249,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 8
                      },
                      "end": {
                        "line": 240,
                        "column": 21
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9236,
                      "end": 9247,
                      "loc": {
                        "start": {
                          "line": 240,
                          "column": 8
                        },
                        "end": {
                          "line": 240,
                          "column": 19
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9236,
                        "end": 9240,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 8
                          },
                          "end": {
                            "line": 240,
                            "column": 12
                          }
                        },
                        "name": "dirA"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9241,
                        "end": 9247,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 13
                          },
                          "end": {
                            "line": 240,
                            "column": 19
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 9252,
                    "end": 9255,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 24
                      },
                      "end": {
                        "line": 240,
                        "column": 27
                      }
                    },
                    "value": 0.9,
                    "rawValue": 0.9,
                    "raw": "0.9"
                  }
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 9259,
                  "end": 9278,
                  "loc": {
                    "start": {
                      "line": 240,
                      "column": 31
                    },
                    "end": {
                      "line": 240,
                      "column": 50
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 9259,
                    "end": 9272,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 31
                      },
                      "end": {
                        "line": 240,
                        "column": 44
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9259,
                      "end": 9270,
                      "loc": {
                        "start": {
                          "line": 240,
                          "column": 31
                        },
                        "end": {
                          "line": 240,
                          "column": 42
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9259,
                        "end": 9263,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 31
                          },
                          "end": {
                            "line": 240,
                            "column": 35
                          }
                        },
                        "name": "dirB"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9264,
                        "end": 9270,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 36
                          },
                          "end": {
                            "line": 240,
                            "column": 42
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 9275,
                    "end": 9278,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 47
                      },
                      "end": {
                        "line": 240,
                        "column": 50
                      }
                    },
                    "value": 0.9,
                    "rawValue": 0.9,
                    "raw": "0.9"
                  }
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 9300,
                "end": 9312,
                "loc": {
                  "start": {
                    "line": 241,
                    "column": 8
                  },
                  "end": {
                    "line": 241,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 9307,
                  "end": 9311,
                  "loc": {
                    "start": {
                      "line": 241,
                      "column": 15
                    },
                    "end": {
                      "line": 241,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null",
                  "leadingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "must be 1",
                    "start": 9280,
                    "end": 9291,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 52
                      },
                      "end": {
                        "line": 240,
                        "column": 63
                      }
                    },
                    "range": [
                      9280,
                      9291
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 9317,
              "end": 9353,
              "loc": {
                "start": {
                  "line": 242,
                  "column": 4
                },
                "end": {
                  "line": 242,
                  "column": 40
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9321,
                  "end": 9352,
                  "loc": {
                    "start": {
                      "line": 242,
                      "column": 8
                    },
                    "end": {
                      "line": 242,
                      "column": 39
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9321,
                    "end": 9324,
                    "loc": {
                      "start": {
                        "line": 242,
                        "column": 8
                      },
                      "end": {
                        "line": 242,
                        "column": 11
                      }
                    },
                    "name": "PxQ"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9327,
                    "end": 9352,
                    "loc": {
                      "start": {
                        "line": 242,
                        "column": 14
                      },
                      "end": {
                        "line": 242,
                        "column": 39
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9327,
                      "end": 9340,
                      "loc": {
                        "start": {
                          "line": 242,
                          "column": 14
                        },
                        "end": {
                          "line": 242,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9327,
                        "end": 9332,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 14
                          },
                          "end": {
                            "line": 242,
                            "column": 19
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9333,
                        "end": 9340,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 20
                          },
                          "end": {
                            "line": 242,
                            "column": 27
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9341,
                        "end": 9345,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 28
                          },
                          "end": {
                            "line": 242,
                            "column": 32
                          }
                        },
                        "name": "dirA"
                      },
                      {
                        "type": "Identifier",
                        "start": 9347,
                        "end": 9351,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 34
                          },
                          "end": {
                            "line": 242,
                            "column": 38
                          }
                        },
                        "name": "dirB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 9358,
              "end": 9417,
              "loc": {
                "start": {
                  "line": 243,
                  "column": 4
                },
                "end": {
                  "line": 244,
                  "column": 20
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 9362,
                "end": 9395,
                "loc": {
                  "start": {
                    "line": 243,
                    "column": 8
                  },
                  "end": {
                    "line": 243,
                    "column": 41
                  }
                },
                "left": {
                  "type": "CallExpression",
                  "start": 9362,
                  "end": 9375,
                  "loc": {
                    "start": {
                      "line": 243,
                      "column": 8
                    },
                    "end": {
                      "line": 243,
                      "column": 21
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9362,
                    "end": 9370,
                    "loc": {
                      "start": {
                        "line": 243,
                        "column": 8
                      },
                      "end": {
                        "line": 243,
                        "column": 16
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 9362,
                      "end": 9366,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 8
                        },
                        "end": {
                          "line": 243,
                          "column": 12
                        }
                      },
                      "name": "Math"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9367,
                      "end": 9370,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 13
                        },
                        "end": {
                          "line": 243,
                          "column": 16
                        }
                      },
                      "name": "abs"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 9371,
                      "end": 9374,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 17
                        },
                        "end": {
                          "line": 243,
                          "column": 20
                        }
                      },
                      "name": "PxQ"
                    }
                  ]
                },
                "operator": "<=",
                "right": {
                  "type": "Identifier",
                  "start": 9379,
                  "end": 9395,
                  "loc": {
                    "start": {
                      "line": 243,
                      "column": 25
                    },
                    "end": {
                      "line": 243,
                      "column": 41
                    }
                  },
                  "name": "angularTolerance"
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 9405,
                "end": 9417,
                "loc": {
                  "start": {
                    "line": 244,
                    "column": 8
                  },
                  "end": {
                    "line": 244,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 9412,
                  "end": 9416,
                  "loc": {
                    "start": {
                      "line": 244,
                      "column": 15
                    },
                    "end": {
                      "line": 244,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 9422,
              "end": 9478,
              "loc": {
                "start": {
                  "line": 245,
                  "column": 4
                },
                "end": {
                  "line": 245,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9426,
                  "end": 9477,
                  "loc": {
                    "start": {
                      "line": 245,
                      "column": 8
                    },
                    "end": {
                      "line": 245,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9426,
                    "end": 9431,
                    "loc": {
                      "start": {
                        "line": 245,
                        "column": 8
                      },
                      "end": {
                        "line": 245,
                        "column": 13
                      }
                    },
                    "name": "BmAxQ"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9434,
                    "end": 9477,
                    "loc": {
                      "start": {
                        "line": 245,
                        "column": 16
                      },
                      "end": {
                        "line": 245,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9434,
                      "end": 9447,
                      "loc": {
                        "start": {
                          "line": 245,
                          "column": 16
                        },
                        "end": {
                          "line": 245,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9434,
                        "end": 9439,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 16
                          },
                          "end": {
                            "line": 245,
                            "column": 21
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9440,
                        "end": 9447,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 22
                          },
                          "end": {
                            "line": 245,
                            "column": 29
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 9448,
                        "end": 9470,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 30
                          },
                          "end": {
                            "line": 245,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9448,
                          "end": 9464,
                          "loc": {
                            "start": {
                              "line": 245,
                              "column": 30
                            },
                            "end": {
                              "line": 245,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9448,
                            "end": 9460,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 30
                              },
                              "end": {
                                "line": 245,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9448,
                              "end": 9458,
                              "loc": {
                                "start": {
                                  "line": 245,
                                  "column": 30
                                },
                                "end": {
                                  "line": 245,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9448,
                                "end": 9452,
                                "loc": {
                                  "start": {
                                    "line": 245,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 245,
                                    "column": 34
                                  }
                                },
                                "name": "pntB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9453,
                                "end": 9458,
                                "loc": {
                                  "start": {
                                    "line": 245,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 245,
                                    "column": 40
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9461,
                            "end": 9464,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 43
                              },
                              "end": {
                                "line": 245,
                                "column": 46
                              }
                            },
                            "name": "sub"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9465,
                            "end": 9469,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 47
                              },
                              "end": {
                                "line": 245,
                                "column": 51
                              }
                            },
                            "name": "pntA"
                          }
                        ]
                      },
                      {
                        "type": "Identifier",
                        "start": 9472,
                        "end": 9476,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 54
                          },
                          "end": {
                            "line": 245,
                            "column": 58
                          }
                        },
                        "name": "dirB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9483,
              "end": 9539,
              "loc": {
                "start": {
                  "line": 246,
                  "column": 4
                },
                "end": {
                  "line": 246,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9487,
                  "end": 9538,
                  "loc": {
                    "start": {
                      "line": 246,
                      "column": 8
                    },
                    "end": {
                      "line": 246,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9487,
                    "end": 9492,
                    "loc": {
                      "start": {
                        "line": 246,
                        "column": 8
                      },
                      "end": {
                        "line": 246,
                        "column": 13
                      }
                    },
                    "name": "BmAxP"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9495,
                    "end": 9538,
                    "loc": {
                      "start": {
                        "line": 246,
                        "column": 16
                      },
                      "end": {
                        "line": 246,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9495,
                      "end": 9508,
                      "loc": {
                        "start": {
                          "line": 246,
                          "column": 16
                        },
                        "end": {
                          "line": 246,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9495,
                        "end": 9500,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 16
                          },
                          "end": {
                            "line": 246,
                            "column": 21
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9501,
                        "end": 9508,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 22
                          },
                          "end": {
                            "line": 246,
                            "column": 29
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 9509,
                        "end": 9531,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 30
                          },
                          "end": {
                            "line": 246,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9509,
                          "end": 9525,
                          "loc": {
                            "start": {
                              "line": 246,
                              "column": 30
                            },
                            "end": {
                              "line": 246,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9509,
                            "end": 9521,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 30
                              },
                              "end": {
                                "line": 246,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9509,
                              "end": 9519,
                              "loc": {
                                "start": {
                                  "line": 246,
                                  "column": 30
                                },
                                "end": {
                                  "line": 246,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9509,
                                "end": 9513,
                                "loc": {
                                  "start": {
                                    "line": 246,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 246,
                                    "column": 34
                                  }
                                },
                                "name": "pntB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9514,
                                "end": 9519,
                                "loc": {
                                  "start": {
                                    "line": 246,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 246,
                                    "column": 40
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9522,
                            "end": 9525,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 43
                              },
                              "end": {
                                "line": 246,
                                "column": 46
                              }
                            },
                            "name": "sub"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9526,
                            "end": 9530,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 47
                              },
                              "end": {
                                "line": 246,
                                "column": 51
                              }
                            },
                            "name": "pntA"
                          }
                        ]
                      },
                      {
                        "type": "Identifier",
                        "start": 9533,
                        "end": 9537,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 54
                          },
                          "end": {
                            "line": 246,
                            "column": 58
                          }
                        },
                        "name": "dirA"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9544,
              "end": 9569,
              "loc": {
                "start": {
                  "line": 247,
                  "column": 4
                },
                "end": {
                  "line": 247,
                  "column": 29
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9548,
                  "end": 9568,
                  "loc": {
                    "start": {
                      "line": 247,
                      "column": 8
                    },
                    "end": {
                      "line": 247,
                      "column": 28
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9548,
                    "end": 9554,
                    "loc": {
                      "start": {
                        "line": 247,
                        "column": 8
                      },
                      "end": {
                        "line": 247,
                        "column": 14
                      }
                    },
                    "name": "paramA"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 9557,
                    "end": 9568,
                    "loc": {
                      "start": {
                        "line": 247,
                        "column": 17
                      },
                      "end": {
                        "line": 247,
                        "column": 28
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 9557,
                      "end": 9562,
                      "loc": {
                        "start": {
                          "line": 247,
                          "column": 17
                        },
                        "end": {
                          "line": 247,
                          "column": 22
                        }
                      },
                      "name": "BmAxQ"
                    },
                    "operator": "/",
                    "right": {
                      "type": "Identifier",
                      "start": 9565,
                      "end": 9568,
                      "loc": {
                        "start": {
                          "line": 247,
                          "column": 25
                        },
                        "end": {
                          "line": 247,
                          "column": 28
                        }
                      },
                      "name": "PxQ"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9574,
              "end": 9599,
              "loc": {
                "start": {
                  "line": 248,
                  "column": 4
                },
                "end": {
                  "line": 248,
                  "column": 29
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9578,
                  "end": 9598,
                  "loc": {
                    "start": {
                      "line": 248,
                      "column": 8
                    },
                    "end": {
                      "line": 248,
                      "column": 28
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9578,
                    "end": 9584,
                    "loc": {
                      "start": {
                        "line": 248,
                        "column": 8
                      },
                      "end": {
                        "line": 248,
                        "column": 14
                      }
                    },
                    "name": "paramB"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 9587,
                    "end": 9598,
                    "loc": {
                      "start": {
                        "line": 248,
                        "column": 17
                      },
                      "end": {
                        "line": 248,
                        "column": 28
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 9587,
                      "end": 9592,
                      "loc": {
                        "start": {
                          "line": 248,
                          "column": 17
                        },
                        "end": {
                          "line": 248,
                          "column": 22
                        }
                      },
                      "name": "BmAxP"
                    },
                    "operator": "/",
                    "right": {
                      "type": "Identifier",
                      "start": 9595,
                      "end": 9598,
                      "loc": {
                        "start": {
                          "line": 248,
                          "column": 25
                        },
                        "end": {
                          "line": 248,
                          "column": 28
                        }
                      },
                      "name": "PxQ"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9604,
              "end": 9664,
              "loc": {
                "start": {
                  "line": 249,
                  "column": 4
                },
                "end": {
                  "line": 249,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9608,
                  "end": 9663,
                  "loc": {
                    "start": {
                      "line": 249,
                      "column": 8
                    },
                    "end": {
                      "line": 249,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9608,
                    "end": 9615,
                    "loc": {
                      "start": {
                        "line": 249,
                        "column": 8
                      },
                      "end": {
                        "line": 249,
                        "column": 15
                      }
                    },
                    "name": "intersA"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9618,
                    "end": 9663,
                    "loc": {
                      "start": {
                        "line": 249,
                        "column": 18
                      },
                      "end": {
                        "line": 249,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9618,
                      "end": 9657,
                      "loc": {
                        "start": {
                          "line": 249,
                          "column": 18
                        },
                        "end": {
                          "line": 249,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9618,
                        "end": 9653,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 18
                          },
                          "end": {
                            "line": 249,
                            "column": 53
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9618,
                          "end": 9645,
                          "loc": {
                            "start": {
                              "line": 249,
                              "column": 18
                            },
                            "end": {
                              "line": 249,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9618,
                            "end": 9630,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 18
                              },
                              "end": {
                                "line": 249,
                                "column": 30
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9618,
                              "end": 9628,
                              "loc": {
                                "start": {
                                  "line": 249,
                                  "column": 18
                                },
                                "end": {
                                  "line": 249,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9618,
                                "end": 9622,
                                "loc": {
                                  "start": {
                                    "line": 249,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 249,
                                    "column": 22
                                  }
                                },
                                "name": "dirA"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9623,
                                "end": 9628,
                                "loc": {
                                  "start": {
                                    "line": 249,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 249,
                                    "column": 28
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9631,
                            "end": 9645,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 31
                              },
                              "end": {
                                "line": 249,
                                "column": 45
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9646,
                            "end": 9652,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 46
                              },
                              "end": {
                                "line": 249,
                                "column": 52
                              }
                            },
                            "name": "paramA"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9654,
                        "end": 9657,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 54
                          },
                          "end": {
                            "line": 249,
                            "column": 57
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9658,
                        "end": 9662,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 58
                          },
                          "end": {
                            "line": 249,
                            "column": 62
                          }
                        },
                        "name": "pntA"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9669,
              "end": 9729,
              "loc": {
                "start": {
                  "line": 250,
                  "column": 4
                },
                "end": {
                  "line": 250,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9673,
                  "end": 9728,
                  "loc": {
                    "start": {
                      "line": 250,
                      "column": 8
                    },
                    "end": {
                      "line": 250,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9673,
                    "end": 9680,
                    "loc": {
                      "start": {
                        "line": 250,
                        "column": 8
                      },
                      "end": {
                        "line": 250,
                        "column": 15
                      }
                    },
                    "name": "intersB"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9683,
                    "end": 9728,
                    "loc": {
                      "start": {
                        "line": 250,
                        "column": 18
                      },
                      "end": {
                        "line": 250,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9683,
                      "end": 9722,
                      "loc": {
                        "start": {
                          "line": 250,
                          "column": 18
                        },
                        "end": {
                          "line": 250,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9683,
                        "end": 9718,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 18
                          },
                          "end": {
                            "line": 250,
                            "column": 53
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9683,
                          "end": 9710,
                          "loc": {
                            "start": {
                              "line": 250,
                              "column": 18
                            },
                            "end": {
                              "line": 250,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9683,
                            "end": 9695,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 18
                              },
                              "end": {
                                "line": 250,
                                "column": 30
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9683,
                              "end": 9693,
                              "loc": {
                                "start": {
                                  "line": 250,
                                  "column": 18
                                },
                                "end": {
                                  "line": 250,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9683,
                                "end": 9687,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 22
                                  }
                                },
                                "name": "dirB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9688,
                                "end": 9693,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 28
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9696,
                            "end": 9710,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 31
                              },
                              "end": {
                                "line": 250,
                                "column": 45
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9711,
                            "end": 9717,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 46
                              },
                              "end": {
                                "line": 250,
                                "column": 52
                              }
                            },
                            "name": "paramB"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9719,
                        "end": 9722,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 54
                          },
                          "end": {
                            "line": 250,
                            "column": 57
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9723,
                        "end": 9727,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 58
                          },
                          "end": {
                            "line": 250,
                            "column": 62
                          }
                        },
                        "name": "pntB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9734,
              "end": 9796,
              "loc": {
                "start": {
                  "line": 251,
                  "column": 4
                },
                "end": {
                  "line": 251,
                  "column": 66
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9738,
                  "end": 9795,
                  "loc": {
                    "start": {
                      "line": 251,
                      "column": 8
                    },
                    "end": {
                      "line": 251,
                      "column": 65
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9738,
                    "end": 9744,
                    "loc": {
                      "start": {
                        "line": 251,
                        "column": 8
                      },
                      "end": {
                        "line": 251,
                        "column": 14
                      }
                    },
                    "name": "inters"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9747,
                    "end": 9795,
                    "loc": {
                      "start": {
                        "line": 251,
                        "column": 17
                      },
                      "end": {
                        "line": 251,
                        "column": 65
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9747,
                      "end": 9790,
                      "loc": {
                        "start": {
                          "line": 251,
                          "column": 17
                        },
                        "end": {
                          "line": 251,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9747,
                        "end": 9775,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 17
                          },
                          "end": {
                            "line": 251,
                            "column": 45
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9747,
                          "end": 9766,
                          "loc": {
                            "start": {
                              "line": 251,
                              "column": 17
                            },
                            "end": {
                              "line": 251,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9747,
                            "end": 9762,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 17
                              },
                              "end": {
                                "line": 251,
                                "column": 32
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9747,
                              "end": 9760,
                              "loc": {
                                "start": {
                                  "line": 251,
                                  "column": 17
                                },
                                "end": {
                                  "line": 251,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9747,
                                "end": 9754,
                                "loc": {
                                  "start": {
                                    "line": 251,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 251,
                                    "column": 24
                                  }
                                },
                                "name": "intersA"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9755,
                                "end": 9760,
                                "loc": {
                                  "start": {
                                    "line": 251,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 251,
                                    "column": 30
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9763,
                            "end": 9766,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 33
                              },
                              "end": {
                                "line": 251,
                                "column": 36
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9767,
                            "end": 9774,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 37
                              },
                              "end": {
                                "line": 251,
                                "column": 44
                              }
                            },
                            "name": "intersB"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9776,
                        "end": 9790,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 46
                          },
                          "end": {
                            "line": 251,
                            "column": 60
                          }
                        },
                        "name": "multiplyScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 9791,
                        "end": 9794,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 61
                          },
                          "end": {
                            "line": 251,
                            "column": 64
                          }
                        },
                        "value": 0.5,
                        "rawValue": 0.5,
                        "raw": "0.5"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 9801,
              "end": 9815,
              "loc": {
                "start": {
                  "line": 252,
                  "column": 4
                },
                "end": {
                  "line": 252,
                  "column": 18
                }
              },
              "argument": {
                "type": "Identifier",
                "start": 9808,
                "end": 9814,
                "loc": {
                  "start": {
                    "line": 252,
                    "column": 11
                  },
                  "end": {
                    "line": 252,
                    "column": 17
                  }
                },
                "name": "inters"
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "returns intersection point of given two lines",
            "start": 8882,
            "end": 8929,
            "loc": {
              "start": {
                "line": 234,
                "column": 0
              },
              "end": {
                "line": 234,
                "column": 47
              }
            },
            "range": [
              8882,
              8929
            ]
          },
          {
            "type": "CommentLine",
            "value": "if angularTolerance is set, then null is returned when lines are parallel",
            "start": 8930,
            "end": 9005,
            "loc": {
              "start": {
                "line": 235,
                "column": 0
              },
              "end": {
                "line": 235,
                "column": 75
              }
            },
            "range": [
              8930,
              9005
            ]
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "returns intersection point of given two lines",
          "start": 8882,
          "end": 8929,
          "loc": {
            "start": {
              "line": 234,
              "column": 0
            },
            "end": {
              "line": 234,
              "column": 47
            }
          },
          "range": [
            8882,
            8929
          ]
        },
        {
          "type": "CommentLine",
          "value": "if angularTolerance is set, then null is returned when lines are parallel",
          "start": 8930,
          "end": 9005,
          "loc": {
            "start": {
              "line": 235,
              "column": 0
            },
            "end": {
              "line": 235,
              "column": 75
            }
          },
          "range": [
            8930,
            9005
          ]
        }
      ]
    },
    {
      "type": "EmptyStatement",
      "start": 9817,
      "end": 9818,
      "loc": {
        "start": {
          "line": 253,
          "column": 1
        },
        "end": {
          "line": 253,
          "column": 2
        }
      }
    }
  ]
}