Skip to content

Instantly share code, notes, and snippets.

@t0in4
Created January 18, 2023 12:45
Show Gist options
  • Save t0in4/d9a68c17c66b382dfb102aa7f1ea3826 to your computer and use it in GitHub Desktop.
Save t0in4/d9a68c17c66b382dfb102aa7f1ea3826 to your computer and use it in GitHub Desktop.
260
230
344
189
186
376
187
497
101
488
82
422
385
463
98
200
98
451
155
428
315
478
321
274
118
336
280
419
86
400
276
437
357
109
359
109
168
384
32
126
355
302
341
408
443
71
403
266
143
287
98
256
219
15
474
465
312
328
67
371
436
231
13
499
489
21
17
62
371
58
90
52
181
261
436
97
338
258
459
145
365
171
380
248
299
486
487
310
95
495
481
307
492
399
371
110
41
183
107
327
307
480
384
305
34
36
390
9
439
267
297
390
187
166
346
105
69
257
89
69
216
237
43
131
243
426
267
361
25
309
119
317
458
145
106
320
60
57
468
405
431
294
71
149
419
347
212
25
199
87
100
17
334
391
117
133
468
368
65
250
258
409
442
494
162
244
94
237
65
2
369
223
367
284
336
230
254
78
72
227
359
236
334
101
6
37
408
428
400
192
439
241
437
476
129
485
315
252
400
22
404
204
257
134
406
155
326
119
467
4
318
175
289
451
72
46
441
369
224
125
397
271
43
179
206
374
285
454
327
47
396
43
417
18
189
141
393
408
355
441
318
221
98
176
68
476
187
300
236
348
436
219
217
435
292
324
145
159
454
155
211
45
448
166
58
427
15
254
21
217
63
133
112
449
162
2
460
78
233
86
98
185
397
353
415
428
182
309
81
249
451
67
33
335
160
472
347
439
472
275
464
116
328
344
401
292
166
248
316
326
430
304
306
419
147
366
498
350
404
420
168
292
47
30
239
49
172
484
125
297
134
402
273
36
347
297
200
231
60
290
203
203
82
250
191
46
187
302
315
23
345
61
386
105
175
223
290
123
48
277
241
238
422
112
496
494
436
379
221
351
407
115
419
163
76
366
47
204
315
389
129
77
10
51
380
383
121
278
215
331
351
368
291
22
181
47
486
33
339
170
305
360
118
476
116
133
277
0
311
122
282
171
452
302
287
235
382
335
154
395
257
303
456
52
40
66
205
397
288
265
116
414
379
472
416
260
334
54
214
301
10
198
317
491
123
74
0
152
65
310
239
473
477
9
228
13
338
491
12
135
15
140
110
473
187
69
159
359
414
495
202
400
215
103
249
402
212
362
46
34
419
492
253
448
298
457
22
18
161
369
1
173
314
150
89
430
274
303
192
394
127
220
142
481
96
486
112
2
45
231
380
204
142
120
285
162
292
281
2
232
29
139
248
85
289
472
15
262
364
441
356
204
33
132
473
156
302
56
386
162
192
355
271
442
239
55
409
439
475
113
434
244
67
425
423
56
188
308
66
254
469
64
341
174
210
332
133
15
278
363
386
97
122
258
480
140
107
55
185
39
118
406
480
149
57
279
26
357
266
433
104
282
271
60
1
414
302
20
127
99
86
114
84
187
349
142
120
411
359
280
491
279
439
392
0
152
236
182
128
70
461
164
398
64
223
76
13
491
120
429
464
279
270
331
283
242
47
449
143
246
300
134
419
95
466
218
276
424
354
34
219
176
127
207
218
170
32
187
71
364
403
442
215
133
176
63
166
53
61
247
253
401
222
465
220
445
126
330
464
350
45
436
149
91
134
107
385
407
338
78
448
149
445
34
472
156
414
64
398
308
113
438
209
257
187
160
8
24
245
91
422
359
153
338
94
26
60
150
423
60
146
478
215
105
231
471
453
214
24
80
381
236
254
449
263
359
113
354
309
200
285
84
433
68
473
123
312
235
11
119
110
125
355
450
51
413
347
50
120
115
488
286
405
276
137
391
341
214
380
223
3
240
184
486
376
324
181
359
265
337
73
140
86
3
342
282
287
344
378
186
85
63
266
38
297
265
421
252
401
21
417
371
451
23
31
75
256
190
294
294
434
79
468
104
50
460
427
170
102
457
60
399
117
101
393
437
343
91
90
98
21
430
89
320
349
374
59
353
4
485
62
11
391
193
279
186
178
77
89
262
326
486
37
485
204
97
142
297
225
237
289
345
425
330
12
39
32
242
127
135
185
309
217
389
415
468
195
422
70
478
189
11
71
410
228
156
237
466
196
239
396
45
208
215
347
292
465
159
158
295
275
319
86
278
255
481
106
198
76
279
489
235
113
250
290
215
109
77
224
79
176
157
100
419
336
81
68
228
45
342
160
292
286
52
7
495
98
32
250
113
434
30
15
437
138
261
181
212
469
299
161
260
94
494
409
323
47
280
466
485
268
481
298
493
24
269
257
451
384
209
410
249
453
404
488
83
440
261
115
288
246
268
89
12
470
258
356
277
86
340
301
370
293
124
133
191
93
446
339
9
228
271
481
379
227
479
292
176
475
494
330
445
373
233
348
359
354
401
92
101
475
197
164
416
196
265
458
49
135
61
307
390
287
5
122
74
128
282
82
491
313
424
71
49
124
212
398
72
487
136
229
409
474
113
270
299
52
91
473
392
417
245
418
175
201
286
240
82
291
35
282
417
207
87
97
56
278
148
263
184
215
293
329
354
490
68
474
401
232
387
427
310
288
356
62
29
463
28
416
351
482
486
356
336
346
15
384
316
157
264
38
248
499
97
433
59
462
462
193
92
70
103
289
483
381
410
470
282
244
166
23
111
133
391
56
79
446
234
264
409
0
233
260
409
344
33
461
268
435
36
311
221
471
62
167
12
465
78
14
453
249
101
383
255
301
26
486
146
498
113
295
35
302
4
431
378
135
30
413
209
47
58
23
437
2
39
86
361
497
214
491
251
70
267
96
34
220
285
137
157
325
79
129
322
384
334
89
274
3
58
305
298
489
301
284
192
177
488
256
336
43
22
432
345
279
266
167
93
170
123
343
127
174
485
400
100
357
175
212
73
471
305
287
27
8
235
139
274
375
88
98
151
58
67
494
42
396
468
115
54
118
32
73
389
316
381
264
482
68
286
485
261
46
143
473
108
351
127
441
372
239
275
358
437
123
166
152
486
438
297
151
354
203
66
410
377
167
110
176
467
125
208
80
54
365
64
110
400
360
91
491
176
96
205
308
67
244
493
343
66
349
430
401
341
413
19
323
20
161
63
354
449
80
461
215
163
256
173
52
370
403
313
319
85
408
499
370
382
126
62
385
499
383
438
329
200
415
181
292
127
415
396
393
141
450
232
381
140
168
101
223
146
229
394
198
244
465
347
61
74
132
332
317
498
438
477
21
277
476
260
34
307
298
153
179
418
464
119
101
342
5
299
321
180
247
129
342
6
384
123
399
485
488
230
282
320
496
101
489
370
285
235
268
305
307
337
484
212
35
195
288
395
86
431
445
436
180
127
445
323
394
455
450
275
70
124
223
371
2
134
237
188
452
202
295
172
372
74
451
458
444
256
250
475
416
132
205
417
346
47
420
126
116
301
162
333
10
341
253
38
203
274
132
489
322
448
455
448
90
87
322
85
76
174
10
151
342
267
462
241
419
302
67
184
200
413
481
212
446
397
296
495
284
223
314
413
30
160
302
13
70
236
160
183
495
115
349
119
350
98
120
472
324
440
340
326
165
356
306
242
288
210
241
58
31
395
11
33
81
243
325
404
312
26
267
25
367
88
284
473
422
71
454
102
293
136
76
166
416
243
140
40
13
141
123
249
422
83
188
26
47
224
179
50
283
69
0
105
296
105
29
410
439
459
49
294
136
333
256
139
137
325
221
322
367
309
320
499
327
468
278
237
279
232
92
429
133
174
379
291
322
186
207
149
129
178
231
72
408
352
371
131
24
421
310
388
458
179
276
374
280
34
55
60
14
68
277
367
444
471
417
376
57
26
20
403
48
52
104
236
16
390
393
356
27
374
448
107
250
218
285
293
374
295
7
266
304
105
20
405
327
449
384
420
345
47
334
198
23
38
297
156
154
253
185
499
265
29
122
436
319
403
226
41
55
205
51
82
61
439
498
227
158
303
349
97
427
84
172
462
1
89
151
45
403
404
454
425
336
391
321
479
296
130
292
44
477
33
482
252
98
285
231
275
246
474
212
399
475
460
252
480
26
164
490
447
82
485
438
119
434
169
460
273
270
396
490
419
358
374
133
349
443
257
221
92
162
105
220
281
312
279
410
153
435
403
40
166
182
196
356
458
274
139
53
328
66
172
384
184
153
241
386
417
436
142
58
355
470
470
80
496
75
153
127
126
134
429
308
297
425
75
19
356
339
261
214
51
460
154
106
288
411
177
213
100
203
51
47
301
27
75
19
471
319
462
427
115
358
135
199
479
359
76
207
350
204
365
72
394
437
292
480
243
307
6
192
334
360
7
467
407
25
35
399
78
356
105
48
448
328
353
0
41
232
211
224
312
206
126
262
76
337
27
198
174
228
421
11
69
105
24
117
303
342
380
223
190
262
130
366
205
34
411
147
453
464
237
107
65
493
22
109
132
229
469
478
72
100
169
373
27
396
233
459
10
259
415
339
488
114
29
149
417
194
388
109
92
336
155
195
47
471
145
348
129
323
121
252
368
259
226
107
400
347
431
116
162
473
109
403
184
280
176
127
158
470
307
259
26
96
250
351
91
55
142
306
217
360
58
279
286
286
376
471
35
163
137
5
263
221
179
465
242
322
486
499
55
474
367
206
5
358
416
401
164
344
226
310
64
20
321
99
458
28
24
13
429
285
307
312
90
105
408
432
238
400
325
265
302
416
64
458
242
332
129
22
332
386
297
493
382
103
220
192
285
328
391
291
200
4
328
101
412
341
97
470
369
222
397
148
244
164
277
437
26
194
19
202
208
333
372
301
97
334
238
383
86
231
53
497
280
456
458
300
461
376
249
35
23
30
269
320
308
356
44
48
417
394
62
391
257
371
497
227
374
484
62
450
397
180
62
45
105
72
277
499
407
247
432
413
379
127
393
0
246
267
2
343
265
322
107
188
160
222
66
51
72
147
452
379
53
159
141
112
282
182
457
92
352
25
493
382
117
12
25
66
479
271
360
68
380
169
123
39
30
372
239
32
456
106
238
439
451
478
418
482
382
287
15
141
404
74
449
36
301
242
267
62
212
330
322
323
73
463
264
101
433
409
190
483
363
112
28
178
119
226
158
309
283
239
494
251
61
258
293
360
224
348
475
226
84
328
290
492
451
478
209
141
446
197
360
25
294
491
291
385
160
86
240
368
407
416
163
399
147
304
36
102
238
125
243
493
448
208
388
496
74
18
93
101
226
362
6
123
143
133
464
435
54
199
454
391
246
444
337
186
244
170
29
245
375
490
489
483
207
49
193
16
226
228
86
340
301
445
158
222
477
49
295
308
27
212
96
437
243
182
315
483
486
354
432
104
415
474
129
161
6
261
422
165
57
473
273
346
6
287
360
6
289
452
475
435
19
112
362
368
361
271
492
50
148
478
335
168
271
378
430
325
494
197
451
117
371
423
6
70
142
97
16
471
394
359
92
489
64
174
371
95
134
141
353
198
156
39
12
206
471
451
238
380
456
283
365
123
299
316
146
190
208
472
455
272
473
192
139
276
116
282
181
168
362
237
105
105
225
87
353
168
288
211
388
246
152
475
489
275
101
183
199
39
432
39
77
465
21
431
41
171
418
77
81
351
247
292
216
187
401
306
302
433
426
238
1
280
357
137
422
33
323
81
160
50
407
403
410
94
217
480
38
411
424
131
375
412
415
349
384
0
131
419
150
441
459
139
196
440
249
127
59
267
102
377
404
118
130
403
152
112
87
464
104
471
112
18
485
404
488
60
209
367
374
227
41
324
341
418
386
483
119
112
34
241
326
44
314
43
237
399
336
112
250
447
160
387
360
192
307
229
488
206
42
305
226
167
410
289
418
227
38
84
431
306
360
248
387
341
151
205
430
137
466
325
343
86
155
12
154
210
410
275
343
250
479
243
460
413
469
19
22
30
310
70
497
115
144
63
90
264
330
193
373
398
239
155
24
343
245
276
27
411
393
139
433
398
29
451
117
374
414
468
3
472
476
6
218
233
0
29
87
423
424
396
457
49
392
326
255
62
262
206
53
338
357
456
304
90
138
62
224
118
260
365
489
166
205
169
109
224
189
272
221
99
206
27
140
127
261
424
86
237
268
142
161
28
123
147
157
162
373
470
199
462
294
168
12
323
89
2
496
23
350
210
270
354
320
358
156
247
332
183
297
477
228
69
152
127
438
322
27
394
119
158
499
399
212
382
154
20
367
89
465
427
313
436
369
195
275
267
67
22
357
118
473
83
107
291
9
417
302
192
70
457
289
6
457
364
347
287
360
419
218
114
242
231
482
467
301
425
293
367
275
485
273
345
29
240
35
231
143
38
205
202
235
215
433
330
198
214
449
393
121
304
100
232
410
16
185
256
166
275
430
233
340
157
423
441
469
497
485
391
293
450
380
421
131
334
402
32
425
489
446
383
148
278
383
12
467
358
127
121
355
190
231
148
454
82
147
188
311
231
421
471
336
332
160
147
35
358
491
225
16
171
433
182
283
339
120
163
29
306
213
340
14
157
321
370
288
102
103
233
475
171
202
117
214
292
472
125
261
45
15
147
281
114
312
59
296
436
134
240
358
416
349
242
21
410
329
23
498
257
298
406
364
81
472
48
96
351
364
79
288
387
228
84
76
104
320
423
181
117
330
342
404
114
63
486
342
352
193
377
65
23
367
456
220
400
343
448
216
488
108
75
379
149
409
151
40
129
50
54
432
327
187
402
197
231
229
19
4
173
495
487
82
414
117
215
32
142
407
330
346
228
406
294
274
97
324
463
313
311
446
305
477
147
55
38
426
367
405
4
90
329
82
379
78
439
104
177
247
191
405
468
353
47
387
288
71
11
88
188
85
83
3
422
451
482
351
160
44
224
109
113
141
73
306
56
159
163
364
336
465
194
401
253
471
495
351
356
25
369
209
475
379
108
23
233
227
267
115
468
32
322
370
257
36
159
496
262
216
481
161
39
175
284
494
451
480
34
122
436
5
468
252
394
27
335
416
158
355
476
150
338
352
41
74
395
350
4
185
395
155
323
308
135
217
239
394
265
374
375
248
136
307
91
378
223
7
318
126
145
224
148
355
437
162
228
132
137
388
329
25
342
450
60
51
70
352
261
242
446
284
380
342
207
303
179
371
269
431
31
302
366
261
453
199
123
238
164
287
71
396
464
106
171
499
321
131
35
151
259
411
362
497
365
204
65
109
404
205
250
314
23
430
84
298
446
379
230
347
426
189
187
95
319
161
56
225
19
73
99
222
173
156
427
141
175
165
309
98
34
62
113
32
353
333
362
438
4
3
314
394
409
120
324
322
232
348
70
174
135
110
457
129
471
362
489
207
183
285
43
81
15
259
426
158
143
15
281
299
369
457
245
249
382
203
278
491
18
80
233
301
196
119
47
199
448
218
171
211
27
457
468
450
212
419
316
215
85
241
380
19
333
170
174
11
20
206
269
374
388
273
61
271
305
149
35
89
343
331
108
435
69
311
88
90
364
289
159
448
185
169
279
102
193
244
27
386
396
321
286
102
0
104
280
318
163
176
288
28
267
467
462
346
151
300
383
147
144
259
466
124
199
319
26
17
406
495
225
345
488
79
374
476
68
218
31
130
410
204
3
201
274
340
341
145
234
416
45
112
57
284
171
236
141
399
424
413
200
347
451
310
53
266
301
231
104
337
197
31
4
312
272
156
338
104
185
330
4
1
184
272
201
215
318
268
327
64
333
298
383
25
81
290
22
106
359
79
393
477
443
416
450
266
138
329
425
115
31
81
252
433
468
205
376
311
441
370
101
359
362
45
405
354
125
403
360
275
67
188
447
220
59
209
217
141
153
200
83
213
338
106
345
321
358
230
317
184
26
146
82
106
372
299
435
391
356
183
20
265
330
376
214
410
251
122
68
213
415
70
239
38
76
335
181
210
215
399
425
80
429
191
262
243
297
419
306
84
474
183
308
346
441
156
356
452
368
212
223
394
374
496
361
170
236
424
228
449
210
369
382
418
300
28
193
330
137
445
121
274
410
257
438
220
77
12
2
490
469
358
219
134
122
250
146
190
56
62
208
108
5
294
58
176
126
272
399
298
255
437
82
104
130
498
42
381
93
57
378
361
203
74
235
312
132
179
289
262
337
255
343
443
254
101
385
127
70
333
329
456
158
313
375
467
235
364
122
380
305
203
65
172
489
346
206
241
54
326
347
33
200
118
424
326
413
393
137
437
431
374
102
245
204
218
392
389
487
401
393
76
259
264
334
468
280
166
352
367
180
360
99
441
478
274
175
451
137
167
463
457
406
493
104
181
70
210
214
33
0
27
365
494
78
370
200
499
265
433
257
465
68
379
16
87
48
388
247
131
323
226
282
79
411
358
79
285
350
161
219
246
95
285
157
50
137
104
139
186
246
338
181
378
358
406
434
357
11
336
438
398
349
355
164
197
282
396
87
18
288
276
216
4
80
274
163
482
428
148
396
246
312
134
240
94
224
395
83
7
295
50
355
174
459
206
120
159
127
289
374
480
81
120
257
372
257
95
201
369
110
376
313
104
309
439
333
440
467
449
457
438
417
198
286
391
270
52
433
375
235
486
417
224
466
253
407
225
258
290
408
339
266
338
179
362
153
286
218
416
248
13
476
409
307
99
413
114
323
381
427
161
356
143
117
75
107
367
46
209
289
427
222
82
456
99
305
435
159
404
437
151
88
375
146
217
216
13
417
489
35
81
64
53
362
425
147
421
10
104
261
168
286
78
89
302
25
138
66
36
13
15
194
380
336
347
65
450
306
274
432
322
344
48
196
174
43
360
327
388
173
276
346
76
55
58
92
336
316
279
199
234
301
258
242
368
445
94
442
272
60
353
257
113
264
432
227
363
172
52
417
30
91
178
130
18
272
65
198
79
307
310
304
257
167
242
465
258
93
290
9
419
336
148
90
456
449
96
274
10
27
202
396
30
299
55
69
439
475
322
415
468
160
484
143
469
42
459
169
18
40
332
37
365
199
471
57
278
384
215
151
350
192
164
284
453
324
356
140
387
180
452
184
434
397
477
377
150
177
147
73
385
372
157
471
260
457
227
338
420
155
337
404
9
267
483
205
355
463
343
462
220
35
478
362
105
272
232
457
9
151
454
151
484
346
7
187
90
242
496
240
387
360
286
39
222
1
246
370
145
398
435
238
156
293
206
279
354
485
168
86
476
148
47
121
404
195
438
48
49
395
339
119
66
440
347
454
299
341
298
225
228
288
313
164
414
101
322
12
93
74
404
45
318
171
156
320
92
329
390
218
50
69
258
413
433
466
217
59
421
413
188
79
456
103
137
436
73
289
43
12
394
58
47
461
495
294
233
294
389
485
224
496
149
22
81
67
139
458
473
86
285
254
163
347
15
252
133
376
130
287
68
91
295
185
108
487
132
196
68
124
153
39
65
163
19
445
202
390
214
417
480
463
211
199
0
417
244
461
284
363
483
207
419
126
492
460
412
103
100
419
327
400
25
335
438
128
149
102
270
261
275
342
490
81
313
335
155
74
262
150
209
237
303
377
453
395
289
324
212
302
368
235
333
416
146
235
224
47
344
417
122
403
284
105
342
50
210
287
255
81
294
326
437
192
355
67
58
181
215
449
349
439
77
121
346
325
148
104
112
280
350
3
426
404
482
268
35
486
370
475
186
92
160
274
192
77
246
259
16
103
36
346
496
285
423
84
411
249
480
244
454
121
172
144
158
413
490
418
199
297
346
493
349
92
387
16
472
386
30
158
242
52
182
485
340
47
439
18
149
332
24
173
188
330
385
330
311
368
483
47
327
262
289
216
174
281
477
162
53
76
453
371
173
163
373
9
410
443
280
106
406
420
41
282
15
287
284
212
152
367
34
143
470
66
189
431
350
235
303
121
239
476
232
262
247
215
359
247
458
443
111
470
294
482
400
384
70
382
83
231
10
171
28
119
280
485
266
185
164
74
234
420
2
12
215
33
87
233
110
206
29
278
254
429
31
486
274
245
381
386
323
123
153
37
296
278
407
458
320
416
210
499
363
256
428
416
409
399
139
59
277
485
74
339
13
61
304
83
138
86
451
466
345
9
468
275
462
65
172
44
118
394
456
300
495
247
48
388
387
61
424
150
225
15
455
360
320
191
247
98
386
430
178
307
448
116
62
369
215
339
92
285
175
212
485
432
457
151
210
85
96
78
459
235
369
184
386
105
436
119
458
320
440
343
13
198
165
30
304
339
389
382
204
278
280
349
82
403
64
387
3
356
169
303
188
359
491
327
43
122
383
8
266
443
341
302
310
135
6
414
101
430
499
138
270
235
354
389
377
259
247
460
441
414
371
38
82
262
16
13
290
222
318
14
449
218
423
90
170
478
209
63
202
26
175
85
116
141
59
344
41
209
79
374
368
132
64
411
298
462
460
178
51
473
145
26
476
100
36
256
317
260
133
184
239
322
28
461
321
115
381
347
453
144
123
379
185
268
450
33
122
499
321
420
202
75
415
352
344
46
491
208
412
422
415
27
254
66
489
115
203
422
255
416
328
459
82
123
62
385
104
430
326
277
464
188
176
161
496
398
475
451
405
447
50
339
107
235
412
241
481
188
246
432
127
240
204
134
50
120
314
296
216
14
6
213
427
269
437
64
34
48
481
306
150
487
36
160
40
20
213
468
452
178
163
466
143
126
252
468
469
171
36
480
484
354
134
468
50
399
87
311
39
107
202
437
159
172
185
174
281
439
312
167
477
302
173
165
144
398
368
422
375
153
409
170
37
197
252
251
143
320
407
385
193
311
197
74
497
83
286
476
240
407
142
197
167
45
72
451
281
131
347
46
324
42
145
264
287
95
70
442
443
151
264
404
43
139
338
69
279
161
376
316
443
256
100
273
407
177
196
129
291
27
481
169
477
78
122
131
126
181
174
219
274
229
343
232
107
480
260
374
361
11
496
93
89
14
14
125
455
28
145
36
172
5
3
438
263
25
141
34
241
358
96
402
170
397
453
493
452
28
334
117
478
499
342
132
294
161
341
174
328
356
105
277
97
256
108
170
159
110
481
465
302
268
461
122
14
395
267
93
36
10
342
491
359
119
135
314
266
449
285
446
418
334
123
273
214
124
78
212
294
21
463
426
240
69
445
198
486
8
228
111
209
69
48
480
133
293
310
312
279
448
128
121
397
316
299
235
444
231
364
130
431
188
288
240
481
247
87
464
7
19
446
59
213
259
360
376
29
335
226
362
4
456
84
185
158
355
228
429
356
399
180
251
385
56
41
415
461
16
307
435
412
10
43
211
19
156
247
8
192
48
325
157
96
402
96
135
173
172
18
144
82
357
451
196
368
369
472
85
124
280
156
55
273
376
115
45
138
287
387
108
328
109
318
353
475
312
157
139
273
244
429
88
233
377
442
377
431
86
380
381
140
261
363
491
315
324
337
455
68
49
42
239
295
343
256
285
123
357
110
262
105
25
237
365
413
23
202
166
467
430
225
228
477
364
143
81
14
288
338
255
473
282
384
277
314
267
190
143
44
203
206
71
8
324
140
448
467
28
146
371
489
78
278
294
285
58
21
330
38
123
230
499
212
98
294
151
59
162
494
251
49
491
428
266
291
396
207
346
237
244
67
407
310
326
387
485
253
181
214
74
85
440
375
379
297
389
203
425
319
367
432
210
154
188
202
28
241
491
352
268
381
326
27
148
133
245
2
435
41
149
455
170
81
317
330
228
456
243
294
347
437
57
336
220
281
72
283
263
123
169
92
3
114
269
428
80
28
41
9
174
211
35
443
348
459
397
366
474
308
250
101
351
486
70
134
23
17
254
454
210
20
316
249
223
254
167
419
109
242
419
73
54
143
0
379
491
91
405
116
333
484
382
399
137
304
329
156
273
19
307
418
435
410
190
107
112
481
207
228
420
43
329
234
36
495
320
124
449
229
125
418
192
189
316
296
325
443
356
497
187
237
404
443
66
163
365
155
33
109
278
469
492
234
100
26
10
367
480
153
306
314
8
226
235
80
6
234
122
448
156
325
218
303
237
114
258
96
427
429
199
58
32
381
108
380
459
259
171
241
171
153
477
134
63
360
489
329
76
340
488
116
369
314
446
487
352
162
375
229
244
2
17
311
435
127
487
219
145
7
93
233
206
378
366
400
130
130
330
290
452
94
357
158
167
113
428
427
322
70
482
208
39
366
228
175
67
201
30
146
51
186
333
495
455
438
443
399
110
137
362
189
158
53
311
308
426
410
298
368
366
248
150
145
141
248
312
465
363
330
253
350
224
365
309
2
465
302
83
245
256
280
208
350
215
183
318
16
198
310
490
4
289
111
204
366
169
396
462
432
339
166
171
99
440
278
256
152
23
65
90
343
282
82
357
168
4
486
164
153
65
94
138
499
16
440
107
402
161
318
462
174
1
419
127
89
214
49
450
396
483
347
57
61
421
153
429
447
250
453
88
256
133
316
362
33
23
368
359
86
72
105
88
420
46
461
224
398
64
287
457
52
282
70
320
404
34
418
88
177
438
334
60
180
274
138
353
331
241
218
120
70
381
53
167
345
230
109
31
443
360
91
126
465
139
440
107
240
356
435
27
205
464
109
391
291
85
13
332
121
330
87
302
450
263
153
39
314
272
200
411
383
326
499
347
474
319
173
158
337
122
177
301
399
279
418
176
494
137
41
178
229
369
375
275
483
494
78
465
468
267
480
349
224
283
195
135
466
359
253
133
147
207
205
328
160
192
445
364
176
275
73
188
121
101
284
166
413
347
400
470
288
421
427
19
107
268
377
0
156
347
107
286
218
349
342
135
440
149
472
498
483
106
489
355
56
122
446
210
208
127
125
206
274
346
200
237
89
179
269
346
497
314
173
241
179
443
370
152
442
49
426
182
199
254
212
12
218
326
173
291
383
19
487
394
234
309
151
163
409
374
39
301
176
117
182
404
451
237
266
175
20
455
70
278
77
357
215
365
98
384
322
59
154
458
386
387
52
478
57
241
51
427
107
146
269
61
98
5
392
71
117
126
136
2
220
164
80
22
469
350
238
220
279
256
465
340
379
211
146
455
286
235
264
457
190
166
392
88
95
83
153
233
70
6
227
238
113
94
234
161
228
56
471
89
305
349
191
149
456
354
36
437
92
52
350
152
295
429
45
383
30
366
465
50
232
318
384
178
349
315
287
465
357
351
242
104
38
336
292
398
387
441
447
407
102
231
485
175
92
223
491
467
265
295
455
497
396
357
395
55
461
141
24
344
296
206
215
170
183
127
158
284
302
435
108
54
335
462
37
129
59
3
377
246
3
180
78
197
62
10
240
472
43
292
157
334
425
38
177
404
499
173
294
24
398
405
225
129
60
404
51
457
412
22
421
487
362
283
122
167
424
29
339
32
334
214
178
432
233
223
98
464
420
497
393
90
83
62
60
381
159
113
294
167
353
473
491
284
167
59
312
498
215
111
49
323
387
109
29
75
259
230
263
311
418
334
469
369
101
379
24
402
123
163
426
139
425
27
468
342
426
325
288
352
173
414
499
214
324
474
308
104
50
249
214
181
124
332
88
178
425
235
343
484
264
12
446
357
327
296
423
152
198
219
289
230
279
274
496
353
353
445
93
183
156
369
399
196
469
76
107
319
371
420
314
79
197
208
76
130
351
330
423
203
372
385
341
23
7
337
468
412
454
381
305
129
208
64
263
389
232
421
393
309
427
497
425
484
116
63
460
16
211
3
340
230
376
420
499
397
287
81
420
30
157
332
454
268
480
410
357
24
18
277
150
102
362
67
86
151
179
466
253
366
451
227
78
13
4
78
51
253
102
60
331
479
373
113
192
139
208
256
97
354
161
493
86
23
36
444
213
407
163
470
270
150
208
5
355
200
430
495
56
0
201
237
309
441
300
26
35
273
116
207
181
12
22
261
484
432
499
300
476
75
425
350
410
463
315
423
377
422
78
254
176
28
204
378
259
81
323
36
369
307
47
147
426
183
57
131
264
351
20
71
274
13
95
218
251
165
225
421
91
326
478
270
103
292
459
158
280
377
67
487
380
317
44
101
13
347
95
117
467
237
351
6
291
370
492
315
274
179
108
269
105
43
2
234
372
93
412
174
98
372
404
464
301
345
77
339
202
255
82
136
85
457
290
32
31
19
485
45
338
247
404
462
374
97
459
16
384
175
110
239
419
166
331
200
308
355
335
237
204
346
410
240
256
208
145
299
291
332
284
252
486
170
394
105
191
464
354
185
0
78
182
212
241
394
474
60
193
381
371
255
231
438
328
112
219
278
197
188
53
120
113
357
136
388
248
92
365
14
70
255
285
127
269
365
43
178
11
217
307
202
0
444
303
42
467
35
493
213
200
115
38
323
12
248
7
144
367
275
223
314
119
278
318
448
66
418
74
332
65
173
306
221
79
30
353
169
480
431
166
234
43
130
295
353
137
492
14
52
291
162
242
157
183
312
35
164
223
70
159
158
217
325
359
242
161
218
291
306
242
140
245
490
311
122
107
418
70
394
326
253
129
496
350
131
266
300
466
116
482
427
75
273
170
307
84
212
384
141
210
376
275
373
143
317
386
251
119
128
319
403
476
424
336
499
326
129
227
458
433
477
64
379
169
294
312
177
3
247
30
255
282
329
343
345
403
310
480
253
70
350
438
4
427
390
56
112
466
70
165
310
462
135
380
302
120
219
126
164
305
321
471
334
71
153
400
280
208
236
136
447
53
268
412
318
348
322
121
3
309
312
406
71
189
406
208
425
119
194
401
104
452
459
334
15
178
254
464
187
244
37
114
83
245
188
286
417
304
490
193
12
356
428
70
8
238
217
298
8
467
438
57
152
184
470
61
390
210
427
259
186
192
58
99
132
43
68
288
169
88
162
24
427
386
173
298
27
50
348
254
213
130
465
421
310
458
205
315
257
284
476
45
149
102
170
361
274
293
165
474
26
224
72
486
12
298
109
347
345
110
299
99
264
154
374
292
483
459
185
224
468
20
422
166
160
302
111
105
192
451
61
258
211
494
372
434
6
359
82
257
158
495
49
179
390
385
377
280
444
212
483
237
478
372
45
149
471
399
157
342
404
167
130
98
159
361
149
234
82
231
209
371
24
32
390
160
330
482
301
52
421
449
146
83
322
462
170
78
358
163
241
362
175
221
259
246
260
55
35
453
100
309
234
283
237
1
194
439
188
140
391
101
151
4
222
111
495
349
398
84
284
397
352
61
376
35
270
215
183
426
18
488
273
467
401
304
339
108
207
228
186
435
142
387
97
428
164
461
95
71
67
328
39
182
55
222
187
288
25
423
483
294
61
173
47
138
407
38
366
95
59
123
457
316
270
387
387
288
300
203
141
250
391
150
8
352
289
200
170
273
429
182
350
440
424
335
469
197
306
218
328
30
385
483
178
455
236
334
256
375
203
4
311
373
311
338
164
196
286
301
55
371
128
342
306
158
88
385
158
330
496
107
262
241
23
128
363
14
4
291
280
110
135
134
183
331
140
195
7
242
294
429
249
241
272
126
279
211
27
438
136
339
159
297
435
444
253
64
171
93
312
478
27
231
172
293
57
47
275
216
290
199
298
478
487
39
260
145
266
158
145
96
481
421
46
233
275
126
434
84
99
276
431
472
113
148
159
125
241
142
272
46
116
180
134
458
379
184
105
400
188
481
414
435
274
32
414
224
166
276
348
166
428
33
393
149
490
497
124
195
442
497
475
28
337
84
23
388
15
391
85
48
298
430
402
442
404
48
492
81
38
309
445
151
410
65
206
407
445
219
14
15
397
265
138
258
212
131
456
251
377
198
362
162
186
153
113
172
395
77
230
480
9
96
119
99
276
241
367
252
474
272
49
35
305
150
159
178
73
136
321
78
225
360
244
307
70
86
337
352
298
446
408
124
432
233
215
289
255
43
110
488
59
268
300
434
490
492
164
446
409
306
395
450
348
494
36
385
250
219
443
80
466
149
380
194
406
149
119
24
433
478
146
469
169
381
461
316
75
18
1
413
28
418
464
138
46
379
454
242
46
356
374
300
102
265
182
96
67
438
408
320
199
203
165
347
417
101
149
308
112
29
409
48
3
121
60
102
229
461
414
129
396
459
290
73
315
275
289
220
354
9
283
263
89
45
209
435
70
42
112
131
24
179
467
8
45
264
56
172
158
189
215
11
299
298
301
430
270
40
83
248
7
276
119
38
352
196
498
400
33
358
309
297
403
394
491
102
364
123
424
443
373
44
436
36
93
166
151
28
68
120
472
127
458
32
96
118
471
36
73
0
15
73
390
227
225
89
85
414
32
174
354
215
328
179
380
335
233
478
92
167
98
470
44
102
197
416
324
496
306
460
45
312
298
187
163
48
28
83
457
327
249
227
90
52
326
116
270
309
485
6
174
390
1
65
82
256
463
329
371
109
120
430
343
99
144
499
210
90
443
329
17
412
128
46
85
198
471
383
2
97
182
261
370
20
294
416
380
359
161
258
26
111
36
3
392
71
110
428
420
44
366
249
21
262
8
323
339
495
239
401
236
183
385
11
391
436
416
385
416
423
317
86
128
161
280
308
145
443
332
50
351
169
444
219
185
459
266
378
9
347
322
34
1
343
280
336
75
310
349
355
419
98
468
476
384
134
270
22
219
222
55
13
409
447
120
7
156
486
93
212
340
283
334
439
300
494
497
310
164
187
402
190
435
464
117
335
177
484
412
191
462
454
67
309
46
496
474
23
142
23
163
58
255
221
295
413
186
413
371
422
348
491
383
451
210
335
472
396
274
339
383
487
416
189
13
283
146
306
236
391
194
232
336
482
37
375
111
438
385
184
288
93
48
42
238
371
22
190
173
382
373
405
413
174
489
180
238
444
236
10
153
47
177
453
451
363
235
435
88
489
170
466
344
142
136
14
1
416
417
228
46
19
102
132
92
8
75
262
223
479
223
50
44
386
330
198
348
296
233
386
476
238
175
211
497
181
491
249
111
186
257
392
489
39
195
12
270
353
212
460
295
201
42
120
450
217
169
478
395
497
25
36
456
444
143
174
285
490
262
223
47
480
13
197
227
328
12
297
42
333
481
385
476
473
283
305
365
113
313
426
311
72
4
155
141
90
43
110
108
190
11
102
340
156
154
406
40
146
147
255
281
310
256
322
140
132
252
230
389
224
5
137
39
119
211
373
419
289
354
472
299
300
87
292
396
289
130
172
206
170
33
185
280
438
318
155
33
442
129
229
148
142
61
235
179
189
176
113
350
157
12
134
285
171
215
8
153
119
72
165
434
423
339
21
73
339
386
208
439
346
218
108
299
78
222
243
156
137
101
491
482
461
301
157
235
218
81
79
43
179
147
4
290
457
101
147
455
39
309
336
22
205
474
36
342
139
330
289
343
107
328
314
416
316
326
434
142
433
232
0
364
197
438
438
235
247
134
409
188
335
5
28
430
374
381
37
251
485
471
182
419
473
331
201
122
255
227
124
403
326
271
490
480
31
56
350
66
259
226
205
125
187
48
298
153
259
447
405
272
34
201
449
467
187
356
248
203
8
209
243
462
169
358
458
192
252
336
476
185
118
239
41
88
122
57
228
430
301
467
278
480
330
21
260
418
410
5
124
332
197
491
228
169
172
174
444
451
130
194
270
412
297
331
275
196
444
270
484
403
36
354
70
354
313
388
106
15
492
25
103
6
122
472
474
37
205
379
280
306
136
378
84
399
169
304
434
352
380
224
334
93
495
220
115
266
427
403
78
431
266
291
43
108
109
96
258
378
30
369
66
37
15
85
376
55
8
427
214
183
112
148
129
381
227
313
324
72
494
138
453
244
430
305
374
283
1
306
62
49
389
424
412
298
29
462
5
436
42
71
28
212
172
479
69
158
265
406
141
243
183
47
27
188
407
139
260
280
483
463
364
164
156
92
162
291
109
260
426
75
79
385
190
292
187
407
26
479
158
400
224
59
205
204
127
336
329
458
141
328
236
488
307
468
28
105
261
432
236
52
153
253
432
169
141
494
110
412
1
41
252
339
403
447
197
493
55
412
92
23
475
93
125
429
406
42
137
437
80
7
115
280
56
237
69
269
124
68
370
131
413
410
154
191
321
126
80
213
376
422
446
389
492
230
311
15
196
496
371
275
322
348
149
404
346
309
376
21
404
368
93
478
244
7
128
325
398
114
83
236
224
2
207
2
48
270
375
354
361
379
458
424
227
128
54
301
452
142
108
139
167
48
193
408
146
112
172
446
469
294
275
463
462
234
22
142
108
465
166
127
432
362
238
81
143
315
456
80
344
456
92
254
487
42
177
15
13
129
139
17
4
137
412
485
240
416
15
129
297
489
260
132
459
473
228
114
316
118
158
453
281
186
272
229
459
49
284
50
399
245
234
44
337
91
101
332
452
273
276
118
139
18
83
349
254
113
86
298
349
131
70
345
447
464
40
109
203
239
40
106
133
7
431
171
303
70
160
428
471
206
467
29
167
263
132
399
60
67
17
439
394
17
365
140
178
477
490
374
231
403
137
463
173
1
301
309
222
382
20
296
380
187
158
383
373
293
303
177
319
417
447
82
229
167
185
173
279
354
318
126
82
418
238
119
97
240
173
398
194
444
315
334
475
193
52
62
311
232
183
234
273
118
20
492
428
211
227
33
150
144
36
25
306
234
462
130
52
138
435
461
155
214
371
322
176
32
183
94
63
38
332
212
285
174
285
404
151
28
353
326
324
229
14
393
427
158
339
17
266
153
339
180
367
381
330
37
25
407
53
25
402
329
454
173
30
220
105
391
50
10
41
112
223
72
53
54
172
394
306
76
382
492
173
102
12
116
307
55
201
325
463
418
400
320
30
348
387
441
181
269
4
222
358
299
476
223
340
351
313
387
450
313
222
205
141
493
291
25
93
176
98
359
151
415
134
182
52
125
104
453
388
381
160
478
256
167
459
27
279
31
25
482
413
302
247
316
386
323
312
255
291
254
27
341
169
336
273
482
24
104
229
213
221
346
19
166
107
113
7
57
484
166
342
476
46
266
90
15
189
403
298
130
394
337
486
100
172
76
357
230
218
171
414
442
166
471
334
281
141
164
95
11
85
437
382
302
207
274
366
422
17
155
254
126
55
53
320
190
1
268
56
426
377
373
102
179
26
71
158
451
173
94
498
338
128
67
194
291
374
482
64
424
496
340
140
428
177
305
183
320
206
277
59
411
100
495
397
347
94
439
6
259
458
271
338
299
225
140
312
454
223
257
139
479
348
302
177
51
137
1
79
365
185
442
363
182
89
443
147
282
385
374
179
353
391
461
6
73
286
137
135
323
333
74
99
145
444
268
454
455
271
327
446
37
35
263
444
379
241
223
367
200
131
58
125
486
219
44
471
443
273
310
305
376
324
342
23
326
319
11
473
97
281
84
191
167
271
423
293
221
209
124
127
370
56
367
331
375
402
43
477
87
147
71
405
329
451
199
136
163
274
454
444
191
317
208
238
70
384
313
349
82
252
288
4
306
32
439
24
234
70
345
498
263
198
14
318
471
222
231
346
213
273
386
24
389
112
272
212
394
241
418
238
286
11
469
290
64
282
396
120
450
366
288
50
153
404
495
399
190
226
180
314
375
332
113
279
158
335
287
212
93
294
30
146
348
488
450
180
345
234
418
438
198
117
261
170
7
352
300
445
147
7
176
162
123
273
313
37
142
115
6
333
377
145
452
320
442
417
383
396
32
137
345
79
157
194
420
242
187
265
250
345
227
137
445
280
84
483
273
404
215
431
393
341
228
398
206
461
17
393
376
463
470
164
249
305
395
338
249
473
360
352
10
447
103
3
14
442
278
15
197
372
59
476
229
14
463
24
268
255
176
380
281
229
394
196
75
204
388
135
219
127
422
280
31
131
112
477
273
341
310
495
223
369
387
256
286
342
220
267
126
15
311
331
13
393
59
176
203
8
314
26
97
214
351
63
15
461
399
330
363
475
447
398
345
215
386
199
14
435
13
45
310
440
416
212
0
46
77
34
436
44
191
99
206
388
307
488
202
289
97
492
47
413
287
416
486
122
220
66
169
38
271
95
159
0
295
381
159
444
167
84
99
67
76
355
364
290
248
318
488
487
427
102
212
143
410
365
343
201
45
211
329
389
25
30
102
386
470
35
436
19
228
363
281
464
63
475
363
178
424
429
187
340
151
380
325
329
441
478
471
231
372
326
185
493
311
101
102
132
307
414
106
334
175
150
152
125
121
236
151
343
263
351
192
340
6
401
44
349
426
264
133
137
360
380
5
115
299
464
316
150
153
77
373
124
165
22
88
306
165
101
488
16
261
278
257
131
213
492
476
296
214
203
379
433
251
79
247
39
211
127
454
294
195
489
383
241
76
450
272
493
279
112
307
121
314
463
450
309
400
133
45
192
0
399
303
498
139
193
419
440
48
311
247
448
414
384
129
481
167
499
184
46
391
420
156
266
431
136
162
444
103
277
357
136
156
295
393
22
265
349
136
319
71
311
245
414
246
18
298
237
254
319
89
19
115
231
439
199
146
137
347
2
153
455
281
195
348
450
463
211
336
33
457
422
0
307
216
248
471
399
466
459
310
382
218
461
52
49
225
309
254
88
456
486
461
219
414
450
99
27
160
206
227
108
83
90
147
275
207
78
76
458
220
327
191
6
171
422
248
389
270
434
332
14
209
99
429
269
175
254
186
229
482
106
64
420
79
262
163
339
189
279
401
163
132
192
216
340
223
250
206
264
402
493
114
324
29
303
214
387
297
369
454
434
190
90
347
279
55
309
100
294
313
131
119
117
80
375
410
455
59
167
233
412
369
498
94
31
104
488
453
204
248
196
402
299
214
447
100
59
375
453
126
200
122
115
55
477
440
477
139
371
394
378
227
251
122
395
78
187
345
175
485
195
291
309
314
497
361
153
215
372
118
439
37
393
471
166
456
301
71
440
266
496
7
201
344
179
490
459
436
345
168
122
107
375
124
177
119
205
409
431
11
394
23
318
209
473
97
380
95
208
116
442
61
249
101
421
481
242
457
270
73
297
221
35
356
84
136
446
414
498
393
426
438
96
482
396
412
23
425
132
441
458
3
380
16
281
158
63
447
369
357
252
64
135
402
419
264
449
61
240
448
160
495
406
272
474
445
93
193
99
269
148
413
361
454
163
206
56
191
303
32
173
436
300
349
273
217
246
456
209
270
338
132
247
233
188
415
112
230
436
467
421
74
473
27
54
297
230
67
315
397
445
6
358
15
144
347
492
209
63
426
325
157
232
19
236
376
318
440
375
99
257
416
206
247
401
394
193
372
96
304
121
271
338
135
73
65
191
72
252
420
103
86
145
86
223
203
52
260
145
281
333
218
297
368
116
175
246
414
148
67
266
391
311
110
269
161
194
395
275
231
444
81
463
121
94
444
470
459
457
321
443
76
354
440
478
285
437
239
187
335
485
460
141
192
309
127
373
289
360
208
264
413
345
311
68
90
327
104
458
279
118
297
90
456
4
291
126
145
299
345
51
147
29
459
246
32
298
314
170
272
393
92
40
189
394
60
27
35
107
425
362
434
124
155
278
338
351
115
19
358
347
442
380
2
443
142
448
415
93
243
485
262
442
388
219
485
370
441
153
418
2
498
208
1
220
460
271
477
50
432
161
62
40
238
36
76
57
35
128
428
60
360
466
454
45
249
376
468
151
450
446
252
421
144
104
475
27
252
156
354
317
405
472
332
60
130
395
317
440
456
211
344
315
42
14
97
333
130
110
301
339
413
123
98
376
410
16
322
122
293
481
350
348
49
203
406
151
292
409
315
18
118
141
283
80
18
401
446
53
466
64
203
280
79
393
20
22
233
223
25
219
84
463
487
485
460
410
432
22
447
260
358
483
427
127
319
466
454
328
465
321
265
405
402
321
393
142
151
18
138
222
249
343
442
399
471
490
323
70
313
30
55
319
280
446
382
319
36
489
115
332
357
161
491
279
121
49
329
54
296
457
124
137
267
365
420
26
223
371
487
343
87
296
323
143
323
66
390
344
191
335
113
317
440
171
16
380
160
383
480
438
420
308
484
123
170
440
307
380
461
475
237
365
436
393
330
327
230
36
499
446
71
115
45
429
257
287
105
404
119
63
232
13
469
238
22
373
239
212
113
220
220
176
151
223
345
402
199
97
191
35
124
276
57
196
460
383
92
159
366
394
381
204
43
412
167
353
410
247
414
208
421
317
220
382
113
48
165
101
379
155
385
174
342
493
251
397
460
395
296
101
99
182
86
391
10
456
426
360
217
201
117
86
38
363
176
232
89
302
245
199
252
55
109
495
185
164
281
498
262
215
165
306
286
55
234
266
150
368
51
163
10
62
98
391
405
157
155
198
103
137
496
412
464
360
489
84
93
12
407
138
483
316
253
494
218
436
385
47
478
145
183
187
176
210
320
468
304
460
495
143
224
105
72
396
92
183
350
162
163
347
266
189
400
374
324
328
404
455
497
207
207
252
123
166
376
156
237
428
6
381
449
167
173
267
32
315
331
351
411
318
191
135
155
482
184
188
322
273
266
439
237
312
232
216
414
41
298
233
448
129
411
383
336
210
323
4
214
452
374
88
242
409
167
195
417
456
208
375
74
105
41
169
103
406
380
308
85
368
224
253
410
128
202
476
365
404
361
158
485
385
453
388
9
170
294
58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment