@@ -304,3 +304,132 @@ func stringMustEndWith(t *testing.T, expected, value string) {
304304func bytesMustStartWith (t * testing.T , expected , value []byte ) {
305305 assert .Equal (t , expected , value [:len (expected )])
306306}
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