{"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: 14988 bytes, number of entries: 22\n+Zip file size: 15031 bytes, number of entries: 22\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/redis/\n@@ -10,15 +10,15 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/support/\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-redis/\n -rw-r--r--  2.0 unx     3130 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      177 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     1418 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/RedisClient.java\n--rw-r--r--  2.0 unx     4681 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java\n--rw-r--r--  2.0 unx     3666 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java\n--rw-r--r--  2.0 unx     4062 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java\n--rw-r--r--  2.0 unx     3767 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java\n--rw-r--r--  2.0 unx     2355 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml\n+-rw-r--r--  2.0 unx     1464 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/RedisClient.java\n+-rw-r--r--  2.0 unx     4815 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java\n+-rw-r--r--  2.0 unx     3784 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java\n+-rw-r--r--  2.0 unx     4183 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java\n+-rw-r--r--  2.0 unx     3861 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java\n+-rw-r--r--  2.0 unx     2297 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml\n -rw-r--r--  2.0 unx       75 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.properties\n-22 files, 34753 bytes uncompressed, 11756 bytes compressed:  66.2%\n+22 files, 35208 bytes uncompressed, 11799 bytes compressed:  66.5%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -281,845 +281,845 @@\n 16AB Extract Zip Spec      14 (20) '2.0'\n 16AC Extract OS            00 (0) 'MS-DOS'\n 16AD General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 16AF Compression Method    0008 (8) 'Deflated'\n 16B1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16B5 CRC                   99D15CAE (2580634798)\n-16B9 Compressed Size       000002C9 (713)\n-16BD Uncompressed Size     0000058A (1418)\n+16B5 CRC                   F61CD2D8 (4129084120)\n+16B9 Compressed Size       000002D4 (724)\n+16BD Uncompressed Size     000005B8 (1464)\n 16C1 Filename Length       0030 (48)\n 16C3 Extra Length          0000 (0)\n 16C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x16C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 16F5 PAYLOAD\n \n-19BE LOCAL HEADER #17      04034B50 (67324752)\n-19C2 Extract Zip Spec      14 (20) '2.0'\n-19C3 Extract OS            00 (0) 'MS-DOS'\n-19C4 General Purpose Flag  0800 (2048)\n+19C9 LOCAL HEADER #17      04034B50 (67324752)\n+19CD Extract Zip Spec      14 (20) '2.0'\n+19CE Extract OS            00 (0) 'MS-DOS'\n+19CF General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-19C6 Compression Method    0008 (8) 'Deflated'\n-19C8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19CC CRC                   E8BD727A (3904729722)\n-19D0 Compressed Size       000005C3 (1475)\n-19D4 Uncompressed Size     00001249 (4681)\n-19D8 Filename Length       003D (61)\n-19DA Extra Length          0000 (0)\n-19DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19D1 Compression Method    0008 (8) 'Deflated'\n+19D3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19D7 CRC                   250C4A13 (621562387)\n+19DB Compressed Size       000005CE (1486)\n+19DF Uncompressed Size     000012CF (4815)\n+19E3 Filename Length       003D (61)\n+19E5 Extra Length          0000 (0)\n+19E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A19 PAYLOAD\n+1A24 PAYLOAD\n \n-1FDC LOCAL HEADER #18      04034B50 (67324752)\n-1FE0 Extract Zip Spec      14 (20) '2.0'\n-1FE1 Extract OS            00 (0) 'MS-DOS'\n-1FE2 General Purpose Flag  0800 (2048)\n+1FF2 LOCAL HEADER #18      04034B50 (67324752)\n+1FF6 Extract Zip Spec      14 (20) '2.0'\n+1FF7 Extract OS            00 (0) 'MS-DOS'\n+1FF8 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-1FE4 Compression Method    0008 (8) 'Deflated'\n-1FE6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FEA CRC                   F73B7760 (4147869536)\n-1FEE Compressed Size       0000045A (1114)\n-1FF2 Uncompressed Size     00000E52 (3666)\n-1FF6 Filename Length       003A (58)\n-1FF8 Extra Length          0000 (0)\n-1FFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FFA Compression Method    0008 (8) 'Deflated'\n+1FFC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2000 CRC                   28340452 (674497618)\n+2004 Compressed Size       00000463 (1123)\n+2008 Uncompressed Size     00000EC8 (3784)\n+200C Filename Length       003A (58)\n+200E Extra Length          0000 (0)\n+2010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2034 PAYLOAD\n+204A PAYLOAD\n \n-248E LOCAL HEADER #19      04034B50 (67324752)\n-2492 Extract Zip Spec      14 (20) '2.0'\n-2493 Extract OS            00 (0) 'MS-DOS'\n-2494 General Purpose Flag  0800 (2048)\n+24AD LOCAL HEADER #19      04034B50 (67324752)\n+24B1 Extract Zip Spec      14 (20) '2.0'\n+24B2 Extract OS            00 (0) 'MS-DOS'\n+24B3 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2496 Compression Method    0008 (8) 'Deflated'\n-2498 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-249C CRC                   300A8302 (805995266)\n-24A0 Compressed Size       000004EA (1258)\n-24A4 Uncompressed Size     00000FDE (4062)\n-24A8 Filename Length       003E (62)\n-24AA Extra Length          0000 (0)\n-24AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24B5 Compression Method    0008 (8) 'Deflated'\n+24B7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+24BB CRC                   BBE41D21 (3152289057)\n+24BF Compressed Size       000004F3 (1267)\n+24C3 Uncompressed Size     00001057 (4183)\n+24C7 Filename Length       003E (62)\n+24C9 Extra Length          0000 (0)\n+24CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x24CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24EA PAYLOAD\n+2509 PAYLOAD\n \n-29D4 LOCAL HEADER #20      04034B50 (67324752)\n-29D8 Extract Zip Spec      14 (20) '2.0'\n-29D9 Extract OS            00 (0) 'MS-DOS'\n-29DA General Purpose Flag  0800 (2048)\n+29FC LOCAL HEADER #20      04034B50 (67324752)\n+2A00 Extract Zip Spec      14 (20) '2.0'\n+2A01 Extract OS            00 (0) 'MS-DOS'\n+2A02 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-29DC Compression Method    0008 (8) 'Deflated'\n-29DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-29E2 CRC                   40BDA4ED (1086170349)\n-29E6 Compressed Size       000004B7 (1207)\n-29EA Uncompressed Size     00000EB7 (3767)\n-29EE Filename Length       0040 (64)\n-29F0 Extra Length          0000 (0)\n-29F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A04 Compression Method    0008 (8) 'Deflated'\n+2A06 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2A0A CRC                   E7735ED0 (3883097808)\n+2A0E Compressed Size       000004C1 (1217)\n+2A12 Uncompressed Size     00000F15 (3861)\n+2A16 Filename Length       0040 (64)\n+2A18 Extra Length          0000 (0)\n+2A1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2A32 PAYLOAD\n+2A5A PAYLOAD\n \n-2EE9 LOCAL HEADER #21      04034B50 (67324752)\n-2EED Extract Zip Spec      14 (20) '2.0'\n-2EEE Extract OS            00 (0) 'MS-DOS'\n-2EEF General Purpose Flag  0800 (2048)\n+2F1B LOCAL HEADER #21      04034B50 (67324752)\n+2F1F Extract Zip Spec      14 (20) '2.0'\n+2F20 Extract OS            00 (0) 'MS-DOS'\n+2F21 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2EF1 Compression Method    0008 (8) 'Deflated'\n-2EF3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2EF7 CRC                   68F64CB7 (1760971959)\n-2EFB Compressed Size       00000396 (918)\n-2EFF Uncompressed Size     00000933 (2355)\n-2F03 Filename Length       003C (60)\n-2F05 Extra Length          0000 (0)\n-2F07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2F23 Compression Method    0008 (8) 'Deflated'\n+2F25 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2F29 CRC                   C87FB043 (3363811395)\n+2F2D Compressed Size       0000038F (911)\n+2F31 Uncompressed Size     000008F9 (2297)\n+2F35 Filename Length       003C (60)\n+2F37 Extra Length          0000 (0)\n+2F39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2F07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2F39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2F43 PAYLOAD\n+2F75 PAYLOAD\n \n-32D9 LOCAL HEADER #22      04034B50 (67324752)\n-32DD Extract Zip Spec      14 (20) '2.0'\n-32DE Extract OS            00 (0) 'MS-DOS'\n-32DF General Purpose Flag  0800 (2048)\n+3304 LOCAL HEADER #22      04034B50 (67324752)\n+3308 Extract Zip Spec      14 (20) '2.0'\n+3309 Extract OS            00 (0) 'MS-DOS'\n+330A General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-32E1 Compression Method    0008 (8) 'Deflated'\n-32E3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-32E7 CRC                   3733BA81 (926136961)\n-32EB Compressed Size       00000047 (71)\n-32EF Uncompressed Size     0000004B (75)\n-32F3 Filename Length       0043 (67)\n-32F5 Extra Length          0000 (0)\n-32F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+330C Compression Method    0008 (8) 'Deflated'\n+330E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3312 CRC                   3733BA81 (926136961)\n+3316 Compressed Size       00000047 (71)\n+331A Uncompressed Size     0000004B (75)\n+331E Filename Length       0043 (67)\n+3320 Extra Length          0000 (0)\n+3322 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x32F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3322: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-333A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+3365 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-3381 CENTRAL HEADER #1     02014B50 (33639248)\n-3385 Created Zip Spec      14 (20) '2.0'\n-3386 Created OS            03 (3) 'Unix'\n-3387 Extract Zip Spec      14 (20) '2.0'\n-3388 Extract OS            00 (0) 'MS-DOS'\n-3389 General Purpose Flag  0800 (2048)\n+33AC CENTRAL HEADER #1     02014B50 (33639248)\n+33B0 Created Zip Spec      14 (20) '2.0'\n+33B1 Created OS            03 (3) 'Unix'\n+33B2 Extract Zip Spec      14 (20) '2.0'\n+33B3 Extract OS            00 (0) 'MS-DOS'\n+33B4 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-338B Compression Method    0008 (8) 'Deflated'\n-338D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3391 CRC                   A689EB18 (2794056472)\n-3395 Compressed Size       00000042 (66)\n-3399 Uncompressed Size     00000040 (64)\n-339D Filename Length       0014 (20)\n-339F Extra Length          0000 (0)\n-33A1 Comment Length        0000 (0)\n-33A3 Disk Start            0000 (0)\n-33A5 Int File Attributes   0000 (0)\n+33B6 Compression Method    0008 (8) 'Deflated'\n+33B8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+33BC CRC                   A689EB18 (2794056472)\n+33C0 Compressed Size       00000042 (66)\n+33C4 Uncompressed Size     00000040 (64)\n+33C8 Filename Length       0014 (20)\n+33CA Extra Length          0000 (0)\n+33CC Comment Length        0000 (0)\n+33CE Disk Start            0000 (0)\n+33D0 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-33A7 Ext File Attributes   81A40000 (2175008768)\n+33D2 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-33AB Local Header Offset   00000000 (0)\n-33AF Filename              'XXXXXXXXXXXXXXXXXXXX'\n+33D6 Local Header Offset   00000000 (0)\n+33DA Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x33AF: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x33DA: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-33C3 CENTRAL HEADER #2     02014B50 (33639248)\n-33C7 Created Zip Spec      14 (20) '2.0'\n-33C8 Created OS            03 (3) 'Unix'\n-33C9 Extract Zip Spec      0A (10) '1.0'\n-33CA Extract OS            00 (0) 'MS-DOS'\n-33CB General Purpose Flag  0800 (2048)\n+33EE CENTRAL HEADER #2     02014B50 (33639248)\n+33F2 Created Zip Spec      14 (20) '2.0'\n+33F3 Created OS            03 (3) 'Unix'\n+33F4 Extract Zip Spec      0A (10) '1.0'\n+33F5 Extract OS            00 (0) 'MS-DOS'\n+33F6 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-33CD Compression Method    0000 (0) 'Stored'\n-33CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-33D3 CRC                   00000000 (0)\n-33D7 Compressed Size       00000000 (0)\n-33DB Uncompressed Size     00000000 (0)\n-33DF Filename Length       0009 (9)\n-33E1 Extra Length          0000 (0)\n-33E3 Comment Length        0000 (0)\n-33E5 Disk Start            0000 (0)\n-33E7 Int File Attributes   0000 (0)\n+33F8 Compression Method    0000 (0) 'Stored'\n+33FA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+33FE CRC                   00000000 (0)\n+3402 Compressed Size       00000000 (0)\n+3406 Uncompressed Size     00000000 (0)\n+340A Filename Length       0009 (9)\n+340C Extra Length          0000 (0)\n+340E Comment Length        0000 (0)\n+3410 Disk Start            0000 (0)\n+3412 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-33E9 Ext File Attributes   41ED0010 (1106051088)\n+3414 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-33ED Local Header Offset   00000074 (116)\n-33F1 Filename              'XXXXXXXXX'\n+3418 Local Header Offset   00000074 (116)\n+341C Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x33F1: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x341C: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x33F1: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x341C: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x33C9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x33F4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-33FA CENTRAL HEADER #3     02014B50 (33639248)\n-33FE Created Zip Spec      14 (20) '2.0'\n-33FF Created OS            03 (3) 'Unix'\n-3400 Extract Zip Spec      0A (10) '1.0'\n-3401 Extract OS            00 (0) 'MS-DOS'\n-3402 General Purpose Flag  0800 (2048)\n+3425 CENTRAL HEADER #3     02014B50 (33639248)\n+3429 Created Zip Spec      14 (20) '2.0'\n+342A Created OS            03 (3) 'Unix'\n+342B Extract Zip Spec      0A (10) '1.0'\n+342C Extract OS            00 (0) 'MS-DOS'\n+342D General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3404 Compression Method    0000 (0) 'Stored'\n-3406 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-340A CRC                   00000000 (0)\n-340E Compressed Size       00000000 (0)\n-3412 Uncompressed Size     00000000 (0)\n-3416 Filename Length       0004 (4)\n-3418 Extra Length          0000 (0)\n-341A Comment Length        0000 (0)\n-341C Disk Start            0000 (0)\n-341E Int File Attributes   0000 (0)\n+342F Compression Method    0000 (0) 'Stored'\n+3431 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3435 CRC                   00000000 (0)\n+3439 Compressed Size       00000000 (0)\n+343D Uncompressed Size     00000000 (0)\n+3441 Filename Length       0004 (4)\n+3443 Extra Length          0000 (0)\n+3445 Comment Length        0000 (0)\n+3447 Disk Start            0000 (0)\n+3449 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3420 Ext File Attributes   41ED0010 (1106051088)\n+344B 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-3424 Local Header Offset   0000009B (155)\n-3428 Filename              'XXXX'\n+344F Local Header Offset   0000009B (155)\n+3453 Filename              'XXXX'\n #\n-# WARNING: Offset 0x3428: Filename 'XXXX'\n+# WARNING: Offset 0x3453: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3428: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x3453: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3400: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x342B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-342C CENTRAL HEADER #4     02014B50 (33639248)\n-3430 Created Zip Spec      14 (20) '2.0'\n-3431 Created OS            03 (3) 'Unix'\n-3432 Extract Zip Spec      0A (10) '1.0'\n-3433 Extract OS            00 (0) 'MS-DOS'\n-3434 General Purpose Flag  0800 (2048)\n+3457 CENTRAL HEADER #4     02014B50 (33639248)\n+345B Created Zip Spec      14 (20) '2.0'\n+345C Created OS            03 (3) 'Unix'\n+345D Extract Zip Spec      0A (10) '1.0'\n+345E Extract OS            00 (0) 'MS-DOS'\n+345F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3436 Compression Method    0000 (0) 'Stored'\n-3438 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-343C CRC                   00000000 (0)\n-3440 Compressed Size       00000000 (0)\n-3444 Uncompressed Size     00000000 (0)\n-3448 Filename Length       000B (11)\n-344A Extra Length          0000 (0)\n-344C Comment Length        0000 (0)\n-344E Disk Start            0000 (0)\n-3450 Int File Attributes   0000 (0)\n+3461 Compression Method    0000 (0) 'Stored'\n+3463 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3467 CRC                   00000000 (0)\n+346B Compressed Size       00000000 (0)\n+346F Uncompressed Size     00000000 (0)\n+3473 Filename Length       000B (11)\n+3475 Extra Length          0000 (0)\n+3477 Comment Length        0000 (0)\n+3479 Disk Start            0000 (0)\n+347B Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3452 Ext File Attributes   41ED0010 (1106051088)\n+347D 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-3456 Local Header Offset   000000BD (189)\n-345A Filename              'XXXXXXXXXXX'\n+3481 Local Header Offset   000000BD (189)\n+3485 Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x345A: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x3485: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x345A: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3485: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3432: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x345D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-3465 CENTRAL HEADER #5     02014B50 (33639248)\n-3469 Created Zip Spec      14 (20) '2.0'\n-346A Created OS            03 (3) 'Unix'\n-346B Extract Zip Spec      0A (10) '1.0'\n-346C Extract OS            00 (0) 'MS-DOS'\n-346D General Purpose Flag  0800 (2048)\n+3490 CENTRAL HEADER #5     02014B50 (33639248)\n+3494 Created Zip Spec      14 (20) '2.0'\n+3495 Created OS            03 (3) 'Unix'\n+3496 Extract Zip Spec      0A (10) '1.0'\n+3497 Extract OS            00 (0) 'MS-DOS'\n+3498 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-346F Compression Method    0000 (0) 'Stored'\n-3471 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3475 CRC                   00000000 (0)\n-3479 Compressed Size       00000000 (0)\n-347D Uncompressed Size     00000000 (0)\n-3481 Filename Length       0011 (17)\n-3483 Extra Length          0000 (0)\n-3485 Comment Length        0000 (0)\n-3487 Disk Start            0000 (0)\n-3489 Int File Attributes   0000 (0)\n+349A Compression Method    0000 (0) 'Stored'\n+349C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+34A0 CRC                   00000000 (0)\n+34A4 Compressed Size       00000000 (0)\n+34A8 Uncompressed Size     00000000 (0)\n+34AC Filename Length       0011 (17)\n+34AE Extra Length          0000 (0)\n+34B0 Comment Length        0000 (0)\n+34B2 Disk Start            0000 (0)\n+34B4 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-348B Ext File Attributes   41ED0010 (1106051088)\n+34B6 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-348F Local Header Offset   000000E6 (230)\n-3493 Filename              'XXXXXXXXXXXXXXXXX'\n+34BA Local Header Offset   000000E6 (230)\n+34BE Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3493: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34BE: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3493: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x34BE: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x346B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3496: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-34A4 CENTRAL HEADER #6     02014B50 (33639248)\n-34A8 Created Zip Spec      14 (20) '2.0'\n-34A9 Created OS            03 (3) 'Unix'\n-34AA Extract Zip Spec      0A (10) '1.0'\n-34AB Extract OS            00 (0) 'MS-DOS'\n-34AC General Purpose Flag  0800 (2048)\n+34CF CENTRAL HEADER #6     02014B50 (33639248)\n+34D3 Created Zip Spec      14 (20) '2.0'\n+34D4 Created OS            03 (3) 'Unix'\n+34D5 Extract Zip Spec      0A (10) '1.0'\n+34D6 Extract OS            00 (0) 'MS-DOS'\n+34D7 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-34AE Compression Method    0000 (0) 'Stored'\n-34B0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-34B4 CRC                   00000000 (0)\n-34B8 Compressed Size       00000000 (0)\n-34BC Uncompressed Size     00000000 (0)\n-34C0 Filename Length       001A (26)\n-34C2 Extra Length          0000 (0)\n-34C4 Comment Length        0000 (0)\n-34C6 Disk Start            0000 (0)\n-34C8 Int File Attributes   0000 (0)\n+34D9 Compression Method    0000 (0) 'Stored'\n+34DB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+34DF CRC                   00000000 (0)\n+34E3 Compressed Size       00000000 (0)\n+34E7 Uncompressed Size     00000000 (0)\n+34EB Filename Length       001A (26)\n+34ED Extra Length          0000 (0)\n+34EF Comment Length        0000 (0)\n+34F1 Disk Start            0000 (0)\n+34F3 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-34CA Ext File Attributes   41ED0010 (1106051088)\n+34F5 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-34CE Local Header Offset   00000115 (277)\n-34D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+34F9 Local Header Offset   00000115 (277)\n+34FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x34D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x34D2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x34FD: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x34AA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x34D5: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-34EC CENTRAL HEADER #7     02014B50 (33639248)\n-34F0 Created Zip Spec      14 (20) '2.0'\n-34F1 Created OS            03 (3) 'Unix'\n-34F2 Extract Zip Spec      0A (10) '1.0'\n-34F3 Extract OS            00 (0) 'MS-DOS'\n-34F4 General Purpose Flag  0800 (2048)\n+3517 CENTRAL HEADER #7     02014B50 (33639248)\n+351B Created Zip Spec      14 (20) '2.0'\n+351C Created OS            03 (3) 'Unix'\n+351D Extract Zip Spec      0A (10) '1.0'\n+351E Extract OS            00 (0) 'MS-DOS'\n+351F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-34F6 Compression Method    0000 (0) 'Stored'\n-34F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-34FC CRC                   00000000 (0)\n-3500 Compressed Size       00000000 (0)\n-3504 Uncompressed Size     00000000 (0)\n-3508 Filename Length       0020 (32)\n-350A Extra Length          0000 (0)\n-350C Comment Length        0000 (0)\n-350E Disk Start            0000 (0)\n-3510 Int File Attributes   0000 (0)\n+3521 Compression Method    0000 (0) 'Stored'\n+3523 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3527 CRC                   00000000 (0)\n+352B Compressed Size       00000000 (0)\n+352F Uncompressed Size     00000000 (0)\n+3533 Filename Length       0020 (32)\n+3535 Extra Length          0000 (0)\n+3537 Comment Length        0000 (0)\n+3539 Disk Start            0000 (0)\n+353B Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3512 Ext File Attributes   41ED0010 (1106051088)\n+353D 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-3516 Local Header Offset   0000014D (333)\n-351A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3541 Local Header Offset   0000014D (333)\n+3545 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x351A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3545: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x351A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3545: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x34F2: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x351D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-353A CENTRAL HEADER #8     02014B50 (33639248)\n-353E Created Zip Spec      14 (20) '2.0'\n-353F Created OS            03 (3) 'Unix'\n-3540 Extract Zip Spec      0A (10) '1.0'\n-3541 Extract OS            00 (0) 'MS-DOS'\n-3542 General Purpose Flag  0800 (2048)\n+3565 CENTRAL HEADER #8     02014B50 (33639248)\n+3569 Created Zip Spec      14 (20) '2.0'\n+356A Created OS            03 (3) 'Unix'\n+356B Extract Zip Spec      0A (10) '1.0'\n+356C Extract OS            00 (0) 'MS-DOS'\n+356D General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3544 Compression Method    0000 (0) 'Stored'\n-3546 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-354A CRC                   00000000 (0)\n-354E Compressed Size       00000000 (0)\n-3552 Uncompressed Size     00000000 (0)\n-3556 Filename Length       0026 (38)\n-3558 Extra Length          0000 (0)\n-355A Comment Length        0000 (0)\n-355C Disk Start            0000 (0)\n-355E Int File Attributes   0000 (0)\n+356F Compression Method    0000 (0) 'Stored'\n+3571 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3575 CRC                   00000000 (0)\n+3579 Compressed Size       00000000 (0)\n+357D Uncompressed Size     00000000 (0)\n+3581 Filename Length       0026 (38)\n+3583 Extra Length          0000 (0)\n+3585 Comment Length        0000 (0)\n+3587 Disk Start            0000 (0)\n+3589 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3560 Ext File Attributes   41ED0010 (1106051088)\n+358B 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-3564 Local Header Offset   0000018B (395)\n-3568 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+358F Local Header Offset   0000018B (395)\n+3593 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3568: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3593: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3568: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x3593: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3540: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x356B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-358E CENTRAL HEADER #9     02014B50 (33639248)\n-3592 Created Zip Spec      14 (20) '2.0'\n-3593 Created OS            03 (3) 'Unix'\n-3594 Extract Zip Spec      0A (10) '1.0'\n-3595 Extract OS            00 (0) 'MS-DOS'\n-3596 General Purpose Flag  0800 (2048)\n+35B9 CENTRAL HEADER #9     02014B50 (33639248)\n+35BD Created Zip Spec      14 (20) '2.0'\n+35BE Created OS            03 (3) 'Unix'\n+35BF Extract Zip Spec      0A (10) '1.0'\n+35C0 Extract OS            00 (0) 'MS-DOS'\n+35C1 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3598 Compression Method    0000 (0) 'Stored'\n-359A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-359E CRC                   00000000 (0)\n-35A2 Compressed Size       00000000 (0)\n-35A6 Uncompressed Size     00000000 (0)\n-35AA Filename Length       0028 (40)\n-35AC Extra Length          0000 (0)\n-35AE Comment Length        0000 (0)\n-35B0 Disk Start            0000 (0)\n-35B2 Int File Attributes   0000 (0)\n+35C3 Compression Method    0000 (0) 'Stored'\n+35C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+35C9 CRC                   00000000 (0)\n+35CD Compressed Size       00000000 (0)\n+35D1 Uncompressed Size     00000000 (0)\n+35D5 Filename Length       0028 (40)\n+35D7 Extra Length          0000 (0)\n+35D9 Comment Length        0000 (0)\n+35DB Disk Start            0000 (0)\n+35DD Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-35B4 Ext File Attributes   41ED0010 (1106051088)\n+35DF 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-35B8 Local Header Offset   000001CF (463)\n-35BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+35E3 Local Header Offset   000001CF (463)\n+35E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x35BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x35E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x35BC: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x35E7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3594: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x35BF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-35E4 CENTRAL HEADER #10    02014B50 (33639248)\n-35E8 Created Zip Spec      14 (20) '2.0'\n-35E9 Created OS            03 (3) 'Unix'\n-35EA Extract Zip Spec      0A (10) '1.0'\n-35EB Extract OS            00 (0) 'MS-DOS'\n-35EC General Purpose Flag  0800 (2048)\n+360F CENTRAL HEADER #10    02014B50 (33639248)\n+3613 Created Zip Spec      14 (20) '2.0'\n+3614 Created OS            03 (3) 'Unix'\n+3615 Extract Zip Spec      0A (10) '1.0'\n+3616 Extract OS            00 (0) 'MS-DOS'\n+3617 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-35EE Compression Method    0000 (0) 'Stored'\n-35F0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-35F4 CRC                   00000000 (0)\n-35F8 Compressed Size       00000000 (0)\n-35FC Uncompressed Size     00000000 (0)\n-3600 Filename Length       000F (15)\n-3602 Extra Length          0000 (0)\n-3604 Comment Length        0000 (0)\n-3606 Disk Start            0000 (0)\n-3608 Int File Attributes   0000 (0)\n+3619 Compression Method    0000 (0) 'Stored'\n+361B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+361F CRC                   00000000 (0)\n+3623 Compressed Size       00000000 (0)\n+3627 Uncompressed Size     00000000 (0)\n+362B Filename Length       000F (15)\n+362D Extra Length          0000 (0)\n+362F Comment Length        0000 (0)\n+3631 Disk Start            0000 (0)\n+3633 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-360A Ext File Attributes   41ED0010 (1106051088)\n+3635 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-360E Local Header Offset   00000215 (533)\n-3612 Filename              'XXXXXXXXXXXXXXX'\n+3639 Local Header Offset   00000215 (533)\n+363D Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3612: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x363D: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x3612: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x363D: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x35EA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3615: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-3621 CENTRAL HEADER #11    02014B50 (33639248)\n-3625 Created Zip Spec      14 (20) '2.0'\n-3626 Created OS            03 (3) 'Unix'\n-3627 Extract Zip Spec      0A (10) '1.0'\n-3628 Extract OS            00 (0) 'MS-DOS'\n-3629 General Purpose Flag  0800 (2048)\n+364C CENTRAL HEADER #11    02014B50 (33639248)\n+3650 Created Zip Spec      14 (20) '2.0'\n+3651 Created OS            03 (3) 'Unix'\n+3652 Extract Zip Spec      0A (10) '1.0'\n+3653 Extract OS            00 (0) 'MS-DOS'\n+3654 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-362B Compression Method    0000 (0) 'Stored'\n-362D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3631 CRC                   00000000 (0)\n-3635 Compressed Size       00000000 (0)\n-3639 Uncompressed Size     00000000 (0)\n-363D Filename Length       0020 (32)\n-363F Extra Length          0000 (0)\n-3641 Comment Length        0000 (0)\n-3643 Disk Start            0000 (0)\n-3645 Int File Attributes   0000 (0)\n+3656 Compression Method    0000 (0) 'Stored'\n+3658 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+365C CRC                   00000000 (0)\n+3660 Compressed Size       00000000 (0)\n+3664 Uncompressed Size     00000000 (0)\n+3668 Filename Length       0020 (32)\n+366A Extra Length          0000 (0)\n+366C Comment Length        0000 (0)\n+366E Disk Start            0000 (0)\n+3670 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3647 Ext File Attributes   41ED0010 (1106051088)\n+3672 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-364B Local Header Offset   00000242 (578)\n-364F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3676 Local Header Offset   00000242 (578)\n+367A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x364F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x367A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x364F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x367A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3627: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3652: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-366F CENTRAL HEADER #12    02014B50 (33639248)\n-3673 Created Zip Spec      14 (20) '2.0'\n-3674 Created OS            03 (3) 'Unix'\n-3675 Extract Zip Spec      0A (10) '1.0'\n-3676 Extract OS            00 (0) 'MS-DOS'\n-3677 General Purpose Flag  0800 (2048)\n+369A CENTRAL HEADER #12    02014B50 (33639248)\n+369E Created Zip Spec      14 (20) '2.0'\n+369F Created OS            03 (3) 'Unix'\n+36A0 Extract Zip Spec      0A (10) '1.0'\n+36A1 Extract OS            00 (0) 'MS-DOS'\n+36A2 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-3679 Compression Method    0000 (0) 'Stored'\n-367B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-367F CRC                   00000000 (0)\n-3683 Compressed Size       00000000 (0)\n-3687 Uncompressed Size     00000000 (0)\n-368B Filename Length       0035 (53)\n-368D Extra Length          0000 (0)\n-368F Comment Length        0000 (0)\n-3691 Disk Start            0000 (0)\n-3693 Int File Attributes   0000 (0)\n+36A4 Compression Method    0000 (0) 'Stored'\n+36A6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+36AA CRC                   00000000 (0)\n+36AE Compressed Size       00000000 (0)\n+36B2 Uncompressed Size     00000000 (0)\n+36B6 Filename Length       0035 (53)\n+36B8 Extra Length          0000 (0)\n+36BA Comment Length        0000 (0)\n+36BC Disk Start            0000 (0)\n+36BE Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3695 Ext File Attributes   41ED0010 (1106051088)\n+36C0 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-3699 Local Header Offset   00000280 (640)\n-369D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+36C4 Local Header Offset   00000280 (640)\n+36C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x369D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x36C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x369D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x36C8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x3675: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x36A0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-36D2 CENTRAL HEADER #13    02014B50 (33639248)\n-36D6 Created Zip Spec      14 (20) '2.0'\n-36D7 Created OS            03 (3) 'Unix'\n-36D8 Extract Zip Spec      14 (20) '2.0'\n-36D9 Extract OS            00 (0) 'MS-DOS'\n-36DA General Purpose Flag  0800 (2048)\n+36FD CENTRAL HEADER #13    02014B50 (33639248)\n+3701 Created Zip Spec      14 (20) '2.0'\n+3702 Created OS            03 (3) 'Unix'\n+3703 Extract Zip Spec      14 (20) '2.0'\n+3704 Extract OS            00 (0) 'MS-DOS'\n+3705 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-36DC Compression Method    0008 (8) 'Deflated'\n-36DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-36E2 CRC                   AD27A3A1 (2905056161)\n-36E6 Compressed Size       00000359 (857)\n-36EA Uncompressed Size     00000C3A (3130)\n-36EE Filename Length       0015 (21)\n-36F0 Extra Length          0000 (0)\n-36F2 Comment Length        0000 (0)\n-36F4 Disk Start            0000 (0)\n-36F6 Int File Attributes   0000 (0)\n+3707 Compression Method    0008 (8) 'Deflated'\n+3709 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+370D CRC                   AD27A3A1 (2905056161)\n+3711 Compressed Size       00000359 (857)\n+3715 Uncompressed Size     00000C3A (3130)\n+3719 Filename Length       0015 (21)\n+371B Extra Length          0000 (0)\n+371D Comment Length        0000 (0)\n+371F Disk Start            0000 (0)\n+3721 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-36F8 Ext File Attributes   81A40000 (2175008768)\n+3723 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-36FC Local Header Offset   000002D3 (723)\n-3700 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+3727 Local Header Offset   000002D3 (723)\n+372B Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3700: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x372B: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3715 CENTRAL HEADER #14    02014B50 (33639248)\n-3719 Created Zip Spec      14 (20) '2.0'\n-371A Created OS            03 (3) 'Unix'\n-371B Extract Zip Spec      14 (20) '2.0'\n-371C Extract OS            00 (0) 'MS-DOS'\n-371D General Purpose Flag  0800 (2048)\n+3740 CENTRAL HEADER #14    02014B50 (33639248)\n+3744 Created Zip Spec      14 (20) '2.0'\n+3745 Created OS            03 (3) 'Unix'\n+3746 Extract Zip Spec      14 (20) '2.0'\n+3747 Extract OS            00 (0) 'MS-DOS'\n+3748 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-371F Compression Method    0008 (8) 'Deflated'\n-3721 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3725 CRC                   86E2B4B4 (2263004340)\n-3729 Compressed Size       00000F6D (3949)\n-372D Uncompressed Size     00002C5E (11358)\n-3731 Filename Length       0010 (16)\n-3733 Extra Length          0000 (0)\n-3735 Comment Length        0000 (0)\n-3737 Disk Start            0000 (0)\n-3739 Int File Attributes   0000 (0)\n+374A Compression Method    0008 (8) 'Deflated'\n+374C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3750 CRC                   86E2B4B4 (2263004340)\n+3754 Compressed Size       00000F6D (3949)\n+3758 Uncompressed Size     00002C5E (11358)\n+375C Filename Length       0010 (16)\n+375E Extra Length          0000 (0)\n+3760 Comment Length        0000 (0)\n+3762 Disk Start            0000 (0)\n+3764 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-373B Ext File Attributes   81A40000 (2175008768)\n+3766 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-373F Local Header Offset   0000065F (1631)\n-3743 Filename              'XXXXXXXXXXXXXXXX'\n+376A Local Header Offset   0000065F (1631)\n+376E Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3743: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x376E: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3753 CENTRAL HEADER #15    02014B50 (33639248)\n-3757 Created Zip Spec      14 (20) '2.0'\n-3758 Created OS            03 (3) 'Unix'\n-3759 Extract Zip Spec      14 (20) '2.0'\n-375A Extract OS            00 (0) 'MS-DOS'\n-375B General Purpose Flag  0800 (2048)\n+377E CENTRAL HEADER #15    02014B50 (33639248)\n+3782 Created Zip Spec      14 (20) '2.0'\n+3783 Created OS            03 (3) 'Unix'\n+3784 Extract Zip Spec      14 (20) '2.0'\n+3785 Extract OS            00 (0) 'MS-DOS'\n+3786 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-375D Compression Method    0008 (8) 'Deflated'\n-375F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3763 CRC                   3110311C (823144732)\n-3767 Compressed Size       00000080 (128)\n-376B Uncompressed Size     000000B1 (177)\n-376F Filename Length       000F (15)\n-3771 Extra Length          0000 (0)\n-3773 Comment Length        0000 (0)\n-3775 Disk Start            0000 (0)\n-3777 Int File Attributes   0000 (0)\n+3788 Compression Method    0008 (8) 'Deflated'\n+378A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+378E CRC                   3110311C (823144732)\n+3792 Compressed Size       00000080 (128)\n+3796 Uncompressed Size     000000B1 (177)\n+379A Filename Length       000F (15)\n+379C Extra Length          0000 (0)\n+379E Comment Length        0000 (0)\n+37A0 Disk Start            0000 (0)\n+37A2 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3779 Ext File Attributes   81A40000 (2175008768)\n+37A4 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-377D Local Header Offset   000015FA (5626)\n-3781 Filename              'XXXXXXXXXXXXXXX'\n+37A8 Local Header Offset   000015FA (5626)\n+37AC Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3781: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x37AC: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3790 CENTRAL HEADER #16    02014B50 (33639248)\n-3794 Created Zip Spec      14 (20) '2.0'\n-3795 Created OS            03 (3) 'Unix'\n-3796 Extract Zip Spec      14 (20) '2.0'\n-3797 Extract OS            00 (0) 'MS-DOS'\n-3798 General Purpose Flag  0800 (2048)\n+37BB CENTRAL HEADER #16    02014B50 (33639248)\n+37BF Created Zip Spec      14 (20) '2.0'\n+37C0 Created OS            03 (3) 'Unix'\n+37C1 Extract Zip Spec      14 (20) '2.0'\n+37C2 Extract OS            00 (0) 'MS-DOS'\n+37C3 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-379A Compression Method    0008 (8) 'Deflated'\n-379C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-37A0 CRC                   99D15CAE (2580634798)\n-37A4 Compressed Size       000002C9 (713)\n-37A8 Uncompressed Size     0000058A (1418)\n-37AC Filename Length       0030 (48)\n-37AE Extra Length          0000 (0)\n-37B0 Comment Length        0000 (0)\n-37B2 Disk Start            0000 (0)\n-37B4 Int File Attributes   0000 (0)\n+37C5 Compression Method    0008 (8) 'Deflated'\n+37C7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+37CB CRC                   F61CD2D8 (4129084120)\n+37CF Compressed Size       000002D4 (724)\n+37D3 Uncompressed Size     000005B8 (1464)\n+37D7 Filename Length       0030 (48)\n+37D9 Extra Length          0000 (0)\n+37DB Comment Length        0000 (0)\n+37DD Disk Start            0000 (0)\n+37DF Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-37B6 Ext File Attributes   81A40000 (2175008768)\n+37E1 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-37BA Local Header Offset   000016A7 (5799)\n-37BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+37E5 Local Header Offset   000016A7 (5799)\n+37E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x37BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x37E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-37EE CENTRAL HEADER #17    02014B50 (33639248)\n-37F2 Created Zip Spec      14 (20) '2.0'\n-37F3 Created OS            03 (3) 'Unix'\n-37F4 Extract Zip Spec      14 (20) '2.0'\n-37F5 Extract OS            00 (0) 'MS-DOS'\n-37F6 General Purpose Flag  0800 (2048)\n+3819 CENTRAL HEADER #17    02014B50 (33639248)\n+381D Created Zip Spec      14 (20) '2.0'\n+381E Created OS            03 (3) 'Unix'\n+381F Extract Zip Spec      14 (20) '2.0'\n+3820 Extract OS            00 (0) 'MS-DOS'\n+3821 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-37F8 Compression Method    0008 (8) 'Deflated'\n-37FA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-37FE CRC                   E8BD727A (3904729722)\n-3802 Compressed Size       000005C3 (1475)\n-3806 Uncompressed Size     00001249 (4681)\n-380A Filename Length       003D (61)\n-380C Extra Length          0000 (0)\n-380E Comment Length        0000 (0)\n-3810 Disk Start            0000 (0)\n-3812 Int File Attributes   0000 (0)\n+3823 Compression Method    0008 (8) 'Deflated'\n+3825 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3829 CRC                   250C4A13 (621562387)\n+382D Compressed Size       000005CE (1486)\n+3831 Uncompressed Size     000012CF (4815)\n+3835 Filename Length       003D (61)\n+3837 Extra Length          0000 (0)\n+3839 Comment Length        0000 (0)\n+383B Disk Start            0000 (0)\n+383D Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3814 Ext File Attributes   81A40000 (2175008768)\n+383F 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-3818 Local Header Offset   000019BE (6590)\n-381C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3843 Local Header Offset   000019C9 (6601)\n+3847 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x381C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3847: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3859 CENTRAL HEADER #18    02014B50 (33639248)\n-385D Created Zip Spec      14 (20) '2.0'\n-385E Created OS            03 (3) 'Unix'\n-385F Extract Zip Spec      14 (20) '2.0'\n-3860 Extract OS            00 (0) 'MS-DOS'\n-3861 General Purpose Flag  0800 (2048)\n+3884 CENTRAL HEADER #18    02014B50 (33639248)\n+3888 Created Zip Spec      14 (20) '2.0'\n+3889 Created OS            03 (3) 'Unix'\n+388A Extract Zip Spec      14 (20) '2.0'\n+388B Extract OS            00 (0) 'MS-DOS'\n+388C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3863 Compression Method    0008 (8) 'Deflated'\n-3865 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3869 CRC                   F73B7760 (4147869536)\n-386D Compressed Size       0000045A (1114)\n-3871 Uncompressed Size     00000E52 (3666)\n-3875 Filename Length       003A (58)\n-3877 Extra Length          0000 (0)\n-3879 Comment Length        0000 (0)\n-387B Disk Start            0000 (0)\n-387D Int File Attributes   0000 (0)\n+388E Compression Method    0008 (8) 'Deflated'\n+3890 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3894 CRC                   28340452 (674497618)\n+3898 Compressed Size       00000463 (1123)\n+389C Uncompressed Size     00000EC8 (3784)\n+38A0 Filename Length       003A (58)\n+38A2 Extra Length          0000 (0)\n+38A4 Comment Length        0000 (0)\n+38A6 Disk Start            0000 (0)\n+38A8 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-387F Ext File Attributes   81A40000 (2175008768)\n+38AA 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-3883 Local Header Offset   00001FDC (8156)\n-3887 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+38AE Local Header Offset   00001FF2 (8178)\n+38B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3887: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x38B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-38C1 CENTRAL HEADER #19    02014B50 (33639248)\n-38C5 Created Zip Spec      14 (20) '2.0'\n-38C6 Created OS            03 (3) 'Unix'\n-38C7 Extract Zip Spec      14 (20) '2.0'\n-38C8 Extract OS            00 (0) 'MS-DOS'\n-38C9 General Purpose Flag  0800 (2048)\n+38EC CENTRAL HEADER #19    02014B50 (33639248)\n+38F0 Created Zip Spec      14 (20) '2.0'\n+38F1 Created OS            03 (3) 'Unix'\n+38F2 Extract Zip Spec      14 (20) '2.0'\n+38F3 Extract OS            00 (0) 'MS-DOS'\n+38F4 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-38CB Compression Method    0008 (8) 'Deflated'\n-38CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-38D1 CRC                   300A8302 (805995266)\n-38D5 Compressed Size       000004EA (1258)\n-38D9 Uncompressed Size     00000FDE (4062)\n-38DD Filename Length       003E (62)\n-38DF Extra Length          0000 (0)\n-38E1 Comment Length        0000 (0)\n-38E3 Disk Start            0000 (0)\n-38E5 Int File Attributes   0000 (0)\n+38F6 Compression Method    0008 (8) 'Deflated'\n+38F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+38FC CRC                   BBE41D21 (3152289057)\n+3900 Compressed Size       000004F3 (1267)\n+3904 Uncompressed Size     00001057 (4183)\n+3908 Filename Length       003E (62)\n+390A Extra Length          0000 (0)\n+390C Comment Length        0000 (0)\n+390E Disk Start            0000 (0)\n+3910 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-38E7 Ext File Attributes   81A40000 (2175008768)\n+3912 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-38EB Local Header Offset   0000248E (9358)\n-38EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3916 Local Header Offset   000024AD (9389)\n+391A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x38EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x391A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-392D CENTRAL HEADER #20    02014B50 (33639248)\n-3931 Created Zip Spec      14 (20) '2.0'\n-3932 Created OS            03 (3) 'Unix'\n-3933 Extract Zip Spec      14 (20) '2.0'\n-3934 Extract OS            00 (0) 'MS-DOS'\n-3935 General Purpose Flag  0800 (2048)\n+3958 CENTRAL HEADER #20    02014B50 (33639248)\n+395C Created Zip Spec      14 (20) '2.0'\n+395D Created OS            03 (3) 'Unix'\n+395E Extract Zip Spec      14 (20) '2.0'\n+395F Extract OS            00 (0) 'MS-DOS'\n+3960 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3937 Compression Method    0008 (8) 'Deflated'\n-3939 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-393D CRC                   40BDA4ED (1086170349)\n-3941 Compressed Size       000004B7 (1207)\n-3945 Uncompressed Size     00000EB7 (3767)\n-3949 Filename Length       0040 (64)\n-394B Extra Length          0000 (0)\n-394D Comment Length        0000 (0)\n-394F Disk Start            0000 (0)\n-3951 Int File Attributes   0000 (0)\n+3962 Compression Method    0008 (8) 'Deflated'\n+3964 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3968 CRC                   E7735ED0 (3883097808)\n+396C Compressed Size       000004C1 (1217)\n+3970 Uncompressed Size     00000F15 (3861)\n+3974 Filename Length       0040 (64)\n+3976 Extra Length          0000 (0)\n+3978 Comment Length        0000 (0)\n+397A Disk Start            0000 (0)\n+397C Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3953 Ext File Attributes   81A40000 (2175008768)\n+397E 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-3957 Local Header Offset   000029D4 (10708)\n-395B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3982 Local Header Offset   000029FC (10748)\n+3986 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x395B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3986: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-399B CENTRAL HEADER #21    02014B50 (33639248)\n-399F Created Zip Spec      14 (20) '2.0'\n-39A0 Created OS            03 (3) 'Unix'\n-39A1 Extract Zip Spec      14 (20) '2.0'\n-39A2 Extract OS            00 (0) 'MS-DOS'\n-39A3 General Purpose Flag  0800 (2048)\n+39C6 CENTRAL HEADER #21    02014B50 (33639248)\n+39CA Created Zip Spec      14 (20) '2.0'\n+39CB Created OS            03 (3) 'Unix'\n+39CC Extract Zip Spec      14 (20) '2.0'\n+39CD Extract OS            00 (0) 'MS-DOS'\n+39CE General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-39A5 Compression Method    0008 (8) 'Deflated'\n-39A7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-39AB CRC                   68F64CB7 (1760971959)\n-39AF Compressed Size       00000396 (918)\n-39B3 Uncompressed Size     00000933 (2355)\n-39B7 Filename Length       003C (60)\n-39B9 Extra Length          0000 (0)\n-39BB Comment Length        0000 (0)\n-39BD Disk Start            0000 (0)\n-39BF Int File Attributes   0000 (0)\n+39D0 Compression Method    0008 (8) 'Deflated'\n+39D2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+39D6 CRC                   C87FB043 (3363811395)\n+39DA Compressed Size       0000038F (911)\n+39DE Uncompressed Size     000008F9 (2297)\n+39E2 Filename Length       003C (60)\n+39E4 Extra Length          0000 (0)\n+39E6 Comment Length        0000 (0)\n+39E8 Disk Start            0000 (0)\n+39EA Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-39C1 Ext File Attributes   81A40000 (2175008768)\n+39EC 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-39C5 Local Header Offset   00002EE9 (12009)\n-39C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+39F0 Local Header Offset   00002F1B (12059)\n+39F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x39C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x39F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3A05 CENTRAL HEADER #22    02014B50 (33639248)\n-3A09 Created Zip Spec      14 (20) '2.0'\n-3A0A Created OS            03 (3) 'Unix'\n-3A0B Extract Zip Spec      14 (20) '2.0'\n-3A0C Extract OS            00 (0) 'MS-DOS'\n-3A0D General Purpose Flag  0800 (2048)\n+3A30 CENTRAL HEADER #22    02014B50 (33639248)\n+3A34 Created Zip Spec      14 (20) '2.0'\n+3A35 Created OS            03 (3) 'Unix'\n+3A36 Extract Zip Spec      14 (20) '2.0'\n+3A37 Extract OS            00 (0) 'MS-DOS'\n+3A38 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-3A0F Compression Method    0008 (8) 'Deflated'\n-3A11 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-3A15 CRC                   3733BA81 (926136961)\n-3A19 Compressed Size       00000047 (71)\n-3A1D Uncompressed Size     0000004B (75)\n-3A21 Filename Length       0043 (67)\n-3A23 Extra Length          0000 (0)\n-3A25 Comment Length        0000 (0)\n-3A27 Disk Start            0000 (0)\n-3A29 Int File Attributes   0000 (0)\n+3A3A Compression Method    0008 (8) 'Deflated'\n+3A3C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+3A40 CRC                   3733BA81 (926136961)\n+3A44 Compressed Size       00000047 (71)\n+3A48 Uncompressed Size     0000004B (75)\n+3A4C Filename Length       0043 (67)\n+3A4E Extra Length          0000 (0)\n+3A50 Comment Length        0000 (0)\n+3A52 Disk Start            0000 (0)\n+3A54 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-3A2B Ext File Attributes   81A40000 (2175008768)\n+3A56 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-3A2F Local Header Offset   000032D9 (13017)\n-3A33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+3A5A Local Header Offset   00003304 (13060)\n+3A5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3A33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3A5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-3A76 END CENTRAL HEADER    06054B50 (101010256)\n-3A7A Number of this disk   0000 (0)\n-3A7C Central Dir Disk no   0000 (0)\n-3A7E Entries in this disk  0016 (22)\n-3A80 Total Entries         0016 (22)\n-3A82 Size of Central Dir   000006F5 (1781)\n-3A86 Offset to Central Dir 00003381 (13185)\n-3A8A Comment Length        0000 (0)\n+3AA1 END CENTRAL HEADER    06054B50 (101010256)\n+3AA5 Number of this disk   0000 (0)\n+3AA7 Central Dir Disk no   0000 (0)\n+3AA9 Entries in this disk  0016 (22)\n+3AAB Total Entries         0016 (22)\n+3AAD Size of Central Dir   000006F5 (1781)\n+3AB1 Offset to Central Dir 000033AC (13228)\n+3AB5 Comment Length        0000 (0)\n #\n # Error Count: 11\n # Warning Count: 55\n #\n # Done\n"}, {"source1": "org/apache/dubbo/remoting/redis/RedisClient.java", "source2": "org/apache/dubbo/remoting/redis/RedisClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,46 +1,46 @@\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.redis;\n-\n-import redis.clients.jedis.JedisPubSub;\n-\n-import java.util.Map;\n-import java.util.Set;\n-\n-public interface RedisClient {\n-    Long hset(String key, String field, String value);\n-\n-    Long publish(String channel, String message);\n-\n-//    void clean(String pattern);\n-\n-    boolean isConnected();\n-\n-    void destroy();\n-\n-    Long hdel(final String key, final String... fields);\n-\n-    Set<String> scan(String pattern);\n-\n-    Map<String, String> hgetAll(String key);\n-\n-    void psubscribe(final JedisPubSub jedisPubSub, final String... patterns);\n-\n-    void disconnect();\n-\n-    void close();\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.redis;\r\n+\r\n+import redis.clients.jedis.JedisPubSub;\r\n+\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public interface RedisClient {\r\n+    Long hset(String key, String field, String value);\r\n+\r\n+    Long publish(String channel, String message);\r\n+\r\n+//    void clean(String pattern);\r\n+\r\n+    boolean isConnected();\r\n+\r\n+    void destroy();\r\n+\r\n+    Long hdel(final String key, final String... fields);\r\n+\r\n+    Set<String> scan(String pattern);\r\n+\r\n+    Map<String, String> hgetAll(String key);\r\n+\r\n+    void psubscribe(final JedisPubSub jedisPubSub, final String... patterns);\r\n+\r\n+    void disconnect();\r\n+\r\n+    void close();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,134 +1,134 @@\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.redis.jedis;\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.StringUtils;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\n-import redis.clients.jedis.HostAndPort;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisCluster;\n-import redis.clients.jedis.JedisPool;\n-import redis.clients.jedis.JedisPubSub;\n-\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COLON_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-\n-public class ClusterRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(ClusterRedisClient.class);\n-\n-    private static final int DEFAULT_TIMEOUT = 2000;\n-\n-    private static final int DEFAULT_SO_TIMEOUT = 2000;\n-\n-    private static final int DEFAULT_MAX_ATTEMPTS = 5;\n-\n-    private JedisCluster jedisCluster;\n-\n-    public ClusterRedisClient(URL url) {\n-        super(url);\n-        Set<HostAndPort> nodes = getNodes(url);\n-        jedisCluster = new JedisCluster(nodes, url.getParameter(\"connection.timeout\", DEFAULT_TIMEOUT),\n-                url.getParameter(\"so.timeout\", DEFAULT_SO_TIMEOUT), url.getParameter(\"max.attempts\", DEFAULT_MAX_ATTEMPTS),\n-                url.getPassword(), getConfig());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        return jedisCluster.hset(key, field, value);\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        return jedisCluster.publish(channel, message);\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Map<String, JedisPool> poolMap = jedisCluster.getClusterNodes();\n-        for (JedisPool jedisPool : poolMap.values()) {\n-            Jedis jedis = jedisPool.getResource();\n-            if (jedis.isConnected()) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        jedisCluster.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        return jedisCluster.hdel(key, fields);\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Map<String, JedisPool> nodes = jedisCluster.getClusterNodes();\n-        Set<String> result = new HashSet<>();\n-        for (JedisPool jedisPool : nodes.values()) {\n-            Jedis jedis = jedisPool.getResource();\n-            result.addAll(scan(jedis, pattern));\n-            jedis.close();\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        return jedisCluster.hgetAll(key);\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        jedisCluster.psubscribe(jedisPubSub, patterns);\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        jedisCluster.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        jedisCluster.close();\n-    }\n-\n-    private Set<HostAndPort> getNodes(URL url) {\n-        Set<HostAndPort> hostAndPorts = new HashSet<>();\n-        hostAndPorts.add(new HostAndPort(url.getHost(), url.getPort()));\n-        String backupAddresses = url.getBackupAddress(6379);\n-        String[] nodes = StringUtils.isEmpty(backupAddresses) ? new String[0] : COMMA_SPLIT_PATTERN.split(backupAddresses);\n-        if (nodes.length > 0) {\n-            for (String node : nodes) {\n-                String[] hostAndPort = COLON_SPLIT_PATTERN.split(node);\n-                hostAndPorts.add(new HostAndPort(hostAndPort[0], Integer.valueOf(hostAndPort[1])));\n-            }\n-        }\n-        return hostAndPorts;\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.redis.jedis;\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.StringUtils;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\r\n+import redis.clients.jedis.HostAndPort;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisCluster;\r\n+import redis.clients.jedis.JedisPool;\r\n+import redis.clients.jedis.JedisPubSub;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COLON_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+\r\n+public class ClusterRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ClusterRedisClient.class);\r\n+\r\n+    private static final int DEFAULT_TIMEOUT = 2000;\r\n+\r\n+    private static final int DEFAULT_SO_TIMEOUT = 2000;\r\n+\r\n+    private static final int DEFAULT_MAX_ATTEMPTS = 5;\r\n+\r\n+    private JedisCluster jedisCluster;\r\n+\r\n+    public ClusterRedisClient(URL url) {\r\n+        super(url);\r\n+        Set<HostAndPort> nodes = getNodes(url);\r\n+        jedisCluster = new JedisCluster(nodes, url.getParameter(\"connection.timeout\", DEFAULT_TIMEOUT),\r\n+                url.getParameter(\"so.timeout\", DEFAULT_SO_TIMEOUT), url.getParameter(\"max.attempts\", DEFAULT_MAX_ATTEMPTS),\r\n+                url.getPassword(), getConfig());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        return jedisCluster.hset(key, field, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        return jedisCluster.publish(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Map<String, JedisPool> poolMap = jedisCluster.getClusterNodes();\r\n+        for (JedisPool jedisPool : poolMap.values()) {\r\n+            Jedis jedis = jedisPool.getResource();\r\n+            if (jedis.isConnected()) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        return jedisCluster.hdel(key, fields);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Map<String, JedisPool> nodes = jedisCluster.getClusterNodes();\r\n+        Set<String> result = new HashSet<>();\r\n+        for (JedisPool jedisPool : nodes.values()) {\r\n+            Jedis jedis = jedisPool.getResource();\r\n+            result.addAll(scan(jedis, pattern));\r\n+            jedis.close();\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        return jedisCluster.hgetAll(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        jedisCluster.psubscribe(jedisPubSub, patterns);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    private Set<HostAndPort> getNodes(URL url) {\r\n+        Set<HostAndPort> hostAndPorts = new HashSet<>();\r\n+        hostAndPorts.add(new HostAndPort(url.getHost(), url.getPort()));\r\n+        String backupAddresses = url.getBackupAddress(6379);\r\n+        String[] nodes = StringUtils.isEmpty(backupAddresses) ? new String[0] : COMMA_SPLIT_PATTERN.split(backupAddresses);\r\n+        if (nodes.length > 0) {\r\n+            for (String node : nodes) {\r\n+                String[] hostAndPort = COLON_SPLIT_PATTERN.split(node);\r\n+                hostAndPorts.add(new HostAndPort(hostAndPort[0], Integer.valueOf(hostAndPort[1])));\r\n+            }\r\n+        }\r\n+        return hostAndPorts;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,118 +1,118 @@\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.redis.jedis;\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.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPool;\n-import redis.clients.jedis.JedisPubSub;\n-\n-import java.util.Map;\n-import java.util.Set;\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-public class MonoRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(MonoRedisClient.class);\n-\n-    private static final String START_CURSOR = \"0\";\n-\n-    private JedisPool jedisPool;\n-\n-    public MonoRedisClient(URL url) {\n-        super(url);\n-        jedisPool = new JedisPool(getConfig(), url.getHost(), url.getPort(),\n-                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), url.getPassword());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.hset(key, field, value);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.publish(channel, message);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Jedis jedis = jedisPool.getResource();\n-        boolean connected = jedis.isConnected();\n-        jedis.close();\n-        return connected;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        jedisPool.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.hdel(key, fields);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Jedis jedis = jedisPool.getResource();\n-        Set<String> result = super.scan(jedis, pattern);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        Jedis jedis = jedisPool.getResource();\n-        Map<String, String> result = jedis.hgetAll(key);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        Jedis jedis = jedisPool.getResource();\n-        jedis.psubscribe(jedisPubSub, patterns);\n-        jedis.close();\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        jedisPool.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        jedisPool.close();\n-    }\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.redis.jedis;\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.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPool;\r\n+import redis.clients.jedis.JedisPubSub;\r\n+\r\n+import java.util.Map;\r\n+import java.util.Set;\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+public class MonoRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(MonoRedisClient.class);\r\n+\r\n+    private static final String START_CURSOR = \"0\";\r\n+\r\n+    private JedisPool jedisPool;\r\n+\r\n+    public MonoRedisClient(URL url) {\r\n+        super(url);\r\n+        jedisPool = new JedisPool(getConfig(), url.getHost(), url.getPort(),\r\n+                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), url.getPassword());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.hset(key, field, value);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.publish(channel, message);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        boolean connected = jedis.isConnected();\r\n+        jedis.close();\r\n+        return connected;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.hdel(key, fields);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Set<String> result = super.scan(jedis, pattern);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Map<String, String> result = jedis.hgetAll(key);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        jedis.psubscribe(jedisPubSub, patterns);\r\n+        jedis.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,121 +1,121 @@\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.redis.jedis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.RemotingConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPubSub;\n-import redis.clients.jedis.JedisSentinelPool;\n-\n-import java.util.Arrays;\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-\n-public class SentinelRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(SentinelRedisClient.class);\n-\n-    private JedisSentinelPool sentinelPool;\n-\n-    public SentinelRedisClient(URL url) {\n-        super(url);\n-        String masterName = url.getParameter(\"master.name\", \"Sentinel-master\");\n-        String address = (new StringBuilder()).append(url.getAddress()).toString();\n-        String[] backupAddresses = url.getParameter(RemotingConstants.BACKUP_KEY, new String[0]);\n-        if (backupAddresses.length == 0) {\n-            throw new IllegalStateException(\"Sentinel addresses can not be empty\");\n-        }\n-        Set<String> sentinels = new HashSet<>(Arrays.asList(backupAddresses));\n-        sentinels.add(address);\n-        sentinelPool = new JedisSentinelPool(masterName, sentinels, getConfig(), url.getPassword());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.hset(key, field, value);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.publish(channel, message);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Jedis jedis = sentinelPool.getResource();\n-        boolean result = jedis.isConnected();\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        sentinelPool.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.hdel(key, fields);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Set<String> result = scan(jedis, pattern);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Map<String, String> result = jedis.hgetAll(key);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        Jedis jedis = sentinelPool.getResource();\n-        jedis.psubscribe(jedisPubSub, patterns);\n-        jedis.close();\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        sentinelPool.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        sentinelPool.close();\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.redis.jedis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.RemotingConstants;\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.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPubSub;\r\n+import redis.clients.jedis.JedisSentinelPool;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public class SentinelRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(SentinelRedisClient.class);\r\n+\r\n+    private JedisSentinelPool sentinelPool;\r\n+\r\n+    public SentinelRedisClient(URL url) {\r\n+        super(url);\r\n+        String masterName = url.getParameter(\"master.name\", \"Sentinel-master\");\r\n+        String address = (new StringBuilder()).append(url.getAddress()).toString();\r\n+        String[] backupAddresses = url.getParameter(RemotingConstants.BACKUP_KEY, new String[0]);\r\n+        if (backupAddresses.length == 0) {\r\n+            throw new IllegalStateException(\"Sentinel addresses can not be empty\");\r\n+        }\r\n+        Set<String> sentinels = new HashSet<>(Arrays.asList(backupAddresses));\r\n+        sentinels.add(address);\r\n+        sentinelPool = new JedisSentinelPool(masterName, sentinels, getConfig(), url.getPassword());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.hset(key, field, value);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.publish(channel, message);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        boolean result = jedis.isConnected();\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        sentinelPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.hdel(key, fields);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Set<String> result = scan(jedis, pattern);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Map<String, String> result = jedis.hgetAll(key);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        jedis.psubscribe(jedisPubSub, patterns);\r\n+        jedis.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        sentinelPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        sentinelPool.close();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,94 +1,94 @@\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.redis.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPoolConfig;\n-import redis.clients.jedis.ScanParams;\n-import redis.clients.jedis.ScanResult;\n-\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-public abstract class AbstractRedisClient implements RedisClient {\n-    private URL url;\n-\n-    private JedisPoolConfig config;\n-\n-    public AbstractRedisClient(URL url) {\n-        this.url = url;\n-        config = new JedisPoolConfig();\n-        config.setTestOnBorrow(url.getParameter(\"test.on.borrow\", true));\n-        config.setTestOnReturn(url.getParameter(\"test.on.return\", false));\n-        config.setTestWhileIdle(url.getParameter(\"test.while.idle\", false));\n-        if (url.getParameter(\"max.idle\", 0) > 0) {\n-            config.setMaxIdle(url.getParameter(\"max.idle\", 0));\n-        }\n-        if (url.getParameter(\"min.idle\", 0) > 0) {\n-            config.setMinIdle(url.getParameter(\"min.idle\", 0));\n-        }\n-        if (url.getParameter(\"max.active\", 0) > 0) {\n-            config.setMaxTotal(url.getParameter(\"max.active\", 0));\n-        }\n-        if (url.getParameter(\"max.total\", 0) > 0) {\n-            config.setMaxTotal(url.getParameter(\"max.total\", 0));\n-        }\n-        if (url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)) > 0) {\n-            config.setMaxWaitMillis(url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)));\n-        }\n-        if (url.getParameter(\"num.tests.per.eviction.run\", 0) > 0) {\n-            config.setNumTestsPerEvictionRun(url.getParameter(\"num.tests.per.eviction.run\", 0));\n-        }\n-        if (url.getParameter(\"time.between.eviction.runs.millis\", 0) > 0) {\n-            config.setTimeBetweenEvictionRunsMillis(url.getParameter(\"time.between.eviction.runs.millis\", 0));\n-        }\n-        if (url.getParameter(\"min.evictable.idle.time.millis\", 0) > 0) {\n-            config.setMinEvictableIdleTimeMillis(url.getParameter(\"min.evictable.idle.time.millis\", 0));\n-        }\n-    }\n-\n-    protected Set<String> scan(Jedis jedis, String pattern) {\n-        Set<String> result = new HashSet<>();\n-        String cursor = ScanParams.SCAN_POINTER_START;\n-        ScanParams params = new ScanParams();\n-        params.match(pattern);\n-        while (true) {\n-            ScanResult<String> scanResult = jedis.scan(cursor, params);\n-            List<String> list = scanResult.getResult();\n-            if (CollectionUtils.isNotEmpty(list)) {\n-                result.addAll(list);\n-            }\n-            if (ScanParams.SCAN_POINTER_START.equals(scanResult.getCursor())) {\n-                break;\n-            }\n-            cursor = scanResult.getCursor();\n-        }\n-        return result;\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public JedisPoolConfig getConfig() {\n-        return config;\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.redis.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPoolConfig;\r\n+import redis.clients.jedis.ScanParams;\r\n+import redis.clients.jedis.ScanResult;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+public abstract class AbstractRedisClient implements RedisClient {\r\n+    private URL url;\r\n+\r\n+    private JedisPoolConfig config;\r\n+\r\n+    public AbstractRedisClient(URL url) {\r\n+        this.url = url;\r\n+        config = new JedisPoolConfig();\r\n+        config.setTestOnBorrow(url.getParameter(\"test.on.borrow\", true));\r\n+        config.setTestOnReturn(url.getParameter(\"test.on.return\", false));\r\n+        config.setTestWhileIdle(url.getParameter(\"test.while.idle\", false));\r\n+        if (url.getParameter(\"max.idle\", 0) > 0) {\r\n+            config.setMaxIdle(url.getParameter(\"max.idle\", 0));\r\n+        }\r\n+        if (url.getParameter(\"min.idle\", 0) > 0) {\r\n+            config.setMinIdle(url.getParameter(\"min.idle\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.active\", 0) > 0) {\r\n+            config.setMaxTotal(url.getParameter(\"max.active\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.total\", 0) > 0) {\r\n+            config.setMaxTotal(url.getParameter(\"max.total\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)) > 0) {\r\n+            config.setMaxWaitMillis(url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)));\r\n+        }\r\n+        if (url.getParameter(\"num.tests.per.eviction.run\", 0) > 0) {\r\n+            config.setNumTestsPerEvictionRun(url.getParameter(\"num.tests.per.eviction.run\", 0));\r\n+        }\r\n+        if (url.getParameter(\"time.between.eviction.runs.millis\", 0) > 0) {\r\n+            config.setTimeBetweenEvictionRunsMillis(url.getParameter(\"time.between.eviction.runs.millis\", 0));\r\n+        }\r\n+        if (url.getParameter(\"min.evictable.idle.time.millis\", 0) > 0) {\r\n+            config.setMinEvictableIdleTimeMillis(url.getParameter(\"min.evictable.idle.time.millis\", 0));\r\n+        }\r\n+    }\r\n+\r\n+    protected Set<String> scan(Jedis jedis, String pattern) {\r\n+        Set<String> result = new HashSet<>();\r\n+        String cursor = ScanParams.SCAN_POINTER_START;\r\n+        ScanParams params = new ScanParams();\r\n+        params.match(pattern);\r\n+        while (true) {\r\n+            ScanResult<String> scanResult = jedis.scan(cursor, params);\r\n+            List<String> list = scanResult.getResult();\r\n+            if (CollectionUtils.isNotEmpty(list)) {\r\n+                result.addAll(list);\r\n+            }\r\n+            if (ScanParams.SCAN_POINTER_START.equals(scanResult.getCursor())) {\r\n+                break;\r\n+            }\r\n+            cursor = scanResult.getCursor();\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public JedisPoolConfig getConfig() {\r\n+        return config;\r\n+    }\r\n+}\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/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,148 +1,144 @@\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 7265 6469 733c  -remoting-redis<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 7265 6469 7320 7265 6d6f 7469  The redis remoti\n-00000590: 6e67 206d 6f64 756c 6520 6f66 2064 7562  ng module of dub\n-000005a0: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005b0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005c0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005d0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005e0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005f0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000600: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000610: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000620: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000630: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000640: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000650: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000660: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000670: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000680: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000690: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006a0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006b0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006c0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006d0: 2020 3c70 726f 6a65 6374 2e62 7569 6c64    <project.build\n-000006e0: 2e73 6f75 7263 6545 6e63 6f64 696e 673e  .sourceEncoding>\n-000006f0: 5554 462d 383c 2f70 726f 6a65 6374 2e62  UTF-8</project.b\n-00000700: 7569 6c64 2e73 6f75 7263 6545 6e63 6f64  uild.sourceEncod\n-00000710: 696e 673e 0d0a 2020 3c2f 7072 6f70 6572  ing>..  </proper\n-00000720: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-00000730: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-00000740: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000750: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000760: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000770: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000780: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-00000790: 6d6f 7469 6e67 2d61 7069 3c2f 6172 7469  moting-api</arti\n-000007a0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000007b0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-000007c0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-000007d0: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000007e0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007f0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000800: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000810: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000820: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000830: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000840: 7562 626f 2d63 6f6d 6d6f 6e3c 2f61 7274  ubbo-common</art\n-00000850: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000860: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000870: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000880: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000890: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000008a0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000008b0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000008c0: 643e 7265 6469 732e 636c 6965 6e74 733c  d>redis.clients<\n-000008d0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000008e0: 203c 6172 7469 6661 6374 4964 3e6a 6564   <artifactId>jed\n-000008f0: 6973 3c2f 6172 7469 6661 6374 4964 3e0d  is</artifactId>.\n-00000900: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000910: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-00000920: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-00000930: 3e0d 0a                                  >..\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: 7265 6469 733c 2f61 7274 6966 6163 7449  redis</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 2072 6564 6973 2072 656d  on>The redis rem\n+00000570: 6f74 696e 6720 6d6f 6475 6c65 206f 6620  oting module of \n+00000580: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000590: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005a0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005b0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005c0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005d0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005e0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005f0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000600: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000610: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000620: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000630: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000640: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000650: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000660: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000670: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000680: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+00000690: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006a0: 6570 6c6f 793e 0a20 2020 203c 7072 6f6a  eploy>.    <proj\n+000006b0: 6563 742e 6275 696c 642e 736f 7572 6365  ect.build.source\n+000006c0: 456e 636f 6469 6e67 3e55 5446 2d38 3c2f  Encoding>UTF-8</\n+000006d0: 7072 6f6a 6563 742e 6275 696c 642e 736f  project.build.so\n+000006e0: 7572 6365 456e 636f 6469 6e67 3e0a 2020  urceEncoding>.  \n+000006f0: 3c2f 7072 6f70 6572 7469 6573 3e0a 2020  </properties>.  \n+00000700: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+00000710: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000720: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000730: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000740: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000750: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000760: 6f2d 7265 6d6f 7469 6e67 2d61 7069 3c2f  o-remoting-api</\n+00000770: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000780: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000790: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+000007a0: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+000007b0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000007c0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000007d0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000007e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+000007f0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000800: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000810: 6262 6f2d 636f 6d6d 6f6e 3c2f 6172 7469  bbo-common</arti\n+00000820: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000830: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000840: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000850: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+00000860: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000870: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000880: 2020 2020 3c67 726f 7570 4964 3e72 6564      <groupId>red\n+00000890: 6973 2e63 6c69 656e 7473 3c2f 6772 6f75  is.clients</grou\n+000008a0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000008b0: 6661 6374 4964 3e6a 6564 6973 3c2f 6172  factId>jedis</ar\n+000008c0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000008d0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+000008e0: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+000008f0: 7072 6f6a 6563 743e 0a                   project>.\n"}]}
