{
  "type": "Program",
  "start": 0,
  "end": 2564,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 78,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "VariableDeclaration",
      "start": 74,
      "end": 108,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 34
        }
      },
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 80,
          "end": 107,
          "loc": {
            "start": {
              "line": 2,
              "column": 6
            },
            "end": {
              "line": 2,
              "column": 33
            }
          },
          "id": {
            "type": "Identifier",
            "start": 80,
            "end": 87,
            "loc": {
              "start": {
                "line": 2,
                "column": 6
              },
              "end": {
                "line": 2,
                "column": 13
              }
            },
            "name": "resolve",
            "leadingComments": null
          },
          "init": {
            "type": "CallExpression",
            "start": 90,
            "end": 107,
            "loc": {
              "start": {
                "line": 2,
                "column": 16
              },
              "end": {
                "line": 2,
                "column": 33
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 90,
              "end": 96,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 16
                },
                "end": {
                  "line": 2,
                  "column": 22
                }
              },
              "name": "Symbol"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 97,
                "end": 106,
                "loc": {
                  "start": {
                    "line": 2,
                    "column": 23
                  },
                  "end": {
                    "line": 2,
                    "column": 32
                  }
                },
                "value": "resolve",
                "rawValue": "resolve",
                "raw": "'resolve'"
              }
            ]
          },
          "leadingComments": null
        }
      ],
      "kind": "const",
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " Unique symbol to guarantee that external code can't resolve Statements",
          "start": 0,
          "end": 73,
          "loc": {
            "start": {
              "line": 1,
              "column": 0
            },
            "end": {
              "line": 1,
              "column": 73
            }
          },
          "range": [
            0,
            73
          ]
        }
      ]
    },
    {
      "type": "ClassDeclaration",
      "start": 110,
      "end": 688,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 116,
        "end": 130,
        "loc": {
          "start": {
            "line": 4,
            "column": 6
          },
          "end": {
            "line": 4,
            "column": 20
          }
        },
        "name": "StatementsBase"
      },
      "superClass": null,
      "body": {
        "type": "ClassBody",
        "start": 131,
        "end": 688,
        "loc": {
          "start": {
            "line": 4,
            "column": 21
          },
          "end": {
            "line": 27,
            "column": 1
          }
        },
        "body": [
          {
            "type": "MethodDefinition",
            "start": 137,
            "end": 275,
            "loc": {
              "start": {
                "line": 5,
                "column": 4
              },
              "end": {
                "line": 9,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 137,
              "end": 148,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 4
                },
                "end": {
                  "line": 5,
                  "column": 15
                }
              },
              "name": "constructor"
            },
            "static": false,
            "kind": "constructor",
            "value": {
              "type": "FunctionExpression",
              "start": 148,
              "end": 275,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 15
                },
                "end": {
                  "line": 9,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 149,
                  "end": 157,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 16
                    },
                    "end": {
                      "line": 5,
                      "column": 24
                    }
                  },
                  "name": "commands"
                },
                {
                  "type": "Identifier",
                  "start": 159,
                  "end": 166,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 26
                    },
                    "end": {
                      "line": 5,
                      "column": 33
                    }
                  },
                  "name": "promise"
                },
                {
                  "type": "Identifier",
                  "start": 168,
                  "end": 171,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 35
                    },
                    "end": {
                      "line": 5,
                      "column": 38
                    }
                  },
                  "name": "res"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 173,
                "end": 275,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 40
                  },
                  "end": {
                    "line": 9,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 183,
                    "end": 208,
                    "loc": {
                      "start": {
                        "line": 6,
                        "column": 8
                      },
                      "end": {
                        "line": 6,
                        "column": 33
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 183,
                      "end": 207,
                      "loc": {
                        "start": {
                          "line": 6,
                          "column": 8
                        },
                        "end": {
                          "line": 6,
                          "column": 32
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 183,
                        "end": 196,
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 8
                          },
                          "end": {
                            "line": 6,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 183,
                          "end": 187,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 8
                            },
                            "end": {
                              "line": 6,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 188,
                          "end": 196,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 13
                            },
                            "end": {
                              "line": 6,
                              "column": 21
                            }
                          },
                          "name": "commands"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 199,
                        "end": 207,
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 24
                          },
                          "end": {
                            "line": 6,
                            "column": 32
                          }
                        },
                        "name": "commands"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 217,
                    "end": 240,
                    "loc": {
                      "start": {
                        "line": 7,
                        "column": 8
                      },
                      "end": {
                        "line": 7,
                        "column": 31
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 217,
                      "end": 239,
                      "loc": {
                        "start": {
                          "line": 7,
                          "column": 8
                        },
                        "end": {
                          "line": 7,
                          "column": 30
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 217,
                        "end": 229,
                        "loc": {
                          "start": {
                            "line": 7,
                            "column": 8
                          },
                          "end": {
                            "line": 7,
                            "column": 20
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 217,
                          "end": 221,
                          "loc": {
                            "start": {
                              "line": 7,
                              "column": 8
                            },
                            "end": {
                              "line": 7,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 222,
                          "end": 229,
                          "loc": {
                            "start": {
                              "line": 7,
                              "column": 13
                            },
                            "end": {
                              "line": 7,
                              "column": 20
                            }
                          },
                          "name": "promise"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 232,
                        "end": 239,
                        "loc": {
                          "start": {
                            "line": 7,
                            "column": 23
                          },
                          "end": {
                            "line": 7,
                            "column": 30
                          }
                        },
                        "name": "promise"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 249,
                    "end": 269,
                    "loc": {
                      "start": {
                        "line": 8,
                        "column": 8
                      },
                      "end": {
                        "line": 8,
                        "column": 28
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 249,
                      "end": 268,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 8
                        },
                        "end": {
                          "line": 8,
                          "column": 27
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 249,
                        "end": 262,
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 8
                          },
                          "end": {
                            "line": 8,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 249,
                          "end": 253,
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 8
                            },
                            "end": {
                              "line": 8,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 254,
                          "end": 261,
                          "loc": {
                            "start": {
                              "line": 8,
                              "column": 13
                            },
                            "end": {
                              "line": 8,
                              "column": 20
                            }
                          },
                          "name": "resolve"
                        },
                        "computed": true
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 265,
                        "end": 268,
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 24
                          },
                          "end": {
                            "line": 8,
                            "column": 27
                          }
                        },
                        "name": "res"
                      }
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "MethodDefinition",
            "start": 281,
            "end": 384,
            "loc": {
              "start": {
                "line": 11,
                "column": 4
              },
              "end": {
                "line": 13,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 281,
              "end": 285,
              "loc": {
                "start": {
                  "line": 11,
                  "column": 4
                },
                "end": {
                  "line": 11,
                  "column": 8
                }
              },
              "name": "then"
            },
            "static": false,
            "kind": "method",
            "value": {
              "type": "FunctionExpression",
              "start": 285,
              "end": 384,
              "loc": {
                "start": {
                  "line": 11,
                  "column": 8
                },
                "end": {
                  "line": 13,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 286,
                  "end": 297,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 9
                    },
                    "end": {
                      "line": 11,
                      "column": 20
                    }
                  },
                  "name": "onFulfilled"
                },
                {
                  "type": "Identifier",
                  "start": 299,
                  "end": 309,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 22
                    },
                    "end": {
                      "line": 11,
                      "column": 32
                    }
                  },
                  "name": "onRejected"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 311,
                "end": 384,
                "loc": {
                  "start": {
                    "line": 11,
                    "column": 34
                  },
                  "end": {
                    "line": 13,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 321,
                    "end": 378,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 8
                      },
                      "end": {
                        "line": 12,
                        "column": 65
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 328,
                      "end": 377,
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 15
                        },
                        "end": {
                          "line": 12,
                          "column": 64
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 332,
                        "end": 346,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 19
                          },
                          "end": {
                            "line": 12,
                            "column": 33
                          }
                        },
                        "name": "StatementsThen"
                      },
                      "arguments": [
                        {
                          "type": "ThisExpression",
                          "start": 347,
                          "end": 351,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 34
                            },
                            "end": {
                              "line": 12,
                              "column": 38
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "start": 353,
                          "end": 364,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 40
                            },
                            "end": {
                              "line": 12,
                              "column": 51
                            }
                          },
                          "name": "onFulfilled"
                        },
                        {
                          "type": "Identifier",
                          "start": 366,
                          "end": 376,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 53
                            },
                            "end": {
                              "line": 12,
                              "column": 63
                            }
                          },
                          "name": "onRejected"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "MethodDefinition",
            "start": 390,
            "end": 473,
            "loc": {
              "start": {
                "line": 15,
                "column": 4
              },
              "end": {
                "line": 17,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 390,
              "end": 393,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 4
                },
                "end": {
                  "line": 15,
                  "column": 7
                }
              },
              "name": "and"
            },
            "static": false,
            "kind": "method",
            "value": {
              "type": "FunctionExpression",
              "start": 393,
              "end": 473,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 7
                },
                "end": {
                  "line": 17,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "RestElement",
                  "start": 394,
                  "end": 407,
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 8
                    },
                    "end": {
                      "line": 15,
                      "column": 21
                    }
                  },
                  "argument": {
                    "type": "Identifier",
                    "start": 397,
                    "end": 407,
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 11
                      },
                      "end": {
                        "line": 15,
                        "column": 21
                      }
                    },
                    "name": "statements"
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 409,
                "end": 473,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 23
                  },
                  "end": {
                    "line": 17,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 419,
                    "end": 467,
                    "loc": {
                      "start": {
                        "line": 16,
                        "column": 8
                      },
                      "end": {
                        "line": 16,
                        "column": 56
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 426,
                      "end": 466,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 15
                        },
                        "end": {
                          "line": 16,
                          "column": 55
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 430,
                        "end": 443,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 19
                          },
                          "end": {
                            "line": 16,
                            "column": 32
                          }
                        },
                        "name": "StatementsAll"
                      },
                      "arguments": [
                        {
                          "type": "ArrayExpression",
                          "start": 444,
                          "end": 465,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 33
                            },
                            "end": {
                              "line": 16,
                              "column": 54
                            }
                          },
                          "elements": [
                            {
                              "type": "ThisExpression",
                              "start": 445,
                              "end": 449,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 34
                                },
                                "end": {
                                  "line": 16,
                                  "column": 38
                                }
                              }
                            },
                            {
                              "type": "SpreadElement",
                              "start": 451,
                              "end": 464,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 40
                                },
                                "end": {
                                  "line": 16,
                                  "column": 53
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 454,
                                "end": 464,
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 53
                                  }
                                },
                                "name": "statements"
                              }
                            }
                          ]
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "MethodDefinition",
            "start": 479,
            "end": 555,
            "loc": {
              "start": {
                "line": 19,
                "column": 4
              },
              "end": {
                "line": 21,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 486,
              "end": 489,
              "loc": {
                "start": {
                  "line": 19,
                  "column": 11
                },
                "end": {
                  "line": 19,
                  "column": 14
                }
              },
              "name": "all"
            },
            "static": true,
            "kind": "method",
            "value": {
              "type": "FunctionExpression",
              "start": 489,
              "end": 555,
              "loc": {
                "start": {
                  "line": 19,
                  "column": 14
                },
                "end": {
                  "line": 21,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 490,
                  "end": 500,
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 15
                    },
                    "end": {
                      "line": 19,
                      "column": 25
                    }
                  },
                  "name": "statements"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 502,
                "end": 555,
                "loc": {
                  "start": {
                    "line": 19,
                    "column": 27
                  },
                  "end": {
                    "line": 21,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 512,
                    "end": 549,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 8
                      },
                      "end": {
                        "line": 20,
                        "column": 45
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 519,
                      "end": 548,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 15
                        },
                        "end": {
                          "line": 20,
                          "column": 44
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 523,
                        "end": 536,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 19
                          },
                          "end": {
                            "line": 20,
                            "column": 32
                          }
                        },
                        "name": "StatementsAll"
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 537,
                          "end": 547,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 33
                            },
                            "end": {
                              "line": 20,
                              "column": 43
                            }
                          },
                          "name": "statements"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "MethodDefinition",
            "start": 561,
            "end": 686,
            "loc": {
              "start": {
                "line": 23,
                "column": 4
              },
              "end": {
                "line": 26,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 561,
              "end": 568,
              "loc": {
                "start": {
                  "line": 23,
                  "column": 4
                },
                "end": {
                  "line": 23,
                  "column": 11
                }
              },
              "name": "execute"
            },
            "static": false,
            "kind": "method",
            "value": {
              "type": "FunctionExpression",
              "start": 568,
              "end": 686,
              "loc": {
                "start": {
                  "line": 23,
                  "column": 11
                },
                "end": {
                  "line": 26,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 569,
                  "end": 575,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 12
                    },
                    "end": {
                      "line": 23,
                      "column": 18
                    }
                  },
                  "name": "socket"
                },
                {
                  "type": "Identifier",
                  "start": 577,
                  "end": 584,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 20
                    },
                    "end": {
                      "line": 23,
                      "column": 27
                    }
                  },
                  "name": "factory"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 586,
                "end": 686,
                "loc": {
                  "start": {
                    "line": 23,
                    "column": 29
                  },
                  "end": {
                    "line": 26,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 596,
                    "end": 651,
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 8
                      },
                      "end": {
                        "line": 24,
                        "column": 63
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 596,
                      "end": 650,
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 8
                        },
                        "end": {
                          "line": 24,
                          "column": 62
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 596,
                        "end": 609,
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 8
                          },
                          "end": {
                            "line": 24,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 596,
                          "end": 600,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 601,
                          "end": 608,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 13
                            },
                            "end": {
                              "line": 24,
                              "column": 20
                            }
                          },
                          "name": "resolve"
                        },
                        "computed": true
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 610,
                          "end": 649,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 22
                            },
                            "end": {
                              "line": 24,
                              "column": 61
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 610,
                            "end": 617,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 22
                              },
                              "end": {
                                "line": 24,
                                "column": 29
                              }
                            },
                            "name": "execute"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 618,
                              "end": 624,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 30
                                },
                                "end": {
                                  "line": 24,
                                  "column": 36
                                }
                              },
                              "name": "socket"
                            },
                            {
                              "type": "MemberExpression",
                              "start": 626,
                              "end": 639,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 38
                                },
                                "end": {
                                  "line": 24,
                                  "column": 51
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 626,
                                "end": 630,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 42
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 631,
                                "end": 639,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 51
                                  }
                                },
                                "name": "commands"
                              },
                              "computed": false
                            },
                            {
                              "type": "Identifier",
                              "start": 641,
                              "end": 648,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 53
                                },
                                "end": {
                                  "line": 24,
                                  "column": 60
                                }
                              },
                              "name": "factory"
                            }
                          ]
                        }
                      ]
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 660,
                    "end": 680,
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 8
                      },
                      "end": {
                        "line": 25,
                        "column": 28
                      }
                    },
                    "argument": {
                      "type": "MemberExpression",
                      "start": 667,
                      "end": 679,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 15
                        },
                        "end": {
                          "line": 25,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "ThisExpression",
                        "start": 667,
                        "end": 671,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 15
                          },
                          "end": {
                            "line": 25,
                            "column": 19
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 672,
                        "end": 679,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 20
                          },
                          "end": {
                            "line": 25,
                            "column": 27
                          }
                        },
                        "name": "promise"
                      },
                      "computed": false
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    {
      "type": "ExportDefaultDeclaration",
      "start": 690,
      "end": 875,
      "loc": {
        "start": {
          "line": 29,
          "column": 0
        },
        "end": {
          "line": 34,
          "column": 1
        }
      },
      "declaration": {
        "type": "ClassDeclaration",
        "start": 705,
        "end": 875,
        "loc": {
          "start": {
            "line": 29,
            "column": 15
          },
          "end": {
            "line": 34,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 711,
          "end": 721,
          "loc": {
            "start": {
              "line": 29,
              "column": 21
            },
            "end": {
              "line": 29,
              "column": 31
            }
          },
          "name": "Statements"
        },
        "superClass": {
          "type": "Identifier",
          "start": 730,
          "end": 744,
          "loc": {
            "start": {
              "line": 29,
              "column": 40
            },
            "end": {
              "line": 29,
              "column": 54
            }
          },
          "name": "StatementsBase"
        },
        "body": {
          "type": "ClassBody",
          "start": 745,
          "end": 875,
          "loc": {
            "start": {
              "line": 29,
              "column": 55
            },
            "end": {
              "line": 34,
              "column": 1
            }
          },
          "body": [
            {
              "type": "MethodDefinition",
              "start": 751,
              "end": 873,
              "loc": {
                "start": {
                  "line": 30,
                  "column": 4
                },
                "end": {
                  "line": 33,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 751,
                "end": 762,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 4
                  },
                  "end": {
                    "line": 30,
                    "column": 15
                  }
                },
                "name": "constructor"
              },
              "static": false,
              "kind": "constructor",
              "value": {
                "type": "FunctionExpression",
                "start": 762,
                "end": 873,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 15
                  },
                  "end": {
                    "line": 33,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 763,
                    "end": 771,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 16
                      },
                      "end": {
                        "line": 30,
                        "column": 24
                      }
                    },
                    "name": "commands"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 773,
                  "end": 873,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 26
                    },
                    "end": {
                      "line": 33,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 783,
                      "end": 828,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 8
                        },
                        "end": {
                          "line": 31,
                          "column": 53
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 787,
                          "end": 790,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 12
                            },
                            "end": {
                              "line": 31,
                              "column": 15
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 787,
                            "end": 790,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 12
                              },
                              "end": {
                                "line": 31,
                                "column": 15
                              }
                            },
                            "name": "res"
                          },
                          "init": null
                        },
                        {
                          "type": "VariableDeclarator",
                          "start": 792,
                          "end": 827,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 17
                            },
                            "end": {
                              "line": 31,
                              "column": 52
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 792,
                            "end": 799,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 17
                              },
                              "end": {
                                "line": 31,
                                "column": 24
                              }
                            },
                            "name": "promise"
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 802,
                            "end": 827,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 27
                              },
                              "end": {
                                "line": 31,
                                "column": 52
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 806,
                              "end": 813,
                              "loc": {
                                "start": {
                                  "line": 31,
                                  "column": 31
                                },
                                "end": {
                                  "line": 31,
                                  "column": 38
                                }
                              },
                              "name": "Promise"
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 814,
                                "end": 826,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 51
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 814,
                                    "end": 815,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 40
                                      }
                                    },
                                    "name": "r"
                                  }
                                ],
                                "body": {
                                  "type": "AssignmentExpression",
                                  "start": 819,
                                  "end": 826,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 51
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 819,
                                    "end": 822,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 47
                                      }
                                    },
                                    "name": "res"
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "start": 825,
                                    "end": 826,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 51
                                      }
                                    },
                                    "name": "r"
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 837,
                      "end": 867,
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 8
                        },
                        "end": {
                          "line": 32,
                          "column": 38
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 837,
                        "end": 866,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 8
                          },
                          "end": {
                            "line": 32,
                            "column": 37
                          }
                        },
                        "callee": {
                          "type": "Super",
                          "start": 837,
                          "end": 842,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 8
                            },
                            "end": {
                              "line": 32,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 843,
                            "end": 851,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 14
                              },
                              "end": {
                                "line": 32,
                                "column": 22
                              }
                            },
                            "name": "commands"
                          },
                          {
                            "type": "Identifier",
                            "start": 853,
                            "end": 860,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 24
                              },
                              "end": {
                                "line": 32,
                                "column": 31
                              }
                            },
                            "name": "promise"
                          },
                          {
                            "type": "Identifier",
                            "start": 862,
                            "end": 865,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 33
                              },
                              "end": {
                                "line": 32,
                                "column": 36
                              }
                            },
                            "name": "res"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      }
    },
    {
      "type": "ClassDeclaration",
      "start": 877,
      "end": 1752,
      "loc": {
        "start": {
          "line": 36,
          "column": 0
        },
        "end": {
          "line": 57,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 883,
        "end": 896,
        "loc": {
          "start": {
            "line": 36,
            "column": 6
          },
          "end": {
            "line": 36,
            "column": 19
          }
        },
        "name": "StatementsAll"
      },
      "superClass": {
        "type": "Identifier",
        "start": 905,
        "end": 919,
        "loc": {
          "start": {
            "line": 36,
            "column": 28
          },
          "end": {
            "line": 36,
            "column": 42
          }
        },
        "name": "StatementsBase"
      },
      "body": {
        "type": "ClassBody",
        "start": 920,
        "end": 1752,
        "loc": {
          "start": {
            "line": 36,
            "column": 43
          },
          "end": {
            "line": 57,
            "column": 1
          }
        },
        "body": [
          {
            "type": "MethodDefinition",
            "start": 926,
            "end": 1750,
            "loc": {
              "start": {
                "line": 37,
                "column": 4
              },
              "end": {
                "line": 56,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 926,
              "end": 937,
              "loc": {
                "start": {
                  "line": 37,
                  "column": 4
                },
                "end": {
                  "line": 37,
                  "column": 15
                }
              },
              "name": "constructor"
            },
            "static": false,
            "kind": "constructor",
            "value": {
              "type": "FunctionExpression",
              "start": 937,
              "end": 1750,
              "loc": {
                "start": {
                  "line": 37,
                  "column": 15
                },
                "end": {
                  "line": 56,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 938,
                  "end": 948,
                  "loc": {
                    "start": {
                      "line": 37,
                      "column": 16
                    },
                    "end": {
                      "line": 37,
                      "column": 26
                    }
                  },
                  "name": "statements"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 950,
                "end": 1750,
                "loc": {
                  "start": {
                    "line": 37,
                    "column": 28
                  },
                  "end": {
                    "line": 56,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 960,
                    "end": 1744,
                    "loc": {
                      "start": {
                        "line": 38,
                        "column": 8
                      },
                      "end": {
                        "line": 55,
                        "column": 10
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 960,
                      "end": 1743,
                      "loc": {
                        "start": {
                          "line": 38,
                          "column": 8
                        },
                        "end": {
                          "line": 55,
                          "column": 9
                        }
                      },
                      "callee": {
                        "type": "Super",
                        "start": 960,
                        "end": 965,
                        "loc": {
                          "start": {
                            "line": 38,
                            "column": 8
                          },
                          "end": {
                            "line": 38,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 979,
                          "end": 1024,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 12
                            },
                            "end": {
                              "line": 39,
                              "column": 57
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 979,
                            "end": 988,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 12
                              },
                              "end": {
                                "line": 39,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ArrayExpression",
                              "start": 979,
                              "end": 981,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 12
                                },
                                "end": {
                                  "line": 39,
                                  "column": 14
                                }
                              },
                              "elements": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 982,
                              "end": 988,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 15
                                },
                                "end": {
                                  "line": 39,
                                  "column": 21
                                }
                              },
                              "name": "concat"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "SpreadElement",
                              "start": 989,
                              "end": 1023,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 22
                                },
                                "end": {
                                  "line": 39,
                                  "column": 56
                                }
                              },
                              "argument": {
                                "type": "CallExpression",
                                "start": 992,
                                "end": 1023,
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 56
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 992,
                                  "end": 1006,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 992,
                                    "end": 1002,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 35
                                      }
                                    },
                                    "name": "statements"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1003,
                                    "end": 1006,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 39
                                      }
                                    },
                                    "name": "map"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "ArrowFunctionExpression",
                                    "start": 1007,
                                    "end": 1022,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 55
                                      }
                                    },
                                    "id": null,
                                    "generator": false,
                                    "expression": true,
                                    "async": false,
                                    "params": [
                                      {
                                        "type": "Identifier",
                                        "start": 1007,
                                        "end": 1008,
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 41
                                          }
                                        },
                                        "name": "s"
                                      }
                                    ],
                                    "body": {
                                      "type": "MemberExpression",
                                      "start": 1012,
                                      "end": 1022,
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 45
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 55
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1012,
                                        "end": 1013,
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 45
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 46
                                          }
                                        },
                                        "name": "s"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1014,
                                        "end": 1022,
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 55
                                          }
                                        },
                                        "name": "commands"
                                      },
                                      "computed": false
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        {
                          "type": "CallExpression",
                          "start": 1038,
                          "end": 1081,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 12
                            },
                            "end": {
                              "line": 40,
                              "column": 55
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1038,
                            "end": 1049,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 12
                              },
                              "end": {
                                "line": 40,
                                "column": 23
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1038,
                              "end": 1045,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 12
                                },
                                "end": {
                                  "line": 40,
                                  "column": 19
                                }
                              },
                              "name": "Promise"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1046,
                              "end": 1049,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 20
                                },
                                "end": {
                                  "line": 40,
                                  "column": 23
                                }
                              },
                              "name": "all"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "CallExpression",
                              "start": 1050,
                              "end": 1080,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 24
                                },
                                "end": {
                                  "line": 40,
                                  "column": 54
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1050,
                                "end": 1064,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 38
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1050,
                                  "end": 1060,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 34
                                    }
                                  },
                                  "name": "statements"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1061,
                                  "end": 1064,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 38
                                    }
                                  },
                                  "name": "map"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "ArrowFunctionExpression",
                                  "start": 1065,
                                  "end": 1079,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 53
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": true,
                                  "async": false,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "start": 1065,
                                      "end": 1066,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 40
                                        }
                                      },
                                      "name": "s"
                                    }
                                  ],
                                  "body": {
                                    "type": "MemberExpression",
                                    "start": 1070,
                                    "end": 1079,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 53
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1070,
                                      "end": 1071,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 45
                                        }
                                      },
                                      "name": "s"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1072,
                                      "end": 1079,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 53
                                        }
                                      },
                                      "name": "promise"
                                    },
                                    "computed": false
                                  }
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "type": "FunctionExpression",
                          "start": 1095,
                          "end": 1733,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 12
                            },
                            "end": {
                              "line": 54,
                              "column": 13
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": false,
                          "async": false,
                          "params": [
                            {
                              "type": "Identifier",
                              "start": 1104,
                              "end": 1111,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 21
                                },
                                "end": {
                                  "line": 41,
                                  "column": 28
                                }
                              },
                              "name": "promise"
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "start": 1113,
                            "end": 1733,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 30
                              },
                              "end": {
                                "line": 54,
                                "column": 13
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 1131,
                                "end": 1719,
                                "loc": {
                                  "start": {
                                    "line": 42,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 19
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 1131,
                                  "end": 1718,
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 53,
                                      "column": 18
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1131,
                                    "end": 1143,
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1131,
                                      "end": 1138,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 23
                                        }
                                      },
                                      "name": "promise"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1139,
                                      "end": 1143,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 28
                                        }
                                      },
                                      "name": "then"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "ArrowFunctionExpression",
                                      "start": 1144,
                                      "end": 1518,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 49,
                                          "column": 17
                                        }
                                      },
                                      "id": null,
                                      "generator": false,
                                      "expression": false,
                                      "async": false,
                                      "params": [
                                        {
                                          "type": "Identifier",
                                          "start": 1144,
                                          "end": 1149,
                                          "loc": {
                                            "start": {
                                              "line": 42,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 42,
                                              "column": 34
                                            }
                                          },
                                          "name": "value"
                                        }
                                      ],
                                      "body": {
                                        "type": "BlockStatement",
                                        "start": 1153,
                                        "end": 1518,
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 49,
                                            "column": 17
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "VariableDeclaration",
                                            "start": 1175,
                                            "end": 1192,
                                            "loc": {
                                              "start": {
                                                "line": 43,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 43,
                                                "column": 37
                                              }
                                            },
                                            "declarations": [
                                              {
                                                "type": "VariableDeclarator",
                                                "start": 1179,
                                                "end": 1191,
                                                "loc": {
                                                  "start": {
                                                    "line": 43,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 43,
                                                    "column": 36
                                                  }
                                                },
                                                "id": {
                                                  "type": "Identifier",
                                                  "start": 1179,
                                                  "end": 1187,
                                                  "loc": {
                                                    "start": {
                                                      "line": 43,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 43,
                                                      "column": 32
                                                    }
                                                  },
                                                  "name": "nresults"
                                                },
                                                "init": {
                                                  "type": "Literal",
                                                  "start": 1190,
                                                  "end": 1191,
                                                  "loc": {
                                                    "start": {
                                                      "line": 43,
                                                      "column": 35
                                                    },
                                                    "end": {
                                                      "line": 43,
                                                      "column": 36
                                                    }
                                                  },
                                                  "value": 0,
                                                  "rawValue": 0,
                                                  "raw": "0"
                                                }
                                              }
                                            ],
                                            "kind": "let",
                                            "trailingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": " fulfill each substatement with its slice of results",
                                                "start": 1213,
                                                "end": 1267,
                                                "loc": {
                                                  "start": {
                                                    "line": 44,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 44,
                                                    "column": 74
                                                  }
                                                },
                                                "range": [
                                                  1213,
                                                  1267
                                                ]
                                              }
                                            ]
                                          },
                                          {
                                            "type": "ForOfStatement",
                                            "start": 1288,
                                            "end": 1500,
                                            "loc": {
                                              "start": {
                                                "line": 45,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 48,
                                                "column": 21
                                              }
                                            },
                                            "left": {
                                              "type": "VariableDeclaration",
                                              "start": 1293,
                                              "end": 1300,
                                              "loc": {
                                                "start": {
                                                  "line": 45,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 45,
                                                  "column": 32
                                                }
                                              },
                                              "declarations": [
                                                {
                                                  "type": "VariableDeclarator",
                                                  "start": 1299,
                                                  "end": 1300,
                                                  "loc": {
                                                    "start": {
                                                      "line": 45,
                                                      "column": 31
                                                    },
                                                    "end": {
                                                      "line": 45,
                                                      "column": 32
                                                    }
                                                  },
                                                  "id": {
                                                    "type": "Identifier",
                                                    "start": 1299,
                                                    "end": 1300,
                                                    "loc": {
                                                      "start": {
                                                        "line": 45,
                                                        "column": 31
                                                      },
                                                      "end": {
                                                        "line": 45,
                                                        "column": 32
                                                      }
                                                    },
                                                    "name": "s",
                                                    "leadingComments": null
                                                  },
                                                  "init": null,
                                                  "leadingComments": null
                                                }
                                              ],
                                              "kind": "const",
                                              "leadingComments": null
                                            },
                                            "right": {
                                              "type": "Identifier",
                                              "start": 1304,
                                              "end": 1314,
                                              "loc": {
                                                "start": {
                                                  "line": 45,
                                                  "column": 36
                                                },
                                                "end": {
                                                  "line": 45,
                                                  "column": 46
                                                }
                                              },
                                              "name": "statements"
                                            },
                                            "body": {
                                              "type": "BlockStatement",
                                              "start": 1316,
                                              "end": 1500,
                                              "loc": {
                                                "start": {
                                                  "line": 45,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 48,
                                                  "column": 21
                                                }
                                              },
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 1342,
                                                  "end": 1423,
                                                  "loc": {
                                                    "start": {
                                                      "line": 46,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 46,
                                                      "column": 105
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "CallExpression",
                                                    "start": 1342,
                                                    "end": 1422,
                                                    "loc": {
                                                      "start": {
                                                        "line": 46,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 46,
                                                        "column": 104
                                                      }
                                                    },
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "start": 1342,
                                                      "end": 1352,
                                                      "loc": {
                                                        "start": {
                                                          "line": 46,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 46,
                                                          "column": 34
                                                        }
                                                      },
                                                      "object": {
                                                        "type": "Identifier",
                                                        "start": 1342,
                                                        "end": 1343,
                                                        "loc": {
                                                          "start": {
                                                            "line": 46,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 46,
                                                            "column": 25
                                                          }
                                                        },
                                                        "name": "s"
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "start": 1344,
                                                        "end": 1351,
                                                        "loc": {
                                                          "start": {
                                                            "line": 46,
                                                            "column": 26
                                                          },
                                                          "end": {
                                                            "line": 46,
                                                            "column": 33
                                                          }
                                                        },
                                                        "name": "resolve"
                                                      },
                                                      "computed": true
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "CallExpression",
                                                        "start": 1353,
                                                        "end": 1421,
                                                        "loc": {
                                                          "start": {
                                                            "line": 46,
                                                            "column": 35
                                                          },
                                                          "end": {
                                                            "line": 46,
                                                            "column": 103
                                                          }
                                                        },
                                                        "callee": {
                                                          "type": "MemberExpression",
                                                          "start": 1353,
                                                          "end": 1368,
                                                          "loc": {
                                                            "start": {
                                                              "line": 46,
                                                              "column": 35
                                                            },
                                                            "end": {
                                                              "line": 46,
                                                              "column": 50
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 1353,
                                                            "end": 1360,
                                                            "loc": {
                                                              "start": {
                                                                "line": 46,
                                                                "column": 35
                                                              },
                                                              "end": {
                                                                "line": 46,
                                                                "column": 42
                                                              }
                                                            },
                                                            "name": "Promise"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 1361,
                                                            "end": 1368,
                                                            "loc": {
                                                              "start": {
                                                                "line": 46,
                                                                "column": 43
                                                              },
                                                              "end": {
                                                                "line": 46,
                                                                "column": 50
                                                              }
                                                            },
                                                            "name": "resolve"
                                                          },
                                                          "computed": false
                                                        },
                                                        "arguments": [
                                                          {
                                                            "type": "CallExpression",
                                                            "start": 1369,
                                                            "end": 1420,
                                                            "loc": {
                                                              "start": {
                                                                "line": 46,
                                                                "column": 51
                                                              },
                                                              "end": {
                                                                "line": 46,
                                                                "column": 102
                                                              }
                                                            },
                                                            "callee": {
                                                              "type": "MemberExpression",
                                                              "start": 1369,
                                                              "end": 1380,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 46,
                                                                  "column": 51
                                                                },
                                                                "end": {
                                                                  "line": 46,
                                                                  "column": 62
                                                                }
                                                              },
                                                              "object": {
                                                                "type": "Identifier",
                                                                "start": 1369,
                                                                "end": 1374,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 46,
                                                                    "column": 51
                                                                  },
                                                                  "end": {
                                                                    "line": 46,
                                                                    "column": 56
                                                                  }
                                                                },
                                                                "name": "value"
                                                              },
                                                              "property": {
                                                                "type": "Identifier",
                                                                "start": 1375,
                                                                "end": 1380,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 46,
                                                                    "column": 57
                                                                  },
                                                                  "end": {
                                                                    "line": 46,
                                                                    "column": 62
                                                                  }
                                                                },
                                                                "name": "slice"
                                                              },
                                                              "computed": false
                                                            },
                                                            "arguments": [
                                                              {
                                                                "type": "Identifier",
                                                                "start": 1381,
                                                                "end": 1389,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 46,
                                                                    "column": 63
                                                                  },
                                                                  "end": {
                                                                    "line": 46,
                                                                    "column": 71
                                                                  }
                                                                },
                                                                "name": "nresults"
                                                              },
                                                              {
                                                                "type": "BinaryExpression",
                                                                "start": 1391,
                                                                "end": 1419,
                                                                "loc": {
                                                                  "start": {
                                                                    "line": 46,
                                                                    "column": 73
                                                                  },
                                                                  "end": {
                                                                    "line": 46,
                                                                    "column": 101
                                                                  }
                                                                },
                                                                "left": {
                                                                  "type": "Identifier",
                                                                  "start": 1391,
                                                                  "end": 1399,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 46,
                                                                      "column": 73
                                                                    },
                                                                    "end": {
                                                                      "line": 46,
                                                                      "column": 81
                                                                    }
                                                                  },
                                                                  "name": "nresults"
                                                                },
                                                                "operator": "+",
                                                                "right": {
                                                                  "type": "MemberExpression",
                                                                  "start": 1402,
                                                                  "end": 1419,
                                                                  "loc": {
                                                                    "start": {
                                                                      "line": 46,
                                                                      "column": 84
                                                                    },
                                                                    "end": {
                                                                      "line": 46,
                                                                      "column": 101
                                                                    }
                                                                  },
                                                                  "object": {
                                                                    "type": "MemberExpression",
                                                                    "start": 1402,
                                                                    "end": 1412,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 46,
                                                                        "column": 84
                                                                      },
                                                                      "end": {
                                                                        "line": 46,
                                                                        "column": 94
                                                                      }
                                                                    },
                                                                    "object": {
                                                                      "type": "Identifier",
                                                                      "start": 1402,
                                                                      "end": 1403,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 46,
                                                                          "column": 84
                                                                        },
                                                                        "end": {
                                                                          "line": 46,
                                                                          "column": 85
                                                                        }
                                                                      },
                                                                      "name": "s"
                                                                    },
                                                                    "property": {
                                                                      "type": "Identifier",
                                                                      "start": 1404,
                                                                      "end": 1412,
                                                                      "loc": {
                                                                        "start": {
                                                                          "line": 46,
                                                                          "column": 86
                                                                        },
                                                                        "end": {
                                                                          "line": 46,
                                                                          "column": 94
                                                                        }
                                                                      },
                                                                      "name": "commands"
                                                                    },
                                                                    "computed": false
                                                                  },
                                                                  "property": {
                                                                    "type": "Identifier",
                                                                    "start": 1413,
                                                                    "end": 1419,
                                                                    "loc": {
                                                                      "start": {
                                                                        "line": 46,
                                                                        "column": 95
                                                                      },
                                                                      "end": {
                                                                        "line": 46,
                                                                        "column": 101
                                                                      }
                                                                    },
                                                                    "name": "length"
                                                                  },
                                                                  "computed": false
                                                                }
                                                              }
                                                            ]
                                                          }
                                                        ]
                                                      }
                                                    ]
                                                  }
                                                },
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 1448,
                                                  "end": 1478,
                                                  "loc": {
                                                    "start": {
                                                      "line": 47,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 47,
                                                      "column": 54
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "AssignmentExpression",
                                                    "start": 1448,
                                                    "end": 1477,
                                                    "loc": {
                                                      "start": {
                                                        "line": 47,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 47,
                                                        "column": 53
                                                      }
                                                    },
                                                    "operator": "+=",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 1448,
                                                      "end": 1456,
                                                      "loc": {
                                                        "start": {
                                                          "line": 47,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 47,
                                                          "column": 32
                                                        }
                                                      },
                                                      "name": "nresults"
                                                    },
                                                    "right": {
                                                      "type": "MemberExpression",
                                                      "start": 1460,
                                                      "end": 1477,
                                                      "loc": {
                                                        "start": {
                                                          "line": 47,
                                                          "column": 36
                                                        },
                                                        "end": {
                                                          "line": 47,
                                                          "column": 53
                                                        }
                                                      },
                                                      "object": {
                                                        "type": "MemberExpression",
                                                        "start": 1460,
                                                        "end": 1470,
                                                        "loc": {
                                                          "start": {
                                                            "line": 47,
                                                            "column": 36
                                                          },
                                                          "end": {
                                                            "line": 47,
                                                            "column": 46
                                                          }
                                                        },
                                                        "object": {
                                                          "type": "Identifier",
                                                          "start": 1460,
                                                          "end": 1461,
                                                          "loc": {
                                                            "start": {
                                                              "line": 47,
                                                              "column": 36
                                                            },
                                                            "end": {
                                                              "line": 47,
                                                              "column": 37
                                                            }
                                                          },
                                                          "name": "s"
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "start": 1462,
                                                          "end": 1470,
                                                          "loc": {
                                                            "start": {
                                                              "line": 47,
                                                              "column": 38
                                                            },
                                                            "end": {
                                                              "line": 47,
                                                              "column": 46
                                                            }
                                                          },
                                                          "name": "commands"
                                                        },
                                                        "computed": false
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "start": 1471,
                                                        "end": 1477,
                                                        "loc": {
                                                          "start": {
                                                            "line": 47,
                                                            "column": 47
                                                          },
                                                          "end": {
                                                            "line": 47,
                                                            "column": 53
                                                          }
                                                        },
                                                        "name": "length"
                                                      },
                                                      "computed": false
                                                    }
                                                  }
                                                }
                                              ]
                                            },
                                            "leadingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": " fulfill each substatement with its slice of results",
                                                "start": 1213,
                                                "end": 1267,
                                                "loc": {
                                                  "start": {
                                                    "line": 44,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 44,
                                                    "column": 74
                                                  }
                                                },
                                                "range": [
                                                  1213,
                                                  1267
                                                ]
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      "type": "ArrowFunctionExpression",
                                      "start": 1520,
                                      "end": 1717,
                                      "loc": {
                                        "start": {
                                          "line": 49,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 17
                                        }
                                      },
                                      "id": null,
                                      "generator": false,
                                      "expression": false,
                                      "async": false,
                                      "params": [],
                                      "body": {
                                        "type": "BlockStatement",
                                        "start": 1526,
                                        "end": 1717,
                                        "loc": {
                                          "start": {
                                            "line": 49,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 17
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ForOfStatement",
                                            "start": 1627,
                                            "end": 1699,
                                            "loc": {
                                              "start": {
                                                "line": 51,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 52,
                                                "column": 44
                                              }
                                            },
                                            "left": {
                                              "type": "VariableDeclaration",
                                              "start": 1632,
                                              "end": 1639,
                                              "loc": {
                                                "start": {
                                                  "line": 51,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 51,
                                                  "column": 32
                                                }
                                              },
                                              "declarations": [
                                                {
                                                  "type": "VariableDeclarator",
                                                  "start": 1638,
                                                  "end": 1639,
                                                  "loc": {
                                                    "start": {
                                                      "line": 51,
                                                      "column": 31
                                                    },
                                                    "end": {
                                                      "line": 51,
                                                      "column": 32
                                                    }
                                                  },
                                                  "id": {
                                                    "type": "Identifier",
                                                    "start": 1638,
                                                    "end": 1639,
                                                    "loc": {
                                                      "start": {
                                                        "line": 51,
                                                        "column": 31
                                                      },
                                                      "end": {
                                                        "line": 51,
                                                        "column": 32
                                                      }
                                                    },
                                                    "name": "s",
                                                    "leadingComments": null
                                                  },
                                                  "init": null,
                                                  "leadingComments": null
                                                }
                                              ],
                                              "kind": "const",
                                              "leadingComments": null
                                            },
                                            "right": {
                                              "type": "Identifier",
                                              "start": 1643,
                                              "end": 1653,
                                              "loc": {
                                                "start": {
                                                  "line": 51,
                                                  "column": 36
                                                },
                                                "end": {
                                                  "line": 51,
                                                  "column": 46
                                                }
                                              },
                                              "name": "statements"
                                            },
                                            "body": {
                                              "type": "ExpressionStatement",
                                              "start": 1679,
                                              "end": 1699,
                                              "loc": {
                                                "start": {
                                                  "line": 52,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 52,
                                                  "column": 44
                                                }
                                              },
                                              "expression": {
                                                "type": "CallExpression",
                                                "start": 1679,
                                                "end": 1698,
                                                "loc": {
                                                  "start": {
                                                    "line": 52,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 52,
                                                    "column": 43
                                                  }
                                                },
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "start": 1679,
                                                  "end": 1689,
                                                  "loc": {
                                                    "start": {
                                                      "line": 52,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 52,
                                                      "column": 34
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 1679,
                                                    "end": 1680,
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 25
                                                      }
                                                    },
                                                    "name": "s"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 1681,
                                                    "end": 1688,
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 33
                                                      }
                                                    },
                                                    "name": "resolve"
                                                  },
                                                  "computed": true
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "start": 1690,
                                                    "end": 1697,
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 35
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 42
                                                      }
                                                    },
                                                    "name": "promise"
                                                  }
                                                ]
                                              }
                                            },
                                            "leadingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": " reject each substatement with the same rejection reason",
                                                "start": 1548,
                                                "end": 1606,
                                                "loc": {
                                                  "start": {
                                                    "line": 50,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 50,
                                                    "column": 78
                                                  }
                                                },
                                                "range": [
                                                  1548,
                                                  1606
                                                ]
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    {
      "type": "ClassDeclaration",
      "start": 1754,
      "end": 1953,
      "loc": {
        "start": {
          "line": 59,
          "column": 0
        },
        "end": {
          "line": 63,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 1760,
        "end": 1774,
        "loc": {
          "start": {
            "line": 59,
            "column": 6
          },
          "end": {
            "line": 59,
            "column": 20
          }
        },
        "name": "StatementsThen"
      },
      "superClass": {
        "type": "Identifier",
        "start": 1783,
        "end": 1797,
        "loc": {
          "start": {
            "line": 59,
            "column": 29
          },
          "end": {
            "line": 59,
            "column": 43
          }
        },
        "name": "StatementsBase"
      },
      "body": {
        "type": "ClassBody",
        "start": 1798,
        "end": 1953,
        "loc": {
          "start": {
            "line": 59,
            "column": 44
          },
          "end": {
            "line": 63,
            "column": 1
          }
        },
        "body": [
          {
            "type": "MethodDefinition",
            "start": 1804,
            "end": 1951,
            "loc": {
              "start": {
                "line": 60,
                "column": 4
              },
              "end": {
                "line": 62,
                "column": 5
              }
            },
            "computed": false,
            "key": {
              "type": "Identifier",
              "start": 1804,
              "end": 1815,
              "loc": {
                "start": {
                  "line": 60,
                  "column": 4
                },
                "end": {
                  "line": 60,
                  "column": 15
                }
              },
              "name": "constructor"
            },
            "static": false,
            "kind": "constructor",
            "value": {
              "type": "FunctionExpression",
              "start": 1815,
              "end": 1951,
              "loc": {
                "start": {
                  "line": 60,
                  "column": 15
                },
                "end": {
                  "line": 62,
                  "column": 5
                }
              },
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 1816,
                  "end": 1822,
                  "loc": {
                    "start": {
                      "line": 60,
                      "column": 16
                    },
                    "end": {
                      "line": 60,
                      "column": 22
                    }
                  },
                  "name": "before"
                },
                {
                  "type": "Identifier",
                  "start": 1824,
                  "end": 1835,
                  "loc": {
                    "start": {
                      "line": 60,
                      "column": 24
                    },
                    "end": {
                      "line": 60,
                      "column": 35
                    }
                  },
                  "name": "onFulfilled"
                },
                {
                  "type": "Identifier",
                  "start": 1837,
                  "end": 1847,
                  "loc": {
                    "start": {
                      "line": 60,
                      "column": 37
                    },
                    "end": {
                      "line": 60,
                      "column": 47
                    }
                  },
                  "name": "onRejected"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 1849,
                "end": 1951,
                "loc": {
                  "start": {
                    "line": 60,
                    "column": 49
                  },
                  "end": {
                    "line": 62,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 1859,
                    "end": 1945,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 8
                      },
                      "end": {
                        "line": 61,
                        "column": 94
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 1859,
                      "end": 1944,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 8
                        },
                        "end": {
                          "line": 61,
                          "column": 93
                        }
                      },
                      "callee": {
                        "type": "Super",
                        "start": 1859,
                        "end": 1864,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 8
                          },
                          "end": {
                            "line": 61,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 1865,
                          "end": 1880,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 14
                            },
                            "end": {
                              "line": 61,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1865,
                            "end": 1871,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 14
                              },
                              "end": {
                                "line": 61,
                                "column": 20
                              }
                            },
                            "name": "before"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1872,
                            "end": 1880,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 21
                              },
                              "end": {
                                "line": 61,
                                "column": 29
                              }
                            },
                            "name": "commands"
                          },
                          "computed": false
                        },
                        {
                          "type": "CallExpression",
                          "start": 1882,
                          "end": 1926,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 31
                            },
                            "end": {
                              "line": 61,
                              "column": 75
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1882,
                            "end": 1901,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 31
                              },
                              "end": {
                                "line": 61,
                                "column": 50
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1882,
                              "end": 1896,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 31
                                },
                                "end": {
                                  "line": 61,
                                  "column": 45
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1882,
                                "end": 1888,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 37
                                  }
                                },
                                "name": "before"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1889,
                                "end": 1896,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 45
                                  }
                                },
                                "name": "promise"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1897,
                              "end": 1901,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 46
                                },
                                "end": {
                                  "line": 61,
                                  "column": 50
                                }
                              },
                              "name": "then"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1902,
                              "end": 1913,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 51
                                },
                                "end": {
                                  "line": 61,
                                  "column": 62
                                }
                              },
                              "name": "onFulfilled"
                            },
                            {
                              "type": "Identifier",
                              "start": 1915,
                              "end": 1925,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 64
                                },
                                "end": {
                                  "line": 61,
                                  "column": 74
                                }
                              },
                              "name": "onRejected"
                            }
                          ]
                        },
                        {
                          "type": "MemberExpression",
                          "start": 1928,
                          "end": 1943,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 77
                            },
                            "end": {
                              "line": 61,
                              "column": 92
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1928,
                            "end": 1934,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 77
                              },
                              "end": {
                                "line": 61,
                                "column": 83
                              }
                            },
                            "name": "before"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1935,
                            "end": 1942,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 84
                              },
                              "end": {
                                "line": 61,
                                "column": 91
                              }
                            },
                            "name": "resolve"
                          },
                          "computed": true
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    {
      "type": "FunctionDeclaration",
      "start": 1955,
      "end": 2563,
      "loc": {
        "start": {
          "line": 65,
          "column": 0
        },
        "end": {
          "line": 77,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 1970,
        "end": 1977,
        "loc": {
          "start": {
            "line": 65,
            "column": 15
          },
          "end": {
            "line": 65,
            "column": 22
          }
        },
        "name": "execute"
      },
      "generator": false,
      "expression": false,
      "async": true,
      "params": [
        {
          "type": "Identifier",
          "start": 1978,
          "end": 1984,
          "loc": {
            "start": {
              "line": 65,
              "column": 23
            },
            "end": {
              "line": 65,
              "column": 29
            }
          },
          "name": "socket"
        },
        {
          "type": "Identifier",
          "start": 1986,
          "end": 1991,
          "loc": {
            "start": {
              "line": 65,
              "column": 31
            },
            "end": {
              "line": 65,
              "column": 36
            }
          },
          "name": "tasks"
        },
        {
          "type": "Identifier",
          "start": 1993,
          "end": 2000,
          "loc": {
            "start": {
              "line": 65,
              "column": 38
            },
            "end": {
              "line": 65,
              "column": 45
            }
          },
          "name": "factory"
        }
      ],
      "body": {
        "type": "BlockStatement",
        "start": 2002,
        "end": 2563,
        "loc": {
          "start": {
            "line": 65,
            "column": 47
          },
          "end": {
            "line": 77,
            "column": 1
          }
        },
        "body": [
          {
            "type": "VariableDeclaration",
            "start": 2008,
            "end": 2073,
            "loc": {
              "start": {
                "line": 66,
                "column": 4
              },
              "end": {
                "line": 66,
                "column": 69
              }
            },
            "declarations": [
              {
                "type": "VariableDeclarator",
                "start": 2014,
                "end": 2072,
                "loc": {
                  "start": {
                    "line": 66,
                    "column": 10
                  },
                  "end": {
                    "line": 66,
                    "column": 68
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 2014,
                  "end": 2022,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 10
                    },
                    "end": {
                      "line": 66,
                      "column": 18
                    }
                  },
                  "name": "commands"
                },
                "init": {
                  "type": "CallExpression",
                  "start": 2025,
                  "end": 2072,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 21
                    },
                    "end": {
                      "line": 66,
                      "column": 68
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 2025,
                    "end": 2034,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 21
                      },
                      "end": {
                        "line": 66,
                        "column": 30
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 2025,
                      "end": 2030,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 21
                        },
                        "end": {
                          "line": 66,
                          "column": 26
                        }
                      },
                      "name": "tasks"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 2031,
                      "end": 2034,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 27
                        },
                        "end": {
                          "line": 66,
                          "column": 30
                        }
                      },
                      "name": "map"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "ArrowFunctionExpression",
                      "start": 2035,
                      "end": 2071,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 31
                        },
                        "end": {
                          "line": 66,
                          "column": 67
                        }
                      },
                      "id": null,
                      "generator": false,
                      "expression": true,
                      "async": false,
                      "params": [
                        {
                          "type": "Identifier",
                          "start": 2035,
                          "end": 2039,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 31
                            },
                            "end": {
                              "line": 66,
                              "column": 35
                            }
                          },
                          "name": "task"
                        }
                      ],
                      "body": {
                        "type": "ObjectExpression",
                        "start": 2044,
                        "end": 2070,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 40
                          },
                          "end": {
                            "line": 66,
                            "column": 66
                          }
                        },
                        "properties": [
                          {
                            "type": "Property",
                            "start": 2045,
                            "end": 2063,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 41
                              },
                              "end": {
                                "line": 66,
                                "column": 59
                              }
                            },
                            "method": false,
                            "shorthand": false,
                            "computed": false,
                            "key": {
                              "type": "Identifier",
                              "start": 2045,
                              "end": 2052,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 41
                                },
                                "end": {
                                  "line": 66,
                                  "column": 48
                                }
                              },
                              "name": "command"
                            },
                            "value": {
                              "type": "Literal",
                              "start": 2054,
                              "end": 2063,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 50
                                },
                                "end": {
                                  "line": 66,
                                  "column": 59
                                }
                              },
                              "value": "Execute",
                              "rawValue": "Execute",
                              "raw": "'Execute'"
                            },
                            "kind": "init"
                          },
                          {
                            "type": "Property",
                            "start": 2065,
                            "end": 2069,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 61
                              },
                              "end": {
                                "line": 66,
                                "column": 65
                              }
                            },
                            "method": false,
                            "shorthand": true,
                            "computed": false,
                            "key": {
                              "type": "Identifier",
                              "start": 2065,
                              "end": 2069,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 61
                                },
                                "end": {
                                  "line": 66,
                                  "column": 65
                                }
                              },
                              "name": "task"
                            },
                            "kind": "init",
                            "value": {
                              "type": "Identifier",
                              "start": 2065,
                              "end": 2069,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 61
                                },
                                "end": {
                                  "line": 66,
                                  "column": 65
                                }
                              },
                              "name": "task"
                            }
                          }
                        ],
                        "parenthesizedExpression": true
                      }
                    }
                  ]
                }
              }
            ],
            "kind": "const"
          },
          {
            "type": "VariableDeclaration",
            "start": 2078,
            "end": 2135,
            "loc": {
              "start": {
                "line": 67,
                "column": 4
              },
              "end": {
                "line": 67,
                "column": 61
              }
            },
            "declarations": [
              {
                "type": "VariableDeclarator",
                "start": 2084,
                "end": 2134,
                "loc": {
                  "start": {
                    "line": 67,
                    "column": 10
                  },
                  "end": {
                    "line": 67,
                    "column": 60
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 2084,
                  "end": 2092,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 10
                    },
                    "end": {
                      "line": 67,
                      "column": 18
                    }
                  },
                  "name": "response"
                },
                "init": {
                  "type": "AwaitExpression",
                  "start": 2095,
                  "end": 2134,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 21
                    },
                    "end": {
                      "line": 67,
                      "column": 60
                    }
                  },
                  "all": false,
                  "argument": {
                    "type": "CallExpression",
                    "start": 2101,
                    "end": 2134,
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 27
                      },
                      "end": {
                        "line": 67,
                        "column": 60
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2101,
                      "end": 2115,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 27
                        },
                        "end": {
                          "line": 67,
                          "column": 41
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2101,
                        "end": 2107,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 27
                          },
                          "end": {
                            "line": 67,
                            "column": 33
                          }
                        },
                        "name": "socket"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2108,
                        "end": 2115,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 34
                          },
                          "end": {
                            "line": 67,
                            "column": 41
                          }
                        },
                        "name": "request"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2116,
                        "end": 2124,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 42
                          },
                          "end": {
                            "line": 67,
                            "column": 50
                          }
                        },
                        "name": "commands"
                      },
                      {
                        "type": "Identifier",
                        "start": 2126,
                        "end": 2133,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 52
                          },
                          "end": {
                            "line": 67,
                            "column": 59
                          }
                        },
                        "name": "factory"
                      }
                    ]
                  }
                }
              }
            ],
            "kind": "const"
          },
          {
            "type": "IfStatement",
            "start": 2140,
            "end": 2201,
            "loc": {
              "start": {
                "line": 68,
                "column": 4
              },
              "end": {
                "line": 69,
                "column": 33
              }
            },
            "test": {
              "type": "MemberExpression",
              "start": 2144,
              "end": 2166,
              "loc": {
                "start": {
                  "line": 68,
                  "column": 8
                },
                "end": {
                  "line": 68,
                  "column": 30
                }
              },
              "object": {
                "type": "MemberExpression",
                "start": 2144,
                "end": 2159,
                "loc": {
                  "start": {
                    "line": 68,
                    "column": 8
                  },
                  "end": {
                    "line": 68,
                    "column": 23
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 2144,
                  "end": 2152,
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 8
                    },
                    "end": {
                      "line": 68,
                      "column": 16
                    }
                  },
                  "name": "response"
                },
                "property": {
                  "type": "Identifier",
                  "start": 2153,
                  "end": 2159,
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 17
                    },
                    "end": {
                      "line": 68,
                      "column": 23
                    }
                  },
                  "name": "errors"
                },
                "computed": false
              },
              "property": {
                "type": "Identifier",
                "start": 2160,
                "end": 2166,
                "loc": {
                  "start": {
                    "line": 68,
                    "column": 24
                  },
                  "end": {
                    "line": 68,
                    "column": 30
                  }
                },
                "name": "length"
              },
              "computed": false
            },
            "consequent": {
              "type": "ThrowStatement",
              "start": 2176,
              "end": 2201,
              "loc": {
                "start": {
                  "line": 69,
                  "column": 8
                },
                "end": {
                  "line": 69,
                  "column": 33
                }
              },
              "argument": {
                "type": "MemberExpression",
                "start": 2182,
                "end": 2200,
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 14
                  },
                  "end": {
                    "line": 69,
                    "column": 32
                  }
                },
                "object": {
                  "type": "MemberExpression",
                  "start": 2182,
                  "end": 2197,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 14
                    },
                    "end": {
                      "line": 69,
                      "column": 29
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 2182,
                    "end": 2190,
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 14
                      },
                      "end": {
                        "line": 69,
                        "column": 22
                      }
                    },
                    "name": "response"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 2191,
                    "end": 2197,
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 23
                      },
                      "end": {
                        "line": 69,
                        "column": 29
                      }
                    },
                    "name": "errors"
                  },
                  "computed": false
                },
                "property": {
                  "type": "Literal",
                  "start": 2198,
                  "end": 2199,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 30
                    },
                    "end": {
                      "line": 69,
                      "column": 31
                    }
                  },
                  "value": 0,
                  "rawValue": 0,
                  "raw": "0"
                },
                "computed": true
              }
            },
            "alternate": null
          },
          {
            "type": "IfStatement",
            "start": 2206,
            "end": 2356,
            "loc": {
              "start": {
                "line": 70,
                "column": 4
              },
              "end": {
                "line": 71,
                "column": 104
              }
            },
            "test": {
              "type": "BinaryExpression",
              "start": 2210,
              "end": 2250,
              "loc": {
                "start": {
                  "line": 70,
                  "column": 8
                },
                "end": {
                  "line": 70,
                  "column": 48
                }
              },
              "left": {
                "type": "MemberExpression",
                "start": 2210,
                "end": 2233,
                "loc": {
                  "start": {
                    "line": 70,
                    "column": 8
                  },
                  "end": {
                    "line": 70,
                    "column": 31
                  }
                },
                "object": {
                  "type": "MemberExpression",
                  "start": 2210,
                  "end": 2226,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 8
                    },
                    "end": {
                      "line": 70,
                      "column": 24
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 2210,
                    "end": 2218,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 8
                      },
                      "end": {
                        "line": 70,
                        "column": 16
                      }
                    },
                    "name": "response"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 2219,
                    "end": 2226,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 17
                      },
                      "end": {
                        "line": 70,
                        "column": 24
                      }
                    },
                    "name": "results"
                  },
                  "computed": false
                },
                "property": {
                  "type": "Identifier",
                  "start": 2227,
                  "end": 2233,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 25
                    },
                    "end": {
                      "line": 70,
                      "column": 31
                    }
                  },
                  "name": "length"
                },
                "computed": false
              },
              "operator": "!==",
              "right": {
                "type": "MemberExpression",
                "start": 2238,
                "end": 2250,
                "loc": {
                  "start": {
                    "line": 70,
                    "column": 36
                  },
                  "end": {
                    "line": 70,
                    "column": 48
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 2238,
                  "end": 2243,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 36
                    },
                    "end": {
                      "line": 70,
                      "column": 41
                    }
                  },
                  "name": "tasks"
                },
                "property": {
                  "type": "Identifier",
                  "start": 2244,
                  "end": 2250,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 42
                    },
                    "end": {
                      "line": 70,
                      "column": 48
                    }
                  },
                  "name": "length"
                },
                "computed": false
              }
            },
            "consequent": {
              "type": "ThrowStatement",
              "start": 2260,
              "end": 2356,
              "loc": {
                "start": {
                  "line": 71,
                  "column": 8
                },
                "end": {
                  "line": 71,
                  "column": 104
                }
              },
              "argument": {
                "type": "NewExpression",
                "start": 2266,
                "end": 2355,
                "loc": {
                  "start": {
                    "line": 71,
                    "column": 14
                  },
                  "end": {
                    "line": 71,
                    "column": 103
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 2270,
                  "end": 2275,
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 18
                    },
                    "end": {
                      "line": 71,
                      "column": 23
                    }
                  },
                  "name": "Error"
                },
                "arguments": [
                  {
                    "type": "TemplateLiteral",
                    "start": 2276,
                    "end": 2354,
                    "loc": {
                      "start": {
                        "line": 71,
                        "column": 24
                      },
                      "end": {
                        "line": 71,
                        "column": 102
                      }
                    },
                    "expressions": [
                      {
                        "type": "MemberExpression",
                        "start": 2295,
                        "end": 2318,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 43
                          },
                          "end": {
                            "line": 71,
                            "column": 66
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 2295,
                          "end": 2311,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 43
                            },
                            "end": {
                              "line": 71,
                              "column": 59
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2295,
                            "end": 2303,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 43
                              },
                              "end": {
                                "line": 71,
                                "column": 51
                              }
                            },
                            "name": "response"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2304,
                            "end": 2311,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 52
                              },
                              "end": {
                                "line": 71,
                                "column": 59
                              }
                            },
                            "name": "results"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2312,
                          "end": 2318,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 60
                            },
                            "end": {
                              "line": 71,
                              "column": 66
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      {
                        "type": "MemberExpression",
                        "start": 2340,
                        "end": 2352,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 88
                          },
                          "end": {
                            "line": 71,
                            "column": 100
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2340,
                          "end": 2345,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 88
                            },
                            "end": {
                              "line": 71,
                              "column": 93
                            }
                          },
                          "name": "tasks"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2346,
                          "end": 2352,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 94
                            },
                            "end": {
                              "line": 71,
                              "column": 100
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      }
                    ],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 2277,
                        "end": 2293,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 25
                          },
                          "end": {
                            "line": 71,
                            "column": 41
                          }
                        },
                        "value": {
                          "raw": "Server returned ",
                          "cooked": "Server returned "
                        },
                        "tail": false
                      },
                      {
                        "type": "TemplateElement",
                        "start": 2319,
                        "end": 2338,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 67
                          },
                          "end": {
                            "line": 71,
                            "column": 86
                          }
                        },
                        "value": {
                          "raw": " results, expected ",
                          "cooked": " results, expected "
                        },
                        "tail": false
                      },
                      {
                        "type": "TemplateElement",
                        "start": 2353,
                        "end": 2353,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 101
                          },
                          "end": {
                            "line": 71,
                            "column": 101
                          }
                        },
                        "value": {
                          "raw": "",
                          "cooked": ""
                        },
                        "tail": true
                      }
                    ]
                  }
                ]
              }
            },
            "alternate": null
          },
          {
            "type": "ReturnStatement",
            "start": 2361,
            "end": 2561,
            "loc": {
              "start": {
                "line": 72,
                "column": 4
              },
              "end": {
                "line": 76,
                "column": 7
              }
            },
            "argument": {
              "type": "CallExpression",
              "start": 2368,
              "end": 2560,
              "loc": {
                "start": {
                  "line": 72,
                  "column": 11
                },
                "end": {
                  "line": 76,
                  "column": 6
                }
              },
              "callee": {
                "type": "MemberExpression",
                "start": 2368,
                "end": 2388,
                "loc": {
                  "start": {
                    "line": 72,
                    "column": 11
                  },
                  "end": {
                    "line": 72,
                    "column": 31
                  }
                },
                "object": {
                  "type": "MemberExpression",
                  "start": 2368,
                  "end": 2384,
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 11
                    },
                    "end": {
                      "line": 72,
                      "column": 27
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 2368,
                    "end": 2376,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 11
                      },
                      "end": {
                        "line": 72,
                        "column": 19
                      }
                    },
                    "name": "response"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 2377,
                    "end": 2384,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 20
                      },
                      "end": {
                        "line": 72,
                        "column": 27
                      }
                    },
                    "name": "results"
                  },
                  "computed": false
                },
                "property": {
                  "type": "Identifier",
                  "start": 2385,
                  "end": 2388,
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 28
                    },
                    "end": {
                      "line": 72,
                      "column": 31
                    }
                  },
                  "name": "map"
                },
                "computed": false
              },
              "arguments": [
                {
                  "type": "ArrowFunctionExpression",
                  "start": 2389,
                  "end": 2559,
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 32
                    },
                    "end": {
                      "line": 76,
                      "column": 5
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2390,
                      "end": 2391,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 33
                        },
                        "end": {
                          "line": 72,
                          "column": 34
                        }
                      },
                      "name": "r"
                    },
                    {
                      "type": "Identifier",
                      "start": 2393,
                      "end": 2394,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 36
                        },
                        "end": {
                          "line": 72,
                          "column": 37
                        }
                      },
                      "name": "i"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2399,
                    "end": 2559,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 42
                      },
                      "end": {
                        "line": 76,
                        "column": 5
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 2409,
                        "end": 2528,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 8
                          },
                          "end": {
                            "line": 74,
                            "column": 94
                          }
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 2413,
                          "end": 2432,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 12
                            },
                            "end": {
                              "line": 73,
                              "column": 31
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 2413,
                            "end": 2419,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 12
                              },
                              "end": {
                                "line": 73,
                                "column": 18
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2413,
                              "end": 2414,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 12
                                },
                                "end": {
                                  "line": 73,
                                  "column": 13
                                }
                              },
                              "name": "r"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2415,
                              "end": 2419,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 14
                                },
                                "end": {
                                  "line": 73,
                                  "column": 18
                                }
                              },
                              "name": "hint"
                            },
                            "computed": false
                          },
                          "operator": "!==",
                          "right": {
                            "type": "MemberExpression",
                            "start": 2424,
                            "end": 2432,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 23
                              },
                              "end": {
                                "line": 73,
                                "column": 31
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2424,
                              "end": 2429,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 23
                                },
                                "end": {
                                  "line": 73,
                                  "column": 28
                                }
                              },
                              "name": "tasks"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2430,
                              "end": 2431,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 29
                                },
                                "end": {
                                  "line": 73,
                                  "column": 30
                                }
                              },
                              "name": "i"
                            },
                            "computed": true
                          }
                        },
                        "consequent": {
                          "type": "ThrowStatement",
                          "start": 2446,
                          "end": 2528,
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 12
                            },
                            "end": {
                              "line": 74,
                              "column": 94
                            }
                          },
                          "argument": {
                            "type": "NewExpression",
                            "start": 2452,
                            "end": 2527,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 18
                              },
                              "end": {
                                "line": 74,
                                "column": 93
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 2456,
                              "end": 2461,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 22
                                },
                                "end": {
                                  "line": 74,
                                  "column": 27
                                }
                              },
                              "name": "Error"
                            },
                            "arguments": [
                              {
                                "type": "TemplateLiteral",
                                "start": 2462,
                                "end": 2526,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 92
                                  }
                                },
                                "expressions": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 2493,
                                    "end": 2499,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 65
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2493,
                                      "end": 2494,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 59
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 60
                                        }
                                      },
                                      "name": "r"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2495,
                                      "end": 2499,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 61
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 65
                                        }
                                      },
                                      "name": "hint"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 2515,
                                    "end": 2523,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 81
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 89
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2515,
                                      "end": 2520,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 81
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 86
                                        }
                                      },
                                      "name": "tasks"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2521,
                                      "end": 2522,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 87
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 88
                                        }
                                      },
                                      "name": "i"
                                    },
                                    "computed": true
                                  }
                                ],
                                "quasis": [
                                  {
                                    "type": "TemplateElement",
                                    "start": 2463,
                                    "end": 2491,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 57
                                      }
                                    },
                                    "value": {
                                      "raw": "Server returned result for \"",
                                      "cooked": "Server returned result for \""
                                    },
                                    "tail": false
                                  },
                                  {
                                    "type": "TemplateElement",
                                    "start": 2500,
                                    "end": 2513,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 66
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 79
                                      }
                                    },
                                    "value": {
                                      "raw": "\", expected \"",
                                      "cooked": "\", expected \""
                                    },
                                    "tail": false
                                  },
                                  {
                                    "type": "TemplateElement",
                                    "start": 2524,
                                    "end": 2525,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 90
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 91
                                      }
                                    },
                                    "value": {
                                      "raw": "\"",
                                      "cooked": "\""
                                    },
                                    "tail": true
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 2537,
                        "end": 2553,
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 8
                          },
                          "end": {
                            "line": 75,
                            "column": 24
                          }
                        },
                        "argument": {
                          "type": "MemberExpression",
                          "start": 2544,
                          "end": 2552,
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 15
                            },
                            "end": {
                              "line": 75,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2544,
                            "end": 2545,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 15
                              },
                              "end": {
                                "line": 75,
                                "column": 16
                              }
                            },
                            "name": "r"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2546,
                            "end": 2552,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 17
                              },
                              "end": {
                                "line": 75,
                                "column": 23
                              }
                            },
                            "name": "result"
                          },
                          "computed": false
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }
  ]
}