{
  "type": "File",
  "start": 0,
  "end": 4837,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 127,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 4837,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 127,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 24,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 24
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 7,
            "end": 11,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 11
              }
            },
            "local": {
              "type": "Identifier",
              "start": 7,
              "end": 11,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 7
                },
                "end": {
                  "line": 1,
                  "column": 11
                },
                "identifierName": "pako"
              },
              "name": "pako"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 17,
          "end": 23,
          "loc": {
            "start": {
              "line": 1,
              "column": 17
            },
            "end": {
              "line": 1,
              "column": 23
            }
          },
          "extra": {
            "rawValue": "pako",
            "raw": "'pako'"
          },
          "value": "pako"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 25,
        "end": 65,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 40
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 32,
            "end": 38,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 13
              }
            },
            "local": {
              "type": "Identifier",
              "start": 32,
              "end": 38,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 13
                },
                "identifierName": "base64"
              },
              "name": "base64"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 44,
          "end": 64,
          "loc": {
            "start": {
              "line": 2,
              "column": 19
            },
            "end": {
              "line": 2,
              "column": 39
            }
          },
          "extra": {
            "rawValue": "base64-arraybuffer",
            "raw": "'base64-arraybuffer'"
          },
          "value": "base64-arraybuffer"
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Packs ArrayBuffer into deflated base64 for ClassCAD stream consumption",
            "start": 67,
            "end": 140,
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 4,
                "column": 73
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 141,
        "end": 222,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 81
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 148,
          "end": 222,
          "loc": {
            "start": {
              "line": 5,
              "column": 7
            },
            "end": {
              "line": 5,
              "column": 81
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 154,
              "end": 221,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 13
                },
                "end": {
                  "line": 5,
                  "column": 80
                }
              },
              "id": {
                "type": "Identifier",
                "start": 154,
                "end": 158,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 13
                  },
                  "end": {
                    "line": 5,
                    "column": 17
                  },
                  "identifierName": "pack"
                },
                "name": "pack",
                "leadingComments": null
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 161,
                "end": 221,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 20
                  },
                  "end": {
                    "line": 5,
                    "column": 80
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 154,
                  "end": 158,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 13
                    },
                    "end": {
                      "line": 5,
                      "column": 17
                    },
                    "identifierName": "pack"
                  },
                  "name": "pack",
                  "leadingComments": null
                },
                "generator": false,
                "expression": true,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 161,
                    "end": 167,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 20
                      },
                      "end": {
                        "line": 5,
                        "column": 26
                      },
                      "identifierName": "buffer"
                    },
                    "name": "buffer"
                  }
                ],
                "body": {
                  "type": "CallExpression",
                  "start": 171,
                  "end": 221,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 30
                    },
                    "end": {
                      "line": 5,
                      "column": 80
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 171,
                    "end": 184,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 30
                      },
                      "end": {
                        "line": 5,
                        "column": 43
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 171,
                      "end": 177,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 30
                        },
                        "end": {
                          "line": 5,
                          "column": 36
                        },
                        "identifierName": "base64"
                      },
                      "name": "base64"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 178,
                      "end": 184,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 37
                        },
                        "end": {
                          "line": 5,
                          "column": 43
                        },
                        "identifierName": "encode"
                      },
                      "name": "encode"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "CallExpression",
                      "start": 185,
                      "end": 220,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 44
                        },
                        "end": {
                          "line": 5,
                          "column": 79
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 185,
                        "end": 197,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 44
                          },
                          "end": {
                            "line": 5,
                            "column": 56
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 185,
                          "end": 189,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 44
                            },
                            "end": {
                              "line": 5,
                              "column": 48
                            },
                            "identifierName": "pako"
                          },
                          "name": "pako"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 190,
                          "end": 197,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 49
                            },
                            "end": {
                              "line": 5,
                              "column": 56
                            },
                            "identifierName": "deflate"
                          },
                          "name": "deflate"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 198,
                          "end": 204,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 57
                            },
                            "end": {
                              "line": 5,
                              "column": 63
                            },
                            "identifierName": "buffer"
                          },
                          "name": "buffer"
                        },
                        {
                          "type": "ObjectExpression",
                          "start": 206,
                          "end": 219,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 65
                            },
                            "end": {
                              "line": 5,
                              "column": 78
                            }
                          },
                          "properties": [
                            {
                              "type": "ObjectProperty",
                              "start": 208,
                              "end": 217,
                              "loc": {
                                "start": {
                                  "line": 5,
                                  "column": 67
                                },
                                "end": {
                                  "line": 5,
                                  "column": 76
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 208,
                                "end": 211,
                                "loc": {
                                  "start": {
                                    "line": 5,
                                    "column": 67
                                  },
                                  "end": {
                                    "line": 5,
                                    "column": 70
                                  },
                                  "identifierName": "raw"
                                },
                                "name": "raw"
                              },
                              "value": {
                                "type": "BooleanLiteral",
                                "start": 213,
                                "end": 217,
                                "loc": {
                                  "start": {
                                    "line": 5,
                                    "column": 72
                                  },
                                  "end": {
                                    "line": 5,
                                    "column": 76
                                  }
                                },
                                "value": true
                              }
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              },
              "leadingComments": null
            }
          ],
          "kind": "const",
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " Packs ArrayBuffer into deflated base64 for ClassCAD stream consumption",
              "start": 67,
              "end": 140,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 0
                },
                "end": {
                  "line": 4,
                  "column": 73
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " Helps detecting changes in two array-states",
              "start": 224,
              "end": 270,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 0
                },
                "end": {
                  "line": 7,
                  "column": 46
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Packs ArrayBuffer into deflated base64 for ClassCAD stream consumption",
            "start": 67,
            "end": 140,
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 4,
                "column": 73
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Helps detecting changes in two array-states",
            "start": 224,
            "end": 270,
            "loc": {
              "start": {
                "line": 7,
                "column": 0
              },
              "end": {
                "line": 7,
                "column": 46
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 271,
        "end": 934,
        "loc": {
          "start": {
            "line": 8,
            "column": 0
          },
          "end": {
            "line": 27,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 278,
          "end": 934,
          "loc": {
            "start": {
              "line": 8,
              "column": 7
            },
            "end": {
              "line": 27,
              "column": 1
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 284,
              "end": 934,
              "loc": {
                "start": {
                  "line": 8,
                  "column": 13
                },
                "end": {
                  "line": 27,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 284,
                "end": 293,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 13
                  },
                  "end": {
                    "line": 8,
                    "column": 22
                  },
                  "identifierName": "arrayDiff"
                },
                "name": "arrayDiff",
                "leadingComments": null
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 296,
                "end": 934,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 25
                  },
                  "end": {
                    "line": 27,
                    "column": 1
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 284,
                  "end": 293,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 13
                    },
                    "end": {
                      "line": 8,
                      "column": 22
                    },
                    "identifierName": "arrayDiff"
                  },
                  "name": "arrayDiff",
                  "leadingComments": null
                },
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 297,
                    "end": 306,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 26
                      },
                      "end": {
                        "line": 8,
                        "column": 35
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 297,
                      "end": 301,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 26
                        },
                        "end": {
                          "line": 8,
                          "column": 30
                        },
                        "identifierName": "next"
                      },
                      "name": "next"
                    },
                    "right": {
                      "type": "ArrayExpression",
                      "start": 304,
                      "end": 306,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 33
                        },
                        "end": {
                          "line": 8,
                          "column": 35
                        }
                      },
                      "elements": []
                    }
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 308,
                    "end": 320,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 37
                      },
                      "end": {
                        "line": 8,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 308,
                      "end": 315,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 37
                        },
                        "end": {
                          "line": 8,
                          "column": 44
                        },
                        "identifierName": "current"
                      },
                      "name": "current"
                    },
                    "right": {
                      "type": "ArrayExpression",
                      "start": 318,
                      "end": 320,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 47
                        },
                        "end": {
                          "line": 8,
                          "column": 49
                        }
                      },
                      "elements": []
                    }
                  },
                  {
                    "type": "Identifier",
                    "start": 322,
                    "end": 333,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 51
                      },
                      "end": {
                        "line": 8,
                        "column": 62
                      },
                      "identifierName": "callbackNew"
                    },
                    "name": "callbackNew"
                  },
                  {
                    "type": "Identifier",
                    "start": 335,
                    "end": 350,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 64
                      },
                      "end": {
                        "line": 8,
                        "column": 79
                      },
                      "identifierName": "callbackDeleted"
                    },
                    "name": "callbackDeleted"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 355,
                  "end": 934,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 84
                    },
                    "end": {
                      "line": 27,
                      "column": 1
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 361,
                      "end": 389,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 32
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 365,
                          "end": 388,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 8
                            },
                            "end": {
                              "line": 9,
                              "column": 31
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 365,
                            "end": 372,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 8
                              },
                              "end": {
                                "line": 9,
                                "column": 15
                              },
                              "identifierName": "nextSet"
                            },
                            "name": "nextSet"
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 375,
                            "end": 388,
                            "loc": {
                              "start": {
                                "line": 9,
                                "column": 18
                              },
                              "end": {
                                "line": 9,
                                "column": 31
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 379,
                              "end": 382,
                              "loc": {
                                "start": {
                                  "line": 9,
                                  "column": 22
                                },
                                "end": {
                                  "line": 9,
                                  "column": 25
                                },
                                "identifierName": "Set"
                              },
                              "name": "Set"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 383,
                                "end": 387,
                                "loc": {
                                  "start": {
                                    "line": 9,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 9,
                                    "column": 30
                                  },
                                  "identifierName": "next"
                                },
                                "name": "next"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 394,
                      "end": 428,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 38
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 398,
                          "end": 427,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 8
                            },
                            "end": {
                              "line": 10,
                              "column": 37
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 398,
                            "end": 408,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 8
                              },
                              "end": {
                                "line": 10,
                                "column": 18
                              },
                              "identifierName": "currentSet"
                            },
                            "name": "currentSet"
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 411,
                            "end": 427,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 21
                              },
                              "end": {
                                "line": 10,
                                "column": 37
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 415,
                              "end": 418,
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 25
                                },
                                "end": {
                                  "line": 10,
                                  "column": 28
                                },
                                "identifierName": "Set"
                              },
                              "name": "Set"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 419,
                                "end": 426,
                                "loc": {
                                  "start": {
                                    "line": 10,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 10,
                                    "column": 36
                                  },
                                  "identifierName": "current"
                                },
                                "name": "current"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 433,
                      "end": 491,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 4
                        },
                        "end": {
                          "line": 11,
                          "column": 62
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 437,
                          "end": 490,
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 8
                            },
                            "end": {
                              "line": 11,
                              "column": 61
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 437,
                            "end": 445,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 8
                              },
                              "end": {
                                "line": 11,
                                "column": 16
                              },
                              "identifierName": "newItems"
                            },
                            "name": "newItems"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 448,
                            "end": 490,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 19
                              },
                              "end": {
                                "line": 11,
                                "column": 61
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 448,
                              "end": 459,
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 19
                                },
                                "end": {
                                  "line": 11,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 448,
                                "end": 452,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 23
                                  },
                                  "identifierName": "next"
                                },
                                "name": "next"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 453,
                                "end": 459,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 30
                                  },
                                  "identifierName": "filter"
                                },
                                "name": "filter"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 460,
                                "end": 489,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 60
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 460,
                                    "end": 464,
                                    "loc": {
                                      "start": {
                                        "line": 11,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 11,
                                        "column": 35
                                      },
                                      "identifierName": "item"
                                    },
                                    "name": "item"
                                  }
                                ],
                                "body": {
                                  "type": "UnaryExpression",
                                  "start": 468,
                                  "end": 489,
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 60
                                    }
                                  },
                                  "operator": "!",
                                  "prefix": true,
                                  "argument": {
                                    "type": "CallExpression",
                                    "start": 469,
                                    "end": 489,
                                    "loc": {
                                      "start": {
                                        "line": 11,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 11,
                                        "column": 60
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 469,
                                      "end": 483,
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 54
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 469,
                                        "end": 479,
                                        "loc": {
                                          "start": {
                                            "line": 11,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 11,
                                            "column": 50
                                          },
                                          "identifierName": "currentSet"
                                        },
                                        "name": "currentSet"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 480,
                                        "end": 483,
                                        "loc": {
                                          "start": {
                                            "line": 11,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 11,
                                            "column": 54
                                          },
                                          "identifierName": "has"
                                        },
                                        "name": "has"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 484,
                                        "end": 488,
                                        "loc": {
                                          "start": {
                                            "line": 11,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 11,
                                            "column": 59
                                          },
                                          "identifierName": "item"
                                        },
                                        "name": "item"
                                      }
                                    ]
                                  },
                                  "extra": {
                                    "parenthesizedArgument": false
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 496,
                      "end": 514,
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 4
                        },
                        "end": {
                          "line": 12,
                          "column": 22
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 500,
                          "end": 513,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 8
                            },
                            "end": {
                              "line": 12,
                              "column": 21
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 500,
                            "end": 508,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 16
                              },
                              "identifierName": "promises"
                            },
                            "name": "promises"
                          },
                          "init": {
                            "type": "ArrayExpression",
                            "start": 511,
                            "end": 513,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 19
                              },
                              "end": {
                                "line": 12,
                                "column": 21
                              }
                            },
                            "elements": []
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 519,
                      "end": 657,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 4
                        },
                        "end": {
                          "line": 18,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "MemberExpression",
                        "start": 523,
                        "end": 538,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 8
                          },
                          "end": {
                            "line": 13,
                            "column": 23
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 523,
                          "end": 531,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 8
                            },
                            "end": {
                              "line": 13,
                              "column": 16
                            },
                            "identifierName": "newItems"
                          },
                          "name": "newItems"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 532,
                          "end": 538,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 17
                            },
                            "end": {
                              "line": 13,
                              "column": 23
                            },
                            "identifierName": "length"
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 540,
                        "end": 657,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 25
                          },
                          "end": {
                            "line": 18,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 550,
                            "end": 586,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 8
                              },
                              "end": {
                                "line": 14,
                                "column": 44
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 554,
                                "end": 585,
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 43
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 554,
                                  "end": 561,
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 19
                                    },
                                    "identifierName": "results"
                                  },
                                  "name": "results"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 564,
                                  "end": 585,
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 43
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 564,
                                    "end": 575,
                                    "loc": {
                                      "start": {
                                        "line": 14,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 14,
                                        "column": 33
                                      },
                                      "identifierName": "callbackNew"
                                    },
                                    "name": "callbackNew"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 576,
                                      "end": 584,
                                      "loc": {
                                        "start": {
                                          "line": 14,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 14,
                                          "column": 42
                                        },
                                        "identifierName": "newItems"
                                      },
                                      "name": "newItems"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "IfStatement",
                            "start": 595,
                            "end": 651,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 9
                              }
                            },
                            "test": {
                              "type": "Identifier",
                              "start": 599,
                              "end": 606,
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 12
                                },
                                "end": {
                                  "line": 15,
                                  "column": 19
                                },
                                "identifierName": "results"
                              },
                              "name": "results"
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 608,
                              "end": 651,
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 21
                                },
                                "end": {
                                  "line": 17,
                                  "column": 9
                                }
                              },
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "start": 622,
                                  "end": 641,
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 31
                                    }
                                  },
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "start": 622,
                                    "end": 640,
                                    "loc": {
                                      "start": {
                                        "line": 16,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 16,
                                        "column": 30
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "start": 622,
                                      "end": 630,
                                      "loc": {
                                        "start": {
                                          "line": 16,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 16,
                                          "column": 20
                                        },
                                        "identifierName": "promises"
                                      },
                                      "name": "promises"
                                    },
                                    "right": {
                                      "type": "Identifier",
                                      "start": 633,
                                      "end": 640,
                                      "loc": {
                                        "start": {
                                          "line": 16,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 16,
                                          "column": 30
                                        },
                                        "identifierName": "results"
                                      },
                                      "name": "results"
                                    }
                                  }
                                }
                              ],
                              "directives": []
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 662,
                      "end": 723,
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 4
                        },
                        "end": {
                          "line": 19,
                          "column": 65
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 666,
                          "end": 723,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 8
                            },
                            "end": {
                              "line": 19,
                              "column": 65
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 666,
                            "end": 678,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 8
                              },
                              "end": {
                                "line": 19,
                                "column": 20
                              },
                              "identifierName": "deletedItems"
                            },
                            "name": "deletedItems"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 681,
                            "end": 723,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 23
                              },
                              "end": {
                                "line": 19,
                                "column": 65
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 681,
                              "end": 695,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 23
                                },
                                "end": {
                                  "line": 19,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 681,
                                "end": 688,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 30
                                  },
                                  "identifierName": "current"
                                },
                                "name": "current"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 689,
                                "end": 695,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 37
                                  },
                                  "identifierName": "filter"
                                },
                                "name": "filter"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 696,
                                "end": 722,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 64
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 696,
                                    "end": 700,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 42
                                      },
                                      "identifierName": "item"
                                    },
                                    "name": "item"
                                  }
                                ],
                                "body": {
                                  "type": "UnaryExpression",
                                  "start": 704,
                                  "end": 722,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 64
                                    }
                                  },
                                  "operator": "!",
                                  "prefix": true,
                                  "argument": {
                                    "type": "CallExpression",
                                    "start": 705,
                                    "end": 722,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 64
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 705,
                                      "end": 716,
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 58
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 705,
                                        "end": 712,
                                        "loc": {
                                          "start": {
                                            "line": 19,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 19,
                                            "column": 54
                                          },
                                          "identifierName": "nextSet"
                                        },
                                        "name": "nextSet"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 713,
                                        "end": 716,
                                        "loc": {
                                          "start": {
                                            "line": 19,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 19,
                                            "column": 58
                                          },
                                          "identifierName": "has"
                                        },
                                        "name": "has"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 717,
                                        "end": 721,
                                        "loc": {
                                          "start": {
                                            "line": 19,
                                            "column": 59
                                          },
                                          "end": {
                                            "line": 19,
                                            "column": 63
                                          },
                                          "identifierName": "item"
                                        },
                                        "name": "item"
                                      }
                                    ]
                                  },
                                  "extra": {
                                    "parenthesizedArgument": false
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 728,
                      "end": 898,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 4
                        },
                        "end": {
                          "line": 25,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "MemberExpression",
                        "start": 732,
                        "end": 751,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 8
                          },
                          "end": {
                            "line": 20,
                            "column": 27
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 732,
                          "end": 744,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 8
                            },
                            "end": {
                              "line": 20,
                              "column": 20
                            },
                            "identifierName": "deletedItems"
                          },
                          "name": "deletedItems"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 745,
                          "end": 751,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 21
                            },
                            "end": {
                              "line": 20,
                              "column": 27
                            },
                            "identifierName": "length"
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 753,
                        "end": 898,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 29
                          },
                          "end": {
                            "line": 25,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 763,
                            "end": 807,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 8
                              },
                              "end": {
                                "line": 21,
                                "column": 52
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 767,
                                "end": 806,
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 51
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 767,
                                  "end": 774,
                                  "loc": {
                                    "start": {
                                      "line": 21,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 21,
                                      "column": 19
                                    },
                                    "identifierName": "results"
                                  },
                                  "name": "results"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 777,
                                  "end": 806,
                                  "loc": {
                                    "start": {
                                      "line": 21,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 21,
                                      "column": 51
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 777,
                                    "end": 792,
                                    "loc": {
                                      "start": {
                                        "line": 21,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 21,
                                        "column": 37
                                      },
                                      "identifierName": "callbackDeleted"
                                    },
                                    "name": "callbackDeleted"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 793,
                                      "end": 805,
                                      "loc": {
                                        "start": {
                                          "line": 21,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 21,
                                          "column": 50
                                        },
                                        "identifierName": "deletedItems"
                                      },
                                      "name": "deletedItems"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "IfStatement",
                            "start": 816,
                            "end": 892,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 8
                              },
                              "end": {
                                "line": 24,
                                "column": 9
                              }
                            },
                            "test": {
                              "type": "Identifier",
                              "start": 820,
                              "end": 827,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 12
                                },
                                "end": {
                                  "line": 22,
                                  "column": 19
                                },
                                "identifierName": "results"
                              },
                              "name": "results"
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 829,
                              "end": 892,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 21
                                },
                                "end": {
                                  "line": 24,
                                  "column": 9
                                }
                              },
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "start": 843,
                                  "end": 882,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 51
                                    }
                                  },
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "start": 843,
                                    "end": 881,
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 50
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "start": 843,
                                      "end": 851,
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 20
                                        },
                                        "identifierName": "promises"
                                      },
                                      "name": "promises"
                                    },
                                    "right": {
                                      "type": "ArrayExpression",
                                      "start": 854,
                                      "end": 881,
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 50
                                        }
                                      },
                                      "elements": [
                                        {
                                          "type": "SpreadElement",
                                          "start": 856,
                                          "end": 867,
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 25
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 36
                                            }
                                          },
                                          "argument": {
                                            "type": "Identifier",
                                            "start": 859,
                                            "end": 867,
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 36
                                              },
                                              "identifierName": "promises"
                                            },
                                            "name": "promises"
                                          }
                                        },
                                        {
                                          "type": "SpreadElement",
                                          "start": 869,
                                          "end": 879,
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 48
                                            }
                                          },
                                          "argument": {
                                            "type": "Identifier",
                                            "start": 872,
                                            "end": 879,
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 41
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 48
                                              },
                                              "identifierName": "results"
                                            },
                                            "name": "results"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              ],
                              "directives": []
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 903,
                      "end": 932,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 4
                        },
                        "end": {
                          "line": 26,
                          "column": 33
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 910,
                        "end": 931,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 11
                          },
                          "end": {
                            "line": 26,
                            "column": 32
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 910,
                          "end": 921,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 11
                            },
                            "end": {
                              "line": 26,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 910,
                            "end": 917,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 11
                              },
                              "end": {
                                "line": 26,
                                "column": 18
                              },
                              "identifierName": "Promise"
                            },
                            "name": "Promise"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 918,
                            "end": 921,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 19
                              },
                              "end": {
                                "line": 26,
                                "column": 22
                              },
                              "identifierName": "all"
                            },
                            "name": "all"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 922,
                            "end": 930,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 23
                              },
                              "end": {
                                "line": 26,
                                "column": 31
                              },
                              "identifierName": "promises"
                            },
                            "name": "promises"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "trailingComments": null
              },
              "leadingComments": null,
              "trailingComments": null
            }
          ],
          "kind": "const",
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " Helps detecting changes in two array-states",
              "start": 224,
              "end": 270,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 0
                },
                "end": {
                  "line": 7,
                  "column": 46
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " State observe with pre-select and user-select",
              "start": 936,
              "end": 984,
              "loc": {
                "start": {
                  "line": 29,
                  "column": 0
                },
                "end": {
                  "line": 29,
                  "column": 48
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Helps detecting changes in two array-states",
            "start": 224,
            "end": 270,
            "loc": {
              "start": {
                "line": 7,
                "column": 0
              },
              "end": {
                "line": 7,
                "column": 46
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " State observe with pre-select and user-select",
            "start": 936,
            "end": 984,
            "loc": {
              "start": {
                "line": 29,
                "column": 0
              },
              "end": {
                "line": 29,
                "column": 48
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 985,
        "end": 2203,
        "loc": {
          "start": {
            "line": 30,
            "column": 0
          },
          "end": {
            "line": 61,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 992,
          "end": 2203,
          "loc": {
            "start": {
              "line": 30,
              "column": 7
            },
            "end": {
              "line": 61,
              "column": 1
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 998,
              "end": 2203,
              "loc": {
                "start": {
                  "line": 30,
                  "column": 13
                },
                "end": {
                  "line": 61,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 998,
                "end": 1012,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 13
                  },
                  "end": {
                    "line": 30,
                    "column": 27
                  },
                  "identifierName": "createObserver"
                },
                "name": "createObserver",
                "leadingComments": null
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 1015,
                "end": 2203,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 30
                  },
                  "end": {
                    "line": 61,
                    "column": 1
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 998,
                  "end": 1012,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 13
                    },
                    "end": {
                      "line": 30,
                      "column": 27
                    },
                    "identifierName": "createObserver"
                  },
                  "name": "createObserver",
                  "leadingComments": null
                },
                "generator": false,
                "expression": true,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1016,
                    "end": 1021,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 31
                      },
                      "end": {
                        "line": 30,
                        "column": 36
                      },
                      "identifierName": "store"
                    },
                    "name": "store"
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 1023,
                    "end": 1049,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 38
                      },
                      "end": {
                        "line": 30,
                        "column": 64
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 1023,
                      "end": 1032,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 38
                        },
                        "end": {
                          "line": 30,
                          "column": 47
                        },
                        "identifierName": "preSelect"
                      },
                      "name": "preSelect"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 1035,
                      "end": 1049,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 50
                        },
                        "end": {
                          "line": 30,
                          "column": 64
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1035,
                        "end": 1040,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 50
                          },
                          "end": {
                            "line": 30,
                            "column": 55
                          },
                          "identifierName": "store"
                        },
                        "name": "store"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1041,
                        "end": 1049,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 56
                          },
                          "end": {
                            "line": 30,
                            "column": 64
                          },
                          "identifierName": "getState"
                        },
                        "name": "getState"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "ArrowFunctionExpression",
                  "start": 1060,
                  "end": 2201,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 4
                    },
                    "end": {
                      "line": 60,
                      "column": 5
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 1061,
                      "end": 1071,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 5
                        },
                        "end": {
                          "line": 31,
                          "column": 15
                        },
                        "identifierName": "userSelect"
                      },
                      "name": "userSelect"
                    },
                    {
                      "type": "Identifier",
                      "start": 1073,
                      "end": 1081,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 17
                        },
                        "end": {
                          "line": 31,
                          "column": 25
                        },
                        "identifierName": "onChange"
                      },
                      "name": "onChange"
                    },
                    {
                      "type": "Identifier",
                      "start": 1083,
                      "end": 1096,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 27
                        },
                        "end": {
                          "line": 31,
                          "column": 40
                        },
                        "identifierName": "onUnsubscribe"
                      },
                      "name": "onUnsubscribe"
                    },
                    {
                      "type": "AssignmentPattern",
                      "start": 1098,
                      "end": 1117,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 42
                        },
                        "end": {
                          "line": 31,
                          "column": 61
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 1098,
                        "end": 1109,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 42
                          },
                          "end": {
                            "line": 31,
                            "column": 53
                          },
                          "identifierName": "fireOnStart"
                        },
                        "name": "fireOnStart"
                      },
                      "right": {
                        "type": "BooleanLiteral",
                        "start": 1112,
                        "end": 1117,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 56
                          },
                          "end": {
                            "line": 31,
                            "column": 61
                          }
                        },
                        "value": false
                      }
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 1122,
                    "end": 2201,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 66
                      },
                      "end": {
                        "line": 60,
                        "column": 5
                      }
                    },
                    "body": [
                      {
                        "type": "VariableDeclaration",
                        "start": 1132,
                        "end": 1170,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 8
                          },
                          "end": {
                            "line": 32,
                            "column": 46
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1136,
                            "end": 1147,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 12
                              },
                              "end": {
                                "line": 32,
                                "column": 23
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1136,
                              "end": 1147,
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 12
                                },
                                "end": {
                                  "line": 32,
                                  "column": 23
                                },
                                "identifierName": "unsubscribe"
                              },
                              "name": "unsubscribe"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 1149,
                            "end": 1169,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 25
                              },
                              "end": {
                                "line": 32,
                                "column": 45
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1149,
                              "end": 1161,
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 25
                                },
                                "end": {
                                  "line": 32,
                                  "column": 37
                                },
                                "identifierName": "unsubscribed"
                              },
                              "name": "unsubscribed"
                            },
                            "init": {
                              "type": "BooleanLiteral",
                              "start": 1164,
                              "end": 1169,
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 40
                                },
                                "end": {
                                  "line": 32,
                                  "column": 45
                                }
                              },
                              "value": false
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 1179,
                        "end": 1207,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 8
                          },
                          "end": {
                            "line": 33,
                            "column": 36
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1183,
                            "end": 1206,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 12
                              },
                              "end": {
                                "line": 33,
                                "column": 35
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1183,
                              "end": 1192,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 12
                                },
                                "end": {
                                  "line": 33,
                                  "column": 21
                                },
                                "identifierName": "preselect"
                              },
                              "name": "preselect"
                            },
                            "init": {
                              "type": "CallExpression",
                              "start": 1195,
                              "end": 1206,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 24
                                },
                                "end": {
                                  "line": 33,
                                  "column": 35
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1195,
                                "end": 1204,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 33
                                  },
                                  "identifierName": "preSelect"
                                },
                                "name": "preSelect"
                              },
                              "arguments": []
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 1216,
                        "end": 2195,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 8
                          },
                          "end": {
                            "line": 59,
                            "column": 9
                          }
                        },
                        "test": {
                          "type": "Identifier",
                          "start": 1220,
                          "end": 1229,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 12
                            },
                            "end": {
                              "line": 34,
                              "column": 21
                            },
                            "identifierName": "preselect"
                          },
                          "name": "preselect"
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 1231,
                          "end": 2195,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 23
                            },
                            "end": {
                              "line": 59,
                              "column": 9
                            }
                          },
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "start": 1245,
                              "end": 1286,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 12
                                },
                                "end": {
                                  "line": 35,
                                  "column": 53
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 1249,
                                  "end": 1285,
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 52
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 1249,
                                    "end": 1261,
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 28
                                      },
                                      "identifierName": "currentState"
                                    },
                                    "name": "currentState"
                                  },
                                  "init": {
                                    "type": "CallExpression",
                                    "start": 1264,
                                    "end": 1285,
                                    "loc": {
                                      "start": {
                                        "line": 35,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 35,
                                        "column": 52
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 1264,
                                      "end": 1274,
                                      "loc": {
                                        "start": {
                                          "line": 35,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 35,
                                          "column": 41
                                        },
                                        "identifierName": "userSelect"
                                      },
                                      "name": "userSelect"
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 1275,
                                        "end": 1284,
                                        "loc": {
                                          "start": {
                                            "line": 35,
                                            "column": 42
                                          },
                                          "end": {
                                            "line": 35,
                                            "column": 51
                                          },
                                          "identifierName": "preselect"
                                        },
                                        "name": "preselect"
                                      }
                                    ]
                                  }
                                }
                              ],
                              "kind": "let"
                            },
                            {
                              "type": "VariableDeclaration",
                              "start": 1299,
                              "end": 1530,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 12
                                },
                                "end": {
                                  "line": 42,
                                  "column": 13
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 1305,
                                  "end": 1530,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 13
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 1305,
                                    "end": 1311,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 24
                                      },
                                      "identifierName": "finish"
                                    },
                                    "name": "finish"
                                  },
                                  "init": {
                                    "type": "ArrowFunctionExpression",
                                    "start": 1314,
                                    "end": 1530,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 13
                                      }
                                    },
                                    "id": null,
                                    "generator": false,
                                    "expression": false,
                                    "async": false,
                                    "params": [],
                                    "body": {
                                      "type": "BlockStatement",
                                      "start": 1320,
                                      "end": 1530,
                                      "loc": {
                                        "start": {
                                          "line": 36,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 13
                                        }
                                      },
                                      "body": [
                                        {
                                          "type": "IfStatement",
                                          "start": 1338,
                                          "end": 1383,
                                          "loc": {
                                            "start": {
                                              "line": 37,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 38,
                                              "column": 27
                                            }
                                          },
                                          "test": {
                                            "type": "Identifier",
                                            "start": 1342,
                                            "end": 1354,
                                            "loc": {
                                              "start": {
                                                "line": 37,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 37,
                                                "column": 32
                                              },
                                              "identifierName": "unsubscribed"
                                            },
                                            "name": "unsubscribed"
                                          },
                                          "consequent": {
                                            "type": "ReturnStatement",
                                            "start": 1376,
                                            "end": 1383,
                                            "loc": {
                                              "start": {
                                                "line": 38,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 38,
                                                "column": 27
                                              }
                                            },
                                            "argument": null
                                          },
                                          "alternate": null
                                        },
                                        {
                                          "type": "ExpressionStatement",
                                          "start": 1400,
                                          "end": 1420,
                                          "loc": {
                                            "start": {
                                              "line": 39,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 39,
                                              "column": 36
                                            }
                                          },
                                          "expression": {
                                            "type": "AssignmentExpression",
                                            "start": 1400,
                                            "end": 1419,
                                            "loc": {
                                              "start": {
                                                "line": 39,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 39,
                                                "column": 35
                                              }
                                            },
                                            "operator": "=",
                                            "left": {
                                              "type": "Identifier",
                                              "start": 1400,
                                              "end": 1412,
                                              "loc": {
                                                "start": {
                                                  "line": 39,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 39,
                                                  "column": 28
                                                },
                                                "identifierName": "unsubscribed"
                                              },
                                              "name": "unsubscribed"
                                            },
                                            "right": {
                                              "type": "BooleanLiteral",
                                              "start": 1415,
                                              "end": 1419,
                                              "loc": {
                                                "start": {
                                                  "line": 39,
                                                  "column": 31
                                                },
                                                "end": {
                                                  "line": 39,
                                                  "column": 35
                                                }
                                              },
                                              "value": true
                                            }
                                          }
                                        },
                                        {
                                          "type": "ExpressionStatement",
                                          "start": 1437,
                                          "end": 1466,
                                          "loc": {
                                            "start": {
                                              "line": 40,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 40,
                                              "column": 45
                                            }
                                          },
                                          "expression": {
                                            "type": "LogicalExpression",
                                            "start": 1437,
                                            "end": 1465,
                                            "loc": {
                                              "start": {
                                                "line": 40,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 40,
                                                "column": 44
                                              }
                                            },
                                            "left": {
                                              "type": "Identifier",
                                              "start": 1437,
                                              "end": 1448,
                                              "loc": {
                                                "start": {
                                                  "line": 40,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 40,
                                                  "column": 27
                                                },
                                                "identifierName": "unsubscribe"
                                              },
                                              "name": "unsubscribe"
                                            },
                                            "operator": "&&",
                                            "right": {
                                              "type": "CallExpression",
                                              "start": 1452,
                                              "end": 1465,
                                              "loc": {
                                                "start": {
                                                  "line": 40,
                                                  "column": 31
                                                },
                                                "end": {
                                                  "line": 40,
                                                  "column": 44
                                                }
                                              },
                                              "callee": {
                                                "type": "Identifier",
                                                "start": 1452,
                                                "end": 1463,
                                                "loc": {
                                                  "start": {
                                                    "line": 40,
                                                    "column": 31
                                                  },
                                                  "end": {
                                                    "line": 40,
                                                    "column": 42
                                                  },
                                                  "identifierName": "unsubscribe"
                                                },
                                                "name": "unsubscribe"
                                              },
                                              "arguments": []
                                            }
                                          }
                                        },
                                        {
                                          "type": "ExpressionStatement",
                                          "start": 1483,
                                          "end": 1516,
                                          "loc": {
                                            "start": {
                                              "line": 41,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 41,
                                              "column": 49
                                            }
                                          },
                                          "expression": {
                                            "type": "LogicalExpression",
                                            "start": 1483,
                                            "end": 1515,
                                            "loc": {
                                              "start": {
                                                "line": 41,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 41,
                                                "column": 48
                                              }
                                            },
                                            "left": {
                                              "type": "Identifier",
                                              "start": 1483,
                                              "end": 1496,
                                              "loc": {
                                                "start": {
                                                  "line": 41,
                                                  "column": 16
                                                },
                                                "end": {
                                                  "line": 41,
                                                  "column": 29
                                                },
                                                "identifierName": "onUnsubscribe"
                                              },
                                              "name": "onUnsubscribe"
                                            },
                                            "operator": "&&",
                                            "right": {
                                              "type": "CallExpression",
                                              "start": 1500,
                                              "end": 1515,
                                              "loc": {
                                                "start": {
                                                  "line": 41,
                                                  "column": 33
                                                },
                                                "end": {
                                                  "line": 41,
                                                  "column": 48
                                                }
                                              },
                                              "callee": {
                                                "type": "Identifier",
                                                "start": 1500,
                                                "end": 1513,
                                                "loc": {
                                                  "start": {
                                                    "line": 41,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 41,
                                                    "column": 46
                                                  },
                                                  "identifierName": "onUnsubscribe"
                                                },
                                                "name": "onUnsubscribe"
                                              },
                                              "arguments": []
                                            }
                                          }
                                        }
                                      ],
                                      "directives": []
                                    }
                                  }
                                }
                              ],
                              "kind": "const"
                            },
                            {
                              "type": "VariableDeclaration",
                              "start": 1543,
                              "end": 2039,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 12
                                },
                                "end": {
                                  "line": 55,
                                  "column": 13
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 1549,
                                  "end": 2039,
                                  "loc": {
                                    "start": {
                                      "line": 43,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 13
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 1549,
                                    "end": 1561,
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 30
                                      },
                                      "identifierName": "handleChange"
                                    },
                                    "name": "handleChange"
                                  },
                                  "init": {
                                    "type": "ArrowFunctionExpression",
                                    "start": 1564,
                                    "end": 2039,
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 13
                                      }
                                    },
                                    "id": null,
                                    "generator": false,
                                    "expression": false,
                                    "async": false,
                                    "params": [],
                                    "body": {
                                      "type": "BlockStatement",
                                      "start": 1570,
                                      "end": 2039,
                                      "loc": {
                                        "start": {
                                          "line": 43,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 13
                                        }
                                      },
                                      "body": [
                                        {
                                          "type": "VariableDeclaration",
                                          "start": 1588,
                                          "end": 1616,
                                          "loc": {
                                            "start": {
                                              "line": 44,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 44,
                                              "column": 44
                                            }
                                          },
                                          "declarations": [
                                            {
                                              "type": "VariableDeclarator",
                                              "start": 1592,
                                              "end": 1615,
                                              "loc": {
                                                "start": {
                                                  "line": 44,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 44,
                                                  "column": 43
                                                }
                                              },
                                              "id": {
                                                "type": "Identifier",
                                                "start": 1592,
                                                "end": 1601,
                                                "loc": {
                                                  "start": {
                                                    "line": 44,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 44,
                                                    "column": 29
                                                  },
                                                  "identifierName": "preselect"
                                                },
                                                "name": "preselect"
                                              },
                                              "init": {
                                                "type": "CallExpression",
                                                "start": 1604,
                                                "end": 1615,
                                                "loc": {
                                                  "start": {
                                                    "line": 44,
                                                    "column": 32
                                                  },
                                                  "end": {
                                                    "line": 44,
                                                    "column": 43
                                                  }
                                                },
                                                "callee": {
                                                  "type": "Identifier",
                                                  "start": 1604,
                                                  "end": 1613,
                                                  "loc": {
                                                    "start": {
                                                      "line": 44,
                                                      "column": 32
                                                    },
                                                    "end": {
                                                      "line": 44,
                                                      "column": 41
                                                    },
                                                    "identifierName": "preSelect"
                                                  },
                                                  "name": "preSelect"
                                                },
                                                "arguments": []
                                              }
                                            }
                                          ],
                                          "kind": "let"
                                        },
                                        {
                                          "type": "IfStatement",
                                          "start": 1633,
                                          "end": 2025,
                                          "loc": {
                                            "start": {
                                              "line": 45,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 54,
                                              "column": 17
                                            }
                                          },
                                          "test": {
                                            "type": "Identifier",
                                            "start": 1637,
                                            "end": 1646,
                                            "loc": {
                                              "start": {
                                                "line": 45,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 45,
                                                "column": 29
                                              },
                                              "identifierName": "preselect"
                                            },
                                            "name": "preselect"
                                          },
                                          "consequent": {
                                            "type": "BlockStatement",
                                            "start": 1648,
                                            "end": 1970,
                                            "loc": {
                                              "start": {
                                                "line": 45,
                                                "column": 31
                                              },
                                              "end": {
                                                "line": 52,
                                                "column": 17
                                              }
                                            },
                                            "body": [
                                              {
                                                "type": "VariableDeclaration",
                                                "start": 1670,
                                                "end": 1708,
                                                "loc": {
                                                  "start": {
                                                    "line": 46,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 46,
                                                    "column": 58
                                                  }
                                                },
                                                "declarations": [
                                                  {
                                                    "type": "VariableDeclarator",
                                                    "start": 1674,
                                                    "end": 1707,
                                                    "loc": {
                                                      "start": {
                                                        "line": 46,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 46,
                                                        "column": 57
                                                      }
                                                    },
                                                    "id": {
                                                      "type": "Identifier",
                                                      "start": 1674,
                                                      "end": 1683,
                                                      "loc": {
                                                        "start": {
                                                          "line": 46,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 46,
                                                          "column": 33
                                                        },
                                                        "identifierName": "nextState"
                                                      },
                                                      "name": "nextState"
                                                    },
                                                    "init": {
                                                      "type": "CallExpression",
                                                      "start": 1686,
                                                      "end": 1707,
                                                      "loc": {
                                                        "start": {
                                                          "line": 46,
                                                          "column": 36
                                                        },
                                                        "end": {
                                                          "line": 46,
                                                          "column": 57
                                                        }
                                                      },
                                                      "callee": {
                                                        "type": "Identifier",
                                                        "start": 1686,
                                                        "end": 1696,
                                                        "loc": {
                                                          "start": {
                                                            "line": 46,
                                                            "column": 36
                                                          },
                                                          "end": {
                                                            "line": 46,
                                                            "column": 46
                                                          },
                                                          "identifierName": "userSelect"
                                                        },
                                                        "name": "userSelect"
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "Identifier",
                                                          "start": 1697,
                                                          "end": 1706,
                                                          "loc": {
                                                            "start": {
                                                              "line": 46,
                                                              "column": 47
                                                            },
                                                            "end": {
                                                              "line": 46,
                                                              "column": 56
                                                            },
                                                            "identifierName": "preselect"
                                                          },
                                                          "name": "preselect"
                                                        }
                                                      ]
                                                    }
                                                  }
                                                ],
                                                "kind": "let"
                                              },
                                              {
                                                "type": "IfStatement",
                                                "start": 1729,
                                                "end": 1952,
                                                "loc": {
                                                  "start": {
                                                    "line": 47,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 51,
                                                    "column": 21
                                                  }
                                                },
                                                "test": {
                                                  "type": "BinaryExpression",
                                                  "start": 1733,
                                                  "end": 1759,
                                                  "loc": {
                                                    "start": {
                                                      "line": 47,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 47,
                                                      "column": 50
                                                    }
                                                  },
                                                  "left": {
                                                    "type": "Identifier",
                                                    "start": 1733,
                                                    "end": 1742,
                                                    "loc": {
                                                      "start": {
                                                        "line": 47,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 47,
                                                        "column": 33
                                                      },
                                                      "identifierName": "nextState"
                                                    },
                                                    "name": "nextState"
                                                  },
                                                  "operator": "!==",
                                                  "right": {
                                                    "type": "Identifier",
                                                    "start": 1747,
                                                    "end": 1759,
                                                    "loc": {
                                                      "start": {
                                                        "line": 47,
                                                        "column": 38
                                                      },
                                                      "end": {
                                                        "line": 47,
                                                        "column": 50
                                                      },
                                                      "identifierName": "currentState"
                                                    },
                                                    "name": "currentState"
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "BlockStatement",
                                                  "start": 1761,
                                                  "end": 1952,
                                                  "loc": {
                                                    "start": {
                                                      "line": 47,
                                                      "column": 52
                                                    },
                                                    "end": {
                                                      "line": 51,
                                                      "column": 21
                                                    }
                                                  },
                                                  "body": [
                                                    {
                                                      "type": "VariableDeclaration",
                                                      "start": 1787,
                                                      "end": 1820,
                                                      "loc": {
                                                        "start": {
                                                          "line": 48,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 48,
                                                          "column": 57
                                                        }
                                                      },
                                                      "declarations": [
                                                        {
                                                          "type": "VariableDeclarator",
                                                          "start": 1791,
                                                          "end": 1819,
                                                          "loc": {
                                                            "start": {
                                                              "line": 48,
                                                              "column": 28
                                                            },
                                                            "end": {
                                                              "line": 48,
                                                              "column": 56
                                                            }
                                                          },
                                                          "id": {
                                                            "type": "Identifier",
                                                            "start": 1791,
                                                            "end": 1804,
                                                            "loc": {
                                                              "start": {
                                                                "line": 48,
                                                                "column": 28
                                                              },
                                                              "end": {
                                                                "line": 48,
                                                                "column": 41
                                                              },
                                                              "identifierName": "previousState"
                                                            },
                                                            "name": "previousState"
                                                          },
                                                          "init": {
                                                            "type": "Identifier",
                                                            "start": 1807,
                                                            "end": 1819,
                                                            "loc": {
                                                              "start": {
                                                                "line": 48,
                                                                "column": 44
                                                              },
                                                              "end": {
                                                                "line": 48,
                                                                "column": 56
                                                              },
                                                              "identifierName": "currentState"
                                                            },
                                                            "name": "currentState"
                                                          }
                                                        }
                                                      ],
                                                      "kind": "let"
                                                    },
                                                    {
                                                      "type": "ExpressionStatement",
                                                      "start": 1845,
                                                      "end": 1870,
                                                      "loc": {
                                                        "start": {
                                                          "line": 49,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 49,
                                                          "column": 49
                                                        }
                                                      },
                                                      "expression": {
                                                        "type": "AssignmentExpression",
                                                        "start": 1845,
                                                        "end": 1869,
                                                        "loc": {
                                                          "start": {
                                                            "line": 49,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 49,
                                                            "column": 48
                                                          }
                                                        },
                                                        "operator": "=",
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 1845,
                                                          "end": 1857,
                                                          "loc": {
                                                            "start": {
                                                              "line": 49,
                                                              "column": 24
                                                            },
                                                            "end": {
                                                              "line": 49,
                                                              "column": 36
                                                            },
                                                            "identifierName": "currentState"
                                                          },
                                                          "name": "currentState"
                                                        },
                                                        "right": {
                                                          "type": "Identifier",
                                                          "start": 1860,
                                                          "end": 1869,
                                                          "loc": {
                                                            "start": {
                                                              "line": 49,
                                                              "column": 39
                                                            },
                                                            "end": {
                                                              "line": 49,
                                                              "column": 48
                                                            },
                                                            "identifierName": "nextState"
                                                          },
                                                          "name": "nextState"
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "type": "ExpressionStatement",
                                                      "start": 1895,
                                                      "end": 1930,
                                                      "loc": {
                                                        "start": {
                                                          "line": 50,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 50,
                                                          "column": 59
                                                        }
                                                      },
                                                      "expression": {
                                                        "type": "CallExpression",
                                                        "start": 1895,
                                                        "end": 1929,
                                                        "loc": {
                                                          "start": {
                                                            "line": 50,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 50,
                                                            "column": 58
                                                          }
                                                        },
                                                        "callee": {
                                                          "type": "Identifier",
                                                          "start": 1895,
                                                          "end": 1903,
                                                          "loc": {
                                                            "start": {
                                                              "line": 50,
                                                              "column": 24
                                                            },
                                                            "end": {
                                                              "line": 50,
                                                              "column": 32
                                                            },
                                                            "identifierName": "onChange"
                                                          },
                                                          "name": "onChange"
                                                        },
                                                        "arguments": [
                                                          {
                                                            "type": "Identifier",
                                                            "start": 1904,
                                                            "end": 1913,
                                                            "loc": {
                                                              "start": {
                                                                "line": 50,
                                                                "column": 33
                                                              },
                                                              "end": {
                                                                "line": 50,
                                                                "column": 42
                                                              },
                                                              "identifierName": "nextState"
                                                            },
                                                            "name": "nextState"
                                                          },
                                                          {
                                                            "type": "Identifier",
                                                            "start": 1915,
                                                            "end": 1928,
                                                            "loc": {
                                                              "start": {
                                                                "line": 50,
                                                                "column": 44
                                                              },
                                                              "end": {
                                                                "line": 50,
                                                                "column": 57
                                                              },
                                                              "identifierName": "previousState"
                                                            },
                                                            "name": "previousState"
                                                          }
                                                        ]
                                                      }
                                                    }
                                                  ],
                                                  "directives": []
                                                },
                                                "alternate": null
                                              }
                                            ],
                                            "directives": []
                                          },
                                          "alternate": {
                                            "type": "BlockStatement",
                                            "start": 1976,
                                            "end": 2025,
                                            "loc": {
                                              "start": {
                                                "line": 52,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 54,
                                                "column": 17
                                              }
                                            },
                                            "body": [
                                              {
                                                "type": "ExpressionStatement",
                                                "start": 1998,
                                                "end": 2007,
                                                "loc": {
                                                  "start": {
                                                    "line": 53,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 53,
                                                    "column": 29
                                                  }
                                                },
                                                "expression": {
                                                  "type": "CallExpression",
                                                  "start": 1998,
                                                  "end": 2006,
                                                  "loc": {
                                                    "start": {
                                                      "line": 53,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 53,
                                                      "column": 28
                                                    }
                                                  },
                                                  "callee": {
                                                    "type": "Identifier",
                                                    "start": 1998,
                                                    "end": 2004,
                                                    "loc": {
                                                      "start": {
                                                        "line": 53,
                                                        "column": 20
                                                      },
                                                      "end": {
                                                        "line": 53,
                                                        "column": 26
                                                      },
                                                      "identifierName": "finish"
                                                    },
                                                    "name": "finish"
                                                  },
                                                  "arguments": []
                                                }
                                              }
                                            ],
                                            "directives": []
                                          }
                                        }
                                      ],
                                      "directives": []
                                    }
                                  }
                                }
                              ],
                              "kind": "const"
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 2052,
                              "end": 2096,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 12
                                },
                                "end": {
                                  "line": 56,
                                  "column": 56
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 2052,
                                "end": 2095,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 55
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 2052,
                                  "end": 2063,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 23
                                    },
                                    "identifierName": "unsubscribe"
                                  },
                                  "name": "unsubscribe"
                                },
                                "right": {
                                  "type": "CallExpression",
                                  "start": 2066,
                                  "end": 2095,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 55
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2066,
                                    "end": 2081,
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 41
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2066,
                                      "end": 2071,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 31
                                        },
                                        "identifierName": "store"
                                      },
                                      "name": "store"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2072,
                                      "end": 2081,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 41
                                        },
                                        "identifierName": "subscribe"
                                      },
                                      "name": "subscribe"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 2082,
                                      "end": 2094,
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 54
                                        },
                                        "identifierName": "handleChange"
                                      },
                                      "name": "handleChange"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 2109,
                              "end": 2158,
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 12
                                },
                                "end": {
                                  "line": 57,
                                  "column": 61
                                }
                              },
                              "expression": {
                                "type": "LogicalExpression",
                                "start": 2109,
                                "end": 2157,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 60
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 2109,
                                  "end": 2120,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 23
                                    },
                                    "identifierName": "fireOnStart"
                                  },
                                  "name": "fireOnStart"
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "CallExpression",
                                  "start": 2124,
                                  "end": 2157,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 60
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 2124,
                                    "end": 2132,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 35
                                      },
                                      "identifierName": "onChange"
                                    },
                                    "name": "onChange"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 2133,
                                      "end": 2145,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 48
                                        },
                                        "identifierName": "currentState"
                                      },
                                      "name": "currentState"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 2147,
                                      "end": 2156,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 59
                                        },
                                        "identifierName": "undefined"
                                      },
                                      "name": "undefined"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ReturnStatement",
                              "start": 2171,
                              "end": 2185,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 12
                                },
                                "end": {
                                  "line": 58,
                                  "column": 26
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 2178,
                                "end": 2184,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 25
                                  },
                                  "identifierName": "finish"
                                },
                                "name": "finish"
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": null
                      }
                    ],
                    "directives": []
                  },
                  "extra": {
                    "parenthesized": true,
                    "parenStart": 1054
                  }
                },
                "trailingComments": null
              },
              "leadingComments": null,
              "trailingComments": null
            }
          ],
          "kind": "const",
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " State observe with pre-select and user-select",
              "start": 936,
              "end": 984,
              "loc": {
                "start": {
                  "line": 29,
                  "column": 0
                },
                "end": {
                  "line": 29,
                  "column": 48
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " State observe deeply with pre-select and user-select",
              "start": 2205,
              "end": 2260,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 0
                },
                "end": {
                  "line": 63,
                  "column": 55
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " State observe with pre-select and user-select",
            "start": 936,
            "end": 984,
            "loc": {
              "start": {
                "line": 29,
                "column": 0
              },
              "end": {
                "line": 29,
                "column": 48
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " State observe deeply with pre-select and user-select",
            "start": 2205,
            "end": 2260,
            "loc": {
              "start": {
                "line": 63,
                "column": 0
              },
              "end": {
                "line": 63,
                "column": 55
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2261,
        "end": 4340,
        "loc": {
          "start": {
            "line": 64,
            "column": 0
          },
          "end": {
            "line": 110,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 2268,
          "end": 4340,
          "loc": {
            "start": {
              "line": 64,
              "column": 7
            },
            "end": {
              "line": 110,
              "column": 1
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 2274,
              "end": 4340,
              "loc": {
                "start": {
                  "line": 64,
                  "column": 13
                },
                "end": {
                  "line": 110,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 2274,
                "end": 2292,
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 13
                  },
                  "end": {
                    "line": 64,
                    "column": 31
                  },
                  "identifierName": "createObserverDeep"
                },
                "name": "createObserverDeep",
                "leadingComments": null
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 2295,
                "end": 4340,
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 34
                  },
                  "end": {
                    "line": 110,
                    "column": 1
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 2274,
                  "end": 2292,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 13
                    },
                    "end": {
                      "line": 64,
                      "column": 31
                    },
                    "identifierName": "createObserverDeep"
                  },
                  "name": "createObserverDeep",
                  "leadingComments": null
                },
                "generator": false,
                "expression": true,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2296,
                    "end": 2301,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 35
                      },
                      "end": {
                        "line": 64,
                        "column": 40
                      },
                      "identifierName": "store"
                    },
                    "name": "store"
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 2303,
                    "end": 2329,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 42
                      },
                      "end": {
                        "line": 64,
                        "column": 68
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 2303,
                      "end": 2312,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 42
                        },
                        "end": {
                          "line": 64,
                          "column": 51
                        },
                        "identifierName": "preSelect"
                      },
                      "name": "preSelect"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 2315,
                      "end": 2329,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 54
                        },
                        "end": {
                          "line": 64,
                          "column": 68
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2315,
                        "end": 2320,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 54
                          },
                          "end": {
                            "line": 64,
                            "column": 59
                          },
                          "identifierName": "store"
                        },
                        "name": "store"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2321,
                        "end": 2329,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 60
                          },
                          "end": {
                            "line": 64,
                            "column": 68
                          },
                          "identifierName": "getState"
                        },
                        "name": "getState"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "ArrowFunctionExpression",
                  "start": 2334,
                  "end": 4340,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 73
                    },
                    "end": {
                      "line": 110,
                      "column": 1
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2335,
                      "end": 2347,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 74
                        },
                        "end": {
                          "line": 64,
                          "column": 86
                        },
                        "identifierName": "userSelectId"
                      },
                      "name": "userSelectId"
                    },
                    {
                      "type": "Identifier",
                      "start": 2349,
                      "end": 2357,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 88
                        },
                        "end": {
                          "line": 64,
                          "column": 96
                        },
                        "identifierName": "onChange"
                      },
                      "name": "onChange"
                    },
                    {
                      "type": "AssignmentPattern",
                      "start": 2359,
                      "end": 2378,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 98
                        },
                        "end": {
                          "line": 64,
                          "column": 117
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 2359,
                        "end": 2370,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 98
                          },
                          "end": {
                            "line": 64,
                            "column": 109
                          },
                          "identifierName": "fireOnStart"
                        },
                        "name": "fireOnStart"
                      },
                      "right": {
                        "type": "BooleanLiteral",
                        "start": 2373,
                        "end": 2378,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 112
                          },
                          "end": {
                            "line": 64,
                            "column": 117
                          }
                        },
                        "value": false
                      }
                    },
                    {
                      "type": "AssignmentPattern",
                      "start": 2380,
                      "end": 2405,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 119
                        },
                        "end": {
                          "line": 64,
                          "column": 144
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 2380,
                        "end": 2397,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 119
                          },
                          "end": {
                            "line": 64,
                            "column": 136
                          },
                          "identifierName": "fireOnUnsubscribe"
                        },
                        "name": "fireOnUnsubscribe"
                      },
                      "right": {
                        "type": "BooleanLiteral",
                        "start": 2400,
                        "end": 2405,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 139
                          },
                          "end": {
                            "line": 64,
                            "column": 144
                          }
                        },
                        "value": false
                      }
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2410,
                    "end": 4340,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 149
                      },
                      "end": {
                        "line": 110,
                        "column": 1
                      }
                    },
                    "body": [
                      {
                        "type": "VariableDeclaration",
                        "start": 2416,
                        "end": 2492,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 4
                          },
                          "end": {
                            "line": 65,
                            "column": 80
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2420,
                            "end": 2443,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 31
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2420,
                              "end": 2429,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 8
                                },
                                "end": {
                                  "line": 65,
                                  "column": 17
                                },
                                "identifierName": "nextState"
                              },
                              "name": "nextState"
                            },
                            "init": {
                              "type": "CallExpression",
                              "start": 2432,
                              "end": 2443,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 20
                                },
                                "end": {
                                  "line": 65,
                                  "column": 31
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 2432,
                                "end": 2441,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 29
                                  },
                                  "identifierName": "preSelect"
                                },
                                "name": "preSelect"
                              },
                              "arguments": []
                            }
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 2445,
                            "end": 2469,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 33
                              },
                              "end": {
                                "line": 65,
                                "column": 57
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2445,
                              "end": 2457,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 33
                                },
                                "end": {
                                  "line": 65,
                                  "column": 45
                                },
                                "identifierName": "currentState"
                              },
                              "name": "currentState"
                            },
                            "init": {
                              "type": "Identifier",
                              "start": 2460,
                              "end": 2469,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 48
                                },
                                "end": {
                                  "line": 65,
                                  "column": 57
                                },
                                "identifierName": "undefined"
                              },
                              "name": "undefined"
                            }
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 2471,
                            "end": 2491,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 59
                              },
                              "end": {
                                "line": 65,
                                "column": 79
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2471,
                              "end": 2483,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 59
                                },
                                "end": {
                                  "line": 65,
                                  "column": 71
                                },
                                "identifierName": "unsubscribed"
                              },
                              "name": "unsubscribed"
                            },
                            "init": {
                              "type": "BooleanLiteral",
                              "start": 2486,
                              "end": 2491,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 74
                                },
                                "end": {
                                  "line": 65,
                                  "column": 79
                                }
                              },
                              "value": false
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "FunctionDeclaration",
                        "start": 2497,
                        "end": 2778,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 4
                          },
                          "end": {
                            "line": 72,
                            "column": 5
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 2506,
                          "end": 2520,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 13
                            },
                            "end": {
                              "line": 66,
                              "column": 27
                            },
                            "identifierName": "collectMembers"
                          },
                          "name": "collectMembers"
                        },
                        "generator": false,
                        "expression": false,
                        "async": false,
                        "params": [
                          {
                            "type": "Identifier",
                            "start": 2521,
                            "end": 2527,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 28
                              },
                              "end": {
                                "line": 66,
                                "column": 34
                              },
                              "identifierName": "member"
                            },
                            "name": "member"
                          },
                          {
                            "type": "Identifier",
                            "start": 2529,
                            "end": 2534,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 36
                              },
                              "end": {
                                "line": 66,
                                "column": 41
                              },
                              "identifierName": "idSet"
                            },
                            "name": "idSet"
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "start": 2536,
                          "end": 2778,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 43
                            },
                            "end": {
                              "line": 72,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "IfStatement",
                              "start": 2546,
                              "end": 2772,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 8
                                },
                                "end": {
                                  "line": 71,
                                  "column": 49
                                }
                              },
                              "test": {
                                "type": "LogicalExpression",
                                "start": 2550,
                                "end": 2592,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 54
                                  }
                                },
                                "left": {
                                  "type": "BinaryExpression",
                                  "start": 2550,
                                  "end": 2570,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 32
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2550,
                                    "end": 2561,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2550,
                                      "end": 2556,
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 18
                                        },
                                        "identifierName": "member"
                                      },
                                      "name": "member"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2557,
                                      "end": 2561,
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 23
                                        },
                                        "identifierName": "type"
                                      },
                                      "name": "type"
                                    },
                                    "computed": false
                                  },
                                  "operator": "===",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 2566,
                                    "end": 2570,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 32
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "id",
                                      "raw": "'id'"
                                    },
                                    "value": "id"
                                  }
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "BinaryExpression",
                                  "start": 2574,
                                  "end": 2592,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 54
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2574,
                                    "end": 2586,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 48
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2574,
                                      "end": 2580,
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 42
                                        },
                                        "identifierName": "member"
                                      },
                                      "name": "member"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2581,
                                      "end": 2586,
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 48
                                        },
                                        "identifierName": "value"
                                      },
                                      "name": "value"
                                    },
                                    "computed": false
                                  },
                                  "operator": "!==",
                                  "right": {
                                    "type": "NumericLiteral",
                                    "start": 2591,
                                    "end": 2592,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 53
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 54
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  }
                                }
                              },
                              "consequent": {
                                "type": "ExpressionStatement",
                                "start": 2606,
                                "end": 2630,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 36
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 2606,
                                  "end": 2629,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 35
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2606,
                                    "end": 2615,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 21
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2606,
                                      "end": 2611,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 17
                                        },
                                        "identifierName": "idSet"
                                      },
                                      "name": "idSet"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2612,
                                      "end": 2615,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 21
                                        },
                                        "identifierName": "add"
                                      },
                                      "name": "add"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 2616,
                                      "end": 2628,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 34
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 2616,
                                        "end": 2622,
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 28
                                          },
                                          "identifierName": "member"
                                        },
                                        "name": "member"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2623,
                                        "end": 2628,
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 34
                                          },
                                          "identifierName": "value"
                                        },
                                        "name": "value"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              },
                              "alternate": {
                                "type": "IfStatement",
                                "start": 2644,
                                "end": 2772,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 49
                                  }
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 2648,
                                  "end": 2671,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 40
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2648,
                                    "end": 2659,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2648,
                                      "end": 2654,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 23
                                        },
                                        "identifierName": "member"
                                      },
                                      "name": "member"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2655,
                                      "end": 2659,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 28
                                        },
                                        "identifierName": "type"
                                      },
                                      "name": "type"
                                    },
                                    "computed": false
                                  },
                                  "operator": "===",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 2664,
                                    "end": 2671,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 40
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "array",
                                      "raw": "'array'"
                                    },
                                    "value": "array"
                                  }
                                },
                                "consequent": {
                                  "type": "ForOfStatement",
                                  "start": 2685,
                                  "end": 2772,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 71,
                                      "column": 49
                                    }
                                  },
                                  "left": {
                                    "type": "VariableDeclaration",
                                    "start": 2690,
                                    "end": 2703,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 30
                                      }
                                    },
                                    "declarations": [
                                      {
                                        "type": "VariableDeclarator",
                                        "start": 2694,
                                        "end": 2703,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 30
                                          }
                                        },
                                        "id": {
                                          "type": "Identifier",
                                          "start": 2694,
                                          "end": 2703,
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 30
                                            },
                                            "identifierName": "subMember"
                                          },
                                          "name": "subMember"
                                        },
                                        "init": null
                                      }
                                    ],
                                    "kind": "let"
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 2707,
                                    "end": 2721,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 48
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2707,
                                      "end": 2713,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 40
                                        },
                                        "identifierName": "member"
                                      },
                                      "name": "member"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2714,
                                      "end": 2721,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 48
                                        },
                                        "identifierName": "members"
                                      },
                                      "name": "members"
                                    },
                                    "computed": false
                                  },
                                  "body": {
                                    "type": "ExpressionStatement",
                                    "start": 2739,
                                    "end": 2772,
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 49
                                      }
                                    },
                                    "expression": {
                                      "type": "CallExpression",
                                      "start": 2739,
                                      "end": 2771,
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 48
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 2739,
                                        "end": 2753,
                                        "loc": {
                                          "start": {
                                            "line": 71,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 71,
                                            "column": 30
                                          },
                                          "identifierName": "collectMembers"
                                        },
                                        "name": "collectMembers"
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "start": 2754,
                                          "end": 2763,
                                          "loc": {
                                            "start": {
                                              "line": 71,
                                              "column": 31
                                            },
                                            "end": {
                                              "line": 71,
                                              "column": 40
                                            },
                                            "identifierName": "subMember"
                                          },
                                          "name": "subMember"
                                        },
                                        {
                                          "type": "Identifier",
                                          "start": 2765,
                                          "end": 2770,
                                          "loc": {
                                            "start": {
                                              "line": 71,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 71,
                                              "column": 47
                                            },
                                            "identifierName": "idSet"
                                          },
                                          "name": "idSet"
                                        }
                                      ]
                                    }
                                  }
                                },
                                "alternate": null
                              }
                            }
                          ],
                          "directives": []
                        }
                      },
                      {
                        "type": "FunctionDeclaration",
                        "start": 2783,
                        "end": 3721,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 4
                          },
                          "end": {
                            "line": 92,
                            "column": 5
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 2792,
                          "end": 2813,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 13
                            },
                            "end": {
                              "line": 73,
                              "column": 34
                            },
                            "identifierName": "recursiveHandleChange"
                          },
                          "name": "recursiveHandleChange"
                        },
                        "generator": false,
                        "expression": false,
                        "async": false,
                        "params": [
                          {
                            "type": "Identifier",
                            "start": 2814,
                            "end": 2816,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 35
                              },
                              "end": {
                                "line": 73,
                                "column": 37
                              },
                              "identifierName": "id"
                            },
                            "name": "id"
                          },
                          {
                            "type": "Identifier",
                            "start": 2818,
                            "end": 2825,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 39
                              },
                              "end": {
                                "line": 73,
                                "column": 46
                              },
                              "identifierName": "changed"
                            },
                            "name": "changed"
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "start": 2827,
                          "end": 3721,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 48
                            },
                            "end": {
                              "line": 92,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "IfStatement",
                              "start": 2837,
                              "end": 2877,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 8
                                },
                                "end": {
                                  "line": 75,
                                  "column": 19
                                }
                              },
                              "test": {
                                "type": "CallExpression",
                                "start": 2841,
                                "end": 2856,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 27
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2841,
                                  "end": 2852,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 23
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2841,
                                    "end": 2848,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 19
                                      },
                                      "identifierName": "changed"
                                    },
                                    "name": "changed"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2849,
                                    "end": 2852,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 23
                                      },
                                      "identifierName": "has"
                                    },
                                    "name": "has"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 2853,
                                    "end": 2855,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 26
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                ]
                              },
                              "consequent": {
                                "type": "ReturnStatement",
                                "start": 2870,
                                "end": 2877,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 19
                                  }
                                },
                                "argument": null,
                                "leadingComments": null,
                                "trailingComments": null
                              },
                              "alternate": null,
                              "trailingComments": [
                                {
                                  "type": "CommentLine",
                                  "value": " stop recursing in infinite member loops",
                                  "start": 2878,
                                  "end": 2920,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 62
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "type": "VariableDeclaration",
                              "start": 2929,
                              "end": 3013,
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 8
                                },
                                "end": {
                                  "line": 76,
                                  "column": 92
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 2935,
                                  "end": 2968,
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 47
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 2935,
                                    "end": 2939,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 18
                                      },
                                      "identifierName": "next"
                                    },
                                    "name": "next",
                                    "leadingComments": null
                                  },
                                  "init": {
                                    "type": "LogicalExpression",
                                    "start": 2942,
                                    "end": 2968,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 47
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 2942,
                                      "end": 2951,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 30
                                        },
                                        "identifierName": "nextState"
                                      },
                                      "name": "nextState"
                                    },
                                    "operator": "&&",
                                    "right": {
                                      "type": "MemberExpression",
                                      "start": 2955,
                                      "end": 2968,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 47
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 2955,
                                        "end": 2964,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 43
                                          },
                                          "identifierName": "nextState"
                                        },
                                        "name": "nextState"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2965,
                                        "end": 2967,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 46
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": true
                                    }
                                  },
                                  "leadingComments": null
                                },
                                {
                                  "type": "VariableDeclarator",
                                  "start": 2970,
                                  "end": 3012,
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 49
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 91
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 2970,
                                    "end": 2977,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 56
                                      },
                                      "identifierName": "current"
                                    },
                                    "name": "current"
                                  },
                                  "init": {
                                    "type": "LogicalExpression",
                                    "start": 2980,
                                    "end": 3012,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 91
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 2980,
                                      "end": 2992,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 59
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 71
                                        },
                                        "identifierName": "currentState"
                                      },
                                      "name": "currentState"
                                    },
                                    "operator": "&&",
                                    "right": {
                                      "type": "MemberExpression",
                                      "start": 2996,
                                      "end": 3012,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 75
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 91
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 2996,
                                        "end": 3008,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 75
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 87
                                          },
                                          "identifierName": "currentState"
                                        },
                                        "name": "currentState"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3009,
                                        "end": 3011,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 88
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 90
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": true
                                    }
                                  }
                                }
                              ],
                              "kind": "const",
                              "leadingComments": [
                                {
                                  "type": "CommentLine",
                                  "value": " stop recursing in infinite member loops",
                                  "start": 2878,
                                  "end": 2920,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 62
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 3022,
                              "end": 3056,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 8
                                },
                                "end": {
                                  "line": 77,
                                  "column": 42
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3022,
                                "end": 3055,
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 41
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3022,
                                  "end": 3033,
                                  "loc": {
                                    "start": {
                                      "line": 77,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 77,
                                      "column": 19
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3022,
                                    "end": 3029,
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 15
                                      },
                                      "identifierName": "changed"
                                    },
                                    "name": "changed"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3030,
                                    "end": 3033,
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 19
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3034,
                                    "end": 3036,
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 22
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  {
                                    "type": "BinaryExpression",
                                    "start": 3038,
                                    "end": 3054,
                                    "loc": {
                                      "start": {
                                        "line": 77,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 77,
                                        "column": 40
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 3038,
                                      "end": 3042,
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 28
                                        },
                                        "identifierName": "next"
                                      },
                                      "name": "next"
                                    },
                                    "operator": "!==",
                                    "right": {
                                      "type": "Identifier",
                                      "start": 3047,
                                      "end": 3054,
                                      "loc": {
                                        "start": {
                                          "line": 77,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 77,
                                          "column": 40
                                        },
                                        "identifierName": "current"
                                      },
                                      "name": "current"
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "start": 3065,
                              "end": 3089,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 8
                                },
                                "end": {
                                  "line": 78,
                                  "column": 32
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 3069,
                                  "end": 3088,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 31
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 3069,
                                    "end": 3076,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 19
                                      },
                                      "identifierName": "members"
                                    },
                                    "name": "members"
                                  },
                                  "init": {
                                    "type": "NewExpression",
                                    "start": 3079,
                                    "end": 3088,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 31
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 3083,
                                      "end": 3086,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 29
                                        },
                                        "identifierName": "Set"
                                      },
                                      "name": "Set"
                                    },
                                    "arguments": []
                                  }
                                }
                              ],
                              "kind": "let"
                            },
                            {
                              "type": "ForOfStatement",
                              "start": 3098,
                              "end": 3180,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 8
                                },
                                "end": {
                                  "line": 80,
                                  "column": 31
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3103,
                                "end": 3112,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 22
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3107,
                                    "end": 3112,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 22
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3107,
                                      "end": 3112,
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 22
                                        },
                                        "identifierName": "child"
                                      },
                                      "name": "child"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "LogicalExpression",
                                "start": 3117,
                                "end": 3146,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 56
                                  }
                                },
                                "left": {
                                  "type": "LogicalExpression",
                                  "start": 3118,
                                  "end": 3139,
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 49
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3118,
                                    "end": 3122,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 32
                                      },
                                      "identifierName": "next"
                                    },
                                    "name": "next"
                                  },
                                  "operator": "&&",
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 3126,
                                    "end": 3139,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 49
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3126,
                                      "end": 3130,
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 40
                                        },
                                        "identifierName": "next"
                                      },
                                      "name": "next"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3131,
                                      "end": 3139,
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 49
                                        },
                                        "identifierName": "children"
                                      },
                                      "name": "children"
                                    },
                                    "computed": false
                                  },
                                  "extra": {
                                    "parenthesized": true,
                                    "parenStart": 3117
                                  }
                                },
                                "operator": "||",
                                "right": {
                                  "type": "ArrayExpression",
                                  "start": 3144,
                                  "end": 3146,
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 54
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 56
                                    }
                                  },
                                  "elements": []
                                },
                                "extra": {
                                  "parenthesized": true,
                                  "parenStart": 3116
                                }
                              },
                              "body": {
                                "type": "ExpressionStatement",
                                "start": 3161,
                                "end": 3180,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 31
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 3161,
                                  "end": 3179,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 80,
                                      "column": 30
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 3161,
                                    "end": 3172,
                                    "loc": {
                                      "start": {
                                        "line": 80,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 80,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3161,
                                      "end": 3168,
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 19
                                        },
                                        "identifierName": "members"
                                      },
                                      "name": "members"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3169,
                                      "end": 3172,
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 23
                                        },
                                        "identifierName": "add"
                                      },
                                      "name": "add"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 3173,
                                      "end": 3178,
                                      "loc": {
                                        "start": {
                                          "line": 80,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 80,
                                          "column": 29
                                        },
                                        "identifierName": "child"
                                      },
                                      "name": "child"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ForOfStatement",
                              "start": 3189,
                              "end": 3277,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 8
                                },
                                "end": {
                                  "line": 82,
                                  "column": 31
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3194,
                                "end": 3203,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 22
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3198,
                                    "end": 3203,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 22
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3198,
                                      "end": 3203,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 22
                                        },
                                        "identifierName": "child"
                                      },
                                      "name": "child"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "LogicalExpression",
                                "start": 3208,
                                "end": 3243,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 62
                                  }
                                },
                                "left": {
                                  "type": "LogicalExpression",
                                  "start": 3209,
                                  "end": 3236,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 55
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3209,
                                    "end": 3216,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 35
                                      },
                                      "identifierName": "current"
                                    },
                                    "name": "current"
                                  },
                                  "operator": "&&",
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 3220,
                                    "end": 3236,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 55
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3220,
                                      "end": 3227,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 46
                                        },
                                        "identifierName": "current"
                                      },
                                      "name": "current"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3228,
                                      "end": 3236,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 55
                                        },
                                        "identifierName": "children"
                                      },
                                      "name": "children"
                                    },
                                    "computed": false
                                  },
                                  "extra": {
                                    "parenthesized": true,
                                    "parenStart": 3208
                                  }
                                },
                                "operator": "||",
                                "right": {
                                  "type": "ArrayExpression",
                                  "start": 3241,
                                  "end": 3243,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 62
                                    }
                                  },
                                  "elements": []
                                },
                                "extra": {
                                  "parenthesized": true,
                                  "parenStart": 3207
                                }
                              },
                              "body": {
                                "type": "ExpressionStatement",
                                "start": 3258,
                                "end": 3277,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 31
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 3258,
                                  "end": 3276,
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 30
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 3258,
                                    "end": 3269,
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3258,
                                      "end": 3265,
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 19
                                        },
                                        "identifierName": "members"
                                      },
                                      "name": "members"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3266,
                                      "end": 3269,
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 23
                                        },
                                        "identifierName": "add"
                                      },
                                      "name": "add"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 3270,
                                      "end": 3275,
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 29
                                        },
                                        "identifierName": "child"
                                      },
                                      "name": "child"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ForInStatement",
                              "start": 3286,
                              "end": 3381,
                              "loc": {
                                "start": {
                                  "line": 83,
                                  "column": 8
                                },
                                "end": {
                                  "line": 84,
                                  "column": 55
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3291,
                                "end": 3298,
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 20
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3295,
                                    "end": 3298,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 20
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3295,
                                      "end": 3298,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 20
                                        },
                                        "identifierName": "key"
                                      },
                                      "name": "key"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "LogicalExpression",
                                "start": 3303,
                                "end": 3323,
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 45
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 3303,
                                  "end": 3307,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 29
                                    },
                                    "identifierName": "next"
                                  },
                                  "name": "next"
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 3311,
                                  "end": 3323,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 45
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3311,
                                    "end": 3315,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 37
                                      },
                                      "identifierName": "next"
                                    },
                                    "name": "next"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3316,
                                    "end": 3323,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 45
                                      },
                                      "identifierName": "members"
                                    },
                                    "name": "members"
                                  },
                                  "computed": false
                                },
                                "extra": {
                                  "parenthesized": true,
                                  "parenStart": 3302
                                }
                              },
                              "body": {
                                "type": "ExpressionStatement",
                                "start": 3338,
                                "end": 3381,
                                "loc": {
                                  "start": {
                                    "line": 84,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 84,
                                    "column": 55
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 3338,
                                  "end": 3380,
                                  "loc": {
                                    "start": {
                                      "line": 84,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 84,
                                      "column": 54
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 3338,
                                    "end": 3352,
                                    "loc": {
                                      "start": {
                                        "line": 84,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 84,
                                        "column": 26
                                      },
                                      "identifierName": "collectMembers"
                                    },
                                    "name": "collectMembers"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 3353,
                                      "end": 3370,
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 44
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 3353,
                                        "end": 3365,
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 39
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 3353,
                                          "end": 3357,
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 31
                                            },
                                            "identifierName": "next"
                                          },
                                          "name": "next"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3358,
                                          "end": 3365,
                                          "loc": {
                                            "start": {
                                              "line": 84,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 84,
                                              "column": 39
                                            },
                                            "identifierName": "members"
                                          },
                                          "name": "members"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3366,
                                        "end": 3369,
                                        "loc": {
                                          "start": {
                                            "line": 84,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 84,
                                            "column": 43
                                          },
                                          "identifierName": "key"
                                        },
                                        "name": "key"
                                      },
                                      "computed": true
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 3372,
                                      "end": 3379,
                                      "loc": {
                                        "start": {
                                          "line": 84,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 84,
                                          "column": 53
                                        },
                                        "identifierName": "members"
                                      },
                                      "name": "members"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ForInStatement",
                              "start": 3390,
                              "end": 3494,
                              "loc": {
                                "start": {
                                  "line": 85,
                                  "column": 8
                                },
                                "end": {
                                  "line": 86,
                                  "column": 58
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3395,
                                "end": 3402,
                                "loc": {
                                  "start": {
                                    "line": 85,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 85,
                                    "column": 20
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3399,
                                    "end": 3402,
                                    "loc": {
                                      "start": {
                                        "line": 85,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 85,
                                        "column": 20
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3399,
                                      "end": 3402,
                                      "loc": {
                                        "start": {
                                          "line": 85,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 85,
                                          "column": 20
                                        },
                                        "identifierName": "key"
                                      },
                                      "name": "key"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "LogicalExpression",
                                "start": 3407,
                                "end": 3433,
                                "loc": {
                                  "start": {
                                    "line": 85,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 85,
                                    "column": 51
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 3407,
                                  "end": 3414,
                                  "loc": {
                                    "start": {
                                      "line": 85,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 85,
                                      "column": 32
                                    },
                                    "identifierName": "current"
                                  },
                                  "name": "current"
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 3418,
                                  "end": 3433,
                                  "loc": {
                                    "start": {
                                      "line": 85,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 85,
                                      "column": 51
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3418,
                                    "end": 3425,
                                    "loc": {
                                      "start": {
                                        "line": 85,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 85,
                                        "column": 43
                                      },
                                      "identifierName": "current"
                                    },
                                    "name": "current"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3426,
                                    "end": 3433,
                                    "loc": {
                                      "start": {
                                        "line": 85,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 85,
                                        "column": 51
                                      },
                                      "identifierName": "members"
                                    },
                                    "name": "members"
                                  },
                                  "computed": false
                                },
                                "extra": {
                                  "parenthesized": true,
                                  "parenStart": 3406
                                }
                              },
                              "body": {
                                "type": "ExpressionStatement",
                                "start": 3448,
                                "end": 3494,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 58
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 3448,
                                  "end": 3493,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 57
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 3448,
                                    "end": 3462,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 26
                                      },
                                      "identifierName": "collectMembers"
                                    },
                                    "name": "collectMembers"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 3463,
                                      "end": 3483,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 47
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 3463,
                                        "end": 3478,
                                        "loc": {
                                          "start": {
                                            "line": 86,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 86,
                                            "column": 42
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 3463,
                                          "end": 3470,
                                          "loc": {
                                            "start": {
                                              "line": 86,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 86,
                                              "column": 34
                                            },
                                            "identifierName": "current"
                                          },
                                          "name": "current"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3471,
                                          "end": 3478,
                                          "loc": {
                                            "start": {
                                              "line": 86,
                                              "column": 35
                                            },
                                            "end": {
                                              "line": 86,
                                              "column": 42
                                            },
                                            "identifierName": "members"
                                          },
                                          "name": "members"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3479,
                                        "end": 3482,
                                        "loc": {
                                          "start": {
                                            "line": 86,
                                            "column": 43
                                          },
                                          "end": {
                                            "line": 86,
                                            "column": 46
                                          },
                                          "identifierName": "key"
                                        },
                                        "name": "key"
                                      },
                                      "computed": true
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 3485,
                                      "end": 3492,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 56
                                        },
                                        "identifierName": "members"
                                      },
                                      "name": "members"
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ForOfStatement",
                              "start": 3503,
                              "end": 3663,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 8
                                },
                                "end": {
                                  "line": 90,
                                  "column": 9
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3508,
                                "end": 3518,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 23
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3512,
                                    "end": 3518,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 23
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3512,
                                      "end": 3518,
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 23
                                        },
                                        "identifierName": "member"
                                      },
                                      "name": "member"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "Identifier",
                                "start": 3522,
                                "end": 3529,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 34
                                  },
                                  "identifierName": "members"
                                },
                                "name": "members"
                              },
                              "body": {
                                "type": "BlockStatement",
                                "start": 3531,
                                "end": 3663,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 90,
                                    "column": 9
                                  }
                                },
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "start": 3545,
                                    "end": 3584,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 51
                                      }
                                    },
                                    "expression": {
                                      "type": "CallExpression",
                                      "start": 3545,
                                      "end": 3583,
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 50
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 3545,
                                        "end": 3566,
                                        "loc": {
                                          "start": {
                                            "line": 88,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 88,
                                            "column": 33
                                          },
                                          "identifierName": "recursiveHandleChange"
                                        },
                                        "name": "recursiveHandleChange"
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "start": 3567,
                                          "end": 3573,
                                          "loc": {
                                            "start": {
                                              "line": 88,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 88,
                                              "column": 40
                                            },
                                            "identifierName": "member"
                                          },
                                          "name": "member"
                                        },
                                        {
                                          "type": "Identifier",
                                          "start": 3575,
                                          "end": 3582,
                                          "loc": {
                                            "start": {
                                              "line": 88,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 88,
                                              "column": 49
                                            },
                                            "identifierName": "changed"
                                          },
                                          "name": "changed"
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "start": 3597,
                                    "end": 3653,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 68
                                      }
                                    },
                                    "expression": {
                                      "type": "CallExpression",
                                      "start": 3597,
                                      "end": 3652,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 67
                                        }
                                      },
                                      "callee": {
                                        "type": "MemberExpression",
                                        "start": 3597,
                                        "end": 3608,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 23
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 3597,
                                          "end": 3604,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 19
                                            },
                                            "identifierName": "changed"
                                          },
                                          "name": "changed"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3605,
                                          "end": 3608,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 23
                                            },
                                            "identifierName": "set"
                                          },
                                          "name": "set"
                                        },
                                        "computed": false
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "start": 3609,
                                          "end": 3611,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 26
                                            },
                                            "identifierName": "id"
                                          },
                                          "name": "id"
                                        },
                                        {
                                          "type": "LogicalExpression",
                                          "start": 3613,
                                          "end": 3651,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 66
                                            }
                                          },
                                          "left": {
                                            "type": "CallExpression",
                                            "start": 3613,
                                            "end": 3628,
                                            "loc": {
                                              "start": {
                                                "line": 89,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 89,
                                                "column": 43
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 3613,
                                              "end": 3624,
                                              "loc": {
                                                "start": {
                                                  "line": 89,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 89,
                                                  "column": 39
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 3613,
                                                "end": 3620,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 28
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 35
                                                  },
                                                  "identifierName": "changed"
                                                },
                                                "name": "changed"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3621,
                                                "end": 3624,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 36
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 39
                                                  },
                                                  "identifierName": "get"
                                                },
                                                "name": "get"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 3625,
                                                "end": 3627,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 42
                                                  },
                                                  "identifierName": "id"
                                                },
                                                "name": "id"
                                              }
                                            ]
                                          },
                                          "operator": "||",
                                          "right": {
                                            "type": "CallExpression",
                                            "start": 3632,
                                            "end": 3651,
                                            "loc": {
                                              "start": {
                                                "line": 89,
                                                "column": 47
                                              },
                                              "end": {
                                                "line": 89,
                                                "column": 66
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 3632,
                                              "end": 3643,
                                              "loc": {
                                                "start": {
                                                  "line": 89,
                                                  "column": 47
                                                },
                                                "end": {
                                                  "line": 89,
                                                  "column": 58
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 3632,
                                                "end": 3639,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 47
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 54
                                                  },
                                                  "identifierName": "changed"
                                                },
                                                "name": "changed"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3640,
                                                "end": 3643,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 55
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 58
                                                  },
                                                  "identifierName": "get"
                                                },
                                                "name": "get"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 3644,
                                                "end": 3650,
                                                "loc": {
                                                  "start": {
                                                    "line": 89,
                                                    "column": 59
                                                  },
                                                  "end": {
                                                    "line": 89,
                                                    "column": 65
                                                  },
                                                  "identifierName": "member"
                                                },
                                                "name": "member"
                                              }
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ],
                                "directives": []
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 3672,
                              "end": 3715,
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 8
                                },
                                "end": {
                                  "line": 91,
                                  "column": 51
                                }
                              },
                              "expression": {
                                "type": "LogicalExpression",
                                "start": 3672,
                                "end": 3714,
                                "loc": {
                                  "start": {
                                    "line": 91,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 91,
                                    "column": 50
                                  }
                                },
                                "left": {
                                  "type": "CallExpression",
                                  "start": 3672,
                                  "end": 3687,
                                  "loc": {
                                    "start": {
                                      "line": 91,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 91,
                                      "column": 23
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 3672,
                                    "end": 3683,
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 91,
                                        "column": 19
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3672,
                                      "end": 3679,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 15
                                        },
                                        "identifierName": "changed"
                                      },
                                      "name": "changed"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3680,
                                      "end": 3683,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 19
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 3684,
                                      "end": 3686,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 22
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    }
                                  ]
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "CallExpression",
                                  "start": 3691,
                                  "end": 3714,
                                  "loc": {
                                    "start": {
                                      "line": 91,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 91,
                                      "column": 50
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 3691,
                                    "end": 3699,
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 91,
                                        "column": 35
                                      },
                                      "identifierName": "onChange"
                                    },
                                    "name": "onChange"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 3700,
                                      "end": 3704,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 40
                                        },
                                        "identifierName": "next"
                                      },
                                      "name": "next"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 3706,
                                      "end": 3713,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 49
                                        },
                                        "identifierName": "current"
                                      },
                                      "name": "current"
                                    }
                                  ]
                                }
                              }
                            }
                          ],
                          "directives": []
                        }
                      },
                      {
                        "type": "FunctionDeclaration",
                        "start": 3726,
                        "end": 3995,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 4
                          },
                          "end": {
                            "line": 99,
                            "column": 5
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3735,
                          "end": 3747,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 13
                            },
                            "end": {
                              "line": 93,
                              "column": 25
                            },
                            "identifierName": "handleChange"
                          },
                          "name": "handleChange"
                        },
                        "generator": false,
                        "expression": false,
                        "async": false,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "start": 3750,
                          "end": 3995,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 28
                            },
                            "end": {
                              "line": 99,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "IfStatement",
                              "start": 3760,
                              "end": 3797,
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 8
                                },
                                "end": {
                                  "line": 95,
                                  "column": 19
                                }
                              },
                              "test": {
                                "type": "Identifier",
                                "start": 3764,
                                "end": 3776,
                                "loc": {
                                  "start": {
                                    "line": 94,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 24
                                  },
                                  "identifierName": "unsubscribed"
                                },
                                "name": "unsubscribed"
                              },
                              "consequent": {
                                "type": "ReturnStatement",
                                "start": 3790,
                                "end": 3797,
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 95,
                                    "column": 19
                                  }
                                },
                                "argument": null,
                                "leadingComments": null,
                                "trailingComments": null
                              },
                              "alternate": null,
                              "trailingComments": [
                                {
                                  "type": "CommentLine",
                                  "value": " prevent firing notifications that happened just after unsubscribe",
                                  "start": 3798,
                                  "end": 3866,
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 88
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 3875,
                              "end": 3900,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 8
                                },
                                "end": {
                                  "line": 96,
                                  "column": 33
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 3875,
                                "end": 3899,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 32
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3875,
                                  "end": 3887,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 20
                                    },
                                    "identifierName": "currentState"
                                  },
                                  "name": "currentState",
                                  "leadingComments": null
                                },
                                "right": {
                                  "type": "Identifier",
                                  "start": 3890,
                                  "end": 3899,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 32
                                    },
                                    "identifierName": "nextState"
                                  },
                                  "name": "nextState"
                                },
                                "leadingComments": null
                              },
                              "leadingComments": [
                                {
                                  "type": "CommentLine",
                                  "value": " prevent firing notifications that happened just after unsubscribe",
                                  "start": 3798,
                                  "end": 3866,
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 88
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 3909,
                              "end": 3933,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 8
                                },
                                "end": {
                                  "line": 97,
                                  "column": 32
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 3909,
                                "end": 3932,
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 31
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3909,
                                  "end": 3918,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 17
                                    },
                                    "identifierName": "nextState"
                                  },
                                  "name": "nextState"
                                },
                                "right": {
                                  "type": "CallExpression",
                                  "start": 3921,
                                  "end": 3932,
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 31
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 3921,
                                    "end": 3930,
                                    "loc": {
                                      "start": {
                                        "line": 97,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 29
                                      },
                                      "identifierName": "preSelect"
                                    },
                                    "name": "preSelect"
                                  },
                                  "arguments": []
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 3942,
                              "end": 3989,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 8
                                },
                                "end": {
                                  "line": 98,
                                  "column": 55
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3942,
                                "end": 3988,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 54
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 3942,
                                  "end": 3963,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 29
                                    },
                                    "identifierName": "recursiveHandleChange"
                                  },
                                  "name": "recursiveHandleChange"
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3964,
                                    "end": 3976,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 42
                                      },
                                      "identifierName": "userSelectId"
                                    },
                                    "name": "userSelectId"
                                  },
                                  {
                                    "type": "NewExpression",
                                    "start": 3978,
                                    "end": 3987,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 53
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 3982,
                                      "end": 3985,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 51
                                        },
                                        "identifierName": "Map"
                                      },
                                      "name": "Map"
                                    },
                                    "arguments": []
                                  }
                                ]
                              }
                            }
                          ],
                          "directives": []
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 4001,
                        "end": 4063,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 4
                          },
                          "end": {
                            "line": 101,
                            "column": 66
                          }
                        },
                        "expression": {
                          "type": "LogicalExpression",
                          "start": 4001,
                          "end": 4062,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 4
                            },
                            "end": {
                              "line": 101,
                              "column": 65
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 4001,
                            "end": 4012,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 4
                              },
                              "end": {
                                "line": 101,
                                "column": 15
                              },
                              "identifierName": "fireOnStart"
                            },
                            "name": "fireOnStart"
                          },
                          "operator": "&&",
                          "right": {
                            "type": "CallExpression",
                            "start": 4016,
                            "end": 4062,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 19
                              },
                              "end": {
                                "line": 101,
                                "column": 65
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 4016,
                              "end": 4037,
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 19
                                },
                                "end": {
                                  "line": 101,
                                  "column": 40
                                },
                                "identifierName": "recursiveHandleChange"
                              },
                              "name": "recursiveHandleChange"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4038,
                                "end": 4050,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 53
                                  },
                                  "identifierName": "userSelectId"
                                },
                                "name": "userSelectId"
                              },
                              {
                                "type": "NewExpression",
                                "start": 4052,
                                "end": 4061,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 64
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 4056,
                                  "end": 4059,
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 62
                                    },
                                    "identifierName": "Map"
                                  },
                                  "name": "Map"
                                },
                                "arguments": []
                              }
                            ]
                          }
                        }
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 4068,
                        "end": 4118,
                        "loc": {
                          "start": {
                            "line": 102,
                            "column": 4
                          },
                          "end": {
                            "line": 102,
                            "column": 54
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4074,
                            "end": 4117,
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 10
                              },
                              "end": {
                                "line": 102,
                                "column": 53
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4074,
                              "end": 4085,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 10
                                },
                                "end": {
                                  "line": 102,
                                  "column": 21
                                },
                                "identifierName": "unsubscribe"
                              },
                              "name": "unsubscribe"
                            },
                            "init": {
                              "type": "CallExpression",
                              "start": 4088,
                              "end": 4117,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 24
                                },
                                "end": {
                                  "line": 102,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4088,
                                "end": 4103,
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 39
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4088,
                                  "end": 4093,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 29
                                    },
                                    "identifierName": "store"
                                  },
                                  "name": "store"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4094,
                                  "end": 4103,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 39
                                    },
                                    "identifierName": "subscribe"
                                  },
                                  "name": "subscribe"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 4104,
                                  "end": 4116,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 52
                                    },
                                    "identifierName": "handleChange"
                                  },
                                  "name": "handleChange"
                                }
                              ]
                            }
                          }
                        ],
                        "kind": "const"
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 4123,
                        "end": 4338,
                        "loc": {
                          "start": {
                            "line": 103,
                            "column": 4
                          },
                          "end": {
                            "line": 109,
                            "column": 6
                          }
                        },
                        "argument": {
                          "type": "ArrowFunctionExpression",
                          "start": 4130,
                          "end": 4337,
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 11
                            },
                            "end": {
                              "line": 109,
                              "column": 5
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": false,
                          "async": false,
                          "params": [],
                          "body": {
                            "type": "BlockStatement",
                            "start": 4136,
                            "end": 4337,
                            "loc": {
                              "start": {
                                "line": 103,
                                "column": 17
                              },
                              "end": {
                                "line": 109,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 4146,
                                "end": 4160,
                                "loc": {
                                  "start": {
                                    "line": 104,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 104,
                                    "column": 22
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 4146,
                                  "end": 4159,
                                  "loc": {
                                    "start": {
                                      "line": 104,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 104,
                                      "column": 21
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 4146,
                                    "end": 4157,
                                    "loc": {
                                      "start": {
                                        "line": 104,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 104,
                                        "column": 19
                                      },
                                      "identifierName": "unsubscribe"
                                    },
                                    "name": "unsubscribe"
                                  },
                                  "arguments": []
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4169,
                                "end": 4189,
                                "loc": {
                                  "start": {
                                    "line": 105,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 105,
                                    "column": 28
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 4169,
                                  "end": 4188,
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 27
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4169,
                                    "end": 4181,
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 20
                                      },
                                      "identifierName": "unsubscribed"
                                    },
                                    "name": "unsubscribed"
                                  },
                                  "right": {
                                    "type": "BooleanLiteral",
                                    "start": 4184,
                                    "end": 4188,
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 27
                                      }
                                    },
                                    "value": true
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4198,
                                "end": 4223,
                                "loc": {
                                  "start": {
                                    "line": 106,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 106,
                                    "column": 33
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 4198,
                                  "end": 4222,
                                  "loc": {
                                    "start": {
                                      "line": 106,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 106,
                                      "column": 32
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4198,
                                    "end": 4210,
                                    "loc": {
                                      "start": {
                                        "line": 106,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 106,
                                        "column": 20
                                      },
                                      "identifierName": "currentState"
                                    },
                                    "name": "currentState"
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "start": 4213,
                                    "end": 4222,
                                    "loc": {
                                      "start": {
                                        "line": 106,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 106,
                                        "column": 32
                                      },
                                      "identifierName": "nextState"
                                    },
                                    "name": "nextState"
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4232,
                                "end": 4254,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 30
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 4232,
                                  "end": 4253,
                                  "loc": {
                                    "start": {
                                      "line": 107,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 107,
                                      "column": 29
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4232,
                                    "end": 4241,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 17
                                      },
                                      "identifierName": "nextState"
                                    },
                                    "name": "nextState"
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "start": 4244,
                                    "end": 4253,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 29
                                      },
                                      "identifierName": "undefined"
                                    },
                                    "name": "undefined"
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4263,
                                "end": 4331,
                                "loc": {
                                  "start": {
                                    "line": 108,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 108,
                                    "column": 76
                                  }
                                },
                                "expression": {
                                  "type": "LogicalExpression",
                                  "start": 4263,
                                  "end": 4330,
                                  "loc": {
                                    "start": {
                                      "line": 108,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 108,
                                      "column": 75
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4263,
                                    "end": 4280,
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 25
                                      },
                                      "identifierName": "fireOnUnsubscribe"
                                    },
                                    "name": "fireOnUnsubscribe"
                                  },
                                  "operator": "&&",
                                  "right": {
                                    "type": "CallExpression",
                                    "start": 4284,
                                    "end": 4330,
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 75
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 4284,
                                      "end": 4305,
                                      "loc": {
                                        "start": {
                                          "line": 108,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 108,
                                          "column": 50
                                        },
                                        "identifierName": "recursiveHandleChange"
                                      },
                                      "name": "recursiveHandleChange"
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 4306,
                                        "end": 4318,
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 63
                                          },
                                          "identifierName": "userSelectId"
                                        },
                                        "name": "userSelectId"
                                      },
                                      {
                                        "type": "NewExpression",
                                        "start": 4320,
                                        "end": 4329,
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 65
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 74
                                          }
                                        },
                                        "callee": {
                                          "type": "Identifier",
                                          "start": 4324,
                                          "end": 4327,
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 69
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 72
                                            },
                                            "identifierName": "Map"
                                          },
                                          "name": "Map"
                                        },
                                        "arguments": []
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "directives": []
                          }
                        }
                      }
                    ],
                    "directives": [],
                    "trailingComments": null
                  },
                  "trailingComments": null
                },
                "trailingComments": null
              },
              "leadingComments": null,
              "trailingComments": null
            }
          ],
          "kind": "const",
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " State observe deeply with pre-select and user-select",
              "start": 2205,
              "end": 2260,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 0
                },
                "end": {
                  "line": 63,
                  "column": 55
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " Build ClassAD feature path (_O. ...)",
              "start": 4342,
              "end": 4381,
              "loc": {
                "start": {
                  "line": 112,
                  "column": 0
                },
                "end": {
                  "line": 112,
                  "column": 39
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " State observe deeply with pre-select and user-select",
            "start": 2205,
            "end": 2260,
            "loc": {
              "start": {
                "line": 63,
                "column": 0
              },
              "end": {
                "line": 63,
                "column": 55
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Build ClassAD feature path (_O. ...)",
            "start": 4342,
            "end": 4381,
            "loc": {
              "start": {
                "line": 112,
                "column": 0
              },
              "end": {
                "line": 112,
                "column": 39
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 4382,
        "end": 4748,
        "loc": {
          "start": {
            "line": 113,
            "column": 0
          },
          "end": {
            "line": 122,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 4389,
          "end": 4748,
          "loc": {
            "start": {
              "line": 113,
              "column": 7
            },
            "end": {
              "line": 122,
              "column": 1
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 4395,
              "end": 4748,
              "loc": {
                "start": {
                  "line": 113,
                  "column": 13
                },
                "end": {
                  "line": 122,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 4395,
                "end": 4411,
                "loc": {
                  "start": {
                    "line": 113,
                    "column": 13
                  },
                  "end": {
                    "line": 113,
                    "column": 29
                  },
                  "identifierName": "buildFeaturePath"
                },
                "name": "buildFeaturePath",
                "leadingComments": null
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 4414,
                "end": 4748,
                "loc": {
                  "start": {
                    "line": 113,
                    "column": 32
                  },
                  "end": {
                    "line": 122,
                    "column": 1
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 4395,
                  "end": 4411,
                  "loc": {
                    "start": {
                      "line": 113,
                      "column": 13
                    },
                    "end": {
                      "line": 113,
                      "column": 29
                    },
                    "identifierName": "buildFeaturePath"
                  },
                  "name": "buildFeaturePath",
                  "leadingComments": null
                },
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 4415,
                    "end": 4419,
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 33
                      },
                      "end": {
                        "line": 113,
                        "column": 37
                      },
                      "identifierName": "tree"
                    },
                    "name": "tree"
                  },
                  {
                    "type": "Identifier",
                    "start": 4421,
                    "end": 4428,
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 39
                      },
                      "end": {
                        "line": 113,
                        "column": 46
                      },
                      "identifierName": "feature"
                    },
                    "name": "feature"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 4433,
                  "end": 4748,
                  "loc": {
                    "start": {
                      "line": 113,
                      "column": 51
                    },
                    "end": {
                      "line": 122,
                      "column": 1
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 4439,
                      "end": 4505,
                      "loc": {
                        "start": {
                          "line": 114,
                          "column": 4
                        },
                        "end": {
                          "line": 115,
                          "column": 32
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 4443,
                        "end": 4470,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 8
                          },
                          "end": {
                            "line": 114,
                            "column": 35
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 4443,
                          "end": 4457,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 8
                            },
                            "end": {
                              "line": 114,
                              "column": 22
                            }
                          },
                          "operator": "typeof",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 4450,
                            "end": 4457,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 15
                              },
                              "end": {
                                "line": 114,
                                "column": 22
                              },
                              "identifierName": "feature"
                            },
                            "name": "feature"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "operator": "!==",
                        "right": {
                          "type": "StringLiteral",
                          "start": 4462,
                          "end": 4470,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 27
                            },
                            "end": {
                              "line": 114,
                              "column": 35
                            }
                          },
                          "extra": {
                            "rawValue": "object",
                            "raw": "'object'"
                          },
                          "value": "object"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 4481,
                        "end": 4505,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 8
                          },
                          "end": {
                            "line": 115,
                            "column": 32
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 4481,
                          "end": 4504,
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 8
                            },
                            "end": {
                              "line": 115,
                              "column": 31
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 4481,
                            "end": 4488,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 8
                              },
                              "end": {
                                "line": 115,
                                "column": 15
                              },
                              "identifierName": "feature"
                            },
                            "name": "feature"
                          },
                          "right": {
                            "type": "MemberExpression",
                            "start": 4491,
                            "end": 4504,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 18
                              },
                              "end": {
                                "line": 115,
                                "column": 31
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4491,
                              "end": 4495,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 18
                                },
                                "end": {
                                  "line": 115,
                                  "column": 22
                                },
                                "identifierName": "tree"
                              },
                              "name": "tree"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4496,
                              "end": 4503,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 23
                                },
                                "end": {
                                  "line": 115,
                                  "column": 30
                                },
                                "identifierName": "feature"
                              },
                              "name": "feature"
                            },
                            "computed": true
                          }
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 4510,
                      "end": 4569,
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 4
                        },
                        "end": {
                          "line": 116,
                          "column": 63
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4514,
                          "end": 4550,
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 8
                            },
                            "end": {
                              "line": 116,
                              "column": 44
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4514,
                            "end": 4518,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 8
                              },
                              "end": {
                                "line": 116,
                                "column": 12
                              },
                              "identifierName": "path"
                            },
                            "name": "path"
                          },
                          "init": {
                            "type": "ArrayExpression",
                            "start": 4521,
                            "end": 4550,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 15
                              },
                              "end": {
                                "line": 116,
                                "column": 44
                              }
                            },
                            "elements": [
                              {
                                "type": "CallExpression",
                                "start": 4522,
                                "end": 4549,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 43
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 4522,
                                  "end": 4535,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 29
                                    },
                                    "identifierName": "normalizeName"
                                  },
                                  "name": "normalizeName"
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 4536,
                                    "end": 4548,
                                    "loc": {
                                      "start": {
                                        "line": 116,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 116,
                                        "column": 42
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4536,
                                      "end": 4543,
                                      "loc": {
                                        "start": {
                                          "line": 116,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 116,
                                          "column": 37
                                        },
                                        "identifierName": "feature"
                                      },
                                      "name": "feature"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4544,
                                      "end": 4548,
                                      "loc": {
                                        "start": {
                                          "line": 116,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 116,
                                          "column": 42
                                        },
                                        "identifierName": "name"
                                      },
                                      "name": "name"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        {
                          "type": "VariableDeclarator",
                          "start": 4552,
                          "end": 4568,
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 46
                            },
                            "end": {
                              "line": 116,
                              "column": 62
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4552,
                            "end": 4558,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 46
                              },
                              "end": {
                                "line": 116,
                                "column": 52
                              },
                              "identifierName": "parent"
                            },
                            "name": "parent"
                          },
                          "init": {
                            "type": "Identifier",
                            "start": 4561,
                            "end": 4568,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 55
                              },
                              "end": {
                                "line": 116,
                                "column": 62
                              },
                              "identifierName": "feature"
                            },
                            "name": "feature"
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "WhileStatement",
                      "start": 4574,
                      "end": 4701,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 4
                        },
                        "end": {
                          "line": 120,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 4581,
                        "end": 4608,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 11
                          },
                          "end": {
                            "line": 117,
                            "column": 38
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 4581,
                          "end": 4587,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 11
                            },
                            "end": {
                              "line": 117,
                              "column": 17
                            },
                            "identifierName": "parent"
                          },
                          "name": "parent"
                        },
                        "operator": "&&",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 4591,
                          "end": 4608,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 21
                            },
                            "end": {
                              "line": 117,
                              "column": 38
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 4591,
                            "end": 4604,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 21
                              },
                              "end": {
                                "line": 117,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4591,
                              "end": 4597,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 21
                                },
                                "end": {
                                  "line": 117,
                                  "column": 27
                                },
                                "identifierName": "parent"
                              },
                              "name": "parent"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4598,
                              "end": 4604,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 28
                                },
                                "end": {
                                  "line": 117,
                                  "column": 34
                                },
                                "identifierName": "parent"
                              },
                              "name": "parent"
                            },
                            "computed": false
                          },
                          "operator": ">",
                          "right": {
                            "type": "NumericLiteral",
                            "start": 4607,
                            "end": 4608,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 37
                              },
                              "end": {
                                "line": 117,
                                "column": 38
                              }
                            },
                            "extra": {
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "value": 1
                          }
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 4610,
                        "end": 4701,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 40
                          },
                          "end": {
                            "line": 120,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 4620,
                            "end": 4649,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 8
                              },
                              "end": {
                                "line": 118,
                                "column": 37
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 4620,
                              "end": 4648,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 8
                                },
                                "end": {
                                  "line": 118,
                                  "column": 36
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 4620,
                                "end": 4626,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 14
                                  },
                                  "identifierName": "parent"
                                },
                                "name": "parent"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 4629,
                                "end": 4648,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4629,
                                  "end": 4633,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 21
                                    },
                                    "identifierName": "tree"
                                  },
                                  "name": "tree"
                                },
                                "property": {
                                  "type": "MemberExpression",
                                  "start": 4634,
                                  "end": 4647,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4634,
                                    "end": 4640,
                                    "loc": {
                                      "start": {
                                        "line": 118,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 118,
                                        "column": 28
                                      },
                                      "identifierName": "parent"
                                    },
                                    "name": "parent"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4641,
                                    "end": 4647,
                                    "loc": {
                                      "start": {
                                        "line": 118,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 118,
                                        "column": 35
                                      },
                                      "identifierName": "parent"
                                    },
                                    "name": "parent"
                                  },
                                  "computed": false
                                },
                                "computed": true
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 4658,
                            "end": 4695,
                            "loc": {
                              "start": {
                                "line": 119,
                                "column": 8
                              },
                              "end": {
                                "line": 119,
                                "column": 45
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 4658,
                              "end": 4695,
                              "loc": {
                                "start": {
                                  "line": 119,
                                  "column": 8
                                },
                                "end": {
                                  "line": 119,
                                  "column": 45
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4658,
                                "end": 4667,
                                "loc": {
                                  "start": {
                                    "line": 119,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 119,
                                    "column": 17
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4658,
                                  "end": 4662,
                                  "loc": {
                                    "start": {
                                      "line": 119,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 119,
                                      "column": 12
                                    },
                                    "identifierName": "path"
                                  },
                                  "name": "path"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4663,
                                  "end": 4667,
                                  "loc": {
                                    "start": {
                                      "line": 119,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 119,
                                      "column": 17
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "CallExpression",
                                  "start": 4668,
                                  "end": 4694,
                                  "loc": {
                                    "start": {
                                      "line": 119,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 119,
                                      "column": 44
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 4668,
                                    "end": 4681,
                                    "loc": {
                                      "start": {
                                        "line": 119,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 119,
                                        "column": 31
                                      },
                                      "identifierName": "normalizeName"
                                    },
                                    "name": "normalizeName"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 4682,
                                      "end": 4693,
                                      "loc": {
                                        "start": {
                                          "line": 119,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 119,
                                          "column": 43
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 4682,
                                        "end": 4688,
                                        "loc": {
                                          "start": {
                                            "line": 119,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 119,
                                            "column": 38
                                          },
                                          "identifierName": "parent"
                                        },
                                        "name": "parent"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 4689,
                                        "end": 4693,
                                        "loc": {
                                          "start": {
                                            "line": 119,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 119,
                                            "column": 43
                                          },
                                          "identifierName": "name"
                                        },
                                        "name": "name"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 4706,
                      "end": 4746,
                      "loc": {
                        "start": {
                          "line": 121,
                          "column": 4
                        },
                        "end": {
                          "line": 121,
                          "column": 44
                        }
                      },
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 4713,
                        "end": 4745,
                        "loc": {
                          "start": {
                            "line": 121,
                            "column": 11
                          },
                          "end": {
                            "line": 121,
                            "column": 43
                          }
                        },
                        "left": {
                          "type": "StringLiteral",
                          "start": 4713,
                          "end": 4718,
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 11
                            },
                            "end": {
                              "line": 121,
                              "column": 16
                            }
                          },
                          "extra": {
                            "rawValue": "_O.",
                            "raw": "'_O.'"
                          },
                          "value": "_O."
                        },
                        "operator": "+",
                        "right": {
                          "type": "CallExpression",
                          "start": 4721,
                          "end": 4745,
                          "loc": {
                            "start": {
                              "line": 121,
                              "column": 19
                            },
                            "end": {
                              "line": 121,
                              "column": 43
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 4721,
                            "end": 4740,
                            "loc": {
                              "start": {
                                "line": 121,
                                "column": 19
                              },
                              "end": {
                                "line": 121,
                                "column": 38
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 4721,
                              "end": 4735,
                              "loc": {
                                "start": {
                                  "line": 121,
                                  "column": 19
                                },
                                "end": {
                                  "line": 121,
                                  "column": 33
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4721,
                                "end": 4733,
                                "loc": {
                                  "start": {
                                    "line": 121,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 121,
                                    "column": 31
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4721,
                                  "end": 4725,
                                  "loc": {
                                    "start": {
                                      "line": 121,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 121,
                                      "column": 23
                                    },
                                    "identifierName": "path"
                                  },
                                  "name": "path"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4726,
                                  "end": 4733,
                                  "loc": {
                                    "start": {
                                      "line": 121,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 121,
                                      "column": 31
                                    },
                                    "identifierName": "reverse"
                                  },
                                  "name": "reverse"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4736,
                              "end": 4740,
                              "loc": {
                                "start": {
                                  "line": 121,
                                  "column": 34
                                },
                                "end": {
                                  "line": 121,
                                  "column": 38
                                },
                                "identifierName": "join"
                              },
                              "name": "join"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "StringLiteral",
                              "start": 4741,
                              "end": 4744,
                              "loc": {
                                "start": {
                                  "line": 121,
                                  "column": 39
                                },
                                "end": {
                                  "line": 121,
                                  "column": 42
                                }
                              },
                              "extra": {
                                "rawValue": ".",
                                "raw": "'.'"
                              },
                              "value": "."
                            }
                          ]
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              "leadingComments": null
            }
          ],
          "kind": "const",
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " Build ClassAD feature path (_O. ...)",
              "start": 4342,
              "end": 4381,
              "loc": {
                "start": {
                  "line": 112,
                  "column": 0
                },
                "end": {
                  "line": 112,
                  "column": 39
                }
              }
            }
          ],
          "trailingComments": []
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Build ClassAD feature path (_O. ...)",
            "start": 4342,
            "end": 4381,
            "loc": {
              "start": {
                "line": 112,
                "column": 0
              },
              "end": {
                "line": 112,
                "column": 39
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 4750,
        "end": 4836,
        "loc": {
          "start": {
            "line": 124,
            "column": 0
          },
          "end": {
            "line": 126,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "VariableDeclaration",
          "start": 4757,
          "end": 4836,
          "loc": {
            "start": {
              "line": 124,
              "column": 7
            },
            "end": {
              "line": 126,
              "column": 1
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 4763,
              "end": 4836,
              "loc": {
                "start": {
                  "line": 124,
                  "column": 13
                },
                "end": {
                  "line": 126,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 4763,
                "end": 4776,
                "loc": {
                  "start": {
                    "line": 124,
                    "column": 13
                  },
                  "end": {
                    "line": 124,
                    "column": 26
                  },
                  "identifierName": "normalizeName"
                },
                "name": "normalizeName"
              },
              "init": {
                "type": "ArrowFunctionExpression",
                "start": 4779,
                "end": 4836,
                "loc": {
                  "start": {
                    "line": 124,
                    "column": 29
                  },
                  "end": {
                    "line": 126,
                    "column": 1
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 4763,
                  "end": 4776,
                  "loc": {
                    "start": {
                      "line": 124,
                      "column": 13
                    },
                    "end": {
                      "line": 124,
                      "column": 26
                    },
                    "identifierName": "normalizeName"
                  },
                  "name": "normalizeName"
                },
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 4779,
                    "end": 4783,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 29
                      },
                      "end": {
                        "line": 124,
                        "column": 33
                      },
                      "identifierName": "name"
                    },
                    "name": "name"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 4787,
                  "end": 4836,
                  "loc": {
                    "start": {
                      "line": 124,
                      "column": 37
                    },
                    "end": {
                      "line": 126,
                      "column": 1
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 4793,
                      "end": 4834,
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 4
                        },
                        "end": {
                          "line": 125,
                          "column": 45
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 4800,
                        "end": 4833,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 11
                          },
                          "end": {
                            "line": 125,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4800,
                          "end": 4812,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 11
                            },
                            "end": {
                              "line": 125,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 4800,
                            "end": 4804,
                            "loc": {
                              "start": {
                                "line": 125,
                                "column": 11
                              },
                              "end": {
                                "line": 125,
                                "column": 15
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4805,
                            "end": 4812,
                            "loc": {
                              "start": {
                                "line": 125,
                                "column": 16
                              },
                              "end": {
                                "line": 125,
                                "column": 23
                              },
                              "identifierName": "replace"
                            },
                            "name": "replace"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "RegExpLiteral",
                            "start": 4813,
                            "end": 4828,
                            "loc": {
                              "start": {
                                "line": 125,
                                "column": 24
                              },
                              "end": {
                                "line": 125,
                                "column": 39
                              }
                            },
                            "extra": {
                              "raw": "/(\\s|-|\\r?\\n)/g"
                            },
                            "pattern": "(\\s|-|\\r?\\n)",
                            "flags": "g"
                          },
                          {
                            "type": "StringLiteral",
                            "start": 4830,
                            "end": 4832,
                            "loc": {
                              "start": {
                                "line": 125,
                                "column": 41
                              },
                              "end": {
                                "line": 125,
                                "column": 43
                              }
                            },
                            "extra": {
                              "rawValue": "",
                              "raw": "''"
                            },
                            "value": ""
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " Packs ArrayBuffer into deflated base64 for ClassCAD stream consumption",
      "start": 67,
      "end": 140,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 73
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Helps detecting changes in two array-states",
      "start": 224,
      "end": 270,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 46
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " State observe with pre-select and user-select",
      "start": 936,
      "end": 984,
      "loc": {
        "start": {
          "line": 29,
          "column": 0
        },
        "end": {
          "line": 29,
          "column": 48
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " State observe deeply with pre-select and user-select",
      "start": 2205,
      "end": 2260,
      "loc": {
        "start": {
          "line": 63,
          "column": 0
        },
        "end": {
          "line": 63,
          "column": 55
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " stop recursing in infinite member loops",
      "start": 2878,
      "end": 2920,
      "loc": {
        "start": {
          "line": 75,
          "column": 20
        },
        "end": {
          "line": 75,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " prevent firing notifications that happened just after unsubscribe",
      "start": 3798,
      "end": 3866,
      "loc": {
        "start": {
          "line": 95,
          "column": 20
        },
        "end": {
          "line": 95,
          "column": 88
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Build ClassAD feature path (_O. ...)",
      "start": 4342,
      "end": 4381,
      "loc": {
        "start": {
          "line": 112,
          "column": 0
        },
        "end": {
          "line": 112,
          "column": 39
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "pako",
      "start": 7,
      "end": 11,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 12,
      "end": 16,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "pako",
      "start": 17,
      "end": 23,
      "loc": {
        "start": {
          "line": 1,
          "column": 17
        },
        "end": {
          "line": 1,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 23,
      "end": 24,
      "loc": {
        "start": {
          "line": 1,
          "column": 23
        },
        "end": {
          "line": 1,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 25,
      "end": 31,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "base64",
      "start": 32,
      "end": 38,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 39,
      "end": 43,
      "loc": {
        "start": {
          "line": 2,
          "column": 14
        },
        "end": {
          "line": 2,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "base64-arraybuffer",
      "start": 44,
      "end": 64,
      "loc": {
        "start": {
          "line": 2,
          "column": 19
        },
        "end": {
          "line": 2,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 64,
      "end": 65,
      "loc": {
        "start": {
          "line": 2,
          "column": 39
        },
        "end": {
          "line": 2,
          "column": 40
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Packs ArrayBuffer into deflated base64 for ClassCAD stream consumption",
      "start": 67,
      "end": 140,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 141,
      "end": 147,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 148,
      "end": 153,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "pack",
      "start": 154,
      "end": 158,
      "loc": {
        "start": {
          "line": 5,
          "column": 13
        },
        "end": {
          "line": 5,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 159,
      "end": 160,
      "loc": {
        "start": {
          "line": 5,
          "column": 18
        },
        "end": {
          "line": 5,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "buffer",
      "start": 161,
      "end": 167,
      "loc": {
        "start": {
          "line": 5,
          "column": 20
        },
        "end": {
          "line": 5,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 168,
      "end": 170,
      "loc": {
        "start": {
          "line": 5,
          "column": 27
        },
        "end": {
          "line": 5,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "base64",
      "start": 171,
      "end": 177,
      "loc": {
        "start": {
          "line": 5,
          "column": 30
        },
        "end": {
          "line": 5,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 177,
      "end": 178,
      "loc": {
        "start": {
          "line": 5,
          "column": 36
        },
        "end": {
          "line": 5,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "encode",
      "start": 178,
      "end": 184,
      "loc": {
        "start": {
          "line": 5,
          "column": 37
        },
        "end": {
          "line": 5,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 184,
      "end": 185,
      "loc": {
        "start": {
          "line": 5,
          "column": 43
        },
        "end": {
          "line": 5,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "pako",
      "start": 185,
      "end": 189,
      "loc": {
        "start": {
          "line": 5,
          "column": 44
        },
        "end": {
          "line": 5,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 189,
      "end": 190,
      "loc": {
        "start": {
          "line": 5,
          "column": 48
        },
        "end": {
          "line": 5,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deflate",
      "start": 190,
      "end": 197,
      "loc": {
        "start": {
          "line": 5,
          "column": 49
        },
        "end": {
          "line": 5,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 197,
      "end": 198,
      "loc": {
        "start": {
          "line": 5,
          "column": 56
        },
        "end": {
          "line": 5,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "buffer",
      "start": 198,
      "end": 204,
      "loc": {
        "start": {
          "line": 5,
          "column": 57
        },
        "end": {
          "line": 5,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 204,
      "end": 205,
      "loc": {
        "start": {
          "line": 5,
          "column": 63
        },
        "end": {
          "line": 5,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 206,
      "end": 207,
      "loc": {
        "start": {
          "line": 5,
          "column": 65
        },
        "end": {
          "line": 5,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "raw",
      "start": 208,
      "end": 211,
      "loc": {
        "start": {
          "line": 5,
          "column": 67
        },
        "end": {
          "line": 5,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 211,
      "end": 212,
      "loc": {
        "start": {
          "line": 5,
          "column": 70
        },
        "end": {
          "line": 5,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "true",
        "keyword": "true",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "true",
      "start": 213,
      "end": 217,
      "loc": {
        "start": {
          "line": 5,
          "column": 72
        },
        "end": {
          "line": 5,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 218,
      "end": 219,
      "loc": {
        "start": {
          "line": 5,
          "column": 77
        },
        "end": {
          "line": 5,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 219,
      "end": 220,
      "loc": {
        "start": {
          "line": 5,
          "column": 78
        },
        "end": {
          "line": 5,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 220,
      "end": 221,
      "loc": {
        "start": {
          "line": 5,
          "column": 79
        },
        "end": {
          "line": 5,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 221,
      "end": 222,
      "loc": {
        "start": {
          "line": 5,
          "column": 80
        },
        "end": {
          "line": 5,
          "column": 81
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Helps detecting changes in two array-states",
      "start": 224,
      "end": 270,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 271,
      "end": 277,
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 8,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 278,
      "end": 283,
      "loc": {
        "start": {
          "line": 8,
          "column": 7
        },
        "end": {
          "line": 8,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "arrayDiff",
      "start": 284,
      "end": 293,
      "loc": {
        "start": {
          "line": 8,
          "column": 13
        },
        "end": {
          "line": 8,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 294,
      "end": 295,
      "loc": {
        "start": {
          "line": 8,
          "column": 23
        },
        "end": {
          "line": 8,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 296,
      "end": 297,
      "loc": {
        "start": {
          "line": 8,
          "column": 25
        },
        "end": {
          "line": 8,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 297,
      "end": 301,
      "loc": {
        "start": {
          "line": 8,
          "column": 26
        },
        "end": {
          "line": 8,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 302,
      "end": 303,
      "loc": {
        "start": {
          "line": 8,
          "column": 31
        },
        "end": {
          "line": 8,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 304,
      "end": 305,
      "loc": {
        "start": {
          "line": 8,
          "column": 33
        },
        "end": {
          "line": 8,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 305,
      "end": 306,
      "loc": {
        "start": {
          "line": 8,
          "column": 34
        },
        "end": {
          "line": 8,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 306,
      "end": 307,
      "loc": {
        "start": {
          "line": 8,
          "column": 35
        },
        "end": {
          "line": 8,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 308,
      "end": 315,
      "loc": {
        "start": {
          "line": 8,
          "column": 37
        },
        "end": {
          "line": 8,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 316,
      "end": 317,
      "loc": {
        "start": {
          "line": 8,
          "column": 45
        },
        "end": {
          "line": 8,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 318,
      "end": 319,
      "loc": {
        "start": {
          "line": 8,
          "column": 47
        },
        "end": {
          "line": 8,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 319,
      "end": 320,
      "loc": {
        "start": {
          "line": 8,
          "column": 48
        },
        "end": {
          "line": 8,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 320,
      "end": 321,
      "loc": {
        "start": {
          "line": 8,
          "column": 49
        },
        "end": {
          "line": 8,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "callbackNew",
      "start": 322,
      "end": 333,
      "loc": {
        "start": {
          "line": 8,
          "column": 51
        },
        "end": {
          "line": 8,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 333,
      "end": 334,
      "loc": {
        "start": {
          "line": 8,
          "column": 62
        },
        "end": {
          "line": 8,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "callbackDeleted",
      "start": 335,
      "end": 350,
      "loc": {
        "start": {
          "line": 8,
          "column": 64
        },
        "end": {
          "line": 8,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 350,
      "end": 351,
      "loc": {
        "start": {
          "line": 8,
          "column": 79
        },
        "end": {
          "line": 8,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 352,
      "end": 354,
      "loc": {
        "start": {
          "line": 8,
          "column": 81
        },
        "end": {
          "line": 8,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 355,
      "end": 356,
      "loc": {
        "start": {
          "line": 8,
          "column": 84
        },
        "end": {
          "line": 8,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 361,
      "end": 364,
      "loc": {
        "start": {
          "line": 9,
          "column": 4
        },
        "end": {
          "line": 9,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextSet",
      "start": 365,
      "end": 372,
      "loc": {
        "start": {
          "line": 9,
          "column": 8
        },
        "end": {
          "line": 9,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 373,
      "end": 374,
      "loc": {
        "start": {
          "line": 9,
          "column": 16
        },
        "end": {
          "line": 9,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 375,
      "end": 378,
      "loc": {
        "start": {
          "line": 9,
          "column": 18
        },
        "end": {
          "line": 9,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 379,
      "end": 382,
      "loc": {
        "start": {
          "line": 9,
          "column": 22
        },
        "end": {
          "line": 9,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 382,
      "end": 383,
      "loc": {
        "start": {
          "line": 9,
          "column": 25
        },
        "end": {
          "line": 9,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 383,
      "end": 387,
      "loc": {
        "start": {
          "line": 9,
          "column": 26
        },
        "end": {
          "line": 9,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 387,
      "end": 388,
      "loc": {
        "start": {
          "line": 9,
          "column": 30
        },
        "end": {
          "line": 9,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 388,
      "end": 389,
      "loc": {
        "start": {
          "line": 9,
          "column": 31
        },
        "end": {
          "line": 9,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 394,
      "end": 397,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentSet",
      "start": 398,
      "end": 408,
      "loc": {
        "start": {
          "line": 10,
          "column": 8
        },
        "end": {
          "line": 10,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 409,
      "end": 410,
      "loc": {
        "start": {
          "line": 10,
          "column": 19
        },
        "end": {
          "line": 10,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 411,
      "end": 414,
      "loc": {
        "start": {
          "line": 10,
          "column": 21
        },
        "end": {
          "line": 10,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 415,
      "end": 418,
      "loc": {
        "start": {
          "line": 10,
          "column": 25
        },
        "end": {
          "line": 10,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 418,
      "end": 419,
      "loc": {
        "start": {
          "line": 10,
          "column": 28
        },
        "end": {
          "line": 10,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 419,
      "end": 426,
      "loc": {
        "start": {
          "line": 10,
          "column": 29
        },
        "end": {
          "line": 10,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 426,
      "end": 427,
      "loc": {
        "start": {
          "line": 10,
          "column": 36
        },
        "end": {
          "line": 10,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 427,
      "end": 428,
      "loc": {
        "start": {
          "line": 10,
          "column": 37
        },
        "end": {
          "line": 10,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 433,
      "end": 436,
      "loc": {
        "start": {
          "line": 11,
          "column": 4
        },
        "end": {
          "line": 11,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newItems",
      "start": 437,
      "end": 445,
      "loc": {
        "start": {
          "line": 11,
          "column": 8
        },
        "end": {
          "line": 11,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 446,
      "end": 447,
      "loc": {
        "start": {
          "line": 11,
          "column": 17
        },
        "end": {
          "line": 11,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 448,
      "end": 452,
      "loc": {
        "start": {
          "line": 11,
          "column": 19
        },
        "end": {
          "line": 11,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 452,
      "end": 453,
      "loc": {
        "start": {
          "line": 11,
          "column": 23
        },
        "end": {
          "line": 11,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "filter",
      "start": 453,
      "end": 459,
      "loc": {
        "start": {
          "line": 11,
          "column": 24
        },
        "end": {
          "line": 11,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 459,
      "end": 460,
      "loc": {
        "start": {
          "line": 11,
          "column": 30
        },
        "end": {
          "line": 11,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "item",
      "start": 460,
      "end": 464,
      "loc": {
        "start": {
          "line": 11,
          "column": 31
        },
        "end": {
          "line": 11,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 465,
      "end": 467,
      "loc": {
        "start": {
          "line": 11,
          "column": 36
        },
        "end": {
          "line": 11,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 468,
      "end": 469,
      "loc": {
        "start": {
          "line": 11,
          "column": 39
        },
        "end": {
          "line": 11,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentSet",
      "start": 469,
      "end": 479,
      "loc": {
        "start": {
          "line": 11,
          "column": 40
        },
        "end": {
          "line": 11,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 479,
      "end": 480,
      "loc": {
        "start": {
          "line": 11,
          "column": 50
        },
        "end": {
          "line": 11,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 480,
      "end": 483,
      "loc": {
        "start": {
          "line": 11,
          "column": 51
        },
        "end": {
          "line": 11,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 483,
      "end": 484,
      "loc": {
        "start": {
          "line": 11,
          "column": 54
        },
        "end": {
          "line": 11,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "item",
      "start": 484,
      "end": 488,
      "loc": {
        "start": {
          "line": 11,
          "column": 55
        },
        "end": {
          "line": 11,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 488,
      "end": 489,
      "loc": {
        "start": {
          "line": 11,
          "column": 59
        },
        "end": {
          "line": 11,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 489,
      "end": 490,
      "loc": {
        "start": {
          "line": 11,
          "column": 60
        },
        "end": {
          "line": 11,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 490,
      "end": 491,
      "loc": {
        "start": {
          "line": 11,
          "column": 61
        },
        "end": {
          "line": 11,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 496,
      "end": 499,
      "loc": {
        "start": {
          "line": 12,
          "column": 4
        },
        "end": {
          "line": 12,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "promises",
      "start": 500,
      "end": 508,
      "loc": {
        "start": {
          "line": 12,
          "column": 8
        },
        "end": {
          "line": 12,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 509,
      "end": 510,
      "loc": {
        "start": {
          "line": 12,
          "column": 17
        },
        "end": {
          "line": 12,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 511,
      "end": 512,
      "loc": {
        "start": {
          "line": 12,
          "column": 19
        },
        "end": {
          "line": 12,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 512,
      "end": 513,
      "loc": {
        "start": {
          "line": 12,
          "column": 20
        },
        "end": {
          "line": 12,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 513,
      "end": 514,
      "loc": {
        "start": {
          "line": 12,
          "column": 21
        },
        "end": {
          "line": 12,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 519,
      "end": 521,
      "loc": {
        "start": {
          "line": 13,
          "column": 4
        },
        "end": {
          "line": 13,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 522,
      "end": 523,
      "loc": {
        "start": {
          "line": 13,
          "column": 7
        },
        "end": {
          "line": 13,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newItems",
      "start": 523,
      "end": 531,
      "loc": {
        "start": {
          "line": 13,
          "column": 8
        },
        "end": {
          "line": 13,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 531,
      "end": 532,
      "loc": {
        "start": {
          "line": 13,
          "column": 16
        },
        "end": {
          "line": 13,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 532,
      "end": 538,
      "loc": {
        "start": {
          "line": 13,
          "column": 17
        },
        "end": {
          "line": 13,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 538,
      "end": 539,
      "loc": {
        "start": {
          "line": 13,
          "column": 23
        },
        "end": {
          "line": 13,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 540,
      "end": 541,
      "loc": {
        "start": {
          "line": 13,
          "column": 25
        },
        "end": {
          "line": 13,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 550,
      "end": 553,
      "loc": {
        "start": {
          "line": 14,
          "column": 8
        },
        "end": {
          "line": 14,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 554,
      "end": 561,
      "loc": {
        "start": {
          "line": 14,
          "column": 12
        },
        "end": {
          "line": 14,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 562,
      "end": 563,
      "loc": {
        "start": {
          "line": 14,
          "column": 20
        },
        "end": {
          "line": 14,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "callbackNew",
      "start": 564,
      "end": 575,
      "loc": {
        "start": {
          "line": 14,
          "column": 22
        },
        "end": {
          "line": 14,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 575,
      "end": 576,
      "loc": {
        "start": {
          "line": 14,
          "column": 33
        },
        "end": {
          "line": 14,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newItems",
      "start": 576,
      "end": 584,
      "loc": {
        "start": {
          "line": 14,
          "column": 34
        },
        "end": {
          "line": 14,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 584,
      "end": 585,
      "loc": {
        "start": {
          "line": 14,
          "column": 42
        },
        "end": {
          "line": 14,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 585,
      "end": 586,
      "loc": {
        "start": {
          "line": 14,
          "column": 43
        },
        "end": {
          "line": 14,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 595,
      "end": 597,
      "loc": {
        "start": {
          "line": 15,
          "column": 8
        },
        "end": {
          "line": 15,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 598,
      "end": 599,
      "loc": {
        "start": {
          "line": 15,
          "column": 11
        },
        "end": {
          "line": 15,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 599,
      "end": 606,
      "loc": {
        "start": {
          "line": 15,
          "column": 12
        },
        "end": {
          "line": 15,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 606,
      "end": 607,
      "loc": {
        "start": {
          "line": 15,
          "column": 19
        },
        "end": {
          "line": 15,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 608,
      "end": 609,
      "loc": {
        "start": {
          "line": 15,
          "column": 21
        },
        "end": {
          "line": 15,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "promises",
      "start": 622,
      "end": 630,
      "loc": {
        "start": {
          "line": 16,
          "column": 12
        },
        "end": {
          "line": 16,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 631,
      "end": 632,
      "loc": {
        "start": {
          "line": 16,
          "column": 21
        },
        "end": {
          "line": 16,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 633,
      "end": 640,
      "loc": {
        "start": {
          "line": 16,
          "column": 23
        },
        "end": {
          "line": 16,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 640,
      "end": 641,
      "loc": {
        "start": {
          "line": 16,
          "column": 30
        },
        "end": {
          "line": 16,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 650,
      "end": 651,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 656,
      "end": 657,
      "loc": {
        "start": {
          "line": 18,
          "column": 4
        },
        "end": {
          "line": 18,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 662,
      "end": 665,
      "loc": {
        "start": {
          "line": 19,
          "column": 4
        },
        "end": {
          "line": 19,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deletedItems",
      "start": 666,
      "end": 678,
      "loc": {
        "start": {
          "line": 19,
          "column": 8
        },
        "end": {
          "line": 19,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 679,
      "end": 680,
      "loc": {
        "start": {
          "line": 19,
          "column": 21
        },
        "end": {
          "line": 19,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 681,
      "end": 688,
      "loc": {
        "start": {
          "line": 19,
          "column": 23
        },
        "end": {
          "line": 19,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 688,
      "end": 689,
      "loc": {
        "start": {
          "line": 19,
          "column": 30
        },
        "end": {
          "line": 19,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "filter",
      "start": 689,
      "end": 695,
      "loc": {
        "start": {
          "line": 19,
          "column": 31
        },
        "end": {
          "line": 19,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 695,
      "end": 696,
      "loc": {
        "start": {
          "line": 19,
          "column": 37
        },
        "end": {
          "line": 19,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "item",
      "start": 696,
      "end": 700,
      "loc": {
        "start": {
          "line": 19,
          "column": 38
        },
        "end": {
          "line": 19,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 701,
      "end": 703,
      "loc": {
        "start": {
          "line": 19,
          "column": 43
        },
        "end": {
          "line": 19,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 704,
      "end": 705,
      "loc": {
        "start": {
          "line": 19,
          "column": 46
        },
        "end": {
          "line": 19,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextSet",
      "start": 705,
      "end": 712,
      "loc": {
        "start": {
          "line": 19,
          "column": 47
        },
        "end": {
          "line": 19,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 712,
      "end": 713,
      "loc": {
        "start": {
          "line": 19,
          "column": 54
        },
        "end": {
          "line": 19,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 713,
      "end": 716,
      "loc": {
        "start": {
          "line": 19,
          "column": 55
        },
        "end": {
          "line": 19,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 716,
      "end": 717,
      "loc": {
        "start": {
          "line": 19,
          "column": 58
        },
        "end": {
          "line": 19,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "item",
      "start": 717,
      "end": 721,
      "loc": {
        "start": {
          "line": 19,
          "column": 59
        },
        "end": {
          "line": 19,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 721,
      "end": 722,
      "loc": {
        "start": {
          "line": 19,
          "column": 63
        },
        "end": {
          "line": 19,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 722,
      "end": 723,
      "loc": {
        "start": {
          "line": 19,
          "column": 64
        },
        "end": {
          "line": 19,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 728,
      "end": 730,
      "loc": {
        "start": {
          "line": 20,
          "column": 4
        },
        "end": {
          "line": 20,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 731,
      "end": 732,
      "loc": {
        "start": {
          "line": 20,
          "column": 7
        },
        "end": {
          "line": 20,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deletedItems",
      "start": 732,
      "end": 744,
      "loc": {
        "start": {
          "line": 20,
          "column": 8
        },
        "end": {
          "line": 20,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 744,
      "end": 745,
      "loc": {
        "start": {
          "line": 20,
          "column": 20
        },
        "end": {
          "line": 20,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 745,
      "end": 751,
      "loc": {
        "start": {
          "line": 20,
          "column": 21
        },
        "end": {
          "line": 20,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 751,
      "end": 752,
      "loc": {
        "start": {
          "line": 20,
          "column": 27
        },
        "end": {
          "line": 20,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 753,
      "end": 754,
      "loc": {
        "start": {
          "line": 20,
          "column": 29
        },
        "end": {
          "line": 20,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 763,
      "end": 766,
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 767,
      "end": 774,
      "loc": {
        "start": {
          "line": 21,
          "column": 12
        },
        "end": {
          "line": 21,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 775,
      "end": 776,
      "loc": {
        "start": {
          "line": 21,
          "column": 20
        },
        "end": {
          "line": 21,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "callbackDeleted",
      "start": 777,
      "end": 792,
      "loc": {
        "start": {
          "line": 21,
          "column": 22
        },
        "end": {
          "line": 21,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 792,
      "end": 793,
      "loc": {
        "start": {
          "line": 21,
          "column": 37
        },
        "end": {
          "line": 21,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deletedItems",
      "start": 793,
      "end": 805,
      "loc": {
        "start": {
          "line": 21,
          "column": 38
        },
        "end": {
          "line": 21,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 805,
      "end": 806,
      "loc": {
        "start": {
          "line": 21,
          "column": 50
        },
        "end": {
          "line": 21,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 806,
      "end": 807,
      "loc": {
        "start": {
          "line": 21,
          "column": 51
        },
        "end": {
          "line": 21,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 816,
      "end": 818,
      "loc": {
        "start": {
          "line": 22,
          "column": 8
        },
        "end": {
          "line": 22,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 819,
      "end": 820,
      "loc": {
        "start": {
          "line": 22,
          "column": 11
        },
        "end": {
          "line": 22,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 820,
      "end": 827,
      "loc": {
        "start": {
          "line": 22,
          "column": 12
        },
        "end": {
          "line": 22,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 827,
      "end": 828,
      "loc": {
        "start": {
          "line": 22,
          "column": 19
        },
        "end": {
          "line": 22,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 829,
      "end": 830,
      "loc": {
        "start": {
          "line": 22,
          "column": 21
        },
        "end": {
          "line": 22,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "promises",
      "start": 843,
      "end": 851,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 852,
      "end": 853,
      "loc": {
        "start": {
          "line": 23,
          "column": 21
        },
        "end": {
          "line": 23,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 854,
      "end": 855,
      "loc": {
        "start": {
          "line": 23,
          "column": 23
        },
        "end": {
          "line": 23,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 856,
      "end": 859,
      "loc": {
        "start": {
          "line": 23,
          "column": 25
        },
        "end": {
          "line": 23,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "promises",
      "start": 859,
      "end": 867,
      "loc": {
        "start": {
          "line": 23,
          "column": 28
        },
        "end": {
          "line": 23,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 867,
      "end": 868,
      "loc": {
        "start": {
          "line": 23,
          "column": 36
        },
        "end": {
          "line": 23,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "...",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 869,
      "end": 872,
      "loc": {
        "start": {
          "line": 23,
          "column": 38
        },
        "end": {
          "line": 23,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "results",
      "start": 872,
      "end": 879,
      "loc": {
        "start": {
          "line": 23,
          "column": 41
        },
        "end": {
          "line": 23,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 880,
      "end": 881,
      "loc": {
        "start": {
          "line": 23,
          "column": 49
        },
        "end": {
          "line": 23,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 881,
      "end": 882,
      "loc": {
        "start": {
          "line": 23,
          "column": 50
        },
        "end": {
          "line": 23,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 891,
      "end": 892,
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 897,
      "end": 898,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 903,
      "end": 909,
      "loc": {
        "start": {
          "line": 26,
          "column": 4
        },
        "end": {
          "line": 26,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Promise",
      "start": 910,
      "end": 917,
      "loc": {
        "start": {
          "line": 26,
          "column": 11
        },
        "end": {
          "line": 26,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 917,
      "end": 918,
      "loc": {
        "start": {
          "line": 26,
          "column": 18
        },
        "end": {
          "line": 26,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "all",
      "start": 918,
      "end": 921,
      "loc": {
        "start": {
          "line": 26,
          "column": 19
        },
        "end": {
          "line": 26,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 921,
      "end": 922,
      "loc": {
        "start": {
          "line": 26,
          "column": 22
        },
        "end": {
          "line": 26,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "promises",
      "start": 922,
      "end": 930,
      "loc": {
        "start": {
          "line": 26,
          "column": 23
        },
        "end": {
          "line": 26,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 930,
      "end": 931,
      "loc": {
        "start": {
          "line": 26,
          "column": 31
        },
        "end": {
          "line": 26,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 931,
      "end": 932,
      "loc": {
        "start": {
          "line": 26,
          "column": 32
        },
        "end": {
          "line": 26,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 933,
      "end": 934,
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " State observe with pre-select and user-select",
      "start": 936,
      "end": 984,
      "loc": {
        "start": {
          "line": 29,
          "column": 0
        },
        "end": {
          "line": 29,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 985,
      "end": 991,
      "loc": {
        "start": {
          "line": 30,
          "column": 0
        },
        "end": {
          "line": 30,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 992,
      "end": 997,
      "loc": {
        "start": {
          "line": 30,
          "column": 7
        },
        "end": {
          "line": 30,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "createObserver",
      "start": 998,
      "end": 1012,
      "loc": {
        "start": {
          "line": 30,
          "column": 13
        },
        "end": {
          "line": 30,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1013,
      "end": 1014,
      "loc": {
        "start": {
          "line": 30,
          "column": 28
        },
        "end": {
          "line": 30,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1015,
      "end": 1016,
      "loc": {
        "start": {
          "line": 30,
          "column": 30
        },
        "end": {
          "line": 30,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 1016,
      "end": 1021,
      "loc": {
        "start": {
          "line": 30,
          "column": 31
        },
        "end": {
          "line": 30,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1021,
      "end": 1022,
      "loc": {
        "start": {
          "line": 30,
          "column": 36
        },
        "end": {
          "line": 30,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 1023,
      "end": 1032,
      "loc": {
        "start": {
          "line": 30,
          "column": 38
        },
        "end": {
          "line": 30,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1033,
      "end": 1034,
      "loc": {
        "start": {
          "line": 30,
          "column": 48
        },
        "end": {
          "line": 30,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 1035,
      "end": 1040,
      "loc": {
        "start": {
          "line": 30,
          "column": 50
        },
        "end": {
          "line": 30,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1040,
      "end": 1041,
      "loc": {
        "start": {
          "line": 30,
          "column": 55
        },
        "end": {
          "line": 30,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getState",
      "start": 1041,
      "end": 1049,
      "loc": {
        "start": {
          "line": 30,
          "column": 56
        },
        "end": {
          "line": 30,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1049,
      "end": 1050,
      "loc": {
        "start": {
          "line": 30,
          "column": 64
        },
        "end": {
          "line": 30,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1051,
      "end": 1053,
      "loc": {
        "start": {
          "line": 30,
          "column": 66
        },
        "end": {
          "line": 30,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1054,
      "end": 1055,
      "loc": {
        "start": {
          "line": 30,
          "column": 69
        },
        "end": {
          "line": 30,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1060,
      "end": 1061,
      "loc": {
        "start": {
          "line": 31,
          "column": 4
        },
        "end": {
          "line": 31,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelect",
      "start": 1061,
      "end": 1071,
      "loc": {
        "start": {
          "line": 31,
          "column": 5
        },
        "end": {
          "line": 31,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1071,
      "end": 1072,
      "loc": {
        "start": {
          "line": 31,
          "column": 15
        },
        "end": {
          "line": 31,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onChange",
      "start": 1073,
      "end": 1081,
      "loc": {
        "start": {
          "line": 31,
          "column": 17
        },
        "end": {
          "line": 31,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1081,
      "end": 1082,
      "loc": {
        "start": {
          "line": 31,
          "column": 25
        },
        "end": {
          "line": 31,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onUnsubscribe",
      "start": 1083,
      "end": 1096,
      "loc": {
        "start": {
          "line": 31,
          "column": 27
        },
        "end": {
          "line": 31,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1096,
      "end": 1097,
      "loc": {
        "start": {
          "line": 31,
          "column": 40
        },
        "end": {
          "line": 31,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnStart",
      "start": 1098,
      "end": 1109,
      "loc": {
        "start": {
          "line": 31,
          "column": 42
        },
        "end": {
          "line": 31,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1110,
      "end": 1111,
      "loc": {
        "start": {
          "line": 31,
          "column": 54
        },
        "end": {
          "line": 31,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 1112,
      "end": 1117,
      "loc": {
        "start": {
          "line": 31,
          "column": 56
        },
        "end": {
          "line": 31,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1117,
      "end": 1118,
      "loc": {
        "start": {
          "line": 31,
          "column": 61
        },
        "end": {
          "line": 31,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1119,
      "end": 1121,
      "loc": {
        "start": {
          "line": 31,
          "column": 63
        },
        "end": {
          "line": 31,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1122,
      "end": 1123,
      "loc": {
        "start": {
          "line": 31,
          "column": 66
        },
        "end": {
          "line": 31,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1132,
      "end": 1135,
      "loc": {
        "start": {
          "line": 32,
          "column": 8
        },
        "end": {
          "line": 32,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 1136,
      "end": 1147,
      "loc": {
        "start": {
          "line": 32,
          "column": 12
        },
        "end": {
          "line": 32,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1147,
      "end": 1148,
      "loc": {
        "start": {
          "line": 32,
          "column": 23
        },
        "end": {
          "line": 32,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 1149,
      "end": 1161,
      "loc": {
        "start": {
          "line": 32,
          "column": 25
        },
        "end": {
          "line": 32,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1162,
      "end": 1163,
      "loc": {
        "start": {
          "line": 32,
          "column": 38
        },
        "end": {
          "line": 32,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 1164,
      "end": 1169,
      "loc": {
        "start": {
          "line": 32,
          "column": 40
        },
        "end": {
          "line": 32,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1169,
      "end": 1170,
      "loc": {
        "start": {
          "line": 32,
          "column": 45
        },
        "end": {
          "line": 32,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1179,
      "end": 1182,
      "loc": {
        "start": {
          "line": 33,
          "column": 8
        },
        "end": {
          "line": 33,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1183,
      "end": 1192,
      "loc": {
        "start": {
          "line": 33,
          "column": 12
        },
        "end": {
          "line": 33,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1193,
      "end": 1194,
      "loc": {
        "start": {
          "line": 33,
          "column": 22
        },
        "end": {
          "line": 33,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 1195,
      "end": 1204,
      "loc": {
        "start": {
          "line": 33,
          "column": 24
        },
        "end": {
          "line": 33,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1204,
      "end": 1205,
      "loc": {
        "start": {
          "line": 33,
          "column": 33
        },
        "end": {
          "line": 33,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1205,
      "end": 1206,
      "loc": {
        "start": {
          "line": 33,
          "column": 34
        },
        "end": {
          "line": 33,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1206,
      "end": 1207,
      "loc": {
        "start": {
          "line": 33,
          "column": 35
        },
        "end": {
          "line": 33,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1216,
      "end": 1218,
      "loc": {
        "start": {
          "line": 34,
          "column": 8
        },
        "end": {
          "line": 34,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1219,
      "end": 1220,
      "loc": {
        "start": {
          "line": 34,
          "column": 11
        },
        "end": {
          "line": 34,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1220,
      "end": 1229,
      "loc": {
        "start": {
          "line": 34,
          "column": 12
        },
        "end": {
          "line": 34,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1229,
      "end": 1230,
      "loc": {
        "start": {
          "line": 34,
          "column": 21
        },
        "end": {
          "line": 34,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1231,
      "end": 1232,
      "loc": {
        "start": {
          "line": 34,
          "column": 23
        },
        "end": {
          "line": 34,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1245,
      "end": 1248,
      "loc": {
        "start": {
          "line": 35,
          "column": 12
        },
        "end": {
          "line": 35,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 1249,
      "end": 1261,
      "loc": {
        "start": {
          "line": 35,
          "column": 16
        },
        "end": {
          "line": 35,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1262,
      "end": 1263,
      "loc": {
        "start": {
          "line": 35,
          "column": 29
        },
        "end": {
          "line": 35,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelect",
      "start": 1264,
      "end": 1274,
      "loc": {
        "start": {
          "line": 35,
          "column": 31
        },
        "end": {
          "line": 35,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1274,
      "end": 1275,
      "loc": {
        "start": {
          "line": 35,
          "column": 41
        },
        "end": {
          "line": 35,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1275,
      "end": 1284,
      "loc": {
        "start": {
          "line": 35,
          "column": 42
        },
        "end": {
          "line": 35,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1284,
      "end": 1285,
      "loc": {
        "start": {
          "line": 35,
          "column": 51
        },
        "end": {
          "line": 35,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1285,
      "end": 1286,
      "loc": {
        "start": {
          "line": 35,
          "column": 52
        },
        "end": {
          "line": 35,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1299,
      "end": 1304,
      "loc": {
        "start": {
          "line": 36,
          "column": 12
        },
        "end": {
          "line": 36,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "finish",
      "start": 1305,
      "end": 1311,
      "loc": {
        "start": {
          "line": 36,
          "column": 18
        },
        "end": {
          "line": 36,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1312,
      "end": 1313,
      "loc": {
        "start": {
          "line": 36,
          "column": 25
        },
        "end": {
          "line": 36,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1314,
      "end": 1315,
      "loc": {
        "start": {
          "line": 36,
          "column": 27
        },
        "end": {
          "line": 36,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1315,
      "end": 1316,
      "loc": {
        "start": {
          "line": 36,
          "column": 28
        },
        "end": {
          "line": 36,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1317,
      "end": 1319,
      "loc": {
        "start": {
          "line": 36,
          "column": 30
        },
        "end": {
          "line": 36,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1320,
      "end": 1321,
      "loc": {
        "start": {
          "line": 36,
          "column": 33
        },
        "end": {
          "line": 36,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1338,
      "end": 1340,
      "loc": {
        "start": {
          "line": 37,
          "column": 16
        },
        "end": {
          "line": 37,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1341,
      "end": 1342,
      "loc": {
        "start": {
          "line": 37,
          "column": 19
        },
        "end": {
          "line": 37,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 1342,
      "end": 1354,
      "loc": {
        "start": {
          "line": 37,
          "column": 20
        },
        "end": {
          "line": 37,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1354,
      "end": 1355,
      "loc": {
        "start": {
          "line": 37,
          "column": 32
        },
        "end": {
          "line": 37,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1376,
      "end": 1382,
      "loc": {
        "start": {
          "line": 38,
          "column": 20
        },
        "end": {
          "line": 38,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1382,
      "end": 1383,
      "loc": {
        "start": {
          "line": 38,
          "column": 26
        },
        "end": {
          "line": 38,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 1400,
      "end": 1412,
      "loc": {
        "start": {
          "line": 39,
          "column": 16
        },
        "end": {
          "line": 39,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1413,
      "end": 1414,
      "loc": {
        "start": {
          "line": 39,
          "column": 29
        },
        "end": {
          "line": 39,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "true",
        "keyword": "true",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "true",
      "start": 1415,
      "end": 1419,
      "loc": {
        "start": {
          "line": 39,
          "column": 31
        },
        "end": {
          "line": 39,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1419,
      "end": 1420,
      "loc": {
        "start": {
          "line": 39,
          "column": 35
        },
        "end": {
          "line": 39,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 1437,
      "end": 1448,
      "loc": {
        "start": {
          "line": 40,
          "column": 16
        },
        "end": {
          "line": 40,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 1449,
      "end": 1451,
      "loc": {
        "start": {
          "line": 40,
          "column": 28
        },
        "end": {
          "line": 40,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 1452,
      "end": 1463,
      "loc": {
        "start": {
          "line": 40,
          "column": 31
        },
        "end": {
          "line": 40,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1463,
      "end": 1464,
      "loc": {
        "start": {
          "line": 40,
          "column": 42
        },
        "end": {
          "line": 40,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1464,
      "end": 1465,
      "loc": {
        "start": {
          "line": 40,
          "column": 43
        },
        "end": {
          "line": 40,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1465,
      "end": 1466,
      "loc": {
        "start": {
          "line": 40,
          "column": 44
        },
        "end": {
          "line": 40,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onUnsubscribe",
      "start": 1483,
      "end": 1496,
      "loc": {
        "start": {
          "line": 41,
          "column": 16
        },
        "end": {
          "line": 41,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 1497,
      "end": 1499,
      "loc": {
        "start": {
          "line": 41,
          "column": 30
        },
        "end": {
          "line": 41,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onUnsubscribe",
      "start": 1500,
      "end": 1513,
      "loc": {
        "start": {
          "line": 41,
          "column": 33
        },
        "end": {
          "line": 41,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1513,
      "end": 1514,
      "loc": {
        "start": {
          "line": 41,
          "column": 46
        },
        "end": {
          "line": 41,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1514,
      "end": 1515,
      "loc": {
        "start": {
          "line": 41,
          "column": 47
        },
        "end": {
          "line": 41,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1515,
      "end": 1516,
      "loc": {
        "start": {
          "line": 41,
          "column": 48
        },
        "end": {
          "line": 41,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1529,
      "end": 1530,
      "loc": {
        "start": {
          "line": 42,
          "column": 12
        },
        "end": {
          "line": 42,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1543,
      "end": 1548,
      "loc": {
        "start": {
          "line": 43,
          "column": 12
        },
        "end": {
          "line": 43,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handleChange",
      "start": 1549,
      "end": 1561,
      "loc": {
        "start": {
          "line": 43,
          "column": 18
        },
        "end": {
          "line": 43,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1562,
      "end": 1563,
      "loc": {
        "start": {
          "line": 43,
          "column": 31
        },
        "end": {
          "line": 43,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1564,
      "end": 1565,
      "loc": {
        "start": {
          "line": 43,
          "column": 33
        },
        "end": {
          "line": 43,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1565,
      "end": 1566,
      "loc": {
        "start": {
          "line": 43,
          "column": 34
        },
        "end": {
          "line": 43,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1567,
      "end": 1569,
      "loc": {
        "start": {
          "line": 43,
          "column": 36
        },
        "end": {
          "line": 43,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1570,
      "end": 1571,
      "loc": {
        "start": {
          "line": 43,
          "column": 39
        },
        "end": {
          "line": 43,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1588,
      "end": 1591,
      "loc": {
        "start": {
          "line": 44,
          "column": 16
        },
        "end": {
          "line": 44,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1592,
      "end": 1601,
      "loc": {
        "start": {
          "line": 44,
          "column": 20
        },
        "end": {
          "line": 44,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1602,
      "end": 1603,
      "loc": {
        "start": {
          "line": 44,
          "column": 30
        },
        "end": {
          "line": 44,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 1604,
      "end": 1613,
      "loc": {
        "start": {
          "line": 44,
          "column": 32
        },
        "end": {
          "line": 44,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1613,
      "end": 1614,
      "loc": {
        "start": {
          "line": 44,
          "column": 41
        },
        "end": {
          "line": 44,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1614,
      "end": 1615,
      "loc": {
        "start": {
          "line": 44,
          "column": 42
        },
        "end": {
          "line": 44,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1615,
      "end": 1616,
      "loc": {
        "start": {
          "line": 44,
          "column": 43
        },
        "end": {
          "line": 44,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1633,
      "end": 1635,
      "loc": {
        "start": {
          "line": 45,
          "column": 16
        },
        "end": {
          "line": 45,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1636,
      "end": 1637,
      "loc": {
        "start": {
          "line": 45,
          "column": 19
        },
        "end": {
          "line": 45,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1637,
      "end": 1646,
      "loc": {
        "start": {
          "line": 45,
          "column": 20
        },
        "end": {
          "line": 45,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1646,
      "end": 1647,
      "loc": {
        "start": {
          "line": 45,
          "column": 29
        },
        "end": {
          "line": 45,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1648,
      "end": 1649,
      "loc": {
        "start": {
          "line": 45,
          "column": 31
        },
        "end": {
          "line": 45,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1670,
      "end": 1673,
      "loc": {
        "start": {
          "line": 46,
          "column": 20
        },
        "end": {
          "line": 46,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 1674,
      "end": 1683,
      "loc": {
        "start": {
          "line": 46,
          "column": 24
        },
        "end": {
          "line": 46,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1684,
      "end": 1685,
      "loc": {
        "start": {
          "line": 46,
          "column": 34
        },
        "end": {
          "line": 46,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelect",
      "start": 1686,
      "end": 1696,
      "loc": {
        "start": {
          "line": 46,
          "column": 36
        },
        "end": {
          "line": 46,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1696,
      "end": 1697,
      "loc": {
        "start": {
          "line": 46,
          "column": 46
        },
        "end": {
          "line": 46,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preselect",
      "start": 1697,
      "end": 1706,
      "loc": {
        "start": {
          "line": 46,
          "column": 47
        },
        "end": {
          "line": 46,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1706,
      "end": 1707,
      "loc": {
        "start": {
          "line": 46,
          "column": 56
        },
        "end": {
          "line": 46,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1707,
      "end": 1708,
      "loc": {
        "start": {
          "line": 46,
          "column": 57
        },
        "end": {
          "line": 46,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1729,
      "end": 1731,
      "loc": {
        "start": {
          "line": 47,
          "column": 20
        },
        "end": {
          "line": 47,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1732,
      "end": 1733,
      "loc": {
        "start": {
          "line": 47,
          "column": 23
        },
        "end": {
          "line": 47,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 1733,
      "end": 1742,
      "loc": {
        "start": {
          "line": 47,
          "column": 24
        },
        "end": {
          "line": 47,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 1743,
      "end": 1746,
      "loc": {
        "start": {
          "line": 47,
          "column": 34
        },
        "end": {
          "line": 47,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 1747,
      "end": 1759,
      "loc": {
        "start": {
          "line": 47,
          "column": 38
        },
        "end": {
          "line": 47,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1759,
      "end": 1760,
      "loc": {
        "start": {
          "line": 47,
          "column": 50
        },
        "end": {
          "line": 47,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1761,
      "end": 1762,
      "loc": {
        "start": {
          "line": 47,
          "column": 52
        },
        "end": {
          "line": 47,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1787,
      "end": 1790,
      "loc": {
        "start": {
          "line": 48,
          "column": 24
        },
        "end": {
          "line": 48,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "previousState",
      "start": 1791,
      "end": 1804,
      "loc": {
        "start": {
          "line": 48,
          "column": 28
        },
        "end": {
          "line": 48,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1805,
      "end": 1806,
      "loc": {
        "start": {
          "line": 48,
          "column": 42
        },
        "end": {
          "line": 48,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 1807,
      "end": 1819,
      "loc": {
        "start": {
          "line": 48,
          "column": 44
        },
        "end": {
          "line": 48,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1819,
      "end": 1820,
      "loc": {
        "start": {
          "line": 48,
          "column": 56
        },
        "end": {
          "line": 48,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 1845,
      "end": 1857,
      "loc": {
        "start": {
          "line": 49,
          "column": 24
        },
        "end": {
          "line": 49,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1858,
      "end": 1859,
      "loc": {
        "start": {
          "line": 49,
          "column": 37
        },
        "end": {
          "line": 49,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 1860,
      "end": 1869,
      "loc": {
        "start": {
          "line": 49,
          "column": 39
        },
        "end": {
          "line": 49,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1869,
      "end": 1870,
      "loc": {
        "start": {
          "line": 49,
          "column": 48
        },
        "end": {
          "line": 49,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onChange",
      "start": 1895,
      "end": 1903,
      "loc": {
        "start": {
          "line": 50,
          "column": 24
        },
        "end": {
          "line": 50,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1903,
      "end": 1904,
      "loc": {
        "start": {
          "line": 50,
          "column": 32
        },
        "end": {
          "line": 50,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 1904,
      "end": 1913,
      "loc": {
        "start": {
          "line": 50,
          "column": 33
        },
        "end": {
          "line": 50,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1913,
      "end": 1914,
      "loc": {
        "start": {
          "line": 50,
          "column": 42
        },
        "end": {
          "line": 50,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "previousState",
      "start": 1915,
      "end": 1928,
      "loc": {
        "start": {
          "line": 50,
          "column": 44
        },
        "end": {
          "line": 50,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1928,
      "end": 1929,
      "loc": {
        "start": {
          "line": 50,
          "column": 57
        },
        "end": {
          "line": 50,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1929,
      "end": 1930,
      "loc": {
        "start": {
          "line": 50,
          "column": 58
        },
        "end": {
          "line": 50,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1951,
      "end": 1952,
      "loc": {
        "start": {
          "line": 51,
          "column": 20
        },
        "end": {
          "line": 51,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1969,
      "end": 1970,
      "loc": {
        "start": {
          "line": 52,
          "column": 16
        },
        "end": {
          "line": 52,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1971,
      "end": 1975,
      "loc": {
        "start": {
          "line": 52,
          "column": 18
        },
        "end": {
          "line": 52,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1976,
      "end": 1977,
      "loc": {
        "start": {
          "line": 52,
          "column": 23
        },
        "end": {
          "line": 52,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "finish",
      "start": 1998,
      "end": 2004,
      "loc": {
        "start": {
          "line": 53,
          "column": 20
        },
        "end": {
          "line": 53,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2004,
      "end": 2005,
      "loc": {
        "start": {
          "line": 53,
          "column": 26
        },
        "end": {
          "line": 53,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2005,
      "end": 2006,
      "loc": {
        "start": {
          "line": 53,
          "column": 27
        },
        "end": {
          "line": 53,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2006,
      "end": 2007,
      "loc": {
        "start": {
          "line": 53,
          "column": 28
        },
        "end": {
          "line": 53,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2024,
      "end": 2025,
      "loc": {
        "start": {
          "line": 54,
          "column": 16
        },
        "end": {
          "line": 54,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2038,
      "end": 2039,
      "loc": {
        "start": {
          "line": 55,
          "column": 12
        },
        "end": {
          "line": 55,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 2052,
      "end": 2063,
      "loc": {
        "start": {
          "line": 56,
          "column": 12
        },
        "end": {
          "line": 56,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2064,
      "end": 2065,
      "loc": {
        "start": {
          "line": 56,
          "column": 24
        },
        "end": {
          "line": 56,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 2066,
      "end": 2071,
      "loc": {
        "start": {
          "line": 56,
          "column": 26
        },
        "end": {
          "line": 56,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2071,
      "end": 2072,
      "loc": {
        "start": {
          "line": 56,
          "column": 31
        },
        "end": {
          "line": 56,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "subscribe",
      "start": 2072,
      "end": 2081,
      "loc": {
        "start": {
          "line": 56,
          "column": 32
        },
        "end": {
          "line": 56,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2081,
      "end": 2082,
      "loc": {
        "start": {
          "line": 56,
          "column": 41
        },
        "end": {
          "line": 56,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handleChange",
      "start": 2082,
      "end": 2094,
      "loc": {
        "start": {
          "line": 56,
          "column": 42
        },
        "end": {
          "line": 56,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2094,
      "end": 2095,
      "loc": {
        "start": {
          "line": 56,
          "column": 54
        },
        "end": {
          "line": 56,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2095,
      "end": 2096,
      "loc": {
        "start": {
          "line": 56,
          "column": 55
        },
        "end": {
          "line": 56,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnStart",
      "start": 2109,
      "end": 2120,
      "loc": {
        "start": {
          "line": 57,
          "column": 12
        },
        "end": {
          "line": 57,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2121,
      "end": 2123,
      "loc": {
        "start": {
          "line": 57,
          "column": 24
        },
        "end": {
          "line": 57,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onChange",
      "start": 2124,
      "end": 2132,
      "loc": {
        "start": {
          "line": 57,
          "column": 27
        },
        "end": {
          "line": 57,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2132,
      "end": 2133,
      "loc": {
        "start": {
          "line": 57,
          "column": 35
        },
        "end": {
          "line": 57,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 2133,
      "end": 2145,
      "loc": {
        "start": {
          "line": 57,
          "column": 36
        },
        "end": {
          "line": 57,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2145,
      "end": 2146,
      "loc": {
        "start": {
          "line": 57,
          "column": 48
        },
        "end": {
          "line": 57,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 2147,
      "end": 2156,
      "loc": {
        "start": {
          "line": 57,
          "column": 50
        },
        "end": {
          "line": 57,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2156,
      "end": 2157,
      "loc": {
        "start": {
          "line": 57,
          "column": 59
        },
        "end": {
          "line": 57,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2157,
      "end": 2158,
      "loc": {
        "start": {
          "line": 57,
          "column": 60
        },
        "end": {
          "line": 57,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2171,
      "end": 2177,
      "loc": {
        "start": {
          "line": 58,
          "column": 12
        },
        "end": {
          "line": 58,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "finish",
      "start": 2178,
      "end": 2184,
      "loc": {
        "start": {
          "line": 58,
          "column": 19
        },
        "end": {
          "line": 58,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2184,
      "end": 2185,
      "loc": {
        "start": {
          "line": 58,
          "column": 25
        },
        "end": {
          "line": 58,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2194,
      "end": 2195,
      "loc": {
        "start": {
          "line": 59,
          "column": 8
        },
        "end": {
          "line": 59,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2200,
      "end": 2201,
      "loc": {
        "start": {
          "line": 60,
          "column": 4
        },
        "end": {
          "line": 60,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2202,
      "end": 2203,
      "loc": {
        "start": {
          "line": 61,
          "column": 0
        },
        "end": {
          "line": 61,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " State observe deeply with pre-select and user-select",
      "start": 2205,
      "end": 2260,
      "loc": {
        "start": {
          "line": 63,
          "column": 0
        },
        "end": {
          "line": 63,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 2261,
      "end": 2267,
      "loc": {
        "start": {
          "line": 64,
          "column": 0
        },
        "end": {
          "line": 64,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 2268,
      "end": 2273,
      "loc": {
        "start": {
          "line": 64,
          "column": 7
        },
        "end": {
          "line": 64,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "createObserverDeep",
      "start": 2274,
      "end": 2292,
      "loc": {
        "start": {
          "line": 64,
          "column": 13
        },
        "end": {
          "line": 64,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2293,
      "end": 2294,
      "loc": {
        "start": {
          "line": 64,
          "column": 32
        },
        "end": {
          "line": 64,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2295,
      "end": 2296,
      "loc": {
        "start": {
          "line": 64,
          "column": 34
        },
        "end": {
          "line": 64,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 2296,
      "end": 2301,
      "loc": {
        "start": {
          "line": 64,
          "column": 35
        },
        "end": {
          "line": 64,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2301,
      "end": 2302,
      "loc": {
        "start": {
          "line": 64,
          "column": 40
        },
        "end": {
          "line": 64,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 2303,
      "end": 2312,
      "loc": {
        "start": {
          "line": 64,
          "column": 42
        },
        "end": {
          "line": 64,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2313,
      "end": 2314,
      "loc": {
        "start": {
          "line": 64,
          "column": 52
        },
        "end": {
          "line": 64,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 2315,
      "end": 2320,
      "loc": {
        "start": {
          "line": 64,
          "column": 54
        },
        "end": {
          "line": 64,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2320,
      "end": 2321,
      "loc": {
        "start": {
          "line": 64,
          "column": 59
        },
        "end": {
          "line": 64,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getState",
      "start": 2321,
      "end": 2329,
      "loc": {
        "start": {
          "line": 64,
          "column": 60
        },
        "end": {
          "line": 64,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2329,
      "end": 2330,
      "loc": {
        "start": {
          "line": 64,
          "column": 68
        },
        "end": {
          "line": 64,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2331,
      "end": 2333,
      "loc": {
        "start": {
          "line": 64,
          "column": 70
        },
        "end": {
          "line": 64,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2334,
      "end": 2335,
      "loc": {
        "start": {
          "line": 64,
          "column": 73
        },
        "end": {
          "line": 64,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelectId",
      "start": 2335,
      "end": 2347,
      "loc": {
        "start": {
          "line": 64,
          "column": 74
        },
        "end": {
          "line": 64,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2347,
      "end": 2348,
      "loc": {
        "start": {
          "line": 64,
          "column": 86
        },
        "end": {
          "line": 64,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onChange",
      "start": 2349,
      "end": 2357,
      "loc": {
        "start": {
          "line": 64,
          "column": 88
        },
        "end": {
          "line": 64,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2357,
      "end": 2358,
      "loc": {
        "start": {
          "line": 64,
          "column": 96
        },
        "end": {
          "line": 64,
          "column": 97
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnStart",
      "start": 2359,
      "end": 2370,
      "loc": {
        "start": {
          "line": 64,
          "column": 98
        },
        "end": {
          "line": 64,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2371,
      "end": 2372,
      "loc": {
        "start": {
          "line": 64,
          "column": 110
        },
        "end": {
          "line": 64,
          "column": 111
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 2373,
      "end": 2378,
      "loc": {
        "start": {
          "line": 64,
          "column": 112
        },
        "end": {
          "line": 64,
          "column": 117
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2378,
      "end": 2379,
      "loc": {
        "start": {
          "line": 64,
          "column": 117
        },
        "end": {
          "line": 64,
          "column": 118
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnUnsubscribe",
      "start": 2380,
      "end": 2397,
      "loc": {
        "start": {
          "line": 64,
          "column": 119
        },
        "end": {
          "line": 64,
          "column": 136
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2398,
      "end": 2399,
      "loc": {
        "start": {
          "line": 64,
          "column": 137
        },
        "end": {
          "line": 64,
          "column": 138
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 2400,
      "end": 2405,
      "loc": {
        "start": {
          "line": 64,
          "column": 139
        },
        "end": {
          "line": 64,
          "column": 144
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2405,
      "end": 2406,
      "loc": {
        "start": {
          "line": 64,
          "column": 144
        },
        "end": {
          "line": 64,
          "column": 145
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2407,
      "end": 2409,
      "loc": {
        "start": {
          "line": 64,
          "column": 146
        },
        "end": {
          "line": 64,
          "column": 148
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2410,
      "end": 2411,
      "loc": {
        "start": {
          "line": 64,
          "column": 149
        },
        "end": {
          "line": 64,
          "column": 150
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2416,
      "end": 2419,
      "loc": {
        "start": {
          "line": 65,
          "column": 4
        },
        "end": {
          "line": 65,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 2420,
      "end": 2429,
      "loc": {
        "start": {
          "line": 65,
          "column": 8
        },
        "end": {
          "line": 65,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2430,
      "end": 2431,
      "loc": {
        "start": {
          "line": 65,
          "column": 18
        },
        "end": {
          "line": 65,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 2432,
      "end": 2441,
      "loc": {
        "start": {
          "line": 65,
          "column": 20
        },
        "end": {
          "line": 65,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2441,
      "end": 2442,
      "loc": {
        "start": {
          "line": 65,
          "column": 29
        },
        "end": {
          "line": 65,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2442,
      "end": 2443,
      "loc": {
        "start": {
          "line": 65,
          "column": 30
        },
        "end": {
          "line": 65,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2443,
      "end": 2444,
      "loc": {
        "start": {
          "line": 65,
          "column": 31
        },
        "end": {
          "line": 65,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 2445,
      "end": 2457,
      "loc": {
        "start": {
          "line": 65,
          "column": 33
        },
        "end": {
          "line": 65,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2458,
      "end": 2459,
      "loc": {
        "start": {
          "line": 65,
          "column": 46
        },
        "end": {
          "line": 65,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 2460,
      "end": 2469,
      "loc": {
        "start": {
          "line": 65,
          "column": 48
        },
        "end": {
          "line": 65,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2469,
      "end": 2470,
      "loc": {
        "start": {
          "line": 65,
          "column": 57
        },
        "end": {
          "line": 65,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 2471,
      "end": 2483,
      "loc": {
        "start": {
          "line": 65,
          "column": 59
        },
        "end": {
          "line": 65,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2484,
      "end": 2485,
      "loc": {
        "start": {
          "line": 65,
          "column": 72
        },
        "end": {
          "line": 65,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 2486,
      "end": 2491,
      "loc": {
        "start": {
          "line": 65,
          "column": 74
        },
        "end": {
          "line": 65,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2491,
      "end": 2492,
      "loc": {
        "start": {
          "line": 65,
          "column": 79
        },
        "end": {
          "line": 65,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 2497,
      "end": 2505,
      "loc": {
        "start": {
          "line": 66,
          "column": 4
        },
        "end": {
          "line": 66,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "collectMembers",
      "start": 2506,
      "end": 2520,
      "loc": {
        "start": {
          "line": 66,
          "column": 13
        },
        "end": {
          "line": 66,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2520,
      "end": 2521,
      "loc": {
        "start": {
          "line": 66,
          "column": 27
        },
        "end": {
          "line": 66,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2521,
      "end": 2527,
      "loc": {
        "start": {
          "line": 66,
          "column": 28
        },
        "end": {
          "line": 66,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2527,
      "end": 2528,
      "loc": {
        "start": {
          "line": 66,
          "column": 34
        },
        "end": {
          "line": 66,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idSet",
      "start": 2529,
      "end": 2534,
      "loc": {
        "start": {
          "line": 66,
          "column": 36
        },
        "end": {
          "line": 66,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2534,
      "end": 2535,
      "loc": {
        "start": {
          "line": 66,
          "column": 41
        },
        "end": {
          "line": 66,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2536,
      "end": 2537,
      "loc": {
        "start": {
          "line": 66,
          "column": 43
        },
        "end": {
          "line": 66,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2546,
      "end": 2548,
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2549,
      "end": 2550,
      "loc": {
        "start": {
          "line": 67,
          "column": 11
        },
        "end": {
          "line": 67,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2550,
      "end": 2556,
      "loc": {
        "start": {
          "line": 67,
          "column": 12
        },
        "end": {
          "line": 67,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2556,
      "end": 2557,
      "loc": {
        "start": {
          "line": 67,
          "column": 18
        },
        "end": {
          "line": 67,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2557,
      "end": 2561,
      "loc": {
        "start": {
          "line": 67,
          "column": 19
        },
        "end": {
          "line": 67,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2562,
      "end": 2565,
      "loc": {
        "start": {
          "line": 67,
          "column": 24
        },
        "end": {
          "line": 67,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "id",
      "start": 2566,
      "end": 2570,
      "loc": {
        "start": {
          "line": 67,
          "column": 28
        },
        "end": {
          "line": 67,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2571,
      "end": 2573,
      "loc": {
        "start": {
          "line": 67,
          "column": 33
        },
        "end": {
          "line": 67,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2574,
      "end": 2580,
      "loc": {
        "start": {
          "line": 67,
          "column": 36
        },
        "end": {
          "line": 67,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2580,
      "end": 2581,
      "loc": {
        "start": {
          "line": 67,
          "column": 42
        },
        "end": {
          "line": 67,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 2581,
      "end": 2586,
      "loc": {
        "start": {
          "line": 67,
          "column": 43
        },
        "end": {
          "line": 67,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2587,
      "end": 2590,
      "loc": {
        "start": {
          "line": 67,
          "column": 49
        },
        "end": {
          "line": 67,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 2591,
      "end": 2592,
      "loc": {
        "start": {
          "line": 67,
          "column": 53
        },
        "end": {
          "line": 67,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2592,
      "end": 2593,
      "loc": {
        "start": {
          "line": 67,
          "column": 54
        },
        "end": {
          "line": 67,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idSet",
      "start": 2606,
      "end": 2611,
      "loc": {
        "start": {
          "line": 68,
          "column": 12
        },
        "end": {
          "line": 68,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2611,
      "end": 2612,
      "loc": {
        "start": {
          "line": 68,
          "column": 17
        },
        "end": {
          "line": 68,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 2612,
      "end": 2615,
      "loc": {
        "start": {
          "line": 68,
          "column": 18
        },
        "end": {
          "line": 68,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2615,
      "end": 2616,
      "loc": {
        "start": {
          "line": 68,
          "column": 21
        },
        "end": {
          "line": 68,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2616,
      "end": 2622,
      "loc": {
        "start": {
          "line": 68,
          "column": 22
        },
        "end": {
          "line": 68,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2622,
      "end": 2623,
      "loc": {
        "start": {
          "line": 68,
          "column": 28
        },
        "end": {
          "line": 68,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 2623,
      "end": 2628,
      "loc": {
        "start": {
          "line": 68,
          "column": 29
        },
        "end": {
          "line": 68,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2628,
      "end": 2629,
      "loc": {
        "start": {
          "line": 68,
          "column": 34
        },
        "end": {
          "line": 68,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2629,
      "end": 2630,
      "loc": {
        "start": {
          "line": 68,
          "column": 35
        },
        "end": {
          "line": 68,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 2639,
      "end": 2643,
      "loc": {
        "start": {
          "line": 69,
          "column": 8
        },
        "end": {
          "line": 69,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2644,
      "end": 2646,
      "loc": {
        "start": {
          "line": 69,
          "column": 13
        },
        "end": {
          "line": 69,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2647,
      "end": 2648,
      "loc": {
        "start": {
          "line": 69,
          "column": 16
        },
        "end": {
          "line": 69,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2648,
      "end": 2654,
      "loc": {
        "start": {
          "line": 69,
          "column": 17
        },
        "end": {
          "line": 69,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2654,
      "end": 2655,
      "loc": {
        "start": {
          "line": 69,
          "column": 23
        },
        "end": {
          "line": 69,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2655,
      "end": 2659,
      "loc": {
        "start": {
          "line": 69,
          "column": 24
        },
        "end": {
          "line": 69,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2660,
      "end": 2663,
      "loc": {
        "start": {
          "line": 69,
          "column": 29
        },
        "end": {
          "line": 69,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "array",
      "start": 2664,
      "end": 2671,
      "loc": {
        "start": {
          "line": 69,
          "column": 33
        },
        "end": {
          "line": 69,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2671,
      "end": 2672,
      "loc": {
        "start": {
          "line": 69,
          "column": 40
        },
        "end": {
          "line": 69,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 2685,
      "end": 2688,
      "loc": {
        "start": {
          "line": 70,
          "column": 12
        },
        "end": {
          "line": 70,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2689,
      "end": 2690,
      "loc": {
        "start": {
          "line": 70,
          "column": 16
        },
        "end": {
          "line": 70,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2690,
      "end": 2693,
      "loc": {
        "start": {
          "line": 70,
          "column": 17
        },
        "end": {
          "line": 70,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "subMember",
      "start": 2694,
      "end": 2703,
      "loc": {
        "start": {
          "line": 70,
          "column": 21
        },
        "end": {
          "line": 70,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 2704,
      "end": 2706,
      "loc": {
        "start": {
          "line": 70,
          "column": 31
        },
        "end": {
          "line": 70,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 2707,
      "end": 2713,
      "loc": {
        "start": {
          "line": 70,
          "column": 34
        },
        "end": {
          "line": 70,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2713,
      "end": 2714,
      "loc": {
        "start": {
          "line": 70,
          "column": 40
        },
        "end": {
          "line": 70,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 2714,
      "end": 2721,
      "loc": {
        "start": {
          "line": 70,
          "column": 41
        },
        "end": {
          "line": 70,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2721,
      "end": 2722,
      "loc": {
        "start": {
          "line": 70,
          "column": 48
        },
        "end": {
          "line": 70,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "collectMembers",
      "start": 2739,
      "end": 2753,
      "loc": {
        "start": {
          "line": 71,
          "column": 16
        },
        "end": {
          "line": 71,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2753,
      "end": 2754,
      "loc": {
        "start": {
          "line": 71,
          "column": 30
        },
        "end": {
          "line": 71,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "subMember",
      "start": 2754,
      "end": 2763,
      "loc": {
        "start": {
          "line": 71,
          "column": 31
        },
        "end": {
          "line": 71,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2763,
      "end": 2764,
      "loc": {
        "start": {
          "line": 71,
          "column": 40
        },
        "end": {
          "line": 71,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "idSet",
      "start": 2765,
      "end": 2770,
      "loc": {
        "start": {
          "line": 71,
          "column": 42
        },
        "end": {
          "line": 71,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2770,
      "end": 2771,
      "loc": {
        "start": {
          "line": 71,
          "column": 47
        },
        "end": {
          "line": 71,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2771,
      "end": 2772,
      "loc": {
        "start": {
          "line": 71,
          "column": 48
        },
        "end": {
          "line": 71,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2777,
      "end": 2778,
      "loc": {
        "start": {
          "line": 72,
          "column": 4
        },
        "end": {
          "line": 72,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 2783,
      "end": 2791,
      "loc": {
        "start": {
          "line": 73,
          "column": 4
        },
        "end": {
          "line": 73,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "recursiveHandleChange",
      "start": 2792,
      "end": 2813,
      "loc": {
        "start": {
          "line": 73,
          "column": 13
        },
        "end": {
          "line": 73,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2813,
      "end": 2814,
      "loc": {
        "start": {
          "line": 73,
          "column": 34
        },
        "end": {
          "line": 73,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2814,
      "end": 2816,
      "loc": {
        "start": {
          "line": 73,
          "column": 35
        },
        "end": {
          "line": 73,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2816,
      "end": 2817,
      "loc": {
        "start": {
          "line": 73,
          "column": 37
        },
        "end": {
          "line": 73,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 2818,
      "end": 2825,
      "loc": {
        "start": {
          "line": 73,
          "column": 39
        },
        "end": {
          "line": 73,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2825,
      "end": 2826,
      "loc": {
        "start": {
          "line": 73,
          "column": 46
        },
        "end": {
          "line": 73,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2827,
      "end": 2828,
      "loc": {
        "start": {
          "line": 73,
          "column": 48
        },
        "end": {
          "line": 73,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2837,
      "end": 2839,
      "loc": {
        "start": {
          "line": 74,
          "column": 8
        },
        "end": {
          "line": 74,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2840,
      "end": 2841,
      "loc": {
        "start": {
          "line": 74,
          "column": 11
        },
        "end": {
          "line": 74,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 2841,
      "end": 2848,
      "loc": {
        "start": {
          "line": 74,
          "column": 12
        },
        "end": {
          "line": 74,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2848,
      "end": 2849,
      "loc": {
        "start": {
          "line": 74,
          "column": 19
        },
        "end": {
          "line": 74,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 2849,
      "end": 2852,
      "loc": {
        "start": {
          "line": 74,
          "column": 20
        },
        "end": {
          "line": 74,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2852,
      "end": 2853,
      "loc": {
        "start": {
          "line": 74,
          "column": 23
        },
        "end": {
          "line": 74,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2853,
      "end": 2855,
      "loc": {
        "start": {
          "line": 74,
          "column": 24
        },
        "end": {
          "line": 74,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2855,
      "end": 2856,
      "loc": {
        "start": {
          "line": 74,
          "column": 26
        },
        "end": {
          "line": 74,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2856,
      "end": 2857,
      "loc": {
        "start": {
          "line": 74,
          "column": 27
        },
        "end": {
          "line": 74,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2870,
      "end": 2876,
      "loc": {
        "start": {
          "line": 75,
          "column": 12
        },
        "end": {
          "line": 75,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2876,
      "end": 2877,
      "loc": {
        "start": {
          "line": 75,
          "column": 18
        },
        "end": {
          "line": 75,
          "column": 19
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " stop recursing in infinite member loops",
      "start": 2878,
      "end": 2920,
      "loc": {
        "start": {
          "line": 75,
          "column": 20
        },
        "end": {
          "line": 75,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 2929,
      "end": 2934,
      "loc": {
        "start": {
          "line": 76,
          "column": 8
        },
        "end": {
          "line": 76,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 2935,
      "end": 2939,
      "loc": {
        "start": {
          "line": 76,
          "column": 14
        },
        "end": {
          "line": 76,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2940,
      "end": 2941,
      "loc": {
        "start": {
          "line": 76,
          "column": 19
        },
        "end": {
          "line": 76,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 2942,
      "end": 2951,
      "loc": {
        "start": {
          "line": 76,
          "column": 21
        },
        "end": {
          "line": 76,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2952,
      "end": 2954,
      "loc": {
        "start": {
          "line": 76,
          "column": 31
        },
        "end": {
          "line": 76,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 2955,
      "end": 2964,
      "loc": {
        "start": {
          "line": 76,
          "column": 34
        },
        "end": {
          "line": 76,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2964,
      "end": 2965,
      "loc": {
        "start": {
          "line": 76,
          "column": 43
        },
        "end": {
          "line": 76,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2965,
      "end": 2967,
      "loc": {
        "start": {
          "line": 76,
          "column": 44
        },
        "end": {
          "line": 76,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2967,
      "end": 2968,
      "loc": {
        "start": {
          "line": 76,
          "column": 46
        },
        "end": {
          "line": 76,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2968,
      "end": 2969,
      "loc": {
        "start": {
          "line": 76,
          "column": 47
        },
        "end": {
          "line": 76,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 2970,
      "end": 2977,
      "loc": {
        "start": {
          "line": 76,
          "column": 49
        },
        "end": {
          "line": 76,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2978,
      "end": 2979,
      "loc": {
        "start": {
          "line": 76,
          "column": 57
        },
        "end": {
          "line": 76,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 2980,
      "end": 2992,
      "loc": {
        "start": {
          "line": 76,
          "column": 59
        },
        "end": {
          "line": 76,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2993,
      "end": 2995,
      "loc": {
        "start": {
          "line": 76,
          "column": 72
        },
        "end": {
          "line": 76,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 2996,
      "end": 3008,
      "loc": {
        "start": {
          "line": 76,
          "column": 75
        },
        "end": {
          "line": 76,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3008,
      "end": 3009,
      "loc": {
        "start": {
          "line": 76,
          "column": 87
        },
        "end": {
          "line": 76,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3009,
      "end": 3011,
      "loc": {
        "start": {
          "line": 76,
          "column": 88
        },
        "end": {
          "line": 76,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3011,
      "end": 3012,
      "loc": {
        "start": {
          "line": 76,
          "column": 90
        },
        "end": {
          "line": 76,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3012,
      "end": 3013,
      "loc": {
        "start": {
          "line": 76,
          "column": 91
        },
        "end": {
          "line": 76,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3022,
      "end": 3029,
      "loc": {
        "start": {
          "line": 77,
          "column": 8
        },
        "end": {
          "line": 77,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3029,
      "end": 3030,
      "loc": {
        "start": {
          "line": 77,
          "column": 15
        },
        "end": {
          "line": 77,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 3030,
      "end": 3033,
      "loc": {
        "start": {
          "line": 77,
          "column": 16
        },
        "end": {
          "line": 77,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3033,
      "end": 3034,
      "loc": {
        "start": {
          "line": 77,
          "column": 19
        },
        "end": {
          "line": 77,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3034,
      "end": 3036,
      "loc": {
        "start": {
          "line": 77,
          "column": 20
        },
        "end": {
          "line": 77,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3036,
      "end": 3037,
      "loc": {
        "start": {
          "line": 77,
          "column": 22
        },
        "end": {
          "line": 77,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3038,
      "end": 3042,
      "loc": {
        "start": {
          "line": 77,
          "column": 24
        },
        "end": {
          "line": 77,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 3043,
      "end": 3046,
      "loc": {
        "start": {
          "line": 77,
          "column": 29
        },
        "end": {
          "line": 77,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3047,
      "end": 3054,
      "loc": {
        "start": {
          "line": 77,
          "column": 33
        },
        "end": {
          "line": 77,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3054,
      "end": 3055,
      "loc": {
        "start": {
          "line": 77,
          "column": 40
        },
        "end": {
          "line": 77,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3055,
      "end": 3056,
      "loc": {
        "start": {
          "line": 77,
          "column": 41
        },
        "end": {
          "line": 77,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3065,
      "end": 3068,
      "loc": {
        "start": {
          "line": 78,
          "column": 8
        },
        "end": {
          "line": 78,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3069,
      "end": 3076,
      "loc": {
        "start": {
          "line": 78,
          "column": 12
        },
        "end": {
          "line": 78,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3077,
      "end": 3078,
      "loc": {
        "start": {
          "line": 78,
          "column": 20
        },
        "end": {
          "line": 78,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 3079,
      "end": 3082,
      "loc": {
        "start": {
          "line": 78,
          "column": 22
        },
        "end": {
          "line": 78,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 3083,
      "end": 3086,
      "loc": {
        "start": {
          "line": 78,
          "column": 26
        },
        "end": {
          "line": 78,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3086,
      "end": 3087,
      "loc": {
        "start": {
          "line": 78,
          "column": 29
        },
        "end": {
          "line": 78,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3087,
      "end": 3088,
      "loc": {
        "start": {
          "line": 78,
          "column": 30
        },
        "end": {
          "line": 78,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3088,
      "end": 3089,
      "loc": {
        "start": {
          "line": 78,
          "column": 31
        },
        "end": {
          "line": 78,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3098,
      "end": 3101,
      "loc": {
        "start": {
          "line": 79,
          "column": 8
        },
        "end": {
          "line": 79,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3102,
      "end": 3103,
      "loc": {
        "start": {
          "line": 79,
          "column": 12
        },
        "end": {
          "line": 79,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3103,
      "end": 3106,
      "loc": {
        "start": {
          "line": 79,
          "column": 13
        },
        "end": {
          "line": 79,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "child",
      "start": 3107,
      "end": 3112,
      "loc": {
        "start": {
          "line": 79,
          "column": 17
        },
        "end": {
          "line": 79,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3113,
      "end": 3115,
      "loc": {
        "start": {
          "line": 79,
          "column": 23
        },
        "end": {
          "line": 79,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3116,
      "end": 3117,
      "loc": {
        "start": {
          "line": 79,
          "column": 26
        },
        "end": {
          "line": 79,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3117,
      "end": 3118,
      "loc": {
        "start": {
          "line": 79,
          "column": 27
        },
        "end": {
          "line": 79,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3118,
      "end": 3122,
      "loc": {
        "start": {
          "line": 79,
          "column": 28
        },
        "end": {
          "line": 79,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 3123,
      "end": 3125,
      "loc": {
        "start": {
          "line": 79,
          "column": 33
        },
        "end": {
          "line": 79,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3126,
      "end": 3130,
      "loc": {
        "start": {
          "line": 79,
          "column": 36
        },
        "end": {
          "line": 79,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3130,
      "end": 3131,
      "loc": {
        "start": {
          "line": 79,
          "column": 40
        },
        "end": {
          "line": 79,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "children",
      "start": 3131,
      "end": 3139,
      "loc": {
        "start": {
          "line": 79,
          "column": 41
        },
        "end": {
          "line": 79,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3139,
      "end": 3140,
      "loc": {
        "start": {
          "line": 79,
          "column": 49
        },
        "end": {
          "line": 79,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3141,
      "end": 3143,
      "loc": {
        "start": {
          "line": 79,
          "column": 51
        },
        "end": {
          "line": 79,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3144,
      "end": 3145,
      "loc": {
        "start": {
          "line": 79,
          "column": 54
        },
        "end": {
          "line": 79,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3145,
      "end": 3146,
      "loc": {
        "start": {
          "line": 79,
          "column": 55
        },
        "end": {
          "line": 79,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3146,
      "end": 3147,
      "loc": {
        "start": {
          "line": 79,
          "column": 56
        },
        "end": {
          "line": 79,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3147,
      "end": 3148,
      "loc": {
        "start": {
          "line": 79,
          "column": 57
        },
        "end": {
          "line": 79,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3161,
      "end": 3168,
      "loc": {
        "start": {
          "line": 80,
          "column": 12
        },
        "end": {
          "line": 80,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3168,
      "end": 3169,
      "loc": {
        "start": {
          "line": 80,
          "column": 19
        },
        "end": {
          "line": 80,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 3169,
      "end": 3172,
      "loc": {
        "start": {
          "line": 80,
          "column": 20
        },
        "end": {
          "line": 80,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3172,
      "end": 3173,
      "loc": {
        "start": {
          "line": 80,
          "column": 23
        },
        "end": {
          "line": 80,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "child",
      "start": 3173,
      "end": 3178,
      "loc": {
        "start": {
          "line": 80,
          "column": 24
        },
        "end": {
          "line": 80,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3178,
      "end": 3179,
      "loc": {
        "start": {
          "line": 80,
          "column": 29
        },
        "end": {
          "line": 80,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3179,
      "end": 3180,
      "loc": {
        "start": {
          "line": 80,
          "column": 30
        },
        "end": {
          "line": 80,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3189,
      "end": 3192,
      "loc": {
        "start": {
          "line": 81,
          "column": 8
        },
        "end": {
          "line": 81,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3193,
      "end": 3194,
      "loc": {
        "start": {
          "line": 81,
          "column": 12
        },
        "end": {
          "line": 81,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3194,
      "end": 3197,
      "loc": {
        "start": {
          "line": 81,
          "column": 13
        },
        "end": {
          "line": 81,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "child",
      "start": 3198,
      "end": 3203,
      "loc": {
        "start": {
          "line": 81,
          "column": 17
        },
        "end": {
          "line": 81,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3204,
      "end": 3206,
      "loc": {
        "start": {
          "line": 81,
          "column": 23
        },
        "end": {
          "line": 81,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3207,
      "end": 3208,
      "loc": {
        "start": {
          "line": 81,
          "column": 26
        },
        "end": {
          "line": 81,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3208,
      "end": 3209,
      "loc": {
        "start": {
          "line": 81,
          "column": 27
        },
        "end": {
          "line": 81,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3209,
      "end": 3216,
      "loc": {
        "start": {
          "line": 81,
          "column": 28
        },
        "end": {
          "line": 81,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 3217,
      "end": 3219,
      "loc": {
        "start": {
          "line": 81,
          "column": 36
        },
        "end": {
          "line": 81,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3220,
      "end": 3227,
      "loc": {
        "start": {
          "line": 81,
          "column": 39
        },
        "end": {
          "line": 81,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3227,
      "end": 3228,
      "loc": {
        "start": {
          "line": 81,
          "column": 46
        },
        "end": {
          "line": 81,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "children",
      "start": 3228,
      "end": 3236,
      "loc": {
        "start": {
          "line": 81,
          "column": 47
        },
        "end": {
          "line": 81,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3236,
      "end": 3237,
      "loc": {
        "start": {
          "line": 81,
          "column": 55
        },
        "end": {
          "line": 81,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3238,
      "end": 3240,
      "loc": {
        "start": {
          "line": 81,
          "column": 57
        },
        "end": {
          "line": 81,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3241,
      "end": 3242,
      "loc": {
        "start": {
          "line": 81,
          "column": 60
        },
        "end": {
          "line": 81,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3242,
      "end": 3243,
      "loc": {
        "start": {
          "line": 81,
          "column": 61
        },
        "end": {
          "line": 81,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3243,
      "end": 3244,
      "loc": {
        "start": {
          "line": 81,
          "column": 62
        },
        "end": {
          "line": 81,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3244,
      "end": 3245,
      "loc": {
        "start": {
          "line": 81,
          "column": 63
        },
        "end": {
          "line": 81,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3258,
      "end": 3265,
      "loc": {
        "start": {
          "line": 82,
          "column": 12
        },
        "end": {
          "line": 82,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3265,
      "end": 3266,
      "loc": {
        "start": {
          "line": 82,
          "column": 19
        },
        "end": {
          "line": 82,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 3266,
      "end": 3269,
      "loc": {
        "start": {
          "line": 82,
          "column": 20
        },
        "end": {
          "line": 82,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3269,
      "end": 3270,
      "loc": {
        "start": {
          "line": 82,
          "column": 23
        },
        "end": {
          "line": 82,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "child",
      "start": 3270,
      "end": 3275,
      "loc": {
        "start": {
          "line": 82,
          "column": 24
        },
        "end": {
          "line": 82,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3275,
      "end": 3276,
      "loc": {
        "start": {
          "line": 82,
          "column": 29
        },
        "end": {
          "line": 82,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3276,
      "end": 3277,
      "loc": {
        "start": {
          "line": 82,
          "column": 30
        },
        "end": {
          "line": 82,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3286,
      "end": 3289,
      "loc": {
        "start": {
          "line": 83,
          "column": 8
        },
        "end": {
          "line": 83,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3290,
      "end": 3291,
      "loc": {
        "start": {
          "line": 83,
          "column": 12
        },
        "end": {
          "line": 83,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3291,
      "end": 3294,
      "loc": {
        "start": {
          "line": 83,
          "column": 13
        },
        "end": {
          "line": 83,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "key",
      "start": 3295,
      "end": 3298,
      "loc": {
        "start": {
          "line": 83,
          "column": 17
        },
        "end": {
          "line": 83,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 3299,
      "end": 3301,
      "loc": {
        "start": {
          "line": 83,
          "column": 21
        },
        "end": {
          "line": 83,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3302,
      "end": 3303,
      "loc": {
        "start": {
          "line": 83,
          "column": 24
        },
        "end": {
          "line": 83,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3303,
      "end": 3307,
      "loc": {
        "start": {
          "line": 83,
          "column": 25
        },
        "end": {
          "line": 83,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 3308,
      "end": 3310,
      "loc": {
        "start": {
          "line": 83,
          "column": 30
        },
        "end": {
          "line": 83,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3311,
      "end": 3315,
      "loc": {
        "start": {
          "line": 83,
          "column": 33
        },
        "end": {
          "line": 83,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3315,
      "end": 3316,
      "loc": {
        "start": {
          "line": 83,
          "column": 37
        },
        "end": {
          "line": 83,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3316,
      "end": 3323,
      "loc": {
        "start": {
          "line": 83,
          "column": 38
        },
        "end": {
          "line": 83,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3323,
      "end": 3324,
      "loc": {
        "start": {
          "line": 83,
          "column": 45
        },
        "end": {
          "line": 83,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3324,
      "end": 3325,
      "loc": {
        "start": {
          "line": 83,
          "column": 46
        },
        "end": {
          "line": 83,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "collectMembers",
      "start": 3338,
      "end": 3352,
      "loc": {
        "start": {
          "line": 84,
          "column": 12
        },
        "end": {
          "line": 84,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3352,
      "end": 3353,
      "loc": {
        "start": {
          "line": 84,
          "column": 26
        },
        "end": {
          "line": 84,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3353,
      "end": 3357,
      "loc": {
        "start": {
          "line": 84,
          "column": 27
        },
        "end": {
          "line": 84,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3357,
      "end": 3358,
      "loc": {
        "start": {
          "line": 84,
          "column": 31
        },
        "end": {
          "line": 84,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3358,
      "end": 3365,
      "loc": {
        "start": {
          "line": 84,
          "column": 32
        },
        "end": {
          "line": 84,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3365,
      "end": 3366,
      "loc": {
        "start": {
          "line": 84,
          "column": 39
        },
        "end": {
          "line": 84,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "key",
      "start": 3366,
      "end": 3369,
      "loc": {
        "start": {
          "line": 84,
          "column": 40
        },
        "end": {
          "line": 84,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3369,
      "end": 3370,
      "loc": {
        "start": {
          "line": 84,
          "column": 43
        },
        "end": {
          "line": 84,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3370,
      "end": 3371,
      "loc": {
        "start": {
          "line": 84,
          "column": 44
        },
        "end": {
          "line": 84,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3372,
      "end": 3379,
      "loc": {
        "start": {
          "line": 84,
          "column": 46
        },
        "end": {
          "line": 84,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3379,
      "end": 3380,
      "loc": {
        "start": {
          "line": 84,
          "column": 53
        },
        "end": {
          "line": 84,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3380,
      "end": 3381,
      "loc": {
        "start": {
          "line": 84,
          "column": 54
        },
        "end": {
          "line": 84,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3390,
      "end": 3393,
      "loc": {
        "start": {
          "line": 85,
          "column": 8
        },
        "end": {
          "line": 85,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3394,
      "end": 3395,
      "loc": {
        "start": {
          "line": 85,
          "column": 12
        },
        "end": {
          "line": 85,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3395,
      "end": 3398,
      "loc": {
        "start": {
          "line": 85,
          "column": 13
        },
        "end": {
          "line": 85,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "key",
      "start": 3399,
      "end": 3402,
      "loc": {
        "start": {
          "line": 85,
          "column": 17
        },
        "end": {
          "line": 85,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "in",
        "keyword": "in",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "in",
      "start": 3403,
      "end": 3405,
      "loc": {
        "start": {
          "line": 85,
          "column": 21
        },
        "end": {
          "line": 85,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3406,
      "end": 3407,
      "loc": {
        "start": {
          "line": 85,
          "column": 24
        },
        "end": {
          "line": 85,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3407,
      "end": 3414,
      "loc": {
        "start": {
          "line": 85,
          "column": 25
        },
        "end": {
          "line": 85,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 3415,
      "end": 3417,
      "loc": {
        "start": {
          "line": 85,
          "column": 33
        },
        "end": {
          "line": 85,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3418,
      "end": 3425,
      "loc": {
        "start": {
          "line": 85,
          "column": 36
        },
        "end": {
          "line": 85,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3425,
      "end": 3426,
      "loc": {
        "start": {
          "line": 85,
          "column": 43
        },
        "end": {
          "line": 85,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3426,
      "end": 3433,
      "loc": {
        "start": {
          "line": 85,
          "column": 44
        },
        "end": {
          "line": 85,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3433,
      "end": 3434,
      "loc": {
        "start": {
          "line": 85,
          "column": 51
        },
        "end": {
          "line": 85,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3434,
      "end": 3435,
      "loc": {
        "start": {
          "line": 85,
          "column": 52
        },
        "end": {
          "line": 85,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "collectMembers",
      "start": 3448,
      "end": 3462,
      "loc": {
        "start": {
          "line": 86,
          "column": 12
        },
        "end": {
          "line": 86,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3462,
      "end": 3463,
      "loc": {
        "start": {
          "line": 86,
          "column": 26
        },
        "end": {
          "line": 86,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3463,
      "end": 3470,
      "loc": {
        "start": {
          "line": 86,
          "column": 27
        },
        "end": {
          "line": 86,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3470,
      "end": 3471,
      "loc": {
        "start": {
          "line": 86,
          "column": 34
        },
        "end": {
          "line": 86,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3471,
      "end": 3478,
      "loc": {
        "start": {
          "line": 86,
          "column": 35
        },
        "end": {
          "line": 86,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3478,
      "end": 3479,
      "loc": {
        "start": {
          "line": 86,
          "column": 42
        },
        "end": {
          "line": 86,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "key",
      "start": 3479,
      "end": 3482,
      "loc": {
        "start": {
          "line": 86,
          "column": 43
        },
        "end": {
          "line": 86,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3482,
      "end": 3483,
      "loc": {
        "start": {
          "line": 86,
          "column": 46
        },
        "end": {
          "line": 86,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3483,
      "end": 3484,
      "loc": {
        "start": {
          "line": 86,
          "column": 47
        },
        "end": {
          "line": 86,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3485,
      "end": 3492,
      "loc": {
        "start": {
          "line": 86,
          "column": 49
        },
        "end": {
          "line": 86,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3492,
      "end": 3493,
      "loc": {
        "start": {
          "line": 86,
          "column": 56
        },
        "end": {
          "line": 86,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3493,
      "end": 3494,
      "loc": {
        "start": {
          "line": 86,
          "column": 57
        },
        "end": {
          "line": 86,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3503,
      "end": 3506,
      "loc": {
        "start": {
          "line": 87,
          "column": 8
        },
        "end": {
          "line": 87,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3507,
      "end": 3508,
      "loc": {
        "start": {
          "line": 87,
          "column": 12
        },
        "end": {
          "line": 87,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3508,
      "end": 3511,
      "loc": {
        "start": {
          "line": 87,
          "column": 13
        },
        "end": {
          "line": 87,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 3512,
      "end": 3518,
      "loc": {
        "start": {
          "line": 87,
          "column": 17
        },
        "end": {
          "line": 87,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3519,
      "end": 3521,
      "loc": {
        "start": {
          "line": 87,
          "column": 24
        },
        "end": {
          "line": 87,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 3522,
      "end": 3529,
      "loc": {
        "start": {
          "line": 87,
          "column": 27
        },
        "end": {
          "line": 87,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3529,
      "end": 3530,
      "loc": {
        "start": {
          "line": 87,
          "column": 34
        },
        "end": {
          "line": 87,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3531,
      "end": 3532,
      "loc": {
        "start": {
          "line": 87,
          "column": 36
        },
        "end": {
          "line": 87,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "recursiveHandleChange",
      "start": 3545,
      "end": 3566,
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3566,
      "end": 3567,
      "loc": {
        "start": {
          "line": 88,
          "column": 33
        },
        "end": {
          "line": 88,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 3567,
      "end": 3573,
      "loc": {
        "start": {
          "line": 88,
          "column": 34
        },
        "end": {
          "line": 88,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3573,
      "end": 3574,
      "loc": {
        "start": {
          "line": 88,
          "column": 40
        },
        "end": {
          "line": 88,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3575,
      "end": 3582,
      "loc": {
        "start": {
          "line": 88,
          "column": 42
        },
        "end": {
          "line": 88,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3582,
      "end": 3583,
      "loc": {
        "start": {
          "line": 88,
          "column": 49
        },
        "end": {
          "line": 88,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3583,
      "end": 3584,
      "loc": {
        "start": {
          "line": 88,
          "column": 50
        },
        "end": {
          "line": 88,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3597,
      "end": 3604,
      "loc": {
        "start": {
          "line": 89,
          "column": 12
        },
        "end": {
          "line": 89,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3604,
      "end": 3605,
      "loc": {
        "start": {
          "line": 89,
          "column": 19
        },
        "end": {
          "line": 89,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 3605,
      "end": 3608,
      "loc": {
        "start": {
          "line": 89,
          "column": 20
        },
        "end": {
          "line": 89,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3608,
      "end": 3609,
      "loc": {
        "start": {
          "line": 89,
          "column": 23
        },
        "end": {
          "line": 89,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3609,
      "end": 3611,
      "loc": {
        "start": {
          "line": 89,
          "column": 24
        },
        "end": {
          "line": 89,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3611,
      "end": 3612,
      "loc": {
        "start": {
          "line": 89,
          "column": 26
        },
        "end": {
          "line": 89,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3613,
      "end": 3620,
      "loc": {
        "start": {
          "line": 89,
          "column": 28
        },
        "end": {
          "line": 89,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3620,
      "end": 3621,
      "loc": {
        "start": {
          "line": 89,
          "column": 35
        },
        "end": {
          "line": 89,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 3621,
      "end": 3624,
      "loc": {
        "start": {
          "line": 89,
          "column": 36
        },
        "end": {
          "line": 89,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3624,
      "end": 3625,
      "loc": {
        "start": {
          "line": 89,
          "column": 39
        },
        "end": {
          "line": 89,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3625,
      "end": 3627,
      "loc": {
        "start": {
          "line": 89,
          "column": 40
        },
        "end": {
          "line": 89,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3627,
      "end": 3628,
      "loc": {
        "start": {
          "line": 89,
          "column": 42
        },
        "end": {
          "line": 89,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3629,
      "end": 3631,
      "loc": {
        "start": {
          "line": 89,
          "column": 44
        },
        "end": {
          "line": 89,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3632,
      "end": 3639,
      "loc": {
        "start": {
          "line": 89,
          "column": 47
        },
        "end": {
          "line": 89,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3639,
      "end": 3640,
      "loc": {
        "start": {
          "line": 89,
          "column": 54
        },
        "end": {
          "line": 89,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 3640,
      "end": 3643,
      "loc": {
        "start": {
          "line": 89,
          "column": 55
        },
        "end": {
          "line": 89,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3643,
      "end": 3644,
      "loc": {
        "start": {
          "line": 89,
          "column": 58
        },
        "end": {
          "line": 89,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "member",
      "start": 3644,
      "end": 3650,
      "loc": {
        "start": {
          "line": 89,
          "column": 59
        },
        "end": {
          "line": 89,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3650,
      "end": 3651,
      "loc": {
        "start": {
          "line": 89,
          "column": 65
        },
        "end": {
          "line": 89,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3651,
      "end": 3652,
      "loc": {
        "start": {
          "line": 89,
          "column": 66
        },
        "end": {
          "line": 89,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3652,
      "end": 3653,
      "loc": {
        "start": {
          "line": 89,
          "column": 67
        },
        "end": {
          "line": 89,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3662,
      "end": 3663,
      "loc": {
        "start": {
          "line": 90,
          "column": 8
        },
        "end": {
          "line": 90,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "changed",
      "start": 3672,
      "end": 3679,
      "loc": {
        "start": {
          "line": 91,
          "column": 8
        },
        "end": {
          "line": 91,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3679,
      "end": 3680,
      "loc": {
        "start": {
          "line": 91,
          "column": 15
        },
        "end": {
          "line": 91,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 3680,
      "end": 3683,
      "loc": {
        "start": {
          "line": 91,
          "column": 16
        },
        "end": {
          "line": 91,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3683,
      "end": 3684,
      "loc": {
        "start": {
          "line": 91,
          "column": 19
        },
        "end": {
          "line": 91,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 3684,
      "end": 3686,
      "loc": {
        "start": {
          "line": 91,
          "column": 20
        },
        "end": {
          "line": 91,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3686,
      "end": 3687,
      "loc": {
        "start": {
          "line": 91,
          "column": 22
        },
        "end": {
          "line": 91,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 3688,
      "end": 3690,
      "loc": {
        "start": {
          "line": 91,
          "column": 24
        },
        "end": {
          "line": 91,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "onChange",
      "start": 3691,
      "end": 3699,
      "loc": {
        "start": {
          "line": 91,
          "column": 27
        },
        "end": {
          "line": 91,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3699,
      "end": 3700,
      "loc": {
        "start": {
          "line": 91,
          "column": 35
        },
        "end": {
          "line": 91,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "next",
      "start": 3700,
      "end": 3704,
      "loc": {
        "start": {
          "line": 91,
          "column": 36
        },
        "end": {
          "line": 91,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3704,
      "end": 3705,
      "loc": {
        "start": {
          "line": 91,
          "column": 40
        },
        "end": {
          "line": 91,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "current",
      "start": 3706,
      "end": 3713,
      "loc": {
        "start": {
          "line": 91,
          "column": 42
        },
        "end": {
          "line": 91,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3713,
      "end": 3714,
      "loc": {
        "start": {
          "line": 91,
          "column": 49
        },
        "end": {
          "line": 91,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3714,
      "end": 3715,
      "loc": {
        "start": {
          "line": 91,
          "column": 50
        },
        "end": {
          "line": 91,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3720,
      "end": 3721,
      "loc": {
        "start": {
          "line": 92,
          "column": 4
        },
        "end": {
          "line": 92,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 3726,
      "end": 3734,
      "loc": {
        "start": {
          "line": 93,
          "column": 4
        },
        "end": {
          "line": 93,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handleChange",
      "start": 3735,
      "end": 3747,
      "loc": {
        "start": {
          "line": 93,
          "column": 13
        },
        "end": {
          "line": 93,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3747,
      "end": 3748,
      "loc": {
        "start": {
          "line": 93,
          "column": 25
        },
        "end": {
          "line": 93,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3748,
      "end": 3749,
      "loc": {
        "start": {
          "line": 93,
          "column": 26
        },
        "end": {
          "line": 93,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3750,
      "end": 3751,
      "loc": {
        "start": {
          "line": 93,
          "column": 28
        },
        "end": {
          "line": 93,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 3760,
      "end": 3762,
      "loc": {
        "start": {
          "line": 94,
          "column": 8
        },
        "end": {
          "line": 94,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3763,
      "end": 3764,
      "loc": {
        "start": {
          "line": 94,
          "column": 11
        },
        "end": {
          "line": 94,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 3764,
      "end": 3776,
      "loc": {
        "start": {
          "line": 94,
          "column": 12
        },
        "end": {
          "line": 94,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3776,
      "end": 3777,
      "loc": {
        "start": {
          "line": 94,
          "column": 24
        },
        "end": {
          "line": 94,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 3790,
      "end": 3796,
      "loc": {
        "start": {
          "line": 95,
          "column": 12
        },
        "end": {
          "line": 95,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3796,
      "end": 3797,
      "loc": {
        "start": {
          "line": 95,
          "column": 18
        },
        "end": {
          "line": 95,
          "column": 19
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " prevent firing notifications that happened just after unsubscribe",
      "start": 3798,
      "end": 3866,
      "loc": {
        "start": {
          "line": 95,
          "column": 20
        },
        "end": {
          "line": 95,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 3875,
      "end": 3887,
      "loc": {
        "start": {
          "line": 96,
          "column": 8
        },
        "end": {
          "line": 96,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3888,
      "end": 3889,
      "loc": {
        "start": {
          "line": 96,
          "column": 21
        },
        "end": {
          "line": 96,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 3890,
      "end": 3899,
      "loc": {
        "start": {
          "line": 96,
          "column": 23
        },
        "end": {
          "line": 96,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3899,
      "end": 3900,
      "loc": {
        "start": {
          "line": 96,
          "column": 32
        },
        "end": {
          "line": 96,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 3909,
      "end": 3918,
      "loc": {
        "start": {
          "line": 97,
          "column": 8
        },
        "end": {
          "line": 97,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3919,
      "end": 3920,
      "loc": {
        "start": {
          "line": 97,
          "column": 18
        },
        "end": {
          "line": 97,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "preSelect",
      "start": 3921,
      "end": 3930,
      "loc": {
        "start": {
          "line": 97,
          "column": 20
        },
        "end": {
          "line": 97,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3930,
      "end": 3931,
      "loc": {
        "start": {
          "line": 97,
          "column": 29
        },
        "end": {
          "line": 97,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3931,
      "end": 3932,
      "loc": {
        "start": {
          "line": 97,
          "column": 30
        },
        "end": {
          "line": 97,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3932,
      "end": 3933,
      "loc": {
        "start": {
          "line": 97,
          "column": 31
        },
        "end": {
          "line": 97,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "recursiveHandleChange",
      "start": 3942,
      "end": 3963,
      "loc": {
        "start": {
          "line": 98,
          "column": 8
        },
        "end": {
          "line": 98,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3963,
      "end": 3964,
      "loc": {
        "start": {
          "line": 98,
          "column": 29
        },
        "end": {
          "line": 98,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelectId",
      "start": 3964,
      "end": 3976,
      "loc": {
        "start": {
          "line": 98,
          "column": 30
        },
        "end": {
          "line": 98,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3976,
      "end": 3977,
      "loc": {
        "start": {
          "line": 98,
          "column": 42
        },
        "end": {
          "line": 98,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 3978,
      "end": 3981,
      "loc": {
        "start": {
          "line": 98,
          "column": 44
        },
        "end": {
          "line": 98,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 3982,
      "end": 3985,
      "loc": {
        "start": {
          "line": 98,
          "column": 48
        },
        "end": {
          "line": 98,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3985,
      "end": 3986,
      "loc": {
        "start": {
          "line": 98,
          "column": 51
        },
        "end": {
          "line": 98,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3986,
      "end": 3987,
      "loc": {
        "start": {
          "line": 98,
          "column": 52
        },
        "end": {
          "line": 98,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3987,
      "end": 3988,
      "loc": {
        "start": {
          "line": 98,
          "column": 53
        },
        "end": {
          "line": 98,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3988,
      "end": 3989,
      "loc": {
        "start": {
          "line": 98,
          "column": 54
        },
        "end": {
          "line": 98,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3994,
      "end": 3995,
      "loc": {
        "start": {
          "line": 99,
          "column": 4
        },
        "end": {
          "line": 99,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnStart",
      "start": 4001,
      "end": 4012,
      "loc": {
        "start": {
          "line": 101,
          "column": 4
        },
        "end": {
          "line": 101,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 4013,
      "end": 4015,
      "loc": {
        "start": {
          "line": 101,
          "column": 16
        },
        "end": {
          "line": 101,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "recursiveHandleChange",
      "start": 4016,
      "end": 4037,
      "loc": {
        "start": {
          "line": 101,
          "column": 19
        },
        "end": {
          "line": 101,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4037,
      "end": 4038,
      "loc": {
        "start": {
          "line": 101,
          "column": 40
        },
        "end": {
          "line": 101,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelectId",
      "start": 4038,
      "end": 4050,
      "loc": {
        "start": {
          "line": 101,
          "column": 41
        },
        "end": {
          "line": 101,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4050,
      "end": 4051,
      "loc": {
        "start": {
          "line": 101,
          "column": 53
        },
        "end": {
          "line": 101,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 4052,
      "end": 4055,
      "loc": {
        "start": {
          "line": 101,
          "column": 55
        },
        "end": {
          "line": 101,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 4056,
      "end": 4059,
      "loc": {
        "start": {
          "line": 101,
          "column": 59
        },
        "end": {
          "line": 101,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4059,
      "end": 4060,
      "loc": {
        "start": {
          "line": 101,
          "column": 62
        },
        "end": {
          "line": 101,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4060,
      "end": 4061,
      "loc": {
        "start": {
          "line": 101,
          "column": 63
        },
        "end": {
          "line": 101,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4061,
      "end": 4062,
      "loc": {
        "start": {
          "line": 101,
          "column": 64
        },
        "end": {
          "line": 101,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4062,
      "end": 4063,
      "loc": {
        "start": {
          "line": 101,
          "column": 65
        },
        "end": {
          "line": 101,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 4068,
      "end": 4073,
      "loc": {
        "start": {
          "line": 102,
          "column": 4
        },
        "end": {
          "line": 102,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 4074,
      "end": 4085,
      "loc": {
        "start": {
          "line": 102,
          "column": 10
        },
        "end": {
          "line": 102,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4086,
      "end": 4087,
      "loc": {
        "start": {
          "line": 102,
          "column": 22
        },
        "end": {
          "line": 102,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "store",
      "start": 4088,
      "end": 4093,
      "loc": {
        "start": {
          "line": 102,
          "column": 24
        },
        "end": {
          "line": 102,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4093,
      "end": 4094,
      "loc": {
        "start": {
          "line": 102,
          "column": 29
        },
        "end": {
          "line": 102,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "subscribe",
      "start": 4094,
      "end": 4103,
      "loc": {
        "start": {
          "line": 102,
          "column": 30
        },
        "end": {
          "line": 102,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4103,
      "end": 4104,
      "loc": {
        "start": {
          "line": 102,
          "column": 39
        },
        "end": {
          "line": 102,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handleChange",
      "start": 4104,
      "end": 4116,
      "loc": {
        "start": {
          "line": 102,
          "column": 40
        },
        "end": {
          "line": 102,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4116,
      "end": 4117,
      "loc": {
        "start": {
          "line": 102,
          "column": 52
        },
        "end": {
          "line": 102,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4117,
      "end": 4118,
      "loc": {
        "start": {
          "line": 102,
          "column": 53
        },
        "end": {
          "line": 102,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 4123,
      "end": 4129,
      "loc": {
        "start": {
          "line": 103,
          "column": 4
        },
        "end": {
          "line": 103,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4130,
      "end": 4131,
      "loc": {
        "start": {
          "line": 103,
          "column": 11
        },
        "end": {
          "line": 103,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4131,
      "end": 4132,
      "loc": {
        "start": {
          "line": 103,
          "column": 12
        },
        "end": {
          "line": 103,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4133,
      "end": 4135,
      "loc": {
        "start": {
          "line": 103,
          "column": 14
        },
        "end": {
          "line": 103,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4136,
      "end": 4137,
      "loc": {
        "start": {
          "line": 103,
          "column": 17
        },
        "end": {
          "line": 103,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribe",
      "start": 4146,
      "end": 4157,
      "loc": {
        "start": {
          "line": 104,
          "column": 8
        },
        "end": {
          "line": 104,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4157,
      "end": 4158,
      "loc": {
        "start": {
          "line": 104,
          "column": 19
        },
        "end": {
          "line": 104,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4158,
      "end": 4159,
      "loc": {
        "start": {
          "line": 104,
          "column": 20
        },
        "end": {
          "line": 104,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4159,
      "end": 4160,
      "loc": {
        "start": {
          "line": 104,
          "column": 21
        },
        "end": {
          "line": 104,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unsubscribed",
      "start": 4169,
      "end": 4181,
      "loc": {
        "start": {
          "line": 105,
          "column": 8
        },
        "end": {
          "line": 105,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4182,
      "end": 4183,
      "loc": {
        "start": {
          "line": 105,
          "column": 21
        },
        "end": {
          "line": 105,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "true",
        "keyword": "true",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "true",
      "start": 4184,
      "end": 4188,
      "loc": {
        "start": {
          "line": 105,
          "column": 23
        },
        "end": {
          "line": 105,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4188,
      "end": 4189,
      "loc": {
        "start": {
          "line": 105,
          "column": 27
        },
        "end": {
          "line": 105,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "currentState",
      "start": 4198,
      "end": 4210,
      "loc": {
        "start": {
          "line": 106,
          "column": 8
        },
        "end": {
          "line": 106,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4211,
      "end": 4212,
      "loc": {
        "start": {
          "line": 106,
          "column": 21
        },
        "end": {
          "line": 106,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 4213,
      "end": 4222,
      "loc": {
        "start": {
          "line": 106,
          "column": 23
        },
        "end": {
          "line": 106,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4222,
      "end": 4223,
      "loc": {
        "start": {
          "line": 106,
          "column": 32
        },
        "end": {
          "line": 106,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "nextState",
      "start": 4232,
      "end": 4241,
      "loc": {
        "start": {
          "line": 107,
          "column": 8
        },
        "end": {
          "line": 107,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4242,
      "end": 4243,
      "loc": {
        "start": {
          "line": 107,
          "column": 18
        },
        "end": {
          "line": 107,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 4244,
      "end": 4253,
      "loc": {
        "start": {
          "line": 107,
          "column": 20
        },
        "end": {
          "line": 107,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4253,
      "end": 4254,
      "loc": {
        "start": {
          "line": 107,
          "column": 29
        },
        "end": {
          "line": 107,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fireOnUnsubscribe",
      "start": 4263,
      "end": 4280,
      "loc": {
        "start": {
          "line": 108,
          "column": 8
        },
        "end": {
          "line": 108,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 4281,
      "end": 4283,
      "loc": {
        "start": {
          "line": 108,
          "column": 26
        },
        "end": {
          "line": 108,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "recursiveHandleChange",
      "start": 4284,
      "end": 4305,
      "loc": {
        "start": {
          "line": 108,
          "column": 29
        },
        "end": {
          "line": 108,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4305,
      "end": 4306,
      "loc": {
        "start": {
          "line": 108,
          "column": 50
        },
        "end": {
          "line": 108,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "userSelectId",
      "start": 4306,
      "end": 4318,
      "loc": {
        "start": {
          "line": 108,
          "column": 51
        },
        "end": {
          "line": 108,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4318,
      "end": 4319,
      "loc": {
        "start": {
          "line": 108,
          "column": 63
        },
        "end": {
          "line": 108,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 4320,
      "end": 4323,
      "loc": {
        "start": {
          "line": 108,
          "column": 65
        },
        "end": {
          "line": 108,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 4324,
      "end": 4327,
      "loc": {
        "start": {
          "line": 108,
          "column": 69
        },
        "end": {
          "line": 108,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4327,
      "end": 4328,
      "loc": {
        "start": {
          "line": 108,
          "column": 72
        },
        "end": {
          "line": 108,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4328,
      "end": 4329,
      "loc": {
        "start": {
          "line": 108,
          "column": 73
        },
        "end": {
          "line": 108,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4329,
      "end": 4330,
      "loc": {
        "start": {
          "line": 108,
          "column": 74
        },
        "end": {
          "line": 108,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4330,
      "end": 4331,
      "loc": {
        "start": {
          "line": 108,
          "column": 75
        },
        "end": {
          "line": 108,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4336,
      "end": 4337,
      "loc": {
        "start": {
          "line": 109,
          "column": 4
        },
        "end": {
          "line": 109,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4337,
      "end": 4338,
      "loc": {
        "start": {
          "line": 109,
          "column": 5
        },
        "end": {
          "line": 109,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4339,
      "end": 4340,
      "loc": {
        "start": {
          "line": 110,
          "column": 0
        },
        "end": {
          "line": 110,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Build ClassAD feature path (_O. ...)",
      "start": 4342,
      "end": 4381,
      "loc": {
        "start": {
          "line": 112,
          "column": 0
        },
        "end": {
          "line": 112,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 4382,
      "end": 4388,
      "loc": {
        "start": {
          "line": 113,
          "column": 0
        },
        "end": {
          "line": 113,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 4389,
      "end": 4394,
      "loc": {
        "start": {
          "line": 113,
          "column": 7
        },
        "end": {
          "line": 113,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "buildFeaturePath",
      "start": 4395,
      "end": 4411,
      "loc": {
        "start": {
          "line": 113,
          "column": 13
        },
        "end": {
          "line": 113,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4412,
      "end": 4413,
      "loc": {
        "start": {
          "line": 113,
          "column": 30
        },
        "end": {
          "line": 113,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4414,
      "end": 4415,
      "loc": {
        "start": {
          "line": 113,
          "column": 32
        },
        "end": {
          "line": 113,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 4415,
      "end": 4419,
      "loc": {
        "start": {
          "line": 113,
          "column": 33
        },
        "end": {
          "line": 113,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4419,
      "end": 4420,
      "loc": {
        "start": {
          "line": 113,
          "column": 37
        },
        "end": {
          "line": 113,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4421,
      "end": 4428,
      "loc": {
        "start": {
          "line": 113,
          "column": 39
        },
        "end": {
          "line": 113,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4428,
      "end": 4429,
      "loc": {
        "start": {
          "line": 113,
          "column": 46
        },
        "end": {
          "line": 113,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4430,
      "end": 4432,
      "loc": {
        "start": {
          "line": 113,
          "column": 48
        },
        "end": {
          "line": 113,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4433,
      "end": 4434,
      "loc": {
        "start": {
          "line": 113,
          "column": 51
        },
        "end": {
          "line": 113,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 4439,
      "end": 4441,
      "loc": {
        "start": {
          "line": 114,
          "column": 4
        },
        "end": {
          "line": 114,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4442,
      "end": 4443,
      "loc": {
        "start": {
          "line": 114,
          "column": 7
        },
        "end": {
          "line": 114,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "typeof",
        "keyword": "typeof",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "typeof",
      "start": 4443,
      "end": 4449,
      "loc": {
        "start": {
          "line": 114,
          "column": 8
        },
        "end": {
          "line": 114,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4450,
      "end": 4457,
      "loc": {
        "start": {
          "line": 114,
          "column": 15
        },
        "end": {
          "line": 114,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 4458,
      "end": 4461,
      "loc": {
        "start": {
          "line": 114,
          "column": 23
        },
        "end": {
          "line": 114,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "object",
      "start": 4462,
      "end": 4470,
      "loc": {
        "start": {
          "line": 114,
          "column": 27
        },
        "end": {
          "line": 114,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4471,
      "end": 4472,
      "loc": {
        "start": {
          "line": 114,
          "column": 36
        },
        "end": {
          "line": 114,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4481,
      "end": 4488,
      "loc": {
        "start": {
          "line": 115,
          "column": 8
        },
        "end": {
          "line": 115,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4489,
      "end": 4490,
      "loc": {
        "start": {
          "line": 115,
          "column": 16
        },
        "end": {
          "line": 115,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 4491,
      "end": 4495,
      "loc": {
        "start": {
          "line": 115,
          "column": 18
        },
        "end": {
          "line": 115,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4495,
      "end": 4496,
      "loc": {
        "start": {
          "line": 115,
          "column": 22
        },
        "end": {
          "line": 115,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4496,
      "end": 4503,
      "loc": {
        "start": {
          "line": 115,
          "column": 23
        },
        "end": {
          "line": 115,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4503,
      "end": 4504,
      "loc": {
        "start": {
          "line": 115,
          "column": 30
        },
        "end": {
          "line": 115,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4504,
      "end": 4505,
      "loc": {
        "start": {
          "line": 115,
          "column": 31
        },
        "end": {
          "line": 115,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 4510,
      "end": 4513,
      "loc": {
        "start": {
          "line": 116,
          "column": 4
        },
        "end": {
          "line": 116,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "path",
      "start": 4514,
      "end": 4518,
      "loc": {
        "start": {
          "line": 116,
          "column": 8
        },
        "end": {
          "line": 116,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4519,
      "end": 4520,
      "loc": {
        "start": {
          "line": 116,
          "column": 13
        },
        "end": {
          "line": 116,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4521,
      "end": 4522,
      "loc": {
        "start": {
          "line": 116,
          "column": 15
        },
        "end": {
          "line": 116,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "normalizeName",
      "start": 4522,
      "end": 4535,
      "loc": {
        "start": {
          "line": 116,
          "column": 16
        },
        "end": {
          "line": 116,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4535,
      "end": 4536,
      "loc": {
        "start": {
          "line": 116,
          "column": 29
        },
        "end": {
          "line": 116,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4536,
      "end": 4543,
      "loc": {
        "start": {
          "line": 116,
          "column": 30
        },
        "end": {
          "line": 116,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4543,
      "end": 4544,
      "loc": {
        "start": {
          "line": 116,
          "column": 37
        },
        "end": {
          "line": 116,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 4544,
      "end": 4548,
      "loc": {
        "start": {
          "line": 116,
          "column": 38
        },
        "end": {
          "line": 116,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4548,
      "end": 4549,
      "loc": {
        "start": {
          "line": 116,
          "column": 42
        },
        "end": {
          "line": 116,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4549,
      "end": 4550,
      "loc": {
        "start": {
          "line": 116,
          "column": 43
        },
        "end": {
          "line": 116,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4550,
      "end": 4551,
      "loc": {
        "start": {
          "line": 116,
          "column": 44
        },
        "end": {
          "line": 116,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4552,
      "end": 4558,
      "loc": {
        "start": {
          "line": 116,
          "column": 46
        },
        "end": {
          "line": 116,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4559,
      "end": 4560,
      "loc": {
        "start": {
          "line": 116,
          "column": 53
        },
        "end": {
          "line": 116,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "feature",
      "start": 4561,
      "end": 4568,
      "loc": {
        "start": {
          "line": 116,
          "column": 55
        },
        "end": {
          "line": 116,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4568,
      "end": 4569,
      "loc": {
        "start": {
          "line": 116,
          "column": 62
        },
        "end": {
          "line": 116,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "while",
        "keyword": "while",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "while",
      "start": 4574,
      "end": 4579,
      "loc": {
        "start": {
          "line": 117,
          "column": 4
        },
        "end": {
          "line": 117,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4580,
      "end": 4581,
      "loc": {
        "start": {
          "line": 117,
          "column": 10
        },
        "end": {
          "line": 117,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4581,
      "end": 4587,
      "loc": {
        "start": {
          "line": 117,
          "column": 11
        },
        "end": {
          "line": 117,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 4588,
      "end": 4590,
      "loc": {
        "start": {
          "line": 117,
          "column": 18
        },
        "end": {
          "line": 117,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4591,
      "end": 4597,
      "loc": {
        "start": {
          "line": 117,
          "column": 21
        },
        "end": {
          "line": 117,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4597,
      "end": 4598,
      "loc": {
        "start": {
          "line": 117,
          "column": 27
        },
        "end": {
          "line": 117,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4598,
      "end": 4604,
      "loc": {
        "start": {
          "line": 117,
          "column": 28
        },
        "end": {
          "line": 117,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">",
      "start": 4605,
      "end": 4606,
      "loc": {
        "start": {
          "line": 117,
          "column": 35
        },
        "end": {
          "line": 117,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 4607,
      "end": 4608,
      "loc": {
        "start": {
          "line": 117,
          "column": 37
        },
        "end": {
          "line": 117,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4608,
      "end": 4609,
      "loc": {
        "start": {
          "line": 117,
          "column": 38
        },
        "end": {
          "line": 117,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4610,
      "end": 4611,
      "loc": {
        "start": {
          "line": 117,
          "column": 40
        },
        "end": {
          "line": 117,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4620,
      "end": 4626,
      "loc": {
        "start": {
          "line": 118,
          "column": 8
        },
        "end": {
          "line": 118,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4627,
      "end": 4628,
      "loc": {
        "start": {
          "line": 118,
          "column": 15
        },
        "end": {
          "line": 118,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 4629,
      "end": 4633,
      "loc": {
        "start": {
          "line": 118,
          "column": 17
        },
        "end": {
          "line": 118,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4633,
      "end": 4634,
      "loc": {
        "start": {
          "line": 118,
          "column": 21
        },
        "end": {
          "line": 118,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4634,
      "end": 4640,
      "loc": {
        "start": {
          "line": 118,
          "column": 22
        },
        "end": {
          "line": 118,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4640,
      "end": 4641,
      "loc": {
        "start": {
          "line": 118,
          "column": 28
        },
        "end": {
          "line": 118,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4641,
      "end": 4647,
      "loc": {
        "start": {
          "line": 118,
          "column": 29
        },
        "end": {
          "line": 118,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4647,
      "end": 4648,
      "loc": {
        "start": {
          "line": 118,
          "column": 35
        },
        "end": {
          "line": 118,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4648,
      "end": 4649,
      "loc": {
        "start": {
          "line": 118,
          "column": 36
        },
        "end": {
          "line": 118,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "path",
      "start": 4658,
      "end": 4662,
      "loc": {
        "start": {
          "line": 119,
          "column": 8
        },
        "end": {
          "line": 119,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4662,
      "end": 4663,
      "loc": {
        "start": {
          "line": 119,
          "column": 12
        },
        "end": {
          "line": 119,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 4663,
      "end": 4667,
      "loc": {
        "start": {
          "line": 119,
          "column": 13
        },
        "end": {
          "line": 119,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4667,
      "end": 4668,
      "loc": {
        "start": {
          "line": 119,
          "column": 17
        },
        "end": {
          "line": 119,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "normalizeName",
      "start": 4668,
      "end": 4681,
      "loc": {
        "start": {
          "line": 119,
          "column": 18
        },
        "end": {
          "line": 119,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4681,
      "end": 4682,
      "loc": {
        "start": {
          "line": 119,
          "column": 31
        },
        "end": {
          "line": 119,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parent",
      "start": 4682,
      "end": 4688,
      "loc": {
        "start": {
          "line": 119,
          "column": 32
        },
        "end": {
          "line": 119,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4688,
      "end": 4689,
      "loc": {
        "start": {
          "line": 119,
          "column": 38
        },
        "end": {
          "line": 119,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 4689,
      "end": 4693,
      "loc": {
        "start": {
          "line": 119,
          "column": 39
        },
        "end": {
          "line": 119,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4693,
      "end": 4694,
      "loc": {
        "start": {
          "line": 119,
          "column": 43
        },
        "end": {
          "line": 119,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4694,
      "end": 4695,
      "loc": {
        "start": {
          "line": 119,
          "column": 44
        },
        "end": {
          "line": 119,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4700,
      "end": 4701,
      "loc": {
        "start": {
          "line": 120,
          "column": 4
        },
        "end": {
          "line": 120,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 4706,
      "end": 4712,
      "loc": {
        "start": {
          "line": 121,
          "column": 4
        },
        "end": {
          "line": 121,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "_O.",
      "start": 4713,
      "end": 4718,
      "loc": {
        "start": {
          "line": 121,
          "column": 11
        },
        "end": {
          "line": 121,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 4719,
      "end": 4720,
      "loc": {
        "start": {
          "line": 121,
          "column": 17
        },
        "end": {
          "line": 121,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "path",
      "start": 4721,
      "end": 4725,
      "loc": {
        "start": {
          "line": 121,
          "column": 19
        },
        "end": {
          "line": 121,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4725,
      "end": 4726,
      "loc": {
        "start": {
          "line": 121,
          "column": 23
        },
        "end": {
          "line": 121,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "reverse",
      "start": 4726,
      "end": 4733,
      "loc": {
        "start": {
          "line": 121,
          "column": 24
        },
        "end": {
          "line": 121,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4733,
      "end": 4734,
      "loc": {
        "start": {
          "line": 121,
          "column": 31
        },
        "end": {
          "line": 121,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4734,
      "end": 4735,
      "loc": {
        "start": {
          "line": 121,
          "column": 32
        },
        "end": {
          "line": 121,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4735,
      "end": 4736,
      "loc": {
        "start": {
          "line": 121,
          "column": 33
        },
        "end": {
          "line": 121,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "join",
      "start": 4736,
      "end": 4740,
      "loc": {
        "start": {
          "line": 121,
          "column": 34
        },
        "end": {
          "line": 121,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4740,
      "end": 4741,
      "loc": {
        "start": {
          "line": 121,
          "column": 38
        },
        "end": {
          "line": 121,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": ".",
      "start": 4741,
      "end": 4744,
      "loc": {
        "start": {
          "line": 121,
          "column": 39
        },
        "end": {
          "line": 121,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4744,
      "end": 4745,
      "loc": {
        "start": {
          "line": 121,
          "column": 42
        },
        "end": {
          "line": 121,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4745,
      "end": 4746,
      "loc": {
        "start": {
          "line": 121,
          "column": 43
        },
        "end": {
          "line": 121,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4747,
      "end": 4748,
      "loc": {
        "start": {
          "line": 122,
          "column": 0
        },
        "end": {
          "line": 122,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 4750,
      "end": 4756,
      "loc": {
        "start": {
          "line": 124,
          "column": 0
        },
        "end": {
          "line": 124,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 4757,
      "end": 4762,
      "loc": {
        "start": {
          "line": 124,
          "column": 7
        },
        "end": {
          "line": 124,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "normalizeName",
      "start": 4763,
      "end": 4776,
      "loc": {
        "start": {
          "line": 124,
          "column": 13
        },
        "end": {
          "line": 124,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4777,
      "end": 4778,
      "loc": {
        "start": {
          "line": 124,
          "column": 27
        },
        "end": {
          "line": 124,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 4779,
      "end": 4783,
      "loc": {
        "start": {
          "line": 124,
          "column": 29
        },
        "end": {
          "line": 124,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4784,
      "end": 4786,
      "loc": {
        "start": {
          "line": 124,
          "column": 34
        },
        "end": {
          "line": 124,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4787,
      "end": 4788,
      "loc": {
        "start": {
          "line": 124,
          "column": 37
        },
        "end": {
          "line": 124,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 4793,
      "end": 4799,
      "loc": {
        "start": {
          "line": 125,
          "column": 4
        },
        "end": {
          "line": 125,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 4800,
      "end": 4804,
      "loc": {
        "start": {
          "line": 125,
          "column": 11
        },
        "end": {
          "line": 125,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4804,
      "end": 4805,
      "loc": {
        "start": {
          "line": 125,
          "column": 15
        },
        "end": {
          "line": 125,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "replace",
      "start": 4805,
      "end": 4812,
      "loc": {
        "start": {
          "line": 125,
          "column": 16
        },
        "end": {
          "line": 125,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4812,
      "end": 4813,
      "loc": {
        "start": {
          "line": 125,
          "column": 23
        },
        "end": {
          "line": 125,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "regexp",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": {
        "pattern": "(\\s|-|\\r?\\n)",
        "flags": "g"
      },
      "start": 4813,
      "end": 4828,
      "loc": {
        "start": {
          "line": 125,
          "column": 24
        },
        "end": {
          "line": 125,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4828,
      "end": 4829,
      "loc": {
        "start": {
          "line": 125,
          "column": 39
        },
        "end": {
          "line": 125,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "",
      "start": 4830,
      "end": 4832,
      "loc": {
        "start": {
          "line": 125,
          "column": 41
        },
        "end": {
          "line": 125,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4832,
      "end": 4833,
      "loc": {
        "start": {
          "line": 125,
          "column": 43
        },
        "end": {
          "line": 125,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4833,
      "end": 4834,
      "loc": {
        "start": {
          "line": 125,
          "column": 44
        },
        "end": {
          "line": 125,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4835,
      "end": 4836,
      "loc": {
        "start": {
          "line": 126,
          "column": 0
        },
        "end": {
          "line": 126,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4837,
      "end": 4837,
      "loc": {
        "start": {
          "line": 127,
          "column": 0
        },
        "end": {
          "line": 127,
          "column": 0
        }
      }
    }
  ]
}