(program [0, 0] - [72, 0] (export_statement [0, 0] - [6, 1] declaration: (function_declaration [0, 7] - [6, 1] name: (identifier [0, 22] - [0, 30]) parameters: (formal_parameters [0, 30] - [0, 55] (required_parameter [0, 31] - [0, 54] pattern: (identifier [0, 31] - [0, 42]) type: (type_annotation [0, 42] - [0, 54] (type_identifier [0, 44] - [0, 54])))) return_type: (type_annotation [0, 55] - [0, 76] (generic_type [0, 57] - [0, 76] name: (type_identifier [0, 57] - [0, 64]) type_arguments: (type_arguments [0, 64] - [0, 76] (type_identifier [0, 65] - [0, 75])))) body: (statement_block [0, 77] - [6, 1] (lexical_declaration [1, 2] - [1, 54] (variable_declarator [1, 8] - [1, 53] name: (identifier [1, 8] - [1, 12]) value: (new_expression [1, 15] - [1, 53] constructor: (identifier [1, 19] - [1, 29]) arguments: (arguments [1, 29] - [1, 53] (binary_expression [1, 30] - [1, 52] left: (number [1, 30] - [1, 31]) right: (member_expression [1, 34] - [1, 52] object: (identifier [1, 34] - [1, 45]) property: (property_identifier [1, 46] - [1, 52]))))))) (expression_statement [2, 2] - [2, 17] (assignment_expression [2, 2] - [2, 16] left: (subscript_expression [2, 2] - [2, 9] object: (identifier [2, 2] - [2, 6]) index: (number [2, 7] - [2, 8])) right: (number [2, 12] - [2, 16]))) (expression_statement [3, 2] - [3, 27] (call_expression [3, 2] - [3, 26] function: (member_expression [3, 2] - [3, 10] object: (identifier [3, 2] - [3, 6]) property: (property_identifier [3, 7] - [3, 10])) arguments: (arguments [3, 10] - [3, 26] (identifier [3, 11] - [3, 22]) (number [3, 24] - [3, 25])))) (lexical_declaration [4, 2] - [4, 65] (variable_declarator [4, 8] - [4, 64] name: (identifier [4, 8] - [4, 18]) value: (await_expression [4, 21] - [4, 64] (call_expression [4, 27] - [4, 64] function: (member_expression [4, 27] - [4, 47] object: (member_expression [4, 27] - [4, 40] object: (identifier [4, 27] - [4, 33]) property: (property_identifier [4, 34] - [4, 40])) property: (property_identifier [4, 41] - [4, 47])) arguments: (arguments [4, 47] - [4, 64] (string [4, 48] - [4, 57] (string_fragment [4, 49] - [4, 56])) (identifier [4, 59] - [4, 63])))))) (return_statement [5, 2] - [5, 36] (new_expression [5, 9] - [5, 35] constructor: (identifier [5, 13] - [5, 23]) arguments: (arguments [5, 23] - [5, 35] (identifier [5, 24] - [5, 34]))))))) (export_statement [8, 0] - [18, 1] declaration: (function_declaration [8, 7] - [18, 1] name: (identifier [8, 22] - [8, 30]) parameters: (formal_parameters [8, 30] - [11, 1] (required_parameter [9, 2] - [9, 18] pattern: (identifier [9, 2] - [9, 6]) type: (type_annotation [9, 6] - [9, 18] (type_identifier [9, 8] - [9, 18]))) (required_parameter [10, 2] - [10, 19] pattern: (identifier [10, 2] - [10, 7]) type: (type_annotation [10, 7] - [10, 19] (type_identifier [10, 9] - [10, 19])))) return_type: (type_annotation [11, 1] - [11, 22] (generic_type [11, 3] - [11, 22] name: (type_identifier [11, 3] - [11, 10]) type_arguments: (type_arguments [11, 10] - [11, 22] (type_identifier [11, 11] - [11, 21])))) body: (statement_block [11, 23] - [18, 1] (lexical_declaration [12, 2] - [12, 62] (variable_declarator [12, 8] - [12, 61] name: (identifier [12, 8] - [12, 12]) value: (new_expression [12, 15] - [12, 61] constructor: (identifier [12, 19] - [12, 29]) arguments: (arguments [12, 29] - [12, 61] (binary_expression [12, 30] - [12, 60] left: (binary_expression [12, 30] - [12, 45] left: (number [12, 30] - [12, 31]) right: (member_expression [12, 34] - [12, 45] object: (identifier [12, 34] - [12, 38]) property: (property_identifier [12, 39] - [12, 45]))) right: (member_expression [12, 48] - [12, 60] object: (identifier [12, 48] - [12, 53]) property: (property_identifier [12, 54] - [12, 60]))))))) (expression_statement [13, 2] - [13, 17] (assignment_expression [13, 2] - [13, 16] left: (subscript_expression [13, 2] - [13, 9] object: (identifier [13, 2] - [13, 6]) index: (number [13, 7] - [13, 8])) right: (number [13, 12] - [13, 16]))) (expression_statement [14, 2] - [14, 20] (call_expression [14, 2] - [14, 19] function: (member_expression [14, 2] - [14, 10] object: (identifier [14, 2] - [14, 6]) property: (property_identifier [14, 7] - [14, 10])) arguments: (arguments [14, 10] - [14, 19] (identifier [14, 11] - [14, 15]) (number [14, 17] - [14, 18])))) (expression_statement [15, 2] - [15, 35] (call_expression [15, 2] - [15, 34] function: (member_expression [15, 2] - [15, 10] object: (identifier [15, 2] - [15, 6]) property: (property_identifier [15, 7] - [15, 10])) arguments: (arguments [15, 10] - [15, 34] (identifier [15, 11] - [15, 16]) (binary_expression [15, 18] - [15, 33] left: (number [15, 18] - [15, 19]) right: (member_expression [15, 22] - [15, 33] object: (identifier [15, 22] - [15, 26]) property: (property_identifier [15, 27] - [15, 33])))))) (lexical_declaration [16, 2] - [16, 65] (variable_declarator [16, 8] - [16, 64] name: (identifier [16, 8] - [16, 18]) value: (await_expression [16, 21] - [16, 64] (call_expression [16, 27] - [16, 64] function: (member_expression [16, 27] - [16, 47] object: (member_expression [16, 27] - [16, 40] object: (identifier [16, 27] - [16, 33]) property: (property_identifier [16, 34] - [16, 40])) property: (property_identifier [16, 41] - [16, 47])) arguments: (arguments [16, 47] - [16, 64] (string [16, 48] - [16, 57] (string_fragment [16, 49] - [16, 56])) (identifier [16, 59] - [16, 63])))))) (return_statement [17, 2] - [17, 36] (new_expression [17, 9] - [17, 35] constructor: (identifier [17, 13] - [17, 23]) arguments: (arguments [17, 23] - [17, 35] (identifier [17, 24] - [17, 34]))))))) (export_statement [20, 0] - [37, 1] declaration: (function_declaration [20, 7] - [37, 1] name: (identifier [20, 22] - [20, 37]) parameters: (formal_parameters [20, 37] - [22, 1] (required_parameter [21, 2] - [21, 22] pattern: (identifier [21, 2] - [21, 8]) type: (type_annotation [21, 8] - [21, 22] (array_type [21, 10] - [21, 22] (type_identifier [21, 10] - [21, 20]))))) return_type: (type_annotation [22, 1] - [22, 22] (generic_type [22, 3] - [22, 22] name: (type_identifier [22, 3] - [22, 10]) type_arguments: (type_arguments [22, 10] - [22, 22] (type_identifier [22, 11] - [22, 21])))) body: (statement_block [22, 23] - [37, 1] (if_statement [23, 2] - [26, 3] condition: (parenthesized_expression [23, 5] - [23, 26] (binary_expression [23, 6] - [23, 25] left: (member_expression [23, 6] - [23, 19] object: (identifier [23, 6] - [23, 12]) property: (property_identifier [23, 13] - [23, 19])) right: (number [23, 24] - [23, 25]))) consequence: (statement_block [23, 27] - [26, 3] (lexical_declaration [24, 4] - [24, 80] (variable_declarator [24, 10] - [24, 79] name: (identifier [24, 10] - [24, 20]) value: (await_expression [24, 23] - [24, 79] (call_expression [24, 29] - [24, 79] function: (member_expression [24, 29] - [24, 49] object: (member_expression [24, 29] - [24, 42] object: (identifier [24, 29] - [24, 35]) property: (property_identifier [24, 36] - [24, 42])) property: (property_identifier [24, 43] - [24, 49])) arguments: (arguments [24, 49] - [24, 79] (string [24, 50] - [24, 59] (string_fragment [24, 51] - [24, 58])) (new_expression [24, 61] - [24, 78] constructor: (identifier [24, 65] - [24, 75]) arguments: (arguments [24, 75] - [24, 78] (number [24, 76] - [24, 77])))))))) (return_statement [25, 4] - [25, 38] (new_expression [25, 11] - [25, 37] constructor: (identifier [25, 15] - [25, 25]) arguments: (arguments [25, 25] - [25, 37] (identifier [25, 26] - [25, 36])))))) (if_statement [28, 2] - [30, 3] condition: (parenthesized_expression [28, 5] - [28, 26] (binary_expression [28, 6] - [28, 25] left: (member_expression [28, 6] - [28, 19] object: (identifier [28, 6] - [28, 12]) property: (property_identifier [28, 13] - [28, 19])) right: (number [28, 24] - [28, 25]))) consequence: (statement_block [28, 27] - [30, 3] (return_statement [29, 4] - [29, 21] (subscript_expression [29, 11] - [29, 20] object: (identifier [29, 11] - [29, 17]) index: (number [29, 18] - [29, 19]))))) (lexical_declaration [32, 2] - [32, 66] (variable_declarator [32, 8] - [32, 65] name: (identifier [32, 8] - [32, 9]) value: (call_expression [32, 12] - [32, 65] function: (member_expression [32, 12] - [32, 20] object: (identifier [32, 12] - [32, 16]) property: (property_identifier [32, 17] - [32, 20])) arguments: (arguments [32, 20] - [32, 65] (number [32, 21] - [32, 22]) (call_expression [32, 24] - [32, 64] function: (member_expression [32, 24] - [32, 34] object: (identifier [32, 24] - [32, 28]) property: (property_identifier [32, 29] - [32, 34])) arguments: (arguments [32, 34] - [32, 64] (call_expression [32, 35] - [32, 63] function: (member_expression [32, 35] - [32, 44] object: (identifier [32, 35] - [32, 39]) property: (property_identifier [32, 40] - [32, 44])) arguments: (arguments [32, 44] - [32, 63] (binary_expression [32, 45] - [32, 62] left: (member_expression [32, 45] - [32, 58] object: (identifier [32, 45] - [32, 51]) property: (property_identifier [32, 52] - [32, 58])) right: (number [32, 61] - [32, 62])))))))))) (lexical_declaration [33, 2] - [33, 61] (variable_declarator [33, 8] - [33, 60] name: (identifier [33, 8] - [33, 16]) value: (await_expression [33, 19] - [33, 60] (call_expression [33, 25] - [33, 60] function: (identifier [33, 25] - [33, 40]) arguments: (arguments [33, 40] - [33, 60] (call_expression [33, 41] - [33, 59] function: (member_expression [33, 41] - [33, 53] object: (identifier [33, 41] - [33, 47]) property: (property_identifier [33, 48] - [33, 53])) arguments: (arguments [33, 53] - [33, 59] (number [33, 54] - [33, 55]) (identifier [33, 57] - [33, 58])))))))) (lexical_declaration [34, 2] - [34, 59] (variable_declarator [34, 8] - [34, 58] name: (identifier [34, 8] - [34, 17]) value: (await_expression [34, 20] - [34, 58] (call_expression [34, 26] - [34, 58] function: (identifier [34, 26] - [34, 41]) arguments: (arguments [34, 41] - [34, 58] (call_expression [34, 42] - [34, 57] function: (member_expression [34, 42] - [34, 54] object: (identifier [34, 42] - [34, 48]) property: (property_identifier [34, 49] - [34, 54])) arguments: (arguments [34, 54] - [34, 57] (identifier [34, 55] - [34, 56])))))))) (return_statement [36, 2] - [36, 45] (await_expression [36, 9] - [36, 44] (call_expression [36, 15] - [36, 44] function: (identifier [36, 15] - [36, 23]) arguments: (arguments [36, 23] - [36, 44] (identifier [36, 24] - [36, 32]) (identifier [36, 34] - [36, 43])))))))) (export_statement [39, 0] - [71, 1] declaration: (function_declaration [39, 7] - [71, 1] name: (identifier [39, 22] - [39, 42]) parameters: (formal_parameters [39, 42] - [45, 1] (required_parameter [40, 2] - [40, 18] pattern: (identifier [40, 2] - [40, 6]) type: (type_annotation [40, 6] - [40, 18] (type_identifier [40, 8] - [40, 18]))) (required_parameter [41, 2] - [41, 21] pattern: (identifier [41, 2] - [41, 7]) type: (type_annotation [41, 7] - [41, 21] (array_type [41, 9] - [41, 21] (type_identifier [41, 9] - [41, 19])))) (required_parameter [42, 2] - [42, 15] pattern: (identifier [42, 2] - [42, 7]) type: (type_annotation [42, 7] - [42, 15] (predefined_type [42, 9] - [42, 15]))) (required_parameter [43, 2] - [43, 18] pattern: (identifier [43, 2] - [43, 10]) type: (type_annotation [43, 10] - [43, 18] (predefined_type [43, 12] - [43, 18]))) (required_parameter [44, 2] - [44, 26] pattern: (identifier [44, 2] - [44, 14]) type: (type_annotation [44, 14] - [44, 26] (type_identifier [44, 16] - [44, 26])))) return_type: (type_annotation [45, 1] - [45, 19] (generic_type [45, 3] - [45, 19] name: (type_identifier [45, 3] - [45, 10]) type_arguments: (type_arguments [45, 10] - [45, 19] (predefined_type [45, 11] - [45, 18])))) body: (statement_block [45, 20] - [71, 1] (lexical_declaration [46, 2] - [46, 25] (variable_declarator [46, 6] - [46, 24] name: (identifier [46, 6] - [46, 17]) value: (identifier [46, 20] - [46, 24]))) (lexical_declaration [47, 2] - [47, 27] (variable_declarator [47, 6] - [47, 26] name: (identifier [47, 6] - [47, 18]) value: (identifier [47, 21] - [47, 26]))) (lexical_declaration [48, 2] - [48, 27] (variable_declarator [48, 6] - [48, 26] name: (identifier [48, 6] - [48, 11]) value: (binary_expression [48, 14] - [48, 26] left: (identifier [48, 14] - [48, 22]) right: (number [48, 25] - [48, 26])))) (for_in_statement [50, 2] - [62, 3] left: (identifier [50, 13] - [50, 24]) right: (identifier [50, 28] - [50, 33]) body: (statement_block [50, 35] - [62, 3] (if_statement [51, 4] - [59, 5] condition: (parenthesized_expression [51, 7] - [51, 31] (binary_expression [51, 8] - [51, 30] left: (binary_expression [51, 8] - [51, 24] left: (identifier [51, 8] - [51, 20]) right: (number [51, 23] - [51, 24])) right: (number [51, 29] - [51, 30]))) consequence: (statement_block [51, 32] - [53, 5] (expression_statement [52, 6] - [52, 61] (assignment_expression [52, 6] - [52, 60] left: (identifier [52, 6] - [52, 17]) right: (await_expression [52, 20] - [52, 60] (call_expression [52, 26] - [52, 60] function: (identifier [52, 26] - [52, 34]) arguments: (arguments [52, 34] - [52, 60] (identifier [52, 35] - [52, 46]) (identifier [52, 48] - [52, 59]))))))) alternative: (else_clause [53, 6] - [59, 5] (statement_block [53, 11] - [59, 5] (if_statement [54, 6] - [58, 7] condition: (parenthesized_expression [54, 9] - [54, 33] (binary_expression [54, 10] - [54, 32] left: (identifier [54, 10] - [54, 22]) right: (identifier [54, 27] - [54, 32]))) consequence: (statement_block [54, 34] - [56, 7] (expression_statement [55, 8] - [55, 63] (assignment_expression [55, 8] - [55, 62] left: (identifier [55, 8] - [55, 19]) right: (await_expression [55, 22] - [55, 62] (call_expression [55, 28] - [55, 62] function: (identifier [55, 28] - [55, 36]) arguments: (arguments [55, 36] - [55, 62] (identifier [55, 37] - [55, 48]) (identifier [55, 50] - [55, 61]))))))) alternative: (else_clause [56, 8] - [58, 7] (statement_block [56, 13] - [58, 7] (expression_statement [57, 8] - [57, 63] (assignment_expression [57, 8] - [57, 62] left: (identifier [57, 8] - [57, 19]) right: (await_expression [57, 22] - [57, 62] (call_expression [57, 28] - [57, 62] function: (identifier [57, 28] - [57, 36]) arguments: (arguments [57, 36] - [57, 62] (identifier [57, 37] - [57, 48]) (identifier [57, 50] - [57, 61])))))))))))) (expression_statement [60, 4] - [60, 48] (assignment_expression [60, 4] - [60, 47] left: (identifier [60, 4] - [60, 16]) right: (call_expression [60, 19] - [60, 47] function: (member_expression [60, 19] - [60, 29] object: (identifier [60, 19] - [60, 23]) property: (property_identifier [60, 24] - [60, 29])) arguments: (arguments [60, 29] - [60, 47] (binary_expression [60, 30] - [60, 46] left: (identifier [60, 30] - [60, 42]) right: (number [60, 45] - [60, 46])))))) (expression_statement [61, 4] - [61, 34] (assignment_expression [61, 4] - [61, 33] left: (identifier [61, 4] - [61, 9]) right: (call_expression [61, 12] - [61, 33] function: (member_expression [61, 12] - [61, 22] object: (identifier [61, 12] - [61, 16]) property: (property_identifier [61, 17] - [61, 22])) arguments: (arguments [61, 22] - [61, 33] (binary_expression [61, 23] - [61, 32] left: (identifier [61, 23] - [61, 28]) right: (number [61, 31] - [61, 32])))))))) (lexical_declaration [64, 2] - [66, 13] (variable_declarator [64, 8] - [66, 12] name: (identifier [64, 8] - [64, 22]) value: (call_expression [64, 25] - [66, 12] function: (member_expression [64, 25] - [66, 8] object: (call_expression [64, 25] - [66, 3] function: (member_expression [64, 25] - [64, 52] object: (call_expression [64, 25] - [64, 48] function: (member_expression [64, 25] - [64, 35] object: (identifier [64, 25] - [64, 30]) property: (property_identifier [64, 31] - [64, 35])) arguments: (arguments [64, 35] - [64, 48] (identifier [64, 36] - [64, 47]))) property: (property_identifier [64, 49] - [64, 52])) arguments: (arguments [64, 52] - [66, 3] (arrow_function [64, 53] - [65, 35] parameters: (formal_parameters [64, 53] - [64, 56] (required_parameter [64, 54] - [64, 55] pattern: (identifier [64, 54] - [64, 55]))) body: (call_expression [65, 4] - [65, 35] function: (member_expression [65, 4] - [65, 27] object: (call_expression [65, 4] - [65, 18] function: (member_expression [65, 4] - [65, 14] object: (identifier [65, 4] - [65, 5]) property: (property_identifier [65, 6] - [65, 14])) arguments: (arguments [65, 14] - [65, 18] (number [65, 15] - [65, 17]))) property: (property_identifier [65, 19] - [65, 27])) arguments: (arguments [65, 27] - [65, 35] (number [65, 28] - [65, 29]) (string [65, 31] - [65, 34] (string_fragment [65, 32] - [65, 33]))))))) property: (property_identifier [66, 4] - [66, 8])) arguments: (arguments [66, 8] - [66, 12] (string [66, 9] - [66, 11]))))) (lexical_declaration [67, 2] - [69, 13] (variable_declarator [67, 8] - [69, 12] name: (identifier [67, 8] - [67, 23]) value: (call_expression [67, 26] - [69, 12] function: (member_expression [67, 26] - [69, 8] object: (call_expression [67, 26] - [69, 3] function: (member_expression [67, 26] - [67, 54] object: (call_expression [67, 26] - [67, 50] function: (member_expression [67, 26] - [67, 36] object: (identifier [67, 26] - [67, 31]) property: (property_identifier [67, 32] - [67, 36])) arguments: (arguments [67, 36] - [67, 50] (identifier [67, 37] - [67, 49]))) property: (property_identifier [67, 51] - [67, 54])) arguments: (arguments [67, 54] - [69, 3] (arrow_function [67, 55] - [68, 35] parameters: (formal_parameters [67, 55] - [67, 58] (required_parameter [67, 56] - [67, 57] pattern: (identifier [67, 56] - [67, 57]))) body: (call_expression [68, 4] - [68, 35] function: (member_expression [68, 4] - [68, 27] object: (call_expression [68, 4] - [68, 18] function: (member_expression [68, 4] - [68, 14] object: (identifier [68, 4] - [68, 5]) property: (property_identifier [68, 6] - [68, 14])) arguments: (arguments [68, 14] - [68, 18] (number [68, 15] - [68, 17]))) property: (property_identifier [68, 19] - [68, 27])) arguments: (arguments [68, 27] - [68, 35] (number [68, 28] - [68, 29]) (string [68, 31] - [68, 34] (string_fragment [68, 32] - [68, 33]))))))) property: (property_identifier [69, 4] - [69, 8])) arguments: (arguments [69, 8] - [69, 12] (string [69, 9] - [69, 11]))))) (return_statement [70, 2] - [70, 44] (binary_expression [70, 9] - [70, 43] left: (identifier [70, 9] - [70, 23]) right: (identifier [70, 28] - [70, 43])))))))