rlx-vad 0.2.4

Voice activity detection (Earshot + Silero) on RLX
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
// RLX — versatile ML compiler + runtime.
// Copyright (C) 2026 Eugene Hauptmann, Nataliya Kosmyna.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 3.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

#![allow(clippy::excessive_precision)]
#![allow(clippy::unreadable_literal)]
#![allow(clippy::approx_constant)]

pub(crate) const SINE: &[f32] = &[
    -0.006135884649154475,
    -0.012271538285719925,
    -0.01840672990580482,
    -0.024541228522912288,
    -0.030674803176636626,
    -0.03680722294135883,
    -0.04293825693494082,
    -0.049067674327418015,
    -0.055195244349689934,
    -0.06132073630220858,
    -0.06744391956366405,
    -0.07356456359966743,
    -0.07968243797143013,
    -0.0857973123444399,
    -0.09190895649713272,
    -0.0980171403295606,
    -0.10412163387205459,
    -0.11022220729388306,
    -0.11631863091190475,
    -0.1224106751992162,
    -0.12849811079379317,
    -0.13458070850712617,
    -0.1406582393328492,
    -0.14673047445536175,
    -0.15279718525844344,
    -0.15885814333386145,
    -0.1649131204899699,
    -0.17096188876030122,
    -0.17700422041214875,
    -0.18303988795514095,
    -0.1890686641498062,
    -0.19509032201612825,
    -0.2011046348420919,
    -0.20711137619221856,
    -0.21311031991609136,
    -0.2191012401568698,
    -0.22508391135979283,
    -0.2310581082806711,
    -0.2370236059943672,
    -0.24298017990326387,
    -0.24892760574572015,
    -0.25486565960451457,
    -0.2607941179152755,
    -0.26671275747489837,
    -0.272621355449949,
    -0.27851968938505306,
    -0.2844075372112719,
    -0.29028467725446233,
    -0.2961508882436238,
    -0.3020059493192281,
    -0.30784964004153487,
    -0.3136817403988915,
    -0.3195020308160157,
    -0.3253102921622629,
    -0.33110630575987643,
    -0.33688985339222005,
    -0.3426607173119944,
    -0.34841868024943456,
    -0.35416352542049034,
    -0.3598950365349881,
    -0.36561299780477385,
    -0.37131719395183754,
    -0.37700741021641826,
    -0.3826834323650898,
    -0.38834504669882625,
    -0.3939920400610481,
    -0.3996241998456468,
    -0.40524131400498986,
    -0.4108431710579039,
    -0.41642956009763715,
    -0.4220002707997997,
    -0.4275550934302821,
    -0.43309381885315196,
    -0.43861623853852766,
    -0.4441221445704292,
    -0.44961132965460654,
    -0.45508358712634384,
    -0.46053871095824,
    -0.4659764957679662,
    -0.47139673682599764,
    -0.4767992300633221,
    -0.4821837720791227,
    -0.487550160148436,
    -0.49289819222978404,
    -0.4982276669727818,
    -0.5035383837257176,
    -0.508830142543107,
    -0.5141027441932217,
    -0.5193559901655896,
    -0.524589682678469,
    -0.5298036246862946,
    -0.5349976198870972,
    -0.5401714727298929,
    -0.5453249884220465,
    -0.5504579729366048,
    -0.5555702330196022,
    -0.560661576197336,
    -0.5657318107836131,
    -0.5707807458869673,
    -0.5758081914178453,
    -0.5808139580957645,
    -0.5857978574564389,
    -0.5907597018588742,
    -0.5956993044924334,
    -0.600616479383869,
    -0.6055110414043255,
    -0.6103828062763095,
    -0.6152315905806268,
    -0.6200572117632891,
    -0.6248594881423863,
    -0.629638238914927,
    -0.6343932841636455,
    -0.6391244448637757,
    -0.6438315428897914,
    -0.6485144010221124,
    -0.6531728429537768,
    -0.6578066932970786,
    -0.6624157775901718,
    -0.6669999223036375,
    -0.6715589548470183,
    -0.6760927035753159,
    -0.680600997795453,
    -0.6850836677727004,
    -0.6895405447370668,
    -0.6939714608896539,
    -0.6983762494089728,
    -0.7027547444572253,
    -0.7071067811865476,
    -0.7114321957452164,
    -0.7157308252838186,
    -0.7200025079613817,
    -0.7242470829514669,
    -0.7284643904482252,
    -0.7326542716724128,
    -0.7368165688773698,
    -0.7409511253549591,
    -0.745057785441466,
    -0.7491363945234593,
    -0.7531867990436125,
    -0.7572088465064846,
    -0.7612023854842618,
    -0.765167265622459,
    -0.7691033376455796,
    -0.7730104533627369,
    -0.7768884656732324,
    -0.7807372285720945,
    -0.7845565971555752,
    -0.7883464276266062,
    -0.7921065773002123,
    -0.7958369046088835,
    -0.799537269107905,
    -0.8032075314806448,
    -0.8068475535437992,
    -0.8104571982525948,
    -0.8140363297059483,
    -0.8175848131515837,
    -0.8211025149911046,
    -0.8245893027850253,
    -0.8280450452577558,
    -0.8314696123025452,
    -0.83486287498638,
    -0.838224705554838,
    -0.8415549774368983,
    -0.844853565249707,
    -0.8481203448032971,
    -0.8513551931052652,
    -0.8545579883654005,
    -0.8577286100002721,
    -0.8608669386377673,
    -0.8639728561215867,
    -0.8670462455156926,
    -0.8700869911087113,
    -0.8730949784182901,
    -0.8760700941954066,
    -0.8790122264286334,
    -0.8819212643483549,
    -0.8847970984309378,
    -0.8876396204028539,
    -0.8904487232447579,
    -0.8932243011955153,
    -0.8959662497561851,
    -0.8986744656939538,
    -0.901348847046022,
    -0.9039892931234433,
    -0.9065957045149153,
    -0.9091679830905223,
    -0.9117060320054299,
    -0.9142097557035307,
    -0.9166790599210427,
    -0.9191138516900578,
    -0.9215140393420419,
    -0.9238795325112867,
    -0.9262102421383113,
    -0.9285060804732156,
    -0.9307669610789837,
    -0.9329927988347388,
    -0.9351835099389475,
    -0.937339011912575,
    -0.9394592236021899,
    -0.9415440651830208,
    -0.9435934581619604,
    -0.9456073253805213,
    -0.9475855910177411,
    -0.9495281805930367,
    -0.9514350209690083,
    -0.9533060403541938,
    -0.9551411683057707,
    -0.9569403357322089,
    -0.9587034748958716,
    -0.9604305194155658,
    -0.9621214042690416,
    -0.9637760657954398,
    -0.9653944416976894,
    -0.9669764710448521,
    -0.9685220942744173,
    -0.970031253194544,
    -0.9715038909862518,
    -0.9729399522055601,
    -0.9743393827855759,
    -0.9757021300385286,
    -0.9770281426577544,
    -0.9783173707196277,
    -0.9795697656854405,
    -0.9807852804032304,
    -0.9819638691095552,
    -0.9831054874312163,
    -0.984210092386929,
    -0.9852776423889412,
    -0.9863080972445987,
    -0.9873014181578584,
    -0.9882575677307495,
    -0.989176509964781,
    -0.9900582102622971,
    -0.99090263542778,
    -0.9917097536690995,
    -0.99247953459871,
    -0.9932119492347945,
    -0.9939069700023561,
    -0.9945645707342554,
    -0.9951847266721968,
    -0.9957674144676598,
    -0.996312612182778,
    -0.9968202992911657,
    -0.9972904566786902,
    -0.9977230666441916,
    -0.9981181129001492,
    -0.9984755805732948,
    -0.9987954562051724,
    -0.9990777277526454,
    -0.9993223845883495,
    -0.9995294175010931,
    -0.9996988186962042,
    -0.9998305817958234,
    -0.9999247018391445,
    -0.9999811752826011,
];

pub(crate) const BITREV: &[&[u16]] = &[
    &[0],
    &[0, 1],
    &[0, 2, 2, 3],
    &[0, 4, 2, 6, 4, 5, 6, 7],
    &[0, 8, 4, 12, 4, 10, 6, 14, 8, 9, 10, 13, 12, 13, 14, 15],
    &[
        0, 16, 8, 24, 4, 20, 12, 28, 8, 18, 10, 26, 12, 22, 14, 30, 16, 17, 18, 25, 20, 21, 22, 29,
        24, 25, 26, 27, 28, 29, 30, 31,
    ],
    &[
        0, 32, 16, 48, 8, 40, 24, 56, 8, 36, 20, 52, 12, 44, 28, 60, 16, 34, 18, 50, 20, 42, 26,
        58, 24, 38, 26, 54, 28, 46, 30, 62, 32, 33, 34, 49, 36, 41, 38, 57, 40, 41, 42, 53, 44, 45,
        46, 61, 48, 49, 50, 51, 52, 53, 54, 59, 56, 57, 58, 59, 60, 61, 62, 63,
    ],
    &[
        0, 64, 32, 96, 16, 80, 48, 112, 8, 72, 40, 104, 24, 88, 56, 120, 16, 68, 36, 100, 20, 84,
        52, 116, 24, 76, 44, 108, 28, 92, 60, 124, 32, 66, 34, 98, 36, 82, 50, 114, 40, 74, 42,
        106, 44, 90, 58, 122, 48, 70, 50, 102, 52, 86, 54, 118, 56, 78, 58, 110, 60, 94, 62, 126,
        64, 65, 66, 97, 68, 81, 70, 113, 72, 73, 74, 105, 76, 89, 78, 121, 80, 81, 82, 101, 84, 85,
        86, 117, 88, 89, 90, 109, 92, 93, 94, 125, 96, 97, 98, 99, 100, 101, 102, 115, 104, 105,
        106, 107, 108, 109, 110, 123, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
        124, 125, 126, 127,
    ],
    &[
        0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 16, 136, 72, 200,
        40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 32, 132, 68, 196, 36, 164, 100,
        228, 40, 148, 84, 212, 52, 180, 116, 244, 48, 140, 76, 204, 52, 172, 108, 236, 56, 156, 92,
        220, 60, 188, 124, 252, 64, 130, 66, 194, 68, 162, 98, 226, 72, 146, 82, 210, 76, 178, 114,
        242, 80, 138, 82, 202, 84, 170, 106, 234, 88, 154, 90, 218, 92, 186, 122, 250, 96, 134, 98,
        198, 100, 166, 102, 230, 104, 150, 106, 214, 108, 182, 118, 246, 112, 142, 114, 206, 116,
        174, 118, 238, 120, 158, 122, 222, 124, 190, 126, 254, 128, 129, 130, 193, 132, 161, 134,
        225, 136, 145, 138, 209, 140, 177, 142, 241, 144, 145, 146, 201, 148, 169, 150, 233, 152,
        153, 154, 217, 156, 185, 158, 249, 160, 161, 162, 197, 164, 165, 166, 229, 168, 169, 170,
        213, 172, 181, 174, 245, 176, 177, 178, 205, 180, 181, 182, 237, 184, 185, 186, 221, 188,
        189, 190, 253, 192, 193, 194, 195, 196, 197, 198, 227, 200, 201, 202, 211, 204, 205, 206,
        243, 208, 209, 210, 211, 212, 213, 214, 235, 216, 217, 218, 219, 220, 221, 222, 251, 224,
        225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 247, 240, 241, 242,
        243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
    ],
    &[
        0, 256, 128, 384, 64, 320, 192, 448, 32, 288, 160, 416, 96, 352, 224, 480, 16, 272, 144,
        400, 80, 336, 208, 464, 48, 304, 176, 432, 112, 368, 240, 496, 32, 264, 136, 392, 72, 328,
        200, 456, 40, 296, 168, 424, 104, 360, 232, 488, 48, 280, 152, 408, 88, 344, 216, 472, 56,
        312, 184, 440, 120, 376, 248, 504, 64, 260, 132, 388, 68, 324, 196, 452, 72, 292, 164, 420,
        100, 356, 228, 484, 80, 276, 148, 404, 84, 340, 212, 468, 88, 308, 180, 436, 116, 372, 244,
        500, 96, 268, 140, 396, 100, 332, 204, 460, 104, 300, 172, 428, 108, 364, 236, 492, 112,
        284, 156, 412, 116, 348, 220, 476, 120, 316, 188, 444, 124, 380, 252, 508, 128, 258, 130,
        386, 132, 322, 194, 450, 136, 290, 162, 418, 140, 354, 226, 482, 144, 274, 146, 402, 148,
        338, 210, 466, 152, 306, 178, 434, 156, 370, 242, 498, 160, 266, 162, 394, 164, 330, 202,
        458, 168, 298, 170, 426, 172, 362, 234, 490, 176, 282, 178, 410, 180, 346, 218, 474, 184,
        314, 186, 442, 188, 378, 250, 506, 192, 262, 194, 390, 196, 326, 198, 454, 200, 294, 202,
        422, 204, 358, 230, 486, 208, 278, 210, 406, 212, 342, 214, 470, 216, 310, 218, 438, 220,
        374, 246, 502, 224, 270, 226, 398, 228, 334, 230, 462, 232, 302, 234, 430, 236, 366, 238,
        494, 240, 286, 242, 414, 244, 350, 246, 478, 248, 318, 250, 446, 252, 382, 254, 510, 256,
        257, 258, 385, 260, 321, 262, 449, 264, 289, 266, 417, 268, 353, 270, 481, 272, 273, 274,
        401, 276, 337, 278, 465, 280, 305, 282, 433, 284, 369, 286, 497, 288, 289, 290, 393, 292,
        329, 294, 457, 296, 297, 298, 425, 300, 361, 302, 489, 304, 305, 306, 409, 308, 345, 310,
        473, 312, 313, 314, 441, 316, 377, 318, 505, 320, 321, 322, 389, 324, 325, 326, 453, 328,
        329, 330, 421, 332, 357, 334, 485, 336, 337, 338, 405, 340, 341, 342, 469, 344, 345, 346,
        437, 348, 373, 350, 501, 352, 353, 354, 397, 356, 357, 358, 461, 360, 361, 362, 429, 364,
        365, 366, 493, 368, 369, 370, 413, 372, 373, 374, 477, 376, 377, 378, 445, 380, 381, 382,
        509, 384, 385, 386, 387, 388, 389, 390, 451, 392, 393, 394, 419, 396, 397, 398, 483, 400,
        401, 402, 403, 404, 405, 406, 467, 408, 409, 410, 435, 412, 413, 414, 499, 416, 417, 418,
        419, 420, 421, 422, 459, 424, 425, 426, 427, 428, 429, 430, 491, 432, 433, 434, 435, 436,
        437, 438, 475, 440, 441, 442, 443, 444, 445, 446, 507, 448, 449, 450, 451, 452, 453, 454,
        455, 456, 457, 458, 459, 460, 461, 462, 487, 464, 465, 466, 467, 468, 469, 470, 471, 472,
        473, 474, 475, 476, 477, 478, 503, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
        491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
        509, 510, 511,
    ],
    &[
        0, 512, 256, 768, 128, 640, 384, 896, 64, 576, 320, 832, 192, 704, 448, 960, 32, 544, 288,
        800, 160, 672, 416, 928, 96, 608, 352, 864, 224, 736, 480, 992, 32, 528, 272, 784, 144,
        656, 400, 912, 80, 592, 336, 848, 208, 720, 464, 976, 48, 560, 304, 816, 176, 688, 432,
        944, 112, 624, 368, 880, 240, 752, 496, 1008, 64, 520, 264, 776, 136, 648, 392, 904, 72,
        584, 328, 840, 200, 712, 456, 968, 80, 552, 296, 808, 168, 680, 424, 936, 104, 616, 360,
        872, 232, 744, 488, 1000, 96, 536, 280, 792, 152, 664, 408, 920, 104, 600, 344, 856, 216,
        728, 472, 984, 112, 568, 312, 824, 184, 696, 440, 952, 120, 632, 376, 888, 248, 760, 504,
        1016, 128, 516, 260, 772, 132, 644, 388, 900, 136, 580, 324, 836, 196, 708, 452, 964, 144,
        548, 292, 804, 164, 676, 420, 932, 152, 612, 356, 868, 228, 740, 484, 996, 160, 532, 276,
        788, 164, 660, 404, 916, 168, 596, 340, 852, 212, 724, 468, 980, 176, 564, 308, 820, 180,
        692, 436, 948, 184, 628, 372, 884, 244, 756, 500, 1012, 192, 524, 268, 780, 196, 652, 396,
        908, 200, 588, 332, 844, 204, 716, 460, 972, 208, 556, 300, 812, 212, 684, 428, 940, 216,
        620, 364, 876, 236, 748, 492, 1004, 224, 540, 284, 796, 228, 668, 412, 924, 232, 604, 348,
        860, 236, 732, 476, 988, 240, 572, 316, 828, 244, 700, 444, 956, 248, 636, 380, 892, 252,
        764, 508, 1020, 256, 514, 258, 770, 260, 642, 386, 898, 264, 578, 322, 834, 268, 706, 450,
        962, 272, 546, 290, 802, 276, 674, 418, 930, 280, 610, 354, 866, 284, 738, 482, 994, 288,
        530, 290, 786, 292, 658, 402, 914, 296, 594, 338, 850, 300, 722, 466, 978, 304, 562, 306,
        818, 308, 690, 434, 946, 312, 626, 370, 882, 316, 754, 498, 1010, 320, 522, 322, 778, 324,
        650, 394, 906, 328, 586, 330, 842, 332, 714, 458, 970, 336, 554, 338, 810, 340, 682, 426,
        938, 344, 618, 362, 874, 348, 746, 490, 1002, 352, 538, 354, 794, 356, 666, 410, 922, 360,
        602, 362, 858, 364, 730, 474, 986, 368, 570, 370, 826, 372, 698, 442, 954, 376, 634, 378,
        890, 380, 762, 506, 1018, 384, 518, 386, 774, 388, 646, 390, 902, 392, 582, 394, 838, 396,
        710, 454, 966, 400, 550, 402, 806, 404, 678, 422, 934, 408, 614, 410, 870, 412, 742, 486,
        998, 416, 534, 418, 790, 420, 662, 422, 918, 424, 598, 426, 854, 428, 726, 470, 982, 432,
        566, 434, 822, 436, 694, 438, 950, 440, 630, 442, 886, 444, 758, 502, 1014, 448, 526, 450,
        782, 452, 654, 454, 910, 456, 590, 458, 846, 460, 718, 462, 974, 464, 558, 466, 814, 468,
        686, 470, 942, 472, 622, 474, 878, 476, 750, 494, 1006, 480, 542, 482, 798, 484, 670, 486,
        926, 488, 606, 490, 862, 492, 734, 494, 990, 496, 574, 498, 830, 500, 702, 502, 958, 504,
        638, 506, 894, 508, 766, 510, 1022, 512, 513, 514, 769, 516, 641, 518, 897, 520, 577, 522,
        833, 524, 705, 526, 961, 528, 545, 530, 801, 532, 673, 534, 929, 536, 609, 538, 865, 540,
        737, 542, 993, 544, 545, 546, 785, 548, 657, 550, 913, 552, 593, 554, 849, 556, 721, 558,
        977, 560, 561, 562, 817, 564, 689, 566, 945, 568, 625, 570, 881, 572, 753, 574, 1009, 576,
        577, 578, 777, 580, 649, 582, 905, 584, 585, 586, 841, 588, 713, 590, 969, 592, 593, 594,
        809, 596, 681, 598, 937, 600, 617, 602, 873, 604, 745, 606, 1001, 608, 609, 610, 793, 612,
        665, 614, 921, 616, 617, 618, 857, 620, 729, 622, 985, 624, 625, 626, 825, 628, 697, 630,
        953, 632, 633, 634, 889, 636, 761, 638, 1017, 640, 641, 642, 773, 644, 645, 646, 901, 648,
        649, 650, 837, 652, 709, 654, 965, 656, 657, 658, 805, 660, 677, 662, 933, 664, 665, 666,
        869, 668, 741, 670, 997, 672, 673, 674, 789, 676, 677, 678, 917, 680, 681, 682, 853, 684,
        725, 686, 981, 688, 689, 690, 821, 692, 693, 694, 949, 696, 697, 698, 885, 700, 757, 702,
        1013, 704, 705, 706, 781, 708, 709, 710, 909, 712, 713, 714, 845, 716, 717, 718, 973, 720,
        721, 722, 813, 724, 725, 726, 941, 728, 729, 730, 877, 732, 749, 734, 1005, 736, 737, 738,
        797, 740, 741, 742, 925, 744, 745, 746, 861, 748, 749, 750, 989, 752, 753, 754, 829, 756,
        757, 758, 957, 760, 761, 762, 893, 764, 765, 766, 1021, 768, 769, 770, 771, 772, 773, 774,
        899, 776, 777, 778, 835, 780, 781, 782, 963, 784, 785, 786, 803, 788, 789, 790, 931, 792,
        793, 794, 867, 796, 797, 798, 995, 800, 801, 802, 803, 804, 805, 806, 915, 808, 809, 810,
        851, 812, 813, 814, 979, 816, 817, 818, 819, 820, 821, 822, 947, 824, 825, 826, 883, 828,
        829, 830, 1011, 832, 833, 834, 835, 836, 837, 838, 907, 840, 841, 842, 843, 844, 845, 846,
        971, 848, 849, 850, 851, 852, 853, 854, 939, 856, 857, 858, 875, 860, 861, 862, 1003, 864,
        865, 866, 867, 868, 869, 870, 923, 872, 873, 874, 875, 876, 877, 878, 987, 880, 881, 882,
        883, 884, 885, 886, 955, 888, 889, 890, 891, 892, 893, 894, 1019, 896, 897, 898, 899, 900,
        901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 967, 912, 913, 914, 915, 916, 917, 918,
        935, 920, 921, 922, 923, 924, 925, 926, 999, 928, 929, 930, 931, 932, 933, 934, 935, 936,
        937, 938, 939, 940, 941, 942, 983, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954,
        955, 956, 957, 958, 1015, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
        973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
        1007, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
        1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
        1022, 1023,
    ],
];