@@ -304,3 +304,132 @@ func stringMustEndWith(t *testing.T, expected, value string) {
304
304
func bytesMustStartWith (t * testing.T , expected , value []byte ) {
305
305
assert .Equal (t , expected , value [:len (expected )])
306
306
}
307
+
308
+ func TestToUTF8WithFallbackReader (t * testing.T ) {
309
+ resetDefaultCharsetsOrder ()
310
+
311
+ truncatedOneByteExtension := failFastBytes
312
+ encoding , _ := DetectEncoding (truncatedOneByteExtension )
313
+ assert .Equal (t , "UTF-8" , encoding )
314
+
315
+ truncatedTwoByteExtension := failFastBytes
316
+ truncatedTwoByteExtension [len (failFastBytes )- 1 ] = 0x9b
317
+ truncatedTwoByteExtension [len (failFastBytes )- 2 ] = 0xe2
318
+
319
+ encoding , _ = DetectEncoding (truncatedTwoByteExtension )
320
+ assert .Equal (t , "UTF-8" , encoding )
321
+
322
+ truncatedThreeByteExtension := failFastBytes
323
+ truncatedThreeByteExtension [len (failFastBytes )- 1 ] = 0x92
324
+ truncatedThreeByteExtension [len (failFastBytes )- 2 ] = 0x9f
325
+ truncatedThreeByteExtension [len (failFastBytes )- 3 ] = 0xf0
326
+
327
+ encoding , _ = DetectEncoding (truncatedThreeByteExtension )
328
+ assert .Equal (t , "UTF-8" , encoding )
329
+ }
330
+
331
+ var failFastBytes = []byte {
332
+ 0x69 , 0x6d , 0x70 , 0x6f , 0x72 , 0x74 , 0x20 , 0x6f , 0x72 , 0x67 , 0x2e , 0x61 , 0x70 , 0x61 , 0x63 , 0x68 , 0x65 , 0x2e , 0x74 , 0x6f ,
333
+ 0x6f , 0x6c , 0x73 , 0x2e , 0x61 , 0x6e , 0x74 , 0x2e , 0x74 , 0x61 , 0x73 , 0x6b , 0x64 , 0x65 , 0x66 , 0x73 , 0x2e , 0x63 , 0x6f , 0x6e ,
334
+ 0x64 , 0x69 , 0x74 , 0x69 , 0x6f , 0x6e , 0x2e , 0x4f , 0x73 , 0x0a , 0x69 , 0x6d , 0x70 , 0x6f , 0x72 , 0x74 , 0x20 , 0x6f , 0x72 , 0x67 ,
335
+ 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x62 , 0x6f , 0x6f ,
336
+ 0x74 , 0x2e , 0x67 , 0x72 , 0x61 , 0x64 , 0x6c , 0x65 , 0x2e , 0x74 , 0x61 , 0x73 , 0x6b , 0x73 , 0x2e , 0x72 , 0x75 , 0x6e , 0x2e , 0x42 ,
337
+ 0x6f , 0x6f , 0x74 , 0x52 , 0x75 , 0x6e , 0x0a , 0x0a , 0x70 , 0x6c , 0x75 , 0x67 , 0x69 , 0x6e , 0x73 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 ,
338
+ 0x20 , 0x20 , 0x69 , 0x64 , 0x28 , 0x22 , 0x6f , 0x72 , 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d ,
339
+ 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x62 , 0x6f , 0x6f , 0x74 , 0x22 , 0x29 , 0x0a , 0x7d , 0x0a , 0x0a , 0x64 , 0x65 , 0x70 , 0x65 ,
340
+ 0x6e , 0x64 , 0x65 , 0x6e , 0x63 , 0x69 , 0x65 , 0x73 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 ,
341
+ 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 , 0x28 , 0x22 , 0x3a ,
342
+ 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 , 0x3a , 0x61 , 0x70 , 0x69 , 0x22 , 0x29 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d ,
343
+ 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 ,
344
+ 0x28 , 0x22 , 0x3a , 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 , 0x3a , 0x61 , 0x70 , 0x69 , 0x2d , 0x64 , 0x6f , 0x63 , 0x73 , 0x22 , 0x29 ,
345
+ 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e ,
346
+ 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 , 0x28 , 0x22 , 0x3a , 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 , 0x3a , 0x64 , 0x62 ,
347
+ 0x22 , 0x29 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 ,
348
+ 0x6f , 0x6e , 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 , 0x28 , 0x22 , 0x3a , 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 , 0x3a ,
349
+ 0x73 , 0x65 , 0x72 , 0x76 , 0x69 , 0x63 , 0x65 , 0x22 , 0x29 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 ,
350
+ 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 , 0x28 , 0x22 , 0x3a ,
351
+ 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 , 0x3a , 0x69 , 0x6e , 0x74 , 0x65 , 0x67 , 0x72 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x2d , 0x66 ,
352
+ 0x73 , 0x22 , 0x29 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 ,
353
+ 0x69 , 0x6f , 0x6e , 0x28 , 0x70 , 0x72 , 0x6f , 0x6a , 0x65 , 0x63 , 0x74 , 0x28 , 0x22 , 0x3a , 0x73 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72 ,
354
+ 0x3a , 0x69 , 0x6e , 0x74 , 0x65 , 0x67 , 0x72 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x2d , 0x6d , 0x71 , 0x22 , 0x29 , 0x29 , 0x0a , 0x0a ,
355
+ 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 ,
356
+ 0x6a , 0x66 , 0x75 , 0x73 , 0x69 , 0x6f , 0x6e , 0x2e , 0x70 , 0x65 , 0x3a , 0x70 , 0x65 , 0x2d , 0x63 , 0x6f , 0x6d , 0x6d , 0x6f , 0x6e ,
357
+ 0x2d , 0x61 , 0x75 , 0x74 , 0x68 , 0x2d , 0x72 , 0x65 , 0x73 , 0x6f , 0x75 , 0x72 , 0x63 , 0x65 , 0x2d , 0x73 , 0x74 , 0x61 , 0x72 , 0x74 ,
358
+ 0x65 , 0x72 , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 ,
359
+ 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6a , 0x66 , 0x75 , 0x73 , 0x69 , 0x6f , 0x6e , 0x2e , 0x70 , 0x65 , 0x3a , 0x70 , 0x65 , 0x2d , 0x63 ,
360
+ 0x6f , 0x6d , 0x6d , 0x6f , 0x6e , 0x2d , 0x68 , 0x61 , 0x6c , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c ,
361
+ 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6a , 0x66 , 0x75 , 0x73 , 0x69 , 0x6f , 0x6e , 0x2e ,
362
+ 0x70 , 0x65 , 0x3a , 0x70 , 0x65 , 0x2d , 0x63 , 0x6f , 0x6d , 0x6d , 0x6f , 0x6e , 0x2d , 0x63 , 0x6f , 0x72 , 0x65 , 0x22 , 0x29 , 0x0a ,
363
+ 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 ,
364
+ 0x22 , 0x6f , 0x72 , 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b ,
365
+ 0x2e , 0x62 , 0x6f , 0x6f , 0x74 , 0x3a , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x62 , 0x6f , 0x6f , 0x74 , 0x2d , 0x73 , 0x74 ,
366
+ 0x61 , 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x77 , 0x65 , 0x62 , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c ,
367
+ 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6f , 0x72 , 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 ,
368
+ 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x62 , 0x6f , 0x6f , 0x74 , 0x3a , 0x73 , 0x70 , 0x72 ,
369
+ 0x69 , 0x6e , 0x67 , 0x2d , 0x62 , 0x6f , 0x6f , 0x74 , 0x2d , 0x73 , 0x74 , 0x61 , 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x61 , 0x6f , 0x70 ,
370
+ 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f ,
371
+ 0x6e , 0x28 , 0x22 , 0x6f , 0x72 , 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f ,
372
+ 0x72 , 0x6b , 0x2e , 0x62 , 0x6f , 0x6f , 0x74 , 0x3a , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x62 , 0x6f , 0x6f , 0x74 , 0x2d ,
373
+ 0x73 , 0x74 , 0x61 , 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x61 , 0x63 , 0x74 , 0x75 , 0x61 , 0x74 , 0x6f , 0x72 , 0x22 , 0x29 , 0x0a , 0x20 ,
374
+ 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6f ,
375
+ 0x72 , 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x63 ,
376
+ 0x6c , 0x6f , 0x75 , 0x64 , 0x3a , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x63 , 0x6c , 0x6f , 0x75 , 0x64 , 0x2d , 0x73 , 0x74 ,
377
+ 0x61 , 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x62 , 0x6f , 0x6f , 0x74 , 0x73 , 0x74 , 0x72 , 0x61 , 0x70 , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 ,
378
+ 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6f , 0x72 ,
379
+ 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x63 , 0x6c ,
380
+ 0x6f , 0x75 , 0x64 , 0x3a , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x63 , 0x6c , 0x6f , 0x75 , 0x64 , 0x2d , 0x73 , 0x74 , 0x61 ,
381
+ 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x63 , 0x6f , 0x6e , 0x73 , 0x75 , 0x6c , 0x2d , 0x61 , 0x6c , 0x6c , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 ,
382
+ 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6f , 0x72 ,
383
+ 0x67 , 0x2e , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x63 , 0x6c ,
384
+ 0x6f , 0x75 , 0x64 , 0x3a , 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x63 , 0x6c , 0x6f , 0x75 , 0x64 , 0x2d , 0x73 , 0x74 , 0x61 ,
385
+ 0x72 , 0x74 , 0x65 , 0x72 , 0x2d , 0x73 , 0x6c , 0x65 , 0x75 , 0x74 , 0x68 , 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d ,
386
+ 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6f , 0x72 , 0x67 , 0x2e , 0x73 , 0x70 ,
387
+ 0x72 , 0x69 , 0x6e , 0x67 , 0x66 , 0x72 , 0x61 , 0x6d , 0x65 , 0x77 , 0x6f , 0x72 , 0x6b , 0x2e , 0x72 , 0x65 , 0x74 , 0x72 , 0x79 , 0x3a ,
388
+ 0x73 , 0x70 , 0x72 , 0x69 , 0x6e , 0x67 , 0x2d , 0x72 , 0x65 , 0x74 , 0x72 , 0x79 , 0x22 , 0x29 , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 ,
389
+ 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x63 , 0x68 , 0x2e , 0x71 ,
390
+ 0x6f , 0x73 , 0x2e , 0x6c , 0x6f , 0x67 , 0x62 , 0x61 , 0x63 , 0x6b , 0x3a , 0x6c , 0x6f , 0x67 , 0x62 , 0x61 , 0x63 , 0x6b , 0x2d , 0x63 ,
391
+ 0x6c , 0x61 , 0x73 , 0x73 , 0x69 , 0x63 , 0x22 , 0x29 , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d ,
392
+ 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x69 , 0x6f , 0x2e , 0x6d , 0x69 , 0x63 , 0x72 , 0x6f , 0x6d , 0x65 ,
393
+ 0x74 , 0x65 , 0x72 , 0x3a , 0x6d , 0x69 , 0x63 , 0x72 , 0x6f , 0x6d , 0x65 , 0x74 , 0x65 , 0x72 , 0x2d , 0x72 , 0x65 , 0x67 , 0x69 , 0x73 ,
394
+ 0x74 , 0x72 , 0x79 , 0x2d , 0x70 , 0x72 , 0x6f , 0x6d , 0x65 , 0x74 , 0x68 , 0x65 , 0x75 , 0x73 , 0x22 , 0x29 , 0x0a , 0x0a , 0x20 , 0x20 ,
395
+ 0x20 , 0x20 , 0x69 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x6b , 0x6f , 0x74 ,
396
+ 0x6c , 0x69 , 0x6e , 0x28 , 0x22 , 0x73 , 0x74 , 0x64 , 0x6c , 0x69 , 0x62 , 0x22 , 0x29 , 0x29 , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 ,
397
+ 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f ,
398
+ 0x2f , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x2f , 0x2f , 0x20 , 0x54 , 0x65 , 0x73 , 0x74 , 0x20 , 0x64 , 0x65 , 0x70 , 0x65 , 0x6e , 0x64 ,
399
+ 0x65 , 0x6e , 0x63 , 0x69 , 0x65 , 0x73 , 0x2e , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f ,
400
+ 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x2f , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x74 ,
401
+ 0x65 , 0x73 , 0x74 , 0x49 , 0x6d , 0x70 , 0x6c , 0x65 , 0x6d , 0x65 , 0x6e , 0x74 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x28 , 0x22 , 0x6a ,
402
+ 0x66 , 0x75 , 0x73 , 0x69 , 0x6f , 0x6e , 0x2e , 0x70 , 0x65 , 0x3a , 0x70 , 0x65 , 0x2d , 0x63 , 0x6f , 0x6d , 0x6d , 0x6f , 0x6e , 0x2d ,
403
+ 0x74 , 0x65 , 0x73 , 0x74 , 0x22 , 0x29 , 0x0a , 0x7d , 0x0a , 0x0a , 0x76 , 0x61 , 0x6c , 0x20 , 0x70 , 0x61 , 0x74 , 0x63 , 0x68 , 0x4a ,
404
+ 0x61 , 0x72 , 0x20 , 0x62 , 0x79 , 0x20 , 0x74 , 0x61 , 0x73 , 0x6b , 0x73 , 0x2e , 0x72 , 0x65 , 0x67 , 0x69 , 0x73 , 0x74 , 0x65 , 0x72 ,
405
+ 0x69 , 0x6e , 0x67 , 0x28 , 0x4a , 0x61 , 0x72 , 0x3a , 0x3a , 0x63 , 0x6c , 0x61 , 0x73 , 0x73 , 0x29 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 ,
406
+ 0x20 , 0x20 , 0x61 , 0x72 , 0x63 , 0x68 , 0x69 , 0x76 , 0x65 , 0x43 , 0x6c , 0x61 , 0x73 , 0x73 , 0x69 , 0x66 , 0x69 , 0x65 , 0x72 , 0x2e ,
407
+ 0x73 , 0x65 , 0x74 , 0x28 , 0x22 , 0x70 , 0x61 , 0x74 , 0x63 , 0x68 , 0x65 , 0x64 , 0x22 , 0x29 , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 ,
408
+ 0x76 , 0x61 , 0x6c , 0x20 , 0x72 , 0x75 , 0x6e , 0x74 , 0x69 , 0x6d , 0x65 , 0x43 , 0x6c , 0x61 , 0x73 , 0x73 , 0x70 , 0x61 , 0x74 , 0x68 ,
409
+ 0x20 , 0x62 , 0x79 , 0x20 , 0x63 , 0x6f , 0x6e , 0x66 , 0x69 , 0x67 , 0x75 , 0x72 , 0x61 , 0x74 , 0x69 , 0x6f , 0x6e , 0x73 , 0x2e , 0x67 ,
410
+ 0x65 , 0x74 , 0x74 , 0x69 , 0x6e , 0x67 , 0x0a , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x6d , 0x61 , 0x6e , 0x69 , 0x66 , 0x65 , 0x73 , 0x74 ,
411
+ 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x61 , 0x74 , 0x74 , 0x72 , 0x69 , 0x62 , 0x75 , 0x74 , 0x65 ,
412
+ 0x73 , 0x28 , 0x22 , 0x43 , 0x6c , 0x61 , 0x73 , 0x73 , 0x2d , 0x50 , 0x61 , 0x74 , 0x68 , 0x22 , 0x20 , 0x74 , 0x6f , 0x20 , 0x6f , 0x62 ,
413
+ 0x6a , 0x65 , 0x63 , 0x74 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x70 ,
414
+ 0x72 , 0x69 , 0x76 , 0x61 , 0x74 , 0x65 , 0x20 , 0x76 , 0x61 , 0x6c , 0x20 , 0x70 , 0x61 , 0x74 , 0x74 , 0x65 , 0x72 , 0x6e , 0x20 , 0x3d ,
415
+ 0x20 , 0x22 , 0x66 , 0x69 , 0x6c , 0x65 , 0x3a , 0x2f , 0x2b , 0x22 , 0x2e , 0x74 , 0x6f , 0x52 , 0x65 , 0x67 , 0x65 , 0x78 , 0x28 , 0x29 ,
416
+ 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x6f , 0x76 , 0x65 , 0x72 , 0x72 , 0x69 , 0x64 ,
417
+ 0x65 , 0x20 , 0x66 , 0x75 , 0x6e , 0x20 , 0x74 , 0x6f , 0x53 , 0x74 , 0x72 , 0x69 , 0x6e , 0x67 , 0x28 , 0x29 , 0x3a , 0x20 , 0x53 , 0x74 ,
418
+ 0x72 , 0x69 , 0x6e , 0x67 , 0x20 , 0x3d , 0x20 , 0x72 , 0x75 , 0x6e , 0x74 , 0x69 , 0x6d , 0x65 , 0x43 , 0x6c , 0x61 , 0x73 , 0x73 , 0x70 ,
419
+ 0x61 , 0x74 , 0x68 , 0x2e , 0x66 , 0x69 , 0x6c , 0x65 , 0x73 , 0x2e , 0x6a , 0x6f , 0x69 , 0x6e , 0x54 , 0x6f , 0x53 , 0x74 , 0x72 , 0x69 ,
420
+ 0x6e , 0x67 , 0x28 , 0x22 , 0x20 , 0x22 , 0x29 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 ,
421
+ 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x74 , 0x2e , 0x74 , 0x6f , 0x55 , 0x52 , 0x49 , 0x28 , 0x29 , 0x2e , 0x74 , 0x6f , 0x55 ,
422
+ 0x52 , 0x4c , 0x28 , 0x29 , 0x2e , 0x74 , 0x6f , 0x53 , 0x74 , 0x72 , 0x69 , 0x6e , 0x67 , 0x28 , 0x29 , 0x2e , 0x72 , 0x65 , 0x70 , 0x6c ,
423
+ 0x61 , 0x63 , 0x65 , 0x46 , 0x69 , 0x72 , 0x73 , 0x74 , 0x28 , 0x70 , 0x61 , 0x74 , 0x74 , 0x65 , 0x72 , 0x6e , 0x2c , 0x20 , 0x22 , 0x2f ,
424
+ 0x22 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x7d , 0x0a , 0x20 , 0x20 , 0x20 ,
425
+ 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x7d , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x7d , 0x0a , 0x7d , 0x0a , 0x0a , 0x74 , 0x61 , 0x73 ,
426
+ 0x6b , 0x73 , 0x2e , 0x6e , 0x61 , 0x6d , 0x65 , 0x64 , 0x3c , 0x42 , 0x6f , 0x6f , 0x74 , 0x52 , 0x75 , 0x6e , 0x3e , 0x28 , 0x22 , 0x62 ,
427
+ 0x6f , 0x6f , 0x74 , 0x52 , 0x75 , 0x6e , 0x22 , 0x29 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x69 , 0x66 , 0x20 , 0x28 , 0x4f ,
428
+ 0x73 , 0x2e , 0x69 , 0x73 , 0x46 , 0x61 , 0x6d , 0x69 , 0x6c , 0x79 , 0x28 , 0x4f , 0x73 , 0x2e , 0x46 , 0x41 , 0x4d , 0x49 , 0x4c , 0x59 ,
429
+ 0x5f , 0x57 , 0x49 , 0x4e , 0x44 , 0x4f , 0x57 , 0x53 , 0x29 , 0x29 , 0x20 , 0x7b , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 ,
430
+ 0x20 , 0x63 , 0x6c , 0x61 , 0x73 , 0x73 , 0x70 , 0x61 , 0x74 , 0x68 , 0x20 , 0x3d , 0x20 , 0x66 , 0x69 , 0x6c , 0x65 , 0x73 , 0x28 , 0x73 ,
431
+ 0x6f , 0x75 , 0x72 , 0x63 , 0x65 , 0x53 , 0x65 , 0x74 , 0x73 , 0x2e , 0x6e , 0x61 , 0x6d , 0x65 , 0x64 , 0x28 , 0x22 , 0x6d , 0x61 , 0x69 ,
432
+ 0x6e , 0x22 , 0x29 , 0x2e , 0x6d , 0x61 , 0x70 , 0x20 , 0x7b , 0x20 , 0x69 , 0x74 , 0x2e , 0x6f , 0x75 , 0x74 , 0x70 , 0x75 , 0x74 , 0x20 ,
433
+ 0x7d , 0x2c , 0x20 , 0x70 , 0x61 , 0x74 , 0x63 , 0x68 , 0x4a , 0x61 , 0x72 , 0x29 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x7d , 0x0a , 0x0a ,
434
+ 0x20 , 0x20 , 0x20 , 0x20 , 0x2f , 0x2f , 0x20 , 0xd0 ,
435
+ }
0 commit comments