{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,8 +1,8 @@\n-Zip file size: 18185 bytes, number of entries: 25\n+Zip file size: 18233 bytes, number of entries: 25\n -rw-r--r--  2.0 unx       64 b- defN 20-Apr-01 08:04 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/remoting/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/\n@@ -11,17 +11,17 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/\n -rw-r--r--  2.0 unx     2964 b- defN 20-Apr-01 08:04 META-INF/DEPENDENCIES\n -rw-r--r--  2.0 unx    11358 b- defN 20-Apr-01 08:04 META-INF/LICENSE\n -rw-r--r--  2.0 unx      176 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     5876 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n--rw-r--r--  2.0 unx     7402 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n--rw-r--r--  2.0 unx     6103 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n+-rw-r--r--  2.0 unx     6067 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n+-rw-r--r--  2.0 unx     7576 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n+-rw-r--r--  2.0 unx     6270 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n -rw-r--r--  2.0 unx     3255 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaHandler.java\n--rw-r--r--  2.0 unx     4221 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n+-rw-r--r--  2.0 unx     4333 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n -rw-r--r--  2.0 unx     1580 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/mina/MinaTransporter.java\n -rw-r--r--  2.0 unx       61 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.remoting.Transporter\n--rw-r--r--  2.0 unx     2445 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml\n+-rw-r--r--  2.0 unx     2383 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml\n -rw-r--r--  2.0 unx       74 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.properties\n-25 files, 45579 bytes uncompressed, 14485 bytes compressed:  68.2%\n+25 files, 46161 bytes uncompressed, 14533 bytes compressed:  68.5%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -299,977 +299,977 @@\n 16AA Extract Zip Spec      14 (20) '2.0'\n 16AB Extract OS            00 (0) 'MS-DOS'\n 16AC General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 16AE Compression Method    0008 (8) 'Deflated'\n 16B0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16B4 CRC                   3D7F2712 (1031743250)\n-16B8 Compressed Size       00000681 (1665)\n-16BC Uncompressed Size     000016F4 (5876)\n+16B4 CRC                   0EB2B1F5 (246591989)\n+16B8 Compressed Size       00000691 (1681)\n+16BC Uncompressed Size     000017B3 (6067)\n 16C0 Filename Length       0039 (57)\n 16C2 Extra Length          0000 (0)\n 16C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x16C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 16FD PAYLOAD\n \n-1D7E LOCAL HEADER #18      04034B50 (67324752)\n-1D82 Extract Zip Spec      14 (20) '2.0'\n-1D83 Extract OS            00 (0) 'MS-DOS'\n-1D84 General Purpose Flag  0800 (2048)\n+1D8E LOCAL HEADER #18      04034B50 (67324752)\n+1D92 Extract Zip Spec      14 (20) '2.0'\n+1D93 Extract OS            00 (0) 'MS-DOS'\n+1D94 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-1D86 Compression Method    0008 (8) 'Deflated'\n-1D88 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1D8C CRC                   1A88D275 (445174389)\n-1D90 Compressed Size       0000085F (2143)\n-1D94 Uncompressed Size     00001CEA (7402)\n-1D98 Filename Length       0038 (56)\n-1D9A Extra Length          0000 (0)\n-1D9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D96 Compression Method    0008 (8) 'Deflated'\n+1D98 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1D9C CRC                   B6BACA35 (3065694773)\n+1DA0 Compressed Size       0000086C (2156)\n+1DA4 Uncompressed Size     00001D98 (7576)\n+1DA8 Filename Length       0038 (56)\n+1DAA Extra Length          0000 (0)\n+1DAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1DAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1DD4 PAYLOAD\n+1DE4 PAYLOAD\n \n-2633 LOCAL HEADER #19      04034B50 (67324752)\n-2637 Extract Zip Spec      14 (20) '2.0'\n-2638 Extract OS            00 (0) 'MS-DOS'\n-2639 General Purpose Flag  0800 (2048)\n+2650 LOCAL HEADER #19      04034B50 (67324752)\n+2654 Extract Zip Spec      14 (20) '2.0'\n+2655 Extract OS            00 (0) 'MS-DOS'\n+2656 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-263B Compression Method    0008 (8) 'Deflated'\n-263D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2641 CRC                   72A94157 (1923694935)\n-2645 Compressed Size       0000065D (1629)\n-2649 Uncompressed Size     000017D7 (6103)\n-264D Filename Length       003E (62)\n-264F Extra Length          0000 (0)\n-2651 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2658 Compression Method    0008 (8) 'Deflated'\n+265A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+265E CRC                   E154BEF4 (3780427508)\n+2662 Compressed Size       0000066D (1645)\n+2666 Uncompressed Size     0000187E (6270)\n+266A Filename Length       003E (62)\n+266C Extra Length          0000 (0)\n+266E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2651: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x266E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-268F PAYLOAD\n+26AC PAYLOAD\n \n-2CEC LOCAL HEADER #20      04034B50 (67324752)\n-2CF0 Extract Zip Spec      14 (20) '2.0'\n-2CF1 Extract OS            00 (0) 'MS-DOS'\n-2CF2 General Purpose Flag  0800 (2048)\n+2D19 LOCAL HEADER #20      04034B50 (67324752)\n+2D1D Extract Zip Spec      14 (20) '2.0'\n+2D1E Extract OS            00 (0) 'MS-DOS'\n+2D1F General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2CF4 Compression Method    0008 (8) 'Deflated'\n-2CF6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2CFA CRC                   B2448F97 (2990837655)\n-2CFE Compressed Size       0000037B (891)\n-2D02 Uncompressed Size     00000CB7 (3255)\n-2D06 Filename Length       0039 (57)\n-2D08 Extra Length          0000 (0)\n-2D0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D21 Compression Method    0008 (8) 'Deflated'\n+2D23 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D27 CRC                   B2448F97 (2990837655)\n+2D2B Compressed Size       0000037B (891)\n+2D2F Uncompressed Size     00000CB7 (3255)\n+2D33 Filename Length       0039 (57)\n+2D35 Extra Length          0000 (0)\n+2D37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2D43 PAYLOAD\n+2D70 PAYLOAD\n \n-30BE LOCAL HEADER #21      04034B50 (67324752)\n-30C2 Extract Zip Spec      14 (20) '2.0'\n-30C3 Extract OS            00 (0) 'MS-DOS'\n-30C4 General Purpose Flag  0800 (2048)\n+30EB LOCAL HEADER #21      04034B50 (67324752)\n+30EF Extract Zip Spec      14 (20) '2.0'\n+30F0 Extract OS            00 (0) 'MS-DOS'\n+30F1 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-30C6 Compression Method    0008 (8) 'Deflated'\n-30C8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-30CC CRC                   3C17A7B5 (1008183221)\n-30D0 Compressed Size       000005A8 (1448)\n-30D4 Uncompressed Size     0000107D (4221)\n-30D8 Filename Length       0038 (56)\n-30DA Extra Length          0000 (0)\n-30DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+30F3 Compression Method    0008 (8) 'Deflated'\n+30F5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+30F9 CRC                   A33A370C (2738501388)\n+30FD Compressed Size       000005B2 (1458)\n+3101 Uncompressed Size     000010ED (4333)\n+3105 Filename Length       0038 (56)\n+3107 Extra Length          0000 (0)\n+3109 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x30DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3109: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3114 PAYLOAD\n+3141 PAYLOAD\n \n-36BC LOCAL HEADER #22      04034B50 (67324752)\n-36C0 Extract Zip Spec      14 (20) '2.0'\n-36C1 Extract OS            00 (0) 'MS-DOS'\n-36C2 General Purpose Flag  0800 (2048)\n+36F3 LOCAL HEADER #22      04034B50 (67324752)\n+36F7 Extract Zip Spec      14 (20) '2.0'\n+36F8 Extract OS            00 (0) 'MS-DOS'\n+36F9 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-36C4 Compression Method    0008 (8) 'Deflated'\n-36C6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-36CA CRC                   242C94A2 (606901410)\n-36CE Compressed Size       000002AD (685)\n-36D2 Uncompressed Size     0000062C (1580)\n-36D6 Filename Length       003D (61)\n-36D8 Extra Length          0000 (0)\n-36DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+36FB Compression Method    0008 (8) 'Deflated'\n+36FD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3701 CRC                   242C94A2 (606901410)\n+3705 Compressed Size       000002AD (685)\n+3709 Uncompressed Size     0000062C (1580)\n+370D Filename Length       003D (61)\n+370F Extra Length          0000 (0)\n+3711 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x36DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3711: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3717 PAYLOAD\n+374E PAYLOAD\n \n-39C4 LOCAL HEADER #23      04034B50 (67324752)\n-39C8 Extract Zip Spec      14 (20) '2.0'\n-39C9 Extract OS            00 (0) 'MS-DOS'\n-39CA General Purpose Flag  0800 (2048)\n+39FB LOCAL HEADER #23      04034B50 (67324752)\n+39FF Extract Zip Spec      14 (20) '2.0'\n+3A00 Extract OS            00 (0) 'MS-DOS'\n+3A01 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-39CC Compression Method    0008 (8) 'Deflated'\n-39CE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-39D2 CRC                   D2880805 (3532130309)\n-39D6 Compressed Size       00000036 (54)\n-39DA Uncompressed Size     0000003D (61)\n-39DE Filename Length       003D (61)\n-39E0 Extra Length          0000 (0)\n-39E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3A03 Compression Method    0008 (8) 'Deflated'\n+3A05 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3A09 CRC                   D2880805 (3532130309)\n+3A0D Compressed Size       00000036 (54)\n+3A11 Uncompressed Size     0000003D (61)\n+3A15 Filename Length       003D (61)\n+3A17 Extra Length          0000 (0)\n+3A19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x39E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3A19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3A1F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+3A56 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-3A55 LOCAL HEADER #24      04034B50 (67324752)\n-3A59 Extract Zip Spec      14 (20) '2.0'\n-3A5A Extract OS            00 (0) 'MS-DOS'\n-3A5B General Purpose Flag  0800 (2048)\n+3A8C LOCAL HEADER #24      04034B50 (67324752)\n+3A90 Extract Zip Spec      14 (20) '2.0'\n+3A91 Extract OS            00 (0) 'MS-DOS'\n+3A92 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3A5D Compression Method    0008 (8) 'Deflated'\n-3A5F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3A63 CRC                   00C3B148 (12824904)\n-3A67 Compressed Size       000003A6 (934)\n-3A6B Uncompressed Size     0000098D (2445)\n-3A6F Filename Length       003B (59)\n-3A71 Extra Length          0000 (0)\n-3A73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3A94 Compression Method    0008 (8) 'Deflated'\n+3A96 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3A9A CRC                   5512F588 (1427305864)\n+3A9E Compressed Size       0000039F (927)\n+3AA2 Uncompressed Size     0000094F (2383)\n+3AA6 Filename Length       003B (59)\n+3AA8 Extra Length          0000 (0)\n+3AAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3A73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3AAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3AAE PAYLOAD\n+3AE5 PAYLOAD\n \n-3E54 LOCAL HEADER #25      04034B50 (67324752)\n-3E58 Extract Zip Spec      14 (20) '2.0'\n-3E59 Extract OS            00 (0) 'MS-DOS'\n-3E5A General Purpose Flag  0800 (2048)\n+3E84 LOCAL HEADER #25      04034B50 (67324752)\n+3E88 Extract Zip Spec      14 (20) '2.0'\n+3E89 Extract OS            00 (0) 'MS-DOS'\n+3E8A General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3E5C Compression Method    0008 (8) 'Deflated'\n-3E5E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3E62 CRC                   423C5CE6 (1111252198)\n-3E66 Compressed Size       00000048 (72)\n-3E6A Uncompressed Size     0000004A (74)\n-3E6E Filename Length       0042 (66)\n-3E70 Extra Length          0000 (0)\n-3E72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3E8C Compression Method    0008 (8) 'Deflated'\n+3E8E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3E92 CRC                   423C5CE6 (1111252198)\n+3E96 Compressed Size       00000048 (72)\n+3E9A Uncompressed Size     0000004A (74)\n+3E9E Filename Length       0042 (66)\n+3EA0 Extra Length          0000 (0)\n+3EA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3E72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3EA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-3EB4 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+3EE4 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-3EFC CENTRAL HEADER #1     02014B50 (33639248)\n-3F00 Created Zip Spec      14 (20) '2.0'\n-3F01 Created OS            03 (3) 'Unix'\n-3F02 Extract Zip Spec      14 (20) '2.0'\n-3F03 Extract OS            00 (0) 'MS-DOS'\n-3F04 General Purpose Flag  0800 (2048)\n+3F2C CENTRAL HEADER #1     02014B50 (33639248)\n+3F30 Created Zip Spec      14 (20) '2.0'\n+3F31 Created OS            03 (3) 'Unix'\n+3F32 Extract Zip Spec      14 (20) '2.0'\n+3F33 Extract OS            00 (0) 'MS-DOS'\n+3F34 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3F06 Compression Method    0008 (8) 'Deflated'\n-3F08 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3F0C CRC                   A689EB18 (2794056472)\n-3F10 Compressed Size       00000042 (66)\n-3F14 Uncompressed Size     00000040 (64)\n-3F18 Filename Length       0014 (20)\n-3F1A Extra Length          0000 (0)\n-3F1C Comment Length        0000 (0)\n-3F1E Disk Start            0000 (0)\n-3F20 Int File Attributes   0000 (0)\n+3F36 Compression Method    0008 (8) 'Deflated'\n+3F38 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3F3C CRC                   A689EB18 (2794056472)\n+3F40 Compressed Size       00000042 (66)\n+3F44 Uncompressed Size     00000040 (64)\n+3F48 Filename Length       0014 (20)\n+3F4A Extra Length          0000 (0)\n+3F4C Comment Length        0000 (0)\n+3F4E Disk Start            0000 (0)\n+3F50 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3F22 Ext File Attributes   81A40000 (2175008768)\n+3F52 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-3F26 Local Header Offset   00000000 (0)\n-3F2A Filename              'XXXXXXXXXXXXXXXXXXXX'\n+3F56 Local Header Offset   00000000 (0)\n+3F5A Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3F2A: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3F5A: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3F3E CENTRAL HEADER #2     02014B50 (33639248)\n-3F42 Created Zip Spec      14 (20) '2.0'\n-3F43 Created OS            03 (3) 'Unix'\n-3F44 Extract Zip Spec      0A (10) '1.0'\n-3F45 Extract OS            00 (0) 'MS-DOS'\n-3F46 General Purpose Flag  0800 (2048)\n+3F6E CENTRAL HEADER #2     02014B50 (33639248)\n+3F72 Created Zip Spec      14 (20) '2.0'\n+3F73 Created OS            03 (3) 'Unix'\n+3F74 Extract Zip Spec      0A (10) '1.0'\n+3F75 Extract OS            00 (0) 'MS-DOS'\n+3F76 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3F48 Compression Method    0000 (0) 'Stored'\n-3F4A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3F4E CRC                   00000000 (0)\n-3F52 Compressed Size       00000000 (0)\n-3F56 Uncompressed Size     00000000 (0)\n-3F5A Filename Length       0009 (9)\n-3F5C Extra Length          0000 (0)\n-3F5E Comment Length        0000 (0)\n-3F60 Disk Start            0000 (0)\n-3F62 Int File Attributes   0000 (0)\n+3F78 Compression Method    0000 (0) 'Stored'\n+3F7A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3F7E CRC                   00000000 (0)\n+3F82 Compressed Size       00000000 (0)\n+3F86 Uncompressed Size     00000000 (0)\n+3F8A Filename Length       0009 (9)\n+3F8C Extra Length          0000 (0)\n+3F8E Comment Length        0000 (0)\n+3F90 Disk Start            0000 (0)\n+3F92 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3F64 Ext File Attributes   41ED0010 (1106051088)\n+3F94 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-3F68 Local Header Offset   00000074 (116)\n-3F6C Filename              'XXXXXXXXX'\n+3F98 Local Header Offset   00000074 (116)\n+3F9C Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x3F6C: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x3F9C: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3F6C: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3F9C: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3F44: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x3F74: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-3F75 CENTRAL HEADER #3     02014B50 (33639248)\n-3F79 Created Zip Spec      14 (20) '2.0'\n-3F7A Created OS            03 (3) 'Unix'\n-3F7B Extract Zip Spec      0A (10) '1.0'\n-3F7C Extract OS            00 (0) 'MS-DOS'\n-3F7D General Purpose Flag  0800 (2048)\n+3FA5 CENTRAL HEADER #3     02014B50 (33639248)\n+3FA9 Created Zip Spec      14 (20) '2.0'\n+3FAA Created OS            03 (3) 'Unix'\n+3FAB Extract Zip Spec      0A (10) '1.0'\n+3FAC Extract OS            00 (0) 'MS-DOS'\n+3FAD General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3F7F Compression Method    0000 (0) 'Stored'\n-3F81 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3F85 CRC                   00000000 (0)\n-3F89 Compressed Size       00000000 (0)\n-3F8D Uncompressed Size     00000000 (0)\n-3F91 Filename Length       0004 (4)\n-3F93 Extra Length          0000 (0)\n-3F95 Comment Length        0000 (0)\n-3F97 Disk Start            0000 (0)\n-3F99 Int File Attributes   0000 (0)\n+3FAF Compression Method    0000 (0) 'Stored'\n+3FB1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3FB5 CRC                   00000000 (0)\n+3FB9 Compressed Size       00000000 (0)\n+3FBD Uncompressed Size     00000000 (0)\n+3FC1 Filename Length       0004 (4)\n+3FC3 Extra Length          0000 (0)\n+3FC5 Comment Length        0000 (0)\n+3FC7 Disk Start            0000 (0)\n+3FC9 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3F9B Ext File Attributes   41ED0010 (1106051088)\n+3FCB Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-3F9F Local Header Offset   0000009B (155)\n-3FA3 Filename              'XXXX'\n+3FCF Local Header Offset   0000009B (155)\n+3FD3 Filename              'XXXX'\n #\n-# WARNING: Offset 0x3FA3: Filename 'XXXX'\n+# WARNING: Offset 0x3FD3: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3FA3: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x3FD3: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3F7B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x3FAB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-3FA7 CENTRAL HEADER #4     02014B50 (33639248)\n-3FAB Created Zip Spec      14 (20) '2.0'\n-3FAC Created OS            03 (3) 'Unix'\n-3FAD Extract Zip Spec      0A (10) '1.0'\n-3FAE Extract OS            00 (0) 'MS-DOS'\n-3FAF General Purpose Flag  0800 (2048)\n+3FD7 CENTRAL HEADER #4     02014B50 (33639248)\n+3FDB Created Zip Spec      14 (20) '2.0'\n+3FDC Created OS            03 (3) 'Unix'\n+3FDD Extract Zip Spec      0A (10) '1.0'\n+3FDE Extract OS            00 (0) 'MS-DOS'\n+3FDF General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3FB1 Compression Method    0000 (0) 'Stored'\n-3FB3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3FB7 CRC                   00000000 (0)\n-3FBB Compressed Size       00000000 (0)\n-3FBF Uncompressed Size     00000000 (0)\n-3FC3 Filename Length       000B (11)\n-3FC5 Extra Length          0000 (0)\n-3FC7 Comment Length        0000 (0)\n-3FC9 Disk Start            0000 (0)\n-3FCB Int File Attributes   0000 (0)\n+3FE1 Compression Method    0000 (0) 'Stored'\n+3FE3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3FE7 CRC                   00000000 (0)\n+3FEB Compressed Size       00000000 (0)\n+3FEF Uncompressed Size     00000000 (0)\n+3FF3 Filename Length       000B (11)\n+3FF5 Extra Length          0000 (0)\n+3FF7 Comment Length        0000 (0)\n+3FF9 Disk Start            0000 (0)\n+3FFB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3FCD Ext File Attributes   41ED0010 (1106051088)\n+3FFD Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-3FD1 Local Header Offset   000000BD (189)\n-3FD5 Filename              'XXXXXXXXXXX'\n+4001 Local Header Offset   000000BD (189)\n+4005 Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3FD5: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x4005: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3FD5: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x4005: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3FAD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x3FDD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-3FE0 CENTRAL HEADER #5     02014B50 (33639248)\n-3FE4 Created Zip Spec      14 (20) '2.0'\n-3FE5 Created OS            03 (3) 'Unix'\n-3FE6 Extract Zip Spec      0A (10) '1.0'\n-3FE7 Extract OS            00 (0) 'MS-DOS'\n-3FE8 General Purpose Flag  0800 (2048)\n+4010 CENTRAL HEADER #5     02014B50 (33639248)\n+4014 Created Zip Spec      14 (20) '2.0'\n+4015 Created OS            03 (3) 'Unix'\n+4016 Extract Zip Spec      0A (10) '1.0'\n+4017 Extract OS            00 (0) 'MS-DOS'\n+4018 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3FEA Compression Method    0000 (0) 'Stored'\n-3FEC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3FF0 CRC                   00000000 (0)\n-3FF4 Compressed Size       00000000 (0)\n-3FF8 Uncompressed Size     00000000 (0)\n-3FFC Filename Length       0011 (17)\n-3FFE Extra Length          0000 (0)\n-4000 Comment Length        0000 (0)\n-4002 Disk Start            0000 (0)\n-4004 Int File Attributes   0000 (0)\n+401A Compression Method    0000 (0) 'Stored'\n+401C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4020 CRC                   00000000 (0)\n+4024 Compressed Size       00000000 (0)\n+4028 Uncompressed Size     00000000 (0)\n+402C Filename Length       0011 (17)\n+402E Extra Length          0000 (0)\n+4030 Comment Length        0000 (0)\n+4032 Disk Start            0000 (0)\n+4034 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4006 Ext File Attributes   41ED0010 (1106051088)\n+4036 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-400A Local Header Offset   000000E6 (230)\n-400E Filename              'XXXXXXXXXXXXXXXXX'\n+403A Local Header Offset   000000E6 (230)\n+403E Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x400E: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x403E: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x400E: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x403E: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3FE6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4016: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-401F CENTRAL HEADER #6     02014B50 (33639248)\n-4023 Created Zip Spec      14 (20) '2.0'\n-4024 Created OS            03 (3) 'Unix'\n-4025 Extract Zip Spec      0A (10) '1.0'\n-4026 Extract OS            00 (0) 'MS-DOS'\n-4027 General Purpose Flag  0800 (2048)\n+404F CENTRAL HEADER #6     02014B50 (33639248)\n+4053 Created Zip Spec      14 (20) '2.0'\n+4054 Created OS            03 (3) 'Unix'\n+4055 Extract Zip Spec      0A (10) '1.0'\n+4056 Extract OS            00 (0) 'MS-DOS'\n+4057 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-4029 Compression Method    0000 (0) 'Stored'\n-402B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-402F CRC                   00000000 (0)\n-4033 Compressed Size       00000000 (0)\n-4037 Uncompressed Size     00000000 (0)\n-403B Filename Length       001A (26)\n-403D Extra Length          0000 (0)\n-403F Comment Length        0000 (0)\n-4041 Disk Start            0000 (0)\n-4043 Int File Attributes   0000 (0)\n+4059 Compression Method    0000 (0) 'Stored'\n+405B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+405F CRC                   00000000 (0)\n+4063 Compressed Size       00000000 (0)\n+4067 Uncompressed Size     00000000 (0)\n+406B Filename Length       001A (26)\n+406D Extra Length          0000 (0)\n+406F Comment Length        0000 (0)\n+4071 Disk Start            0000 (0)\n+4073 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4045 Ext File Attributes   41ED0010 (1106051088)\n+4075 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-4049 Local Header Offset   00000115 (277)\n-404D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4079 Local Header Offset   00000115 (277)\n+407D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x404D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x407D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x404D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x407D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x4025: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4055: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-4067 CENTRAL HEADER #7     02014B50 (33639248)\n-406B Created Zip Spec      14 (20) '2.0'\n-406C Created OS            03 (3) 'Unix'\n-406D Extract Zip Spec      0A (10) '1.0'\n-406E Extract OS            00 (0) 'MS-DOS'\n-406F General Purpose Flag  0800 (2048)\n+4097 CENTRAL HEADER #7     02014B50 (33639248)\n+409B Created Zip Spec      14 (20) '2.0'\n+409C Created OS            03 (3) 'Unix'\n+409D Extract Zip Spec      0A (10) '1.0'\n+409E Extract OS            00 (0) 'MS-DOS'\n+409F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-4071 Compression Method    0000 (0) 'Stored'\n-4073 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4077 CRC                   00000000 (0)\n-407B Compressed Size       00000000 (0)\n-407F Uncompressed Size     00000000 (0)\n-4083 Filename Length       0024 (36)\n-4085 Extra Length          0000 (0)\n-4087 Comment Length        0000 (0)\n-4089 Disk Start            0000 (0)\n-408B Int File Attributes   0000 (0)\n+40A1 Compression Method    0000 (0) 'Stored'\n+40A3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+40A7 CRC                   00000000 (0)\n+40AB Compressed Size       00000000 (0)\n+40AF Uncompressed Size     00000000 (0)\n+40B3 Filename Length       0024 (36)\n+40B5 Extra Length          0000 (0)\n+40B7 Comment Length        0000 (0)\n+40B9 Disk Start            0000 (0)\n+40BB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-408D Ext File Attributes   41ED0010 (1106051088)\n+40BD Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-4091 Local Header Offset   0000014D (333)\n-4095 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+40C1 Local Header Offset   0000014D (333)\n+40C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4095: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x40C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x4095: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x40C5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x406D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x409D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-40B9 CENTRAL HEADER #8     02014B50 (33639248)\n-40BD Created Zip Spec      14 (20) '2.0'\n-40BE Created OS            03 (3) 'Unix'\n-40BF Extract Zip Spec      0A (10) '1.0'\n-40C0 Extract OS            00 (0) 'MS-DOS'\n-40C1 General Purpose Flag  0800 (2048)\n+40E9 CENTRAL HEADER #8     02014B50 (33639248)\n+40ED Created Zip Spec      14 (20) '2.0'\n+40EE Created OS            03 (3) 'Unix'\n+40EF Extract Zip Spec      0A (10) '1.0'\n+40F0 Extract OS            00 (0) 'MS-DOS'\n+40F1 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-40C3 Compression Method    0000 (0) 'Stored'\n-40C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-40C9 CRC                   00000000 (0)\n-40CD Compressed Size       00000000 (0)\n-40D1 Uncompressed Size     00000000 (0)\n-40D5 Filename Length       0029 (41)\n-40D7 Extra Length          0000 (0)\n-40D9 Comment Length        0000 (0)\n-40DB Disk Start            0000 (0)\n-40DD Int File Attributes   0000 (0)\n+40F3 Compression Method    0000 (0) 'Stored'\n+40F5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+40F9 CRC                   00000000 (0)\n+40FD Compressed Size       00000000 (0)\n+4101 Uncompressed Size     00000000 (0)\n+4105 Filename Length       0029 (41)\n+4107 Extra Length          0000 (0)\n+4109 Comment Length        0000 (0)\n+410B Disk Start            0000 (0)\n+410D Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-40DF Ext File Attributes   41ED0010 (1106051088)\n+410F Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-40E3 Local Header Offset   0000018F (399)\n-40E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4113 Local Header Offset   0000018F (399)\n+4117 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x40E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4117: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x40E7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x4117: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x40BF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x40EF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-4110 CENTRAL HEADER #9     02014B50 (33639248)\n-4114 Created Zip Spec      14 (20) '2.0'\n-4115 Created OS            03 (3) 'Unix'\n-4116 Extract Zip Spec      0A (10) '1.0'\n-4117 Extract OS            00 (0) 'MS-DOS'\n-4118 General Purpose Flag  0800 (2048)\n+4140 CENTRAL HEADER #9     02014B50 (33639248)\n+4144 Created Zip Spec      14 (20) '2.0'\n+4145 Created OS            03 (3) 'Unix'\n+4146 Extract Zip Spec      0A (10) '1.0'\n+4147 Extract OS            00 (0) 'MS-DOS'\n+4148 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-411A Compression Method    0000 (0) 'Stored'\n-411C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4120 CRC                   00000000 (0)\n-4124 Compressed Size       00000000 (0)\n-4128 Uncompressed Size     00000000 (0)\n-412C Filename Length       000F (15)\n-412E Extra Length          0000 (0)\n-4130 Comment Length        0000 (0)\n-4132 Disk Start            0000 (0)\n-4134 Int File Attributes   0000 (0)\n+414A Compression Method    0000 (0) 'Stored'\n+414C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4150 CRC                   00000000 (0)\n+4154 Compressed Size       00000000 (0)\n+4158 Uncompressed Size     00000000 (0)\n+415C Filename Length       000F (15)\n+415E Extra Length          0000 (0)\n+4160 Comment Length        0000 (0)\n+4162 Disk Start            0000 (0)\n+4164 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4136 Ext File Attributes   41ED0010 (1106051088)\n+4166 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-413A Local Header Offset   000001D6 (470)\n-413E Filename              'XXXXXXXXXXXXXXX'\n+416A Local Header Offset   000001D6 (470)\n+416E Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x413E: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x416E: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x413E: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x416E: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x4116: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4146: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-414D CENTRAL HEADER #10    02014B50 (33639248)\n-4151 Created Zip Spec      14 (20) '2.0'\n-4152 Created OS            03 (3) 'Unix'\n-4153 Extract Zip Spec      0A (10) '1.0'\n-4154 Extract OS            00 (0) 'MS-DOS'\n-4155 General Purpose Flag  0800 (2048)\n+417D CENTRAL HEADER #10    02014B50 (33639248)\n+4181 Created Zip Spec      14 (20) '2.0'\n+4182 Created OS            03 (3) 'Unix'\n+4183 Extract Zip Spec      0A (10) '1.0'\n+4184 Extract OS            00 (0) 'MS-DOS'\n+4185 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-4157 Compression Method    0000 (0) 'Stored'\n-4159 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-415D CRC                   00000000 (0)\n-4161 Compressed Size       00000000 (0)\n-4165 Uncompressed Size     00000000 (0)\n-4169 Filename Length       0018 (24)\n-416B Extra Length          0000 (0)\n-416D Comment Length        0000 (0)\n-416F Disk Start            0000 (0)\n-4171 Int File Attributes   0000 (0)\n+4187 Compression Method    0000 (0) 'Stored'\n+4189 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+418D CRC                   00000000 (0)\n+4191 Compressed Size       00000000 (0)\n+4195 Uncompressed Size     00000000 (0)\n+4199 Filename Length       0018 (24)\n+419B Extra Length          0000 (0)\n+419D Comment Length        0000 (0)\n+419F Disk Start            0000 (0)\n+41A1 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4173 Ext File Attributes   41ED0010 (1106051088)\n+41A3 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-4177 Local Header Offset   00000203 (515)\n-417B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+41A7 Local Header Offset   00000203 (515)\n+41AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x417B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x41AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x417B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x41AB: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x4153: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4183: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-4193 CENTRAL HEADER #11    02014B50 (33639248)\n-4197 Created Zip Spec      14 (20) '2.0'\n-4198 Created OS            03 (3) 'Unix'\n-4199 Extract Zip Spec      0A (10) '1.0'\n-419A Extract OS            00 (0) 'MS-DOS'\n-419B General Purpose Flag  0800 (2048)\n+41C3 CENTRAL HEADER #11    02014B50 (33639248)\n+41C7 Created Zip Spec      14 (20) '2.0'\n+41C8 Created OS            03 (3) 'Unix'\n+41C9 Extract Zip Spec      0A (10) '1.0'\n+41CA Extract OS            00 (0) 'MS-DOS'\n+41CB General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-419D Compression Method    0000 (0) 'Stored'\n-419F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-41A3 CRC                   00000000 (0)\n-41A7 Compressed Size       00000000 (0)\n-41AB Uncompressed Size     00000000 (0)\n-41AF Filename Length       000F (15)\n-41B1 Extra Length          0000 (0)\n-41B3 Comment Length        0000 (0)\n-41B5 Disk Start            0000 (0)\n-41B7 Int File Attributes   0000 (0)\n+41CD Compression Method    0000 (0) 'Stored'\n+41CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+41D3 CRC                   00000000 (0)\n+41D7 Compressed Size       00000000 (0)\n+41DB Uncompressed Size     00000000 (0)\n+41DF Filename Length       000F (15)\n+41E1 Extra Length          0000 (0)\n+41E3 Comment Length        0000 (0)\n+41E5 Disk Start            0000 (0)\n+41E7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-41B9 Ext File Attributes   41ED0010 (1106051088)\n+41E9 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-41BD Local Header Offset   00000239 (569)\n-41C1 Filename              'XXXXXXXXXXXXXXX'\n+41ED Local Header Offset   00000239 (569)\n+41F1 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x41C1: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x41F1: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x41C1: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x41F1: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x4199: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x41C9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-41D0 CENTRAL HEADER #12    02014B50 (33639248)\n-41D4 Created Zip Spec      14 (20) '2.0'\n-41D5 Created OS            03 (3) 'Unix'\n-41D6 Extract Zip Spec      0A (10) '1.0'\n-41D7 Extract OS            00 (0) 'MS-DOS'\n-41D8 General Purpose Flag  0800 (2048)\n+4200 CENTRAL HEADER #12    02014B50 (33639248)\n+4204 Created Zip Spec      14 (20) '2.0'\n+4205 Created OS            03 (3) 'Unix'\n+4206 Extract Zip Spec      0A (10) '1.0'\n+4207 Extract OS            00 (0) 'MS-DOS'\n+4208 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-41DA Compression Method    0000 (0) 'Stored'\n-41DC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-41E0 CRC                   00000000 (0)\n-41E4 Compressed Size       00000000 (0)\n-41E8 Uncompressed Size     00000000 (0)\n-41EC Filename Length       0020 (32)\n-41EE Extra Length          0000 (0)\n-41F0 Comment Length        0000 (0)\n-41F2 Disk Start            0000 (0)\n-41F4 Int File Attributes   0000 (0)\n+420A Compression Method    0000 (0) 'Stored'\n+420C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4210 CRC                   00000000 (0)\n+4214 Compressed Size       00000000 (0)\n+4218 Uncompressed Size     00000000 (0)\n+421C Filename Length       0020 (32)\n+421E Extra Length          0000 (0)\n+4220 Comment Length        0000 (0)\n+4222 Disk Start            0000 (0)\n+4224 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-41F6 Ext File Attributes   41ED0010 (1106051088)\n+4226 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-41FA Local Header Offset   00000266 (614)\n-41FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+422A Local Header Offset   00000266 (614)\n+422E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x41FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x422E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x41FE: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x422E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x41D6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4206: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-421E CENTRAL HEADER #13    02014B50 (33639248)\n-4222 Created Zip Spec      14 (20) '2.0'\n-4223 Created OS            03 (3) 'Unix'\n-4224 Extract Zip Spec      0A (10) '1.0'\n-4225 Extract OS            00 (0) 'MS-DOS'\n-4226 General Purpose Flag  0800 (2048)\n+424E CENTRAL HEADER #13    02014B50 (33639248)\n+4252 Created Zip Spec      14 (20) '2.0'\n+4253 Created OS            03 (3) 'Unix'\n+4254 Extract Zip Spec      0A (10) '1.0'\n+4255 Extract OS            00 (0) 'MS-DOS'\n+4256 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-4228 Compression Method    0000 (0) 'Stored'\n-422A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-422E CRC                   00000000 (0)\n-4232 Compressed Size       00000000 (0)\n-4236 Uncompressed Size     00000000 (0)\n-423A Filename Length       0034 (52)\n-423C Extra Length          0000 (0)\n-423E Comment Length        0000 (0)\n-4240 Disk Start            0000 (0)\n-4242 Int File Attributes   0000 (0)\n+4258 Compression Method    0000 (0) 'Stored'\n+425A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+425E CRC                   00000000 (0)\n+4262 Compressed Size       00000000 (0)\n+4266 Uncompressed Size     00000000 (0)\n+426A Filename Length       0034 (52)\n+426C Extra Length          0000 (0)\n+426E Comment Length        0000 (0)\n+4270 Disk Start            0000 (0)\n+4272 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4244 Ext File Attributes   41ED0010 (1106051088)\n+4274 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-4248 Local Header Offset   000002A4 (676)\n-424C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4278 Local Header Offset   000002A4 (676)\n+427C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x424C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x427C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x424C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x427C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x4224: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4254: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-4280 CENTRAL HEADER #14    02014B50 (33639248)\n-4284 Created Zip Spec      14 (20) '2.0'\n-4285 Created OS            03 (3) 'Unix'\n-4286 Extract Zip Spec      14 (20) '2.0'\n-4287 Extract OS            00 (0) 'MS-DOS'\n-4288 General Purpose Flag  0800 (2048)\n+42B0 CENTRAL HEADER #14    02014B50 (33639248)\n+42B4 Created Zip Spec      14 (20) '2.0'\n+42B5 Created OS            03 (3) 'Unix'\n+42B6 Extract Zip Spec      14 (20) '2.0'\n+42B7 Extract OS            00 (0) 'MS-DOS'\n+42B8 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-428A Compression Method    0008 (8) 'Deflated'\n-428C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4290 CRC                   16F01C8D (384834701)\n-4294 Compressed Size       00000334 (820)\n-4298 Uncompressed Size     00000B94 (2964)\n-429C Filename Length       0015 (21)\n-429E Extra Length          0000 (0)\n-42A0 Comment Length        0000 (0)\n-42A2 Disk Start            0000 (0)\n-42A4 Int File Attributes   0000 (0)\n+42BA Compression Method    0008 (8) 'Deflated'\n+42BC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+42C0 CRC                   16F01C8D (384834701)\n+42C4 Compressed Size       00000334 (820)\n+42C8 Uncompressed Size     00000B94 (2964)\n+42CC Filename Length       0015 (21)\n+42CE Extra Length          0000 (0)\n+42D0 Comment Length        0000 (0)\n+42D2 Disk Start            0000 (0)\n+42D4 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-42A6 Ext File Attributes   81A40000 (2175008768)\n+42D6 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-42AA Local Header Offset   000002F6 (758)\n-42AE Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+42DA Local Header Offset   000002F6 (758)\n+42DE Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x42AE: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x42DE: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-42C3 CENTRAL HEADER #15    02014B50 (33639248)\n-42C7 Created Zip Spec      14 (20) '2.0'\n-42C8 Created OS            03 (3) 'Unix'\n-42C9 Extract Zip Spec      14 (20) '2.0'\n-42CA Extract OS            00 (0) 'MS-DOS'\n-42CB General Purpose Flag  0800 (2048)\n+42F3 CENTRAL HEADER #15    02014B50 (33639248)\n+42F7 Created Zip Spec      14 (20) '2.0'\n+42F8 Created OS            03 (3) 'Unix'\n+42F9 Extract Zip Spec      14 (20) '2.0'\n+42FA Extract OS            00 (0) 'MS-DOS'\n+42FB General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-42CD Compression Method    0008 (8) 'Deflated'\n-42CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-42D3 CRC                   86E2B4B4 (2263004340)\n-42D7 Compressed Size       00000F6D (3949)\n-42DB Uncompressed Size     00002C5E (11358)\n-42DF Filename Length       0010 (16)\n-42E1 Extra Length          0000 (0)\n-42E3 Comment Length        0000 (0)\n-42E5 Disk Start            0000 (0)\n-42E7 Int File Attributes   0000 (0)\n+42FD Compression Method    0008 (8) 'Deflated'\n+42FF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4303 CRC                   86E2B4B4 (2263004340)\n+4307 Compressed Size       00000F6D (3949)\n+430B Uncompressed Size     00002C5E (11358)\n+430F Filename Length       0010 (16)\n+4311 Extra Length          0000 (0)\n+4313 Comment Length        0000 (0)\n+4315 Disk Start            0000 (0)\n+4317 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-42E9 Ext File Attributes   81A40000 (2175008768)\n+4319 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-42ED Local Header Offset   0000065D (1629)\n-42F1 Filename              'XXXXXXXXXXXXXXXX'\n+431D Local Header Offset   0000065D (1629)\n+4321 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x42F1: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4321: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-4301 CENTRAL HEADER #16    02014B50 (33639248)\n-4305 Created Zip Spec      14 (20) '2.0'\n-4306 Created OS            03 (3) 'Unix'\n-4307 Extract Zip Spec      14 (20) '2.0'\n-4308 Extract OS            00 (0) 'MS-DOS'\n-4309 General Purpose Flag  0800 (2048)\n+4331 CENTRAL HEADER #16    02014B50 (33639248)\n+4335 Created Zip Spec      14 (20) '2.0'\n+4336 Created OS            03 (3) 'Unix'\n+4337 Extract Zip Spec      14 (20) '2.0'\n+4338 Extract OS            00 (0) 'MS-DOS'\n+4339 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-430B Compression Method    0008 (8) 'Deflated'\n-430D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4311 CRC                   887DFD12 (2289958162)\n-4315 Compressed Size       00000081 (129)\n-4319 Uncompressed Size     000000B0 (176)\n-431D Filename Length       000F (15)\n-431F Extra Length          0000 (0)\n-4321 Comment Length        0000 (0)\n-4323 Disk Start            0000 (0)\n-4325 Int File Attributes   0000 (0)\n+433B Compression Method    0008 (8) 'Deflated'\n+433D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4341 CRC                   887DFD12 (2289958162)\n+4345 Compressed Size       00000081 (129)\n+4349 Uncompressed Size     000000B0 (176)\n+434D Filename Length       000F (15)\n+434F Extra Length          0000 (0)\n+4351 Comment Length        0000 (0)\n+4353 Disk Start            0000 (0)\n+4355 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4327 Ext File Attributes   81A40000 (2175008768)\n+4357 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-432B Local Header Offset   000015F8 (5624)\n-432F Filename              'XXXXXXXXXXXXXXX'\n+435B Local Header Offset   000015F8 (5624)\n+435F Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x432F: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x435F: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-433E CENTRAL HEADER #17    02014B50 (33639248)\n-4342 Created Zip Spec      14 (20) '2.0'\n-4343 Created OS            03 (3) 'Unix'\n-4344 Extract Zip Spec      14 (20) '2.0'\n-4345 Extract OS            00 (0) 'MS-DOS'\n-4346 General Purpose Flag  0800 (2048)\n+436E CENTRAL HEADER #17    02014B50 (33639248)\n+4372 Created Zip Spec      14 (20) '2.0'\n+4373 Created OS            03 (3) 'Unix'\n+4374 Extract Zip Spec      14 (20) '2.0'\n+4375 Extract OS            00 (0) 'MS-DOS'\n+4376 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-4348 Compression Method    0008 (8) 'Deflated'\n-434A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-434E CRC                   3D7F2712 (1031743250)\n-4352 Compressed Size       00000681 (1665)\n-4356 Uncompressed Size     000016F4 (5876)\n-435A Filename Length       0039 (57)\n-435C Extra Length          0000 (0)\n-435E Comment Length        0000 (0)\n-4360 Disk Start            0000 (0)\n-4362 Int File Attributes   0000 (0)\n+4378 Compression Method    0008 (8) 'Deflated'\n+437A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+437E CRC                   0EB2B1F5 (246591989)\n+4382 Compressed Size       00000691 (1681)\n+4386 Uncompressed Size     000017B3 (6067)\n+438A Filename Length       0039 (57)\n+438C Extra Length          0000 (0)\n+438E Comment Length        0000 (0)\n+4390 Disk Start            0000 (0)\n+4392 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4364 Ext File Attributes   81A40000 (2175008768)\n+4394 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-4368 Local Header Offset   000016A6 (5798)\n-436C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4398 Local Header Offset   000016A6 (5798)\n+439C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x436C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x439C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-43A5 CENTRAL HEADER #18    02014B50 (33639248)\n-43A9 Created Zip Spec      14 (20) '2.0'\n-43AA Created OS            03 (3) 'Unix'\n-43AB Extract Zip Spec      14 (20) '2.0'\n-43AC Extract OS            00 (0) 'MS-DOS'\n-43AD General Purpose Flag  0800 (2048)\n+43D5 CENTRAL HEADER #18    02014B50 (33639248)\n+43D9 Created Zip Spec      14 (20) '2.0'\n+43DA Created OS            03 (3) 'Unix'\n+43DB Extract Zip Spec      14 (20) '2.0'\n+43DC Extract OS            00 (0) 'MS-DOS'\n+43DD General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-43AF Compression Method    0008 (8) 'Deflated'\n-43B1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-43B5 CRC                   1A88D275 (445174389)\n-43B9 Compressed Size       0000085F (2143)\n-43BD Uncompressed Size     00001CEA (7402)\n-43C1 Filename Length       0038 (56)\n-43C3 Extra Length          0000 (0)\n-43C5 Comment Length        0000 (0)\n-43C7 Disk Start            0000 (0)\n-43C9 Int File Attributes   0000 (0)\n+43DF Compression Method    0008 (8) 'Deflated'\n+43E1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+43E5 CRC                   B6BACA35 (3065694773)\n+43E9 Compressed Size       0000086C (2156)\n+43ED Uncompressed Size     00001D98 (7576)\n+43F1 Filename Length       0038 (56)\n+43F3 Extra Length          0000 (0)\n+43F5 Comment Length        0000 (0)\n+43F7 Disk Start            0000 (0)\n+43F9 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-43CB Ext File Attributes   81A40000 (2175008768)\n+43FB Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-43CF Local Header Offset   00001D7E (7550)\n-43D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+43FF Local Header Offset   00001D8E (7566)\n+4403 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x43D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4403: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-440B CENTRAL HEADER #19    02014B50 (33639248)\n-440F Created Zip Spec      14 (20) '2.0'\n-4410 Created OS            03 (3) 'Unix'\n-4411 Extract Zip Spec      14 (20) '2.0'\n-4412 Extract OS            00 (0) 'MS-DOS'\n-4413 General Purpose Flag  0800 (2048)\n+443B CENTRAL HEADER #19    02014B50 (33639248)\n+443F Created Zip Spec      14 (20) '2.0'\n+4440 Created OS            03 (3) 'Unix'\n+4441 Extract Zip Spec      14 (20) '2.0'\n+4442 Extract OS            00 (0) 'MS-DOS'\n+4443 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-4415 Compression Method    0008 (8) 'Deflated'\n-4417 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-441B CRC                   72A94157 (1923694935)\n-441F Compressed Size       0000065D (1629)\n-4423 Uncompressed Size     000017D7 (6103)\n-4427 Filename Length       003E (62)\n-4429 Extra Length          0000 (0)\n-442B Comment Length        0000 (0)\n-442D Disk Start            0000 (0)\n-442F Int File Attributes   0000 (0)\n+4445 Compression Method    0008 (8) 'Deflated'\n+4447 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+444B CRC                   E154BEF4 (3780427508)\n+444F Compressed Size       0000066D (1645)\n+4453 Uncompressed Size     0000187E (6270)\n+4457 Filename Length       003E (62)\n+4459 Extra Length          0000 (0)\n+445B Comment Length        0000 (0)\n+445D Disk Start            0000 (0)\n+445F Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4431 Ext File Attributes   81A40000 (2175008768)\n+4461 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-4435 Local Header Offset   00002633 (9779)\n-4439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4465 Local Header Offset   00002650 (9808)\n+4469 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4469: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-4477 CENTRAL HEADER #20    02014B50 (33639248)\n-447B Created Zip Spec      14 (20) '2.0'\n-447C Created OS            03 (3) 'Unix'\n-447D Extract Zip Spec      14 (20) '2.0'\n-447E Extract OS            00 (0) 'MS-DOS'\n-447F General Purpose Flag  0800 (2048)\n+44A7 CENTRAL HEADER #20    02014B50 (33639248)\n+44AB Created Zip Spec      14 (20) '2.0'\n+44AC Created OS            03 (3) 'Unix'\n+44AD Extract Zip Spec      14 (20) '2.0'\n+44AE Extract OS            00 (0) 'MS-DOS'\n+44AF General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-4481 Compression Method    0008 (8) 'Deflated'\n-4483 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4487 CRC                   B2448F97 (2990837655)\n-448B Compressed Size       0000037B (891)\n-448F Uncompressed Size     00000CB7 (3255)\n-4493 Filename Length       0039 (57)\n-4495 Extra Length          0000 (0)\n-4497 Comment Length        0000 (0)\n-4499 Disk Start            0000 (0)\n-449B Int File Attributes   0000 (0)\n+44B1 Compression Method    0008 (8) 'Deflated'\n+44B3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+44B7 CRC                   B2448F97 (2990837655)\n+44BB Compressed Size       0000037B (891)\n+44BF Uncompressed Size     00000CB7 (3255)\n+44C3 Filename Length       0039 (57)\n+44C5 Extra Length          0000 (0)\n+44C7 Comment Length        0000 (0)\n+44C9 Disk Start            0000 (0)\n+44CB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-449D Ext File Attributes   81A40000 (2175008768)\n+44CD Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-44A1 Local Header Offset   00002CEC (11500)\n-44A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+44D1 Local Header Offset   00002D19 (11545)\n+44D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x44A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x44D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-44DE CENTRAL HEADER #21    02014B50 (33639248)\n-44E2 Created Zip Spec      14 (20) '2.0'\n-44E3 Created OS            03 (3) 'Unix'\n-44E4 Extract Zip Spec      14 (20) '2.0'\n-44E5 Extract OS            00 (0) 'MS-DOS'\n-44E6 General Purpose Flag  0800 (2048)\n+450E CENTRAL HEADER #21    02014B50 (33639248)\n+4512 Created Zip Spec      14 (20) '2.0'\n+4513 Created OS            03 (3) 'Unix'\n+4514 Extract Zip Spec      14 (20) '2.0'\n+4515 Extract OS            00 (0) 'MS-DOS'\n+4516 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-44E8 Compression Method    0008 (8) 'Deflated'\n-44EA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-44EE CRC                   3C17A7B5 (1008183221)\n-44F2 Compressed Size       000005A8 (1448)\n-44F6 Uncompressed Size     0000107D (4221)\n-44FA Filename Length       0038 (56)\n-44FC Extra Length          0000 (0)\n-44FE Comment Length        0000 (0)\n-4500 Disk Start            0000 (0)\n-4502 Int File Attributes   0000 (0)\n+4518 Compression Method    0008 (8) 'Deflated'\n+451A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+451E CRC                   A33A370C (2738501388)\n+4522 Compressed Size       000005B2 (1458)\n+4526 Uncompressed Size     000010ED (4333)\n+452A Filename Length       0038 (56)\n+452C Extra Length          0000 (0)\n+452E Comment Length        0000 (0)\n+4530 Disk Start            0000 (0)\n+4532 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4504 Ext File Attributes   81A40000 (2175008768)\n+4534 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-4508 Local Header Offset   000030BE (12478)\n-450C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4538 Local Header Offset   000030EB (12523)\n+453C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x450C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x453C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-4544 CENTRAL HEADER #22    02014B50 (33639248)\n-4548 Created Zip Spec      14 (20) '2.0'\n-4549 Created OS            03 (3) 'Unix'\n-454A Extract Zip Spec      14 (20) '2.0'\n-454B Extract OS            00 (0) 'MS-DOS'\n-454C General Purpose Flag  0800 (2048)\n+4574 CENTRAL HEADER #22    02014B50 (33639248)\n+4578 Created Zip Spec      14 (20) '2.0'\n+4579 Created OS            03 (3) 'Unix'\n+457A Extract Zip Spec      14 (20) '2.0'\n+457B Extract OS            00 (0) 'MS-DOS'\n+457C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-454E Compression Method    0008 (8) 'Deflated'\n-4550 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4554 CRC                   242C94A2 (606901410)\n-4558 Compressed Size       000002AD (685)\n-455C Uncompressed Size     0000062C (1580)\n-4560 Filename Length       003D (61)\n-4562 Extra Length          0000 (0)\n-4564 Comment Length        0000 (0)\n-4566 Disk Start            0000 (0)\n-4568 Int File Attributes   0000 (0)\n+457E Compression Method    0008 (8) 'Deflated'\n+4580 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+4584 CRC                   242C94A2 (606901410)\n+4588 Compressed Size       000002AD (685)\n+458C Uncompressed Size     0000062C (1580)\n+4590 Filename Length       003D (61)\n+4592 Extra Length          0000 (0)\n+4594 Comment Length        0000 (0)\n+4596 Disk Start            0000 (0)\n+4598 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-456A Ext File Attributes   81A40000 (2175008768)\n+459A Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-456E Local Header Offset   000036BC (14012)\n-4572 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+459E Local Header Offset   000036F3 (14067)\n+45A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4572: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x45A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-45AF CENTRAL HEADER #23    02014B50 (33639248)\n-45B3 Created Zip Spec      14 (20) '2.0'\n-45B4 Created OS            03 (3) 'Unix'\n-45B5 Extract Zip Spec      14 (20) '2.0'\n-45B6 Extract OS            00 (0) 'MS-DOS'\n-45B7 General Purpose Flag  0800 (2048)\n+45DF CENTRAL HEADER #23    02014B50 (33639248)\n+45E3 Created Zip Spec      14 (20) '2.0'\n+45E4 Created OS            03 (3) 'Unix'\n+45E5 Extract Zip Spec      14 (20) '2.0'\n+45E6 Extract OS            00 (0) 'MS-DOS'\n+45E7 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-45B9 Compression Method    0008 (8) 'Deflated'\n-45BB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-45BF CRC                   D2880805 (3532130309)\n-45C3 Compressed Size       00000036 (54)\n-45C7 Uncompressed Size     0000003D (61)\n-45CB Filename Length       003D (61)\n-45CD Extra Length          0000 (0)\n-45CF Comment Length        0000 (0)\n-45D1 Disk Start            0000 (0)\n-45D3 Int File Attributes   0000 (0)\n+45E9 Compression Method    0008 (8) 'Deflated'\n+45EB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+45EF CRC                   D2880805 (3532130309)\n+45F3 Compressed Size       00000036 (54)\n+45F7 Uncompressed Size     0000003D (61)\n+45FB Filename Length       003D (61)\n+45FD Extra Length          0000 (0)\n+45FF Comment Length        0000 (0)\n+4601 Disk Start            0000 (0)\n+4603 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-45D5 Ext File Attributes   81A40000 (2175008768)\n+4605 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-45D9 Local Header Offset   000039C4 (14788)\n-45DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4609 Local Header Offset   000039FB (14843)\n+460D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x45DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x460D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-461A CENTRAL HEADER #24    02014B50 (33639248)\n-461E Created Zip Spec      14 (20) '2.0'\n-461F Created OS            03 (3) 'Unix'\n-4620 Extract Zip Spec      14 (20) '2.0'\n-4621 Extract OS            00 (0) 'MS-DOS'\n-4622 General Purpose Flag  0800 (2048)\n+464A CENTRAL HEADER #24    02014B50 (33639248)\n+464E Created Zip Spec      14 (20) '2.0'\n+464F Created OS            03 (3) 'Unix'\n+4650 Extract Zip Spec      14 (20) '2.0'\n+4651 Extract OS            00 (0) 'MS-DOS'\n+4652 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-4624 Compression Method    0008 (8) 'Deflated'\n-4626 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-462A CRC                   00C3B148 (12824904)\n-462E Compressed Size       000003A6 (934)\n-4632 Uncompressed Size     0000098D (2445)\n-4636 Filename Length       003B (59)\n-4638 Extra Length          0000 (0)\n-463A Comment Length        0000 (0)\n-463C Disk Start            0000 (0)\n-463E Int File Attributes   0000 (0)\n+4654 Compression Method    0008 (8) 'Deflated'\n+4656 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+465A CRC                   5512F588 (1427305864)\n+465E Compressed Size       0000039F (927)\n+4662 Uncompressed Size     0000094F (2383)\n+4666 Filename Length       003B (59)\n+4668 Extra Length          0000 (0)\n+466A Comment Length        0000 (0)\n+466C Disk Start            0000 (0)\n+466E Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-4640 Ext File Attributes   81A40000 (2175008768)\n+4670 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-4644 Local Header Offset   00003A55 (14933)\n-4648 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4674 Local Header Offset   00003A8C (14988)\n+4678 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4648: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4678: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-4683 CENTRAL HEADER #25    02014B50 (33639248)\n-4687 Created Zip Spec      14 (20) '2.0'\n-4688 Created OS            03 (3) 'Unix'\n-4689 Extract Zip Spec      14 (20) '2.0'\n-468A Extract OS            00 (0) 'MS-DOS'\n-468B General Purpose Flag  0800 (2048)\n+46B3 CENTRAL HEADER #25    02014B50 (33639248)\n+46B7 Created Zip Spec      14 (20) '2.0'\n+46B8 Created OS            03 (3) 'Unix'\n+46B9 Extract Zip Spec      14 (20) '2.0'\n+46BA Extract OS            00 (0) 'MS-DOS'\n+46BB General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-468D Compression Method    0008 (8) 'Deflated'\n-468F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-4693 CRC                   423C5CE6 (1111252198)\n-4697 Compressed Size       00000048 (72)\n-469B Uncompressed Size     0000004A (74)\n-469F Filename Length       0042 (66)\n-46A1 Extra Length          0000 (0)\n-46A3 Comment Length        0000 (0)\n-46A5 Disk Start            0000 (0)\n-46A7 Int File Attributes   0000 (0)\n+46BD Compression Method    0008 (8) 'Deflated'\n+46BF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+46C3 CRC                   423C5CE6 (1111252198)\n+46C7 Compressed Size       00000048 (72)\n+46CB Uncompressed Size     0000004A (74)\n+46CF Filename Length       0042 (66)\n+46D1 Extra Length          0000 (0)\n+46D3 Comment Length        0000 (0)\n+46D5 Disk Start            0000 (0)\n+46D7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-46A9 Ext File Attributes   81A40000 (2175008768)\n+46D9 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-46AD Local Header Offset   00003E54 (15956)\n-46B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+46DD Local Header Offset   00003E84 (16004)\n+46E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x46B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x46E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-46F3 END CENTRAL HEADER    06054B50 (101010256)\n-46F7 Number of this disk   0000 (0)\n-46F9 Central Dir Disk no   0000 (0)\n-46FB Entries in this disk  0019 (25)\n-46FD Total Entries         0019 (25)\n-46FF Size of Central Dir   000007F7 (2039)\n-4703 Offset to Central Dir 00003EFC (16124)\n-4707 Comment Length        0000 (0)\n+4723 END CENTRAL HEADER    06054B50 (101010256)\n+4727 Number of this disk   0000 (0)\n+4729 Central Dir Disk no   0000 (0)\n+472B Entries in this disk  0019 (25)\n+472D Total Entries         0019 (25)\n+472F Size of Central Dir   000007F7 (2039)\n+4733 Offset to Central Dir 00003F2C (16172)\n+4737 Comment Length        0000 (0)\n #\n # Error Count: 12\n # Warning Count: 62\n #\n # Done\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,191 +1,191 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractChannel;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.WriteFuture;\n-\n-import java.net.InetSocketAddress;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * MinaChannel\n- */\n-final class MinaChannel extends AbstractChannel {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\n-\n-    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\n-\n-    private final IoSession session;\n-\n-    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        if (session == null) {\n-            throw new IllegalArgumentException(\"mina session == null\");\n-        }\n-        this.session = session;\n-    }\n-\n-    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\n-        if (session == null) {\n-            return null;\n-        }\n-        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\n-        if (ret == null) {\n-            ret = new MinaChannel(session, url, handler);\n-            if (session.isConnected()) {\n-                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\n-                if (old != null) {\n-                    session.setAttribute(CHANNEL_KEY, old);\n-                    ret = old;\n-                }\n-            }\n-        }\n-        return ret;\n-    }\n-\n-    static void removeChannelIfDisconnected(IoSession session) {\n-        if (session != null && !session.isConnected()) {\n-            session.removeAttribute(CHANNEL_KEY);\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return (InetSocketAddress) session.getLocalAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return (InetSocketAddress) session.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return session.isConnected();\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        super.send(message, sent);\n-\n-        boolean success = true;\n-        int timeout = 0;\n-        try {\n-            WriteFuture future = session.write(message);\n-            if (sent) {\n-                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-                success = future.join(timeout);\n-            }\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\n-        }\n-\n-        if (!success) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\n-                    + \"in timeout(\" + timeout + \"ms) limit\");\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        try {\n-            super.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            removeChannelIfDisconnected(session);\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"CLose mina channel \" + session);\n-            }\n-            session.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return session.containsAttribute(key);\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return session.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        session.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        session.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        final int prime = 31;\n-        int result = 1;\n-        result = prime * result + ((session == null) ? 0 : session.hashCode());\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        if (obj == null) {\n-            return false;\n-        }\n-        if (getClass() != obj.getClass()) {\n-            return false;\n-        }\n-        MinaChannel other = (MinaChannel) obj;\n-        if (session == null) {\n-            if (other.session != null) {\n-                return false;\n-            }\n-        } else if (!session.equals(other.session)) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"MinaChannel [session=\" + session + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannel;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.WriteFuture;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * MinaChannel\r\n+ */\r\n+final class MinaChannel extends AbstractChannel {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\r\n+\r\n+    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\r\n+\r\n+    private final IoSession session;\r\n+\r\n+    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        if (session == null) {\r\n+            throw new IllegalArgumentException(\"mina session == null\");\r\n+        }\r\n+        this.session = session;\r\n+    }\r\n+\r\n+    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        if (session == null) {\r\n+            return null;\r\n+        }\r\n+        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\r\n+        if (ret == null) {\r\n+            ret = new MinaChannel(session, url, handler);\r\n+            if (session.isConnected()) {\r\n+                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\r\n+                if (old != null) {\r\n+                    session.setAttribute(CHANNEL_KEY, old);\r\n+                    ret = old;\r\n+                }\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    static void removeChannelIfDisconnected(IoSession session) {\r\n+        if (session != null && !session.isConnected()) {\r\n+            session.removeAttribute(CHANNEL_KEY);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return (InetSocketAddress) session.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return (InetSocketAddress) session.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return session.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        super.send(message, sent);\r\n+\r\n+        boolean success = true;\r\n+        int timeout = 0;\r\n+        try {\r\n+            WriteFuture future = session.write(message);\r\n+            if (sent) {\r\n+                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+                success = future.join(timeout);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        if (!success) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\r\n+                    + \"in timeout(\" + timeout + \"ms) limit\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        try {\r\n+            super.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            removeChannelIfDisconnected(session);\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"CLose mina channel \" + session);\r\n+            }\r\n+            session.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return session.containsAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return session.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        session.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        session.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        final int prime = 31;\r\n+        int result = 1;\r\n+        result = prime * result + ((session == null) ? 0 : session.hashCode());\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+        if (getClass() != obj.getClass()) {\r\n+            return false;\r\n+        }\r\n+        MinaChannel other = (MinaChannel) obj;\r\n+        if (session == null) {\r\n+            if (other.session != null) {\r\n+                return false;\r\n+            }\r\n+        } else if (!session.equals(other.session)) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"MinaChannel [session=\" + session + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,174 +1,174 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractClient;\n-\n-import org.apache.mina.common.ConnectFuture;\n-import org.apache.mina.common.IoFuture;\n-import org.apache.mina.common.IoFutureListener;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketConnector;\n-import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicReference;\n-\n-/**\n- * Mina client.\n- */\n-public class MinaClient extends AbstractClient {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\n-\n-    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\n-\n-    private String connectorKey;\n-\n-    private SocketConnector connector;\n-\n-    private volatile IoSession session; // volatile, please copy reference to use\n-\n-    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\n-        super(url, wrapChannelHandler(url, handler));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        connectorKey = getUrl().toFullString();\n-        SocketConnector c = CONNECTORS.get(connectorKey);\n-        if (c != null) {\n-            connector = c;\n-        } else {\n-            // set thread pool.\n-            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\n-                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\n-            // config\n-            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\n-            cfg.setThreadModel(ThreadModel.MANUAL);\n-            cfg.getSessionConfig().setTcpNoDelay(true);\n-            cfg.getSessionConfig().setKeepAlive(true);\n-            int timeout = getConnectTimeout();\n-            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\n-            // set codec.\n-            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-            CONNECTORS.put(connectorKey, connector);\n-        }\n-    }\n-\n-    @Override\n-    protected void doConnect() throws Throwable {\n-        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\n-        long start = System.currentTimeMillis();\n-        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\n-        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\n-        future.addListener(new IoFutureListener() {\n-            @Override\n-            public void operationComplete(IoFuture future) {\n-                try {\n-                    if (future.isReady()) {\n-                        IoSession newSession = future.getSession();\n-                        try {\n-                            // Close old channel\n-                            IoSession oldSession = MinaClient.this.session; // copy reference\n-                            if (oldSession != null) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\n-                                    }\n-                                    oldSession.close();\n-                                } finally {\n-                                    MinaChannel.removeChannelIfDisconnected(oldSession);\n-                                }\n-                            }\n-                        } finally {\n-                            if (MinaClient.this.isClosed()) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\n-                                    }\n-                                    newSession.close();\n-                                } finally {\n-                                    MinaClient.this.session = null;\n-                                    MinaChannel.removeChannelIfDisconnected(newSession);\n-                                }\n-                            } else {\n-                                MinaClient.this.session = newSession;\n-                            }\n-                        }\n-                    }\n-                } catch (Exception e) {\n-                    exception.set(e);\n-                } finally {\n-                    finish.countDown();\n-                }\n-            }\n-        });\n-        try {\n-            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\n-        } catch (InterruptedException e) {\n-            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\n-                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\n-                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\n-                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\n-        }\n-        Throwable e = exception.get();\n-        if (e != null) {\n-            throw e;\n-        }\n-    }\n-\n-    @Override\n-    protected void doDisConnect() throws Throwable {\n-        try {\n-            MinaChannel.removeChannelIfDisconnected(session);\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        //release mina resources.\n-    }\n-\n-    @Override\n-    protected Channel getChannel() {\n-        IoSession s = session;\n-        if (s == null || !s.isConnected()) {\n-            return null;\n-        }\n-        return MinaChannel.getOrAddChannel(s, getUrl(), this);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractClient;\r\n+\r\n+import org.apache.mina.common.ConnectFuture;\r\n+import org.apache.mina.common.IoFuture;\r\n+import org.apache.mina.common.IoFutureListener;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketConnector;\r\n+import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicReference;\r\n+\r\n+/**\r\n+ * Mina client.\r\n+ */\r\n+public class MinaClient extends AbstractClient {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\r\n+\r\n+    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\r\n+\r\n+    private String connectorKey;\r\n+\r\n+    private SocketConnector connector;\r\n+\r\n+    private volatile IoSession session; // volatile, please copy reference to use\r\n+\r\n+    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\r\n+        super(url, wrapChannelHandler(url, handler));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        connectorKey = getUrl().toFullString();\r\n+        SocketConnector c = CONNECTORS.get(connectorKey);\r\n+        if (c != null) {\r\n+            connector = c;\r\n+        } else {\r\n+            // set thread pool.\r\n+            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\r\n+                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\r\n+            // config\r\n+            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\r\n+            cfg.setThreadModel(ThreadModel.MANUAL);\r\n+            cfg.getSessionConfig().setTcpNoDelay(true);\r\n+            cfg.getSessionConfig().setKeepAlive(true);\r\n+            int timeout = getConnectTimeout();\r\n+            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\r\n+            // set codec.\r\n+            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+            CONNECTORS.put(connectorKey, connector);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doConnect() throws Throwable {\r\n+        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\r\n+        long start = System.currentTimeMillis();\r\n+        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\r\n+        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\r\n+        future.addListener(new IoFutureListener() {\r\n+            @Override\r\n+            public void operationComplete(IoFuture future) {\r\n+                try {\r\n+                    if (future.isReady()) {\r\n+                        IoSession newSession = future.getSession();\r\n+                        try {\r\n+                            // Close old channel\r\n+                            IoSession oldSession = MinaClient.this.session; // copy reference\r\n+                            if (oldSession != null) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\r\n+                                    }\r\n+                                    oldSession.close();\r\n+                                } finally {\r\n+                                    MinaChannel.removeChannelIfDisconnected(oldSession);\r\n+                                }\r\n+                            }\r\n+                        } finally {\r\n+                            if (MinaClient.this.isClosed()) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\r\n+                                    }\r\n+                                    newSession.close();\r\n+                                } finally {\r\n+                                    MinaClient.this.session = null;\r\n+                                    MinaChannel.removeChannelIfDisconnected(newSession);\r\n+                                }\r\n+                            } else {\r\n+                                MinaClient.this.session = newSession;\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    exception.set(e);\r\n+                } finally {\r\n+                    finish.countDown();\r\n+                }\r\n+            }\r\n+        });\r\n+        try {\r\n+            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\r\n+        } catch (InterruptedException e) {\r\n+            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\r\n+                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\r\n+                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\r\n+                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+        Throwable e = exception.get();\r\n+        if (e != null) {\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doDisConnect() throws Throwable {\r\n+        try {\r\n+            MinaChannel.removeChannelIfDisconnected(session);\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        //release mina resources.\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Channel getChannel() {\r\n+        IoSession s = session;\r\n+        if (s == null || !s.isConnected()) {\r\n+            return null;\r\n+        }\r\n+        return MinaChannel.getOrAddChannel(s, getUrl(), this);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,167 +1,167 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffers;\n-import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\n-\n-import org.apache.mina.common.ByteBuffer;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.filter.codec.ProtocolCodecFactory;\n-import org.apache.mina.filter.codec.ProtocolDecoder;\n-import org.apache.mina.filter.codec.ProtocolDecoderOutput;\n-import org.apache.mina.filter.codec.ProtocolEncoder;\n-import org.apache.mina.filter.codec.ProtocolEncoderOutput;\n-\n-import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\n-\n-/**\n- * MinaCodecAdapter.\n- */\n-final class MinaCodecAdapter implements ProtocolCodecFactory {\n-\n-    private final ProtocolEncoder encoder = new InternalEncoder();\n-\n-    private final ProtocolDecoder decoder = new InternalDecoder();\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    private final int bufferSize;\n-\n-    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\n-        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\n-    }\n-\n-    @Override\n-    public ProtocolEncoder getEncoder() {\n-        return encoder;\n-    }\n-\n-    @Override\n-    public ProtocolDecoder getDecoder() {\n-        return decoder;\n-    }\n-\n-    private class InternalEncoder implements ProtocolEncoder {\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\n-            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\n-            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            try {\n-                codec.encode(channel, buffer, msg);\n-            } finally {\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\n-            out.flush();\n-        }\n-    }\n-\n-    private class InternalDecoder implements ProtocolDecoder {\n-\n-        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\n-\n-        @Override\n-        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\n-            int readable = in.limit();\n-            if (readable <= 0) {\n-                return;\n-            }\n-\n-            ChannelBuffer frame;\n-\n-            if (buffer.readable()) {\n-                if (buffer instanceof DynamicChannelBuffer) {\n-                    buffer.writeBytes(in.buf());\n-                    frame = buffer;\n-                } else {\n-                    int size = buffer.readableBytes() + in.remaining();\n-                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\n-                    frame.writeBytes(buffer, buffer.readableBytes());\n-                    frame.writeBytes(in.buf());\n-                }\n-            } else {\n-                frame = ChannelBuffers.wrappedBuffer(in.buf());\n-            }\n-\n-            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            Object msg;\n-            int savedReadIndex;\n-\n-            try {\n-                do {\n-                    savedReadIndex = frame.readerIndex();\n-                    try {\n-                        msg = codec.decode(channel, frame);\n-                    } catch (Exception e) {\n-                        buffer = ChannelBuffers.EMPTY_BUFFER;\n-                        throw e;\n-                    }\n-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                        frame.readerIndex(savedReadIndex);\n-                        break;\n-                    } else {\n-                        if (savedReadIndex == frame.readerIndex()) {\n-                            buffer = ChannelBuffers.EMPTY_BUFFER;\n-                            throw new Exception(\"Decode without read data.\");\n-                        }\n-                        if (msg != null) {\n-                            out.write(msg);\n-                        }\n-                    }\n-                } while (frame.readable());\n-            } finally {\n-                if (frame.readable()) {\n-                    frame.discardReadBytes();\n-                    buffer = frame;\n-                } else {\n-                    buffer = ChannelBuffers.EMPTY_BUFFER;\n-                }\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-        }\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffers;\r\n+import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\r\n+\r\n+import org.apache.mina.common.ByteBuffer;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFactory;\r\n+import org.apache.mina.filter.codec.ProtocolDecoder;\r\n+import org.apache.mina.filter.codec.ProtocolDecoderOutput;\r\n+import org.apache.mina.filter.codec.ProtocolEncoder;\r\n+import org.apache.mina.filter.codec.ProtocolEncoderOutput;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\r\n+\r\n+/**\r\n+ * MinaCodecAdapter.\r\n+ */\r\n+final class MinaCodecAdapter implements ProtocolCodecFactory {\r\n+\r\n+    private final ProtocolEncoder encoder = new InternalEncoder();\r\n+\r\n+    private final ProtocolDecoder decoder = new InternalDecoder();\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    private final int bufferSize;\r\n+\r\n+    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\r\n+        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolEncoder getEncoder() {\r\n+        return encoder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolDecoder getDecoder() {\r\n+        return decoder;\r\n+    }\r\n+\r\n+    private class InternalEncoder implements ProtocolEncoder {\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\r\n+            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\r\n+            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            try {\r\n+                codec.encode(channel, buffer, msg);\r\n+            } finally {\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\r\n+            out.flush();\r\n+        }\r\n+    }\r\n+\r\n+    private class InternalDecoder implements ProtocolDecoder {\r\n+\r\n+        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+\r\n+        @Override\r\n+        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\r\n+            int readable = in.limit();\r\n+            if (readable <= 0) {\r\n+                return;\r\n+            }\r\n+\r\n+            ChannelBuffer frame;\r\n+\r\n+            if (buffer.readable()) {\r\n+                if (buffer instanceof DynamicChannelBuffer) {\r\n+                    buffer.writeBytes(in.buf());\r\n+                    frame = buffer;\r\n+                } else {\r\n+                    int size = buffer.readableBytes() + in.remaining();\r\n+                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\r\n+                    frame.writeBytes(buffer, buffer.readableBytes());\r\n+                    frame.writeBytes(in.buf());\r\n+                }\r\n+            } else {\r\n+                frame = ChannelBuffers.wrappedBuffer(in.buf());\r\n+            }\r\n+\r\n+            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            Object msg;\r\n+            int savedReadIndex;\r\n+\r\n+            try {\r\n+                do {\r\n+                    savedReadIndex = frame.readerIndex();\r\n+                    try {\r\n+                        msg = codec.decode(channel, frame);\r\n+                    } catch (Exception e) {\r\n+                        buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                        throw e;\r\n+                    }\r\n+                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                        frame.readerIndex(savedReadIndex);\r\n+                        break;\r\n+                    } else {\r\n+                        if (savedReadIndex == frame.readerIndex()) {\r\n+                            buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                            throw new Exception(\"Decode without read data.\");\r\n+                        }\r\n+                        if (msg != null) {\r\n+                            out.write(msg);\r\n+                        }\r\n+                    }\r\n+                } while (frame.readable());\r\n+            } finally {\r\n+                if (frame.readable()) {\r\n+                    frame.discardReadBytes();\r\n+                    buffer = frame;\r\n+                } else {\r\n+                    buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                }\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,112 +1,112 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractServer;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketAcceptor;\n-import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-import java.util.HashSet;\n-import java.util.Set;\n-import java.util.concurrent.Executors;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-\n-/**\n- * MinaServer\n- */\n-public class MinaServer extends AbstractServer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\n-\n-    private SocketAcceptor acceptor;\n-\n-    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        // set thread pool.\n-        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\n-                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\n-                        true)));\n-        // config\n-        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\n-        cfg.setThreadModel(ThreadModel.MANUAL);\n-        // set codec.\n-        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-\n-        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        try {\n-            if (acceptor != null) {\n-                acceptor.unbind(getBindAddress());\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public Collection<Channel> getChannels() {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        Collection<Channel> channels = new HashSet<Channel>();\n-        for (IoSession session : sessions) {\n-            if (session.isConnected()) {\n-                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\n-            }\n-        }\n-        return channels;\n-    }\n-\n-    @Override\n-    public Channel getChannel(InetSocketAddress remoteAddress) {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        for (IoSession session : sessions) {\n-            if (session.getRemoteAddress().equals(remoteAddress)) {\n-                return MinaChannel.getOrAddChannel(session, getUrl(), this);\n-            }\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean isBound() {\n-        return acceptor.isManaged(getBindAddress());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractServer;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptor;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Executors;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+\r\n+/**\r\n+ * MinaServer\r\n+ */\r\n+public class MinaServer extends AbstractServer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\r\n+\r\n+    private SocketAcceptor acceptor;\r\n+\r\n+    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        // set thread pool.\r\n+        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\r\n+                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\r\n+                        true)));\r\n+        // config\r\n+        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\r\n+        cfg.setThreadModel(ThreadModel.MANUAL);\r\n+        // set codec.\r\n+        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+\r\n+        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        try {\r\n+            if (acceptor != null) {\r\n+                acceptor.unbind(getBindAddress());\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<Channel> getChannels() {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        Collection<Channel> channels = new HashSet<Channel>();\r\n+        for (IoSession session : sessions) {\r\n+            if (session.isConnected()) {\r\n+                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\r\n+            }\r\n+        }\r\n+        return channels;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Channel getChannel(InetSocketAddress remoteAddress) {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        for (IoSession session : sessions) {\r\n+            if (session.getRemoteAddress().equals(remoteAddress)) {\r\n+                return MinaChannel.getOrAddChannel(session, getUrl(), this);\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isBound() {\r\n+        return acceptor.isManaged(getBindAddress());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,153 +1,149 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6d69 6e61 3c2f  -remoting-mina</\n-00000520: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000530: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000540: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000550: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000560: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000570: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000580: 6865 206d 696e 6120 7265 6d6f 7469 6e67  he mina remoting\n-00000590: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-000005a0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005b0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005c0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005d0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000600: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000610: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000620: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000630: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000640: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000650: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000660: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000670: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000680: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000690: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006b0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006c0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006d0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006e0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006f0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000700: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000710: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000720: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000730: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000740: 6262 6f2d 7265 6d6f 7469 6e67 2d61 7069  bbo-remoting-api\n-00000750: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000760: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000770: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000780: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000790: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007d0: 652e 6d69 6e61 3c2f 6772 6f75 7049 643e  e.mina</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n-00000800: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000810: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000820: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000830: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000840: 6f72 672e 736c 6634 6a3c 2f67 726f 7570  org.slf4j</group\n-00000850: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000860: 6661 6374 4964 3e73 6c66 346a 2d61 7069  factId>slf4j-api\n-00000870: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000880: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000890: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000008a0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000008b0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-000008c0: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-000008d0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008e0: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-000008f0: 7469 6f6e 2d68 6573 7369 616e 323c 2f61  tion-hessian2</a\n-00000900: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000910: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000920: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000930: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000940: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000950: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000960: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000970: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000980: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6d69 6e61 3c2f 6172 7469 6661 6374 4964  mina</artifactId\n+00000510: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000520: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000530: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000540: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000550: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000560: 6e3e 5468 6520 6d69 6e61 2072 656d 6f74  n>The mina remot\n+00000570: 696e 6720 6d6f 6475 6c65 206f 6620 6475  ing module of du\n+00000580: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000590: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005a0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005b0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005c0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005d0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005e0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005f0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000600: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000610: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000620: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000630: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000640: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000650: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000660: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000670: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000680: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000690: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+000006a0: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006b0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006c0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000700: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000710: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+00000720: 672d 6170 693c 2f61 7274 6966 6163 7449  g-api</artifactI\n+00000730: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000740: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000750: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000760: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000770: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000780: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000790: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000007a0: 6865 2e6d 696e 613c 2f67 726f 7570 4964  he.mina</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n+000007d0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000007e0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000007f0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000800: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000810: 2e73 6c66 346a 3c2f 6772 6f75 7049 643e  .slf4j</groupId>\n+00000820: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000830: 4964 3e73 6c66 346a 2d61 7069 3c2f 6172  Id>slf4j-api</ar\n+00000840: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000870: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000880: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000890: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000008a0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+000008b0: 6572 6961 6c69 7a61 7469 6f6e 2d68 6573  erialization-hes\n+000008c0: 7369 616e 323c 2f61 7274 6966 6163 7449  sian2</artifactI\n+000008d0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000008e0: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+000008f0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000900: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000910: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000920: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000930: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000940: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}]}
