{"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: 11856 bytes, number of entries: 20\n+Zip file size: 11868 bytes, number of entries: 20\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/metadata/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/metadata/definition/\n@@ -11,12 +11,12 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/\n -rw-r--r--  2.0 unx     4251 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      191 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx    10907 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java\n--rw-r--r--  2.0 unx       75 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder\n--rw-r--r--  2.0 unx     2074 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/pom.xml\n+-rw-r--r--  2.0 unx    11191 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java\n+-rw-r--r--  2.0 unx       76 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder\n+-rw-r--r--  2.0 unx     2023 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/pom.xml\n -rw-r--r--  2.0 unx       89 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/pom.properties\n-20 files, 29009 bytes uncompressed, 8954 bytes compressed:  69.1%\n+20 files, 29243 bytes uncompressed, 8966 bytes compressed:  69.3%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -300,732 +300,732 @@\n 177B Extract Zip Spec      14 (20) '2.0'\n 177C Extract OS            00 (0) 'MS-DOS'\n 177D General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 177F Compression Method    0008 (8) 'Deflated'\n 1781 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1785 CRC                   14DEAE2B (350137899)\n-1789 Compressed Size       00000B00 (2816)\n-178D Uncompressed Size     00002A9B (10907)\n+1785 CRC                   C54DB8A1 (3310205089)\n+1789 Compressed Size       00000B13 (2835)\n+178D Uncompressed Size     00002BB7 (11191)\n 1791 Filename Length       0046 (70)\n 1793 Extra Length          0000 (0)\n 1795 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x1795: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 17DB PAYLOAD\n \n-22DB LOCAL HEADER #18      04034B50 (67324752)\n-22DF Extract Zip Spec      14 (20) '2.0'\n-22E0 Extract OS            00 (0) 'MS-DOS'\n-22E1 General Purpose Flag  0800 (2048)\n+22EE LOCAL HEADER #18      04034B50 (67324752)\n+22F2 Extract Zip Spec      14 (20) '2.0'\n+22F3 Extract OS            00 (0) 'MS-DOS'\n+22F4 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-22E3 Compression Method    0008 (8) 'Deflated'\n-22E5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22E9 CRC                   15F24384 (368198532)\n-22ED Compressed Size       00000042 (66)\n-22F1 Uncompressed Size     0000004B (75)\n-22F5 Filename Length       0050 (80)\n-22F7 Extra Length          0000 (0)\n-22F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22F6 Compression Method    0008 (8) 'Deflated'\n+22F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22FC CRC                   9756252E (2539005230)\n+2300 Compressed Size       00000043 (67)\n+2304 Uncompressed Size     0000004C (76)\n+2308 Filename Length       0050 (80)\n+230A Extra Length          0000 (0)\n+230C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x230C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2349 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+235C PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-238B LOCAL HEADER #19      04034B50 (67324752)\n-238F Extract Zip Spec      14 (20) '2.0'\n-2390 Extract OS            00 (0) 'MS-DOS'\n-2391 General Purpose Flag  0800 (2048)\n+239F LOCAL HEADER #19      04034B50 (67324752)\n+23A3 Extract Zip Spec      14 (20) '2.0'\n+23A4 Extract OS            00 (0) 'MS-DOS'\n+23A5 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2393 Compression Method    0008 (8) 'Deflated'\n-2395 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2399 CRC                   8CC24170 (2361540976)\n-239D Compressed Size       00000348 (840)\n-23A1 Uncompressed Size     0000081A (2074)\n-23A5 Filename Length       004A (74)\n-23A7 Extra Length          0000 (0)\n-23A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23A7 Compression Method    0008 (8) 'Deflated'\n+23A9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23AD CRC                   582B6F15 (1479241493)\n+23B1 Compressed Size       00000340 (832)\n+23B5 Uncompressed Size     000007E7 (2023)\n+23B9 Filename Length       004A (74)\n+23BB Extra Length          0000 (0)\n+23BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23F3 PAYLOAD\n+2407 PAYLOAD\n \n-273B LOCAL HEADER #20      04034B50 (67324752)\n-273F Extract Zip Spec      14 (20) '2.0'\n-2740 Extract OS            00 (0) 'MS-DOS'\n-2741 General Purpose Flag  0800 (2048)\n+2747 LOCAL HEADER #20      04034B50 (67324752)\n+274B Extract Zip Spec      14 (20) '2.0'\n+274C Extract OS            00 (0) 'MS-DOS'\n+274D General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2743 Compression Method    0008 (8) 'Deflated'\n-2745 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2749 CRC                   EEB71F7D (4004978557)\n-274D Compressed Size       00000050 (80)\n-2751 Uncompressed Size     00000059 (89)\n-2755 Filename Length       0051 (81)\n-2757 Extra Length          0000 (0)\n-2759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+274F Compression Method    0008 (8) 'Deflated'\n+2751 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2755 CRC                   EEB71F7D (4004978557)\n+2759 Compressed Size       00000050 (80)\n+275D Uncompressed Size     00000059 (89)\n+2761 Filename Length       0051 (81)\n+2763 Extra Length          0000 (0)\n+2765 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2765: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-27AA PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+27B6 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-27FA CENTRAL HEADER #1     02014B50 (33639248)\n-27FE Created Zip Spec      14 (20) '2.0'\n-27FF Created OS            03 (3) 'Unix'\n-2800 Extract Zip Spec      14 (20) '2.0'\n-2801 Extract OS            00 (0) 'MS-DOS'\n-2802 General Purpose Flag  0800 (2048)\n+2806 CENTRAL HEADER #1     02014B50 (33639248)\n+280A Created Zip Spec      14 (20) '2.0'\n+280B Created OS            03 (3) 'Unix'\n+280C Extract Zip Spec      14 (20) '2.0'\n+280D Extract OS            00 (0) 'MS-DOS'\n+280E General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2804 Compression Method    0008 (8) 'Deflated'\n-2806 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-280A CRC                   A689EB18 (2794056472)\n-280E Compressed Size       00000042 (66)\n-2812 Uncompressed Size     00000040 (64)\n-2816 Filename Length       0014 (20)\n-2818 Extra Length          0000 (0)\n-281A Comment Length        0000 (0)\n-281C Disk Start            0000 (0)\n-281E Int File Attributes   0000 (0)\n+2810 Compression Method    0008 (8) 'Deflated'\n+2812 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2816 CRC                   A689EB18 (2794056472)\n+281A Compressed Size       00000042 (66)\n+281E Uncompressed Size     00000040 (64)\n+2822 Filename Length       0014 (20)\n+2824 Extra Length          0000 (0)\n+2826 Comment Length        0000 (0)\n+2828 Disk Start            0000 (0)\n+282A Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2820 Ext File Attributes   81A40000 (2175008768)\n+282C 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-2824 Local Header Offset   00000000 (0)\n-2828 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+2830 Local Header Offset   00000000 (0)\n+2834 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2828: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2834: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-283C CENTRAL HEADER #2     02014B50 (33639248)\n-2840 Created Zip Spec      14 (20) '2.0'\n-2841 Created OS            03 (3) 'Unix'\n-2842 Extract Zip Spec      0A (10) '1.0'\n-2843 Extract OS            00 (0) 'MS-DOS'\n-2844 General Purpose Flag  0800 (2048)\n+2848 CENTRAL HEADER #2     02014B50 (33639248)\n+284C Created Zip Spec      14 (20) '2.0'\n+284D Created OS            03 (3) 'Unix'\n+284E Extract Zip Spec      0A (10) '1.0'\n+284F Extract OS            00 (0) 'MS-DOS'\n+2850 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2846 Compression Method    0000 (0) 'Stored'\n-2848 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-284C CRC                   00000000 (0)\n-2850 Compressed Size       00000000 (0)\n-2854 Uncompressed Size     00000000 (0)\n-2858 Filename Length       0009 (9)\n-285A Extra Length          0000 (0)\n-285C Comment Length        0000 (0)\n-285E Disk Start            0000 (0)\n-2860 Int File Attributes   0000 (0)\n+2852 Compression Method    0000 (0) 'Stored'\n+2854 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2858 CRC                   00000000 (0)\n+285C Compressed Size       00000000 (0)\n+2860 Uncompressed Size     00000000 (0)\n+2864 Filename Length       0009 (9)\n+2866 Extra Length          0000 (0)\n+2868 Comment Length        0000 (0)\n+286A Disk Start            0000 (0)\n+286C Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2862 Ext File Attributes   41ED0010 (1106051088)\n+286E 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-2866 Local Header Offset   00000074 (116)\n-286A Filename              'XXXXXXXXX'\n+2872 Local Header Offset   00000074 (116)\n+2876 Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x286A: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x2876: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x286A: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2876: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2842: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x284E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-2873 CENTRAL HEADER #3     02014B50 (33639248)\n-2877 Created Zip Spec      14 (20) '2.0'\n-2878 Created OS            03 (3) 'Unix'\n-2879 Extract Zip Spec      0A (10) '1.0'\n-287A Extract OS            00 (0) 'MS-DOS'\n-287B General Purpose Flag  0800 (2048)\n+287F CENTRAL HEADER #3     02014B50 (33639248)\n+2883 Created Zip Spec      14 (20) '2.0'\n+2884 Created OS            03 (3) 'Unix'\n+2885 Extract Zip Spec      0A (10) '1.0'\n+2886 Extract OS            00 (0) 'MS-DOS'\n+2887 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-287D Compression Method    0000 (0) 'Stored'\n-287F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2883 CRC                   00000000 (0)\n-2887 Compressed Size       00000000 (0)\n-288B Uncompressed Size     00000000 (0)\n-288F Filename Length       0004 (4)\n-2891 Extra Length          0000 (0)\n-2893 Comment Length        0000 (0)\n-2895 Disk Start            0000 (0)\n-2897 Int File Attributes   0000 (0)\n+2889 Compression Method    0000 (0) 'Stored'\n+288B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+288F CRC                   00000000 (0)\n+2893 Compressed Size       00000000 (0)\n+2897 Uncompressed Size     00000000 (0)\n+289B Filename Length       0004 (4)\n+289D Extra Length          0000 (0)\n+289F Comment Length        0000 (0)\n+28A1 Disk Start            0000 (0)\n+28A3 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2899 Ext File Attributes   41ED0010 (1106051088)\n+28A5 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-289D Local Header Offset   0000009B (155)\n-28A1 Filename              'XXXX'\n+28A9 Local Header Offset   0000009B (155)\n+28AD Filename              'XXXX'\n #\n-# WARNING: Offset 0x28A1: Filename 'XXXX'\n+# WARNING: Offset 0x28AD: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x28A1: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x28AD: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2879: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x2885: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-28A5 CENTRAL HEADER #4     02014B50 (33639248)\n-28A9 Created Zip Spec      14 (20) '2.0'\n-28AA Created OS            03 (3) 'Unix'\n-28AB Extract Zip Spec      0A (10) '1.0'\n-28AC Extract OS            00 (0) 'MS-DOS'\n-28AD General Purpose Flag  0800 (2048)\n+28B1 CENTRAL HEADER #4     02014B50 (33639248)\n+28B5 Created Zip Spec      14 (20) '2.0'\n+28B6 Created OS            03 (3) 'Unix'\n+28B7 Extract Zip Spec      0A (10) '1.0'\n+28B8 Extract OS            00 (0) 'MS-DOS'\n+28B9 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-28AF Compression Method    0000 (0) 'Stored'\n-28B1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-28B5 CRC                   00000000 (0)\n-28B9 Compressed Size       00000000 (0)\n-28BD Uncompressed Size     00000000 (0)\n-28C1 Filename Length       000B (11)\n-28C3 Extra Length          0000 (0)\n-28C5 Comment Length        0000 (0)\n-28C7 Disk Start            0000 (0)\n-28C9 Int File Attributes   0000 (0)\n+28BB Compression Method    0000 (0) 'Stored'\n+28BD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+28C1 CRC                   00000000 (0)\n+28C5 Compressed Size       00000000 (0)\n+28C9 Uncompressed Size     00000000 (0)\n+28CD Filename Length       000B (11)\n+28CF Extra Length          0000 (0)\n+28D1 Comment Length        0000 (0)\n+28D3 Disk Start            0000 (0)\n+28D5 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-28CB Ext File Attributes   41ED0010 (1106051088)\n+28D7 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-28CF Local Header Offset   000000BD (189)\n-28D3 Filename              'XXXXXXXXXXX'\n+28DB Local Header Offset   000000BD (189)\n+28DF Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x28D3: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x28DF: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x28D3: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x28DF: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x28AB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x28B7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-28DE CENTRAL HEADER #5     02014B50 (33639248)\n-28E2 Created Zip Spec      14 (20) '2.0'\n-28E3 Created OS            03 (3) 'Unix'\n-28E4 Extract Zip Spec      0A (10) '1.0'\n-28E5 Extract OS            00 (0) 'MS-DOS'\n-28E6 General Purpose Flag  0800 (2048)\n+28EA CENTRAL HEADER #5     02014B50 (33639248)\n+28EE Created Zip Spec      14 (20) '2.0'\n+28EF Created OS            03 (3) 'Unix'\n+28F0 Extract Zip Spec      0A (10) '1.0'\n+28F1 Extract OS            00 (0) 'MS-DOS'\n+28F2 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-28E8 Compression Method    0000 (0) 'Stored'\n-28EA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-28EE CRC                   00000000 (0)\n-28F2 Compressed Size       00000000 (0)\n-28F6 Uncompressed Size     00000000 (0)\n-28FA Filename Length       0011 (17)\n-28FC Extra Length          0000 (0)\n-28FE Comment Length        0000 (0)\n-2900 Disk Start            0000 (0)\n-2902 Int File Attributes   0000 (0)\n+28F4 Compression Method    0000 (0) 'Stored'\n+28F6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+28FA CRC                   00000000 (0)\n+28FE Compressed Size       00000000 (0)\n+2902 Uncompressed Size     00000000 (0)\n+2906 Filename Length       0011 (17)\n+2908 Extra Length          0000 (0)\n+290A Comment Length        0000 (0)\n+290C Disk Start            0000 (0)\n+290E Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2904 Ext File Attributes   41ED0010 (1106051088)\n+2910 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-2908 Local Header Offset   000000E6 (230)\n-290C Filename              'XXXXXXXXXXXXXXXXX'\n+2914 Local Header Offset   000000E6 (230)\n+2918 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x290C: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2918: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x290C: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2918: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x28E4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28F0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-291D CENTRAL HEADER #6     02014B50 (33639248)\n-2921 Created Zip Spec      14 (20) '2.0'\n-2922 Created OS            03 (3) 'Unix'\n-2923 Extract Zip Spec      0A (10) '1.0'\n-2924 Extract OS            00 (0) 'MS-DOS'\n-2925 General Purpose Flag  0800 (2048)\n+2929 CENTRAL HEADER #6     02014B50 (33639248)\n+292D Created Zip Spec      14 (20) '2.0'\n+292E Created OS            03 (3) 'Unix'\n+292F Extract Zip Spec      0A (10) '1.0'\n+2930 Extract OS            00 (0) 'MS-DOS'\n+2931 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2927 Compression Method    0000 (0) 'Stored'\n-2929 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-292D CRC                   00000000 (0)\n-2931 Compressed Size       00000000 (0)\n-2935 Uncompressed Size     00000000 (0)\n-2939 Filename Length       001A (26)\n-293B Extra Length          0000 (0)\n-293D Comment Length        0000 (0)\n-293F Disk Start            0000 (0)\n-2941 Int File Attributes   0000 (0)\n+2933 Compression Method    0000 (0) 'Stored'\n+2935 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2939 CRC                   00000000 (0)\n+293D Compressed Size       00000000 (0)\n+2941 Uncompressed Size     00000000 (0)\n+2945 Filename Length       001A (26)\n+2947 Extra Length          0000 (0)\n+2949 Comment Length        0000 (0)\n+294B Disk Start            0000 (0)\n+294D Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2943 Ext File Attributes   41ED0010 (1106051088)\n+294F 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-2947 Local Header Offset   00000115 (277)\n-294B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2953 Local Header Offset   00000115 (277)\n+2957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x294B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x294B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2957: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2923: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x292F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2965 CENTRAL HEADER #7     02014B50 (33639248)\n-2969 Created Zip Spec      14 (20) '2.0'\n-296A Created OS            03 (3) 'Unix'\n-296B Extract Zip Spec      0A (10) '1.0'\n-296C Extract OS            00 (0) 'MS-DOS'\n-296D General Purpose Flag  0800 (2048)\n+2971 CENTRAL HEADER #7     02014B50 (33639248)\n+2975 Created Zip Spec      14 (20) '2.0'\n+2976 Created OS            03 (3) 'Unix'\n+2977 Extract Zip Spec      0A (10) '1.0'\n+2978 Extract OS            00 (0) 'MS-DOS'\n+2979 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-296F Compression Method    0000 (0) 'Stored'\n-2971 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2975 CRC                   00000000 (0)\n-2979 Compressed Size       00000000 (0)\n-297D Uncompressed Size     00000000 (0)\n-2981 Filename Length       0025 (37)\n-2983 Extra Length          0000 (0)\n-2985 Comment Length        0000 (0)\n-2987 Disk Start            0000 (0)\n-2989 Int File Attributes   0000 (0)\n+297B Compression Method    0000 (0) 'Stored'\n+297D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2981 CRC                   00000000 (0)\n+2985 Compressed Size       00000000 (0)\n+2989 Uncompressed Size     00000000 (0)\n+298D Filename Length       0025 (37)\n+298F Extra Length          0000 (0)\n+2991 Comment Length        0000 (0)\n+2993 Disk Start            0000 (0)\n+2995 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-298B Ext File Attributes   41ED0010 (1106051088)\n+2997 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-298F Local Header Offset   0000014D (333)\n-2993 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+299B Local Header Offset   0000014D (333)\n+299F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2993: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x299F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2993: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x299F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x296B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2977: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29B8 CENTRAL HEADER #8     02014B50 (33639248)\n-29BC Created Zip Spec      14 (20) '2.0'\n-29BD Created OS            03 (3) 'Unix'\n-29BE Extract Zip Spec      0A (10) '1.0'\n-29BF Extract OS            00 (0) 'MS-DOS'\n-29C0 General Purpose Flag  0800 (2048)\n+29C4 CENTRAL HEADER #8     02014B50 (33639248)\n+29C8 Created Zip Spec      14 (20) '2.0'\n+29C9 Created OS            03 (3) 'Unix'\n+29CA Extract Zip Spec      0A (10) '1.0'\n+29CB Extract OS            00 (0) 'MS-DOS'\n+29CC General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-29C2 Compression Method    0000 (0) 'Stored'\n-29C4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-29C8 CRC                   00000000 (0)\n-29CC Compressed Size       00000000 (0)\n-29D0 Uncompressed Size     00000000 (0)\n-29D4 Filename Length       002E (46)\n-29D6 Extra Length          0000 (0)\n-29D8 Comment Length        0000 (0)\n-29DA Disk Start            0000 (0)\n-29DC Int File Attributes   0000 (0)\n+29CE Compression Method    0000 (0) 'Stored'\n+29D0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+29D4 CRC                   00000000 (0)\n+29D8 Compressed Size       00000000 (0)\n+29DC Uncompressed Size     00000000 (0)\n+29E0 Filename Length       002E (46)\n+29E2 Extra Length          0000 (0)\n+29E4 Comment Length        0000 (0)\n+29E6 Disk Start            0000 (0)\n+29E8 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-29DE Ext File Attributes   41ED0010 (1106051088)\n+29EA 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-29E2 Local Header Offset   00000190 (400)\n-29E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29EE Local Header Offset   00000190 (400)\n+29F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29E6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29F2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29BE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29CA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2A14 CENTRAL HEADER #9     02014B50 (33639248)\n-2A18 Created Zip Spec      14 (20) '2.0'\n-2A19 Created OS            03 (3) 'Unix'\n-2A1A Extract Zip Spec      0A (10) '1.0'\n-2A1B Extract OS            00 (0) 'MS-DOS'\n-2A1C General Purpose Flag  0800 (2048)\n+2A20 CENTRAL HEADER #9     02014B50 (33639248)\n+2A24 Created Zip Spec      14 (20) '2.0'\n+2A25 Created OS            03 (3) 'Unix'\n+2A26 Extract Zip Spec      0A (10) '1.0'\n+2A27 Extract OS            00 (0) 'MS-DOS'\n+2A28 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2A1E Compression Method    0000 (0) 'Stored'\n-2A20 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2A24 CRC                   00000000 (0)\n-2A28 Compressed Size       00000000 (0)\n-2A2C Uncompressed Size     00000000 (0)\n-2A30 Filename Length       000F (15)\n-2A32 Extra Length          0000 (0)\n-2A34 Comment Length        0000 (0)\n-2A36 Disk Start            0000 (0)\n-2A38 Int File Attributes   0000 (0)\n+2A2A Compression Method    0000 (0) 'Stored'\n+2A2C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2A30 CRC                   00000000 (0)\n+2A34 Compressed Size       00000000 (0)\n+2A38 Uncompressed Size     00000000 (0)\n+2A3C Filename Length       000F (15)\n+2A3E Extra Length          0000 (0)\n+2A40 Comment Length        0000 (0)\n+2A42 Disk Start            0000 (0)\n+2A44 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2A3A Ext File Attributes   41ED0010 (1106051088)\n+2A46 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-2A3E Local Header Offset   000001DC (476)\n-2A42 Filename              'XXXXXXXXXXXXXXX'\n+2A4A Local Header Offset   000001DC (476)\n+2A4E Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A42: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A4E: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2A42: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A4E: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2A1A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A26: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2A51 CENTRAL HEADER #10    02014B50 (33639248)\n-2A55 Created Zip Spec      14 (20) '2.0'\n-2A56 Created OS            03 (3) 'Unix'\n-2A57 Extract Zip Spec      0A (10) '1.0'\n-2A58 Extract OS            00 (0) 'MS-DOS'\n-2A59 General Purpose Flag  0800 (2048)\n+2A5D CENTRAL HEADER #10    02014B50 (33639248)\n+2A61 Created Zip Spec      14 (20) '2.0'\n+2A62 Created OS            03 (3) 'Unix'\n+2A63 Extract Zip Spec      0A (10) '1.0'\n+2A64 Extract OS            00 (0) 'MS-DOS'\n+2A65 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2A5B Compression Method    0000 (0) 'Stored'\n-2A5D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2A61 CRC                   00000000 (0)\n-2A65 Compressed Size       00000000 (0)\n-2A69 Uncompressed Size     00000000 (0)\n-2A6D Filename Length       0018 (24)\n-2A6F Extra Length          0000 (0)\n-2A71 Comment Length        0000 (0)\n-2A73 Disk Start            0000 (0)\n-2A75 Int File Attributes   0000 (0)\n+2A67 Compression Method    0000 (0) 'Stored'\n+2A69 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2A6D CRC                   00000000 (0)\n+2A71 Compressed Size       00000000 (0)\n+2A75 Uncompressed Size     00000000 (0)\n+2A79 Filename Length       0018 (24)\n+2A7B Extra Length          0000 (0)\n+2A7D Comment Length        0000 (0)\n+2A7F Disk Start            0000 (0)\n+2A81 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2A77 Ext File Attributes   41ED0010 (1106051088)\n+2A83 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-2A7B Local Header Offset   00000209 (521)\n-2A7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+2A87 Local Header Offset   00000209 (521)\n+2A8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2A7F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A8B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2A57: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A63: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2A97 CENTRAL HEADER #11    02014B50 (33639248)\n-2A9B Created Zip Spec      14 (20) '2.0'\n-2A9C Created OS            03 (3) 'Unix'\n-2A9D Extract Zip Spec      0A (10) '1.0'\n-2A9E Extract OS            00 (0) 'MS-DOS'\n-2A9F General Purpose Flag  0800 (2048)\n+2AA3 CENTRAL HEADER #11    02014B50 (33639248)\n+2AA7 Created Zip Spec      14 (20) '2.0'\n+2AA8 Created OS            03 (3) 'Unix'\n+2AA9 Extract Zip Spec      0A (10) '1.0'\n+2AAA Extract OS            00 (0) 'MS-DOS'\n+2AAB General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2AA1 Compression Method    0000 (0) 'Stored'\n-2AA3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2AA7 CRC                   00000000 (0)\n-2AAB Compressed Size       00000000 (0)\n-2AAF Uncompressed Size     00000000 (0)\n-2AB3 Filename Length       000F (15)\n-2AB5 Extra Length          0000 (0)\n-2AB7 Comment Length        0000 (0)\n-2AB9 Disk Start            0000 (0)\n-2ABB Int File Attributes   0000 (0)\n+2AAD Compression Method    0000 (0) 'Stored'\n+2AAF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2AB3 CRC                   00000000 (0)\n+2AB7 Compressed Size       00000000 (0)\n+2ABB Uncompressed Size     00000000 (0)\n+2ABF Filename Length       000F (15)\n+2AC1 Extra Length          0000 (0)\n+2AC3 Comment Length        0000 (0)\n+2AC5 Disk Start            0000 (0)\n+2AC7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2ABD Ext File Attributes   41ED0010 (1106051088)\n+2AC9 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-2AC1 Local Header Offset   0000023F (575)\n-2AC5 Filename              'XXXXXXXXXXXXXXX'\n+2ACD Local Header Offset   0000023F (575)\n+2AD1 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AC5: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AD1: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2AC5: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2AD1: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2A9D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AA9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2AD4 CENTRAL HEADER #12    02014B50 (33639248)\n-2AD8 Created Zip Spec      14 (20) '2.0'\n-2AD9 Created OS            03 (3) 'Unix'\n-2ADA Extract Zip Spec      0A (10) '1.0'\n-2ADB Extract OS            00 (0) 'MS-DOS'\n-2ADC General Purpose Flag  0800 (2048)\n+2AE0 CENTRAL HEADER #12    02014B50 (33639248)\n+2AE4 Created Zip Spec      14 (20) '2.0'\n+2AE5 Created OS            03 (3) 'Unix'\n+2AE6 Extract Zip Spec      0A (10) '1.0'\n+2AE7 Extract OS            00 (0) 'MS-DOS'\n+2AE8 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2ADE Compression Method    0000 (0) 'Stored'\n-2AE0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2AE4 CRC                   00000000 (0)\n-2AE8 Compressed Size       00000000 (0)\n-2AEC Uncompressed Size     00000000 (0)\n-2AF0 Filename Length       0020 (32)\n-2AF2 Extra Length          0000 (0)\n-2AF4 Comment Length        0000 (0)\n-2AF6 Disk Start            0000 (0)\n-2AF8 Int File Attributes   0000 (0)\n+2AEA Compression Method    0000 (0) 'Stored'\n+2AEC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2AF0 CRC                   00000000 (0)\n+2AF4 Compressed Size       00000000 (0)\n+2AF8 Uncompressed Size     00000000 (0)\n+2AFC Filename Length       0020 (32)\n+2AFE Extra Length          0000 (0)\n+2B00 Comment Length        0000 (0)\n+2B02 Disk Start            0000 (0)\n+2B04 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2AFA Ext File Attributes   41ED0010 (1106051088)\n+2B06 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-2AFE Local Header Offset   0000026C (620)\n-2B02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B0A Local Header Offset   0000026C (620)\n+2B0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2B02: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2B0E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2ADA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AE6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2B22 CENTRAL HEADER #13    02014B50 (33639248)\n-2B26 Created Zip Spec      14 (20) '2.0'\n-2B27 Created OS            03 (3) 'Unix'\n-2B28 Extract Zip Spec      0A (10) '1.0'\n-2B29 Extract OS            00 (0) 'MS-DOS'\n-2B2A General Purpose Flag  0800 (2048)\n+2B2E CENTRAL HEADER #13    02014B50 (33639248)\n+2B32 Created Zip Spec      14 (20) '2.0'\n+2B33 Created OS            03 (3) 'Unix'\n+2B34 Extract Zip Spec      0A (10) '1.0'\n+2B35 Extract OS            00 (0) 'MS-DOS'\n+2B36 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2B2C Compression Method    0000 (0) 'Stored'\n-2B2E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2B32 CRC                   00000000 (0)\n-2B36 Compressed Size       00000000 (0)\n-2B3A Uncompressed Size     00000000 (0)\n-2B3E Filename Length       0043 (67)\n-2B40 Extra Length          0000 (0)\n-2B42 Comment Length        0000 (0)\n-2B44 Disk Start            0000 (0)\n-2B46 Int File Attributes   0000 (0)\n+2B38 Compression Method    0000 (0) 'Stored'\n+2B3A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2B3E CRC                   00000000 (0)\n+2B42 Compressed Size       00000000 (0)\n+2B46 Uncompressed Size     00000000 (0)\n+2B4A Filename Length       0043 (67)\n+2B4C Extra Length          0000 (0)\n+2B4E Comment Length        0000 (0)\n+2B50 Disk Start            0000 (0)\n+2B52 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2B48 Ext File Attributes   41ED0010 (1106051088)\n+2B54 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-2B4C Local Header Offset   000002AA (682)\n-2B50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B58 Local Header Offset   000002AA (682)\n+2B5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2B50: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2B5C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2B28: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B34: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2B93 CENTRAL HEADER #14    02014B50 (33639248)\n-2B97 Created Zip Spec      14 (20) '2.0'\n-2B98 Created OS            03 (3) 'Unix'\n-2B99 Extract Zip Spec      14 (20) '2.0'\n-2B9A Extract OS            00 (0) 'MS-DOS'\n-2B9B General Purpose Flag  0800 (2048)\n+2B9F CENTRAL HEADER #14    02014B50 (33639248)\n+2BA3 Created Zip Spec      14 (20) '2.0'\n+2BA4 Created OS            03 (3) 'Unix'\n+2BA5 Extract Zip Spec      14 (20) '2.0'\n+2BA6 Extract OS            00 (0) 'MS-DOS'\n+2BA7 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2B9D Compression Method    0008 (8) 'Deflated'\n-2B9F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2BA3 CRC                   3645555F (910513503)\n-2BA7 Compressed Size       000003E8 (1000)\n-2BAB Uncompressed Size     0000109B (4251)\n-2BAF Filename Length       0015 (21)\n-2BB1 Extra Length          0000 (0)\n-2BB3 Comment Length        0000 (0)\n-2BB5 Disk Start            0000 (0)\n-2BB7 Int File Attributes   0000 (0)\n+2BA9 Compression Method    0008 (8) 'Deflated'\n+2BAB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2BAF CRC                   3645555F (910513503)\n+2BB3 Compressed Size       000003E8 (1000)\n+2BB7 Uncompressed Size     0000109B (4251)\n+2BBB Filename Length       0015 (21)\n+2BBD Extra Length          0000 (0)\n+2BBF Comment Length        0000 (0)\n+2BC1 Disk Start            0000 (0)\n+2BC3 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2BB9 Ext File Attributes   81A40000 (2175008768)\n+2BC5 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-2BBD Local Header Offset   0000030B (779)\n-2BC1 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+2BC9 Local Header Offset   0000030B (779)\n+2BCD Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BC1: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BCD: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BD6 CENTRAL HEADER #15    02014B50 (33639248)\n-2BDA Created Zip Spec      14 (20) '2.0'\n-2BDB Created OS            03 (3) 'Unix'\n-2BDC Extract Zip Spec      14 (20) '2.0'\n-2BDD Extract OS            00 (0) 'MS-DOS'\n-2BDE General Purpose Flag  0800 (2048)\n+2BE2 CENTRAL HEADER #15    02014B50 (33639248)\n+2BE6 Created Zip Spec      14 (20) '2.0'\n+2BE7 Created OS            03 (3) 'Unix'\n+2BE8 Extract Zip Spec      14 (20) '2.0'\n+2BE9 Extract OS            00 (0) 'MS-DOS'\n+2BEA General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2BE0 Compression Method    0008 (8) 'Deflated'\n-2BE2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2BE6 CRC                   86E2B4B4 (2263004340)\n-2BEA Compressed Size       00000F6D (3949)\n-2BEE Uncompressed Size     00002C5E (11358)\n-2BF2 Filename Length       0010 (16)\n-2BF4 Extra Length          0000 (0)\n-2BF6 Comment Length        0000 (0)\n-2BF8 Disk Start            0000 (0)\n-2BFA Int File Attributes   0000 (0)\n+2BEC Compression Method    0008 (8) 'Deflated'\n+2BEE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2BF2 CRC                   86E2B4B4 (2263004340)\n+2BF6 Compressed Size       00000F6D (3949)\n+2BFA Uncompressed Size     00002C5E (11358)\n+2BFE Filename Length       0010 (16)\n+2C00 Extra Length          0000 (0)\n+2C02 Comment Length        0000 (0)\n+2C04 Disk Start            0000 (0)\n+2C06 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2BFC Ext File Attributes   81A40000 (2175008768)\n+2C08 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-2C00 Local Header Offset   00000726 (1830)\n-2C04 Filename              'XXXXXXXXXXXXXXXX'\n+2C0C Local Header Offset   00000726 (1830)\n+2C10 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C04: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C10: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C14 CENTRAL HEADER #16    02014B50 (33639248)\n-2C18 Created Zip Spec      14 (20) '2.0'\n-2C19 Created OS            03 (3) 'Unix'\n-2C1A Extract Zip Spec      14 (20) '2.0'\n-2C1B Extract OS            00 (0) 'MS-DOS'\n-2C1C General Purpose Flag  0800 (2048)\n+2C20 CENTRAL HEADER #16    02014B50 (33639248)\n+2C24 Created Zip Spec      14 (20) '2.0'\n+2C25 Created OS            03 (3) 'Unix'\n+2C26 Extract Zip Spec      14 (20) '2.0'\n+2C27 Extract OS            00 (0) 'MS-DOS'\n+2C28 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2C1E Compression Method    0008 (8) 'Deflated'\n-2C20 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2C24 CRC                   8E792F64 (2390306660)\n-2C28 Compressed Size       00000089 (137)\n-2C2C Uncompressed Size     000000BF (191)\n-2C30 Filename Length       000F (15)\n-2C32 Extra Length          0000 (0)\n-2C34 Comment Length        0000 (0)\n-2C36 Disk Start            0000 (0)\n-2C38 Int File Attributes   0000 (0)\n+2C2A Compression Method    0008 (8) 'Deflated'\n+2C2C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2C30 CRC                   8E792F64 (2390306660)\n+2C34 Compressed Size       00000089 (137)\n+2C38 Uncompressed Size     000000BF (191)\n+2C3C Filename Length       000F (15)\n+2C3E Extra Length          0000 (0)\n+2C40 Comment Length        0000 (0)\n+2C42 Disk Start            0000 (0)\n+2C44 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2C3A Ext File Attributes   81A40000 (2175008768)\n+2C46 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-2C3E Local Header Offset   000016C1 (5825)\n-2C42 Filename              'XXXXXXXXXXXXXXX'\n+2C4A Local Header Offset   000016C1 (5825)\n+2C4E Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C42: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C4E: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C51 CENTRAL HEADER #17    02014B50 (33639248)\n-2C55 Created Zip Spec      14 (20) '2.0'\n-2C56 Created OS            03 (3) 'Unix'\n-2C57 Extract Zip Spec      14 (20) '2.0'\n-2C58 Extract OS            00 (0) 'MS-DOS'\n-2C59 General Purpose Flag  0800 (2048)\n+2C5D CENTRAL HEADER #17    02014B50 (33639248)\n+2C61 Created Zip Spec      14 (20) '2.0'\n+2C62 Created OS            03 (3) 'Unix'\n+2C63 Extract Zip Spec      14 (20) '2.0'\n+2C64 Extract OS            00 (0) 'MS-DOS'\n+2C65 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2C5B Compression Method    0008 (8) 'Deflated'\n-2C5D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2C61 CRC                   14DEAE2B (350137899)\n-2C65 Compressed Size       00000B00 (2816)\n-2C69 Uncompressed Size     00002A9B (10907)\n-2C6D Filename Length       0046 (70)\n-2C6F Extra Length          0000 (0)\n-2C71 Comment Length        0000 (0)\n-2C73 Disk Start            0000 (0)\n-2C75 Int File Attributes   0000 (0)\n+2C67 Compression Method    0008 (8) 'Deflated'\n+2C69 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2C6D CRC                   C54DB8A1 (3310205089)\n+2C71 Compressed Size       00000B13 (2835)\n+2C75 Uncompressed Size     00002BB7 (11191)\n+2C79 Filename Length       0046 (70)\n+2C7B Extra Length          0000 (0)\n+2C7D Comment Length        0000 (0)\n+2C7F Disk Start            0000 (0)\n+2C81 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2C77 Ext File Attributes   81A40000 (2175008768)\n+2C83 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-2C7B Local Header Offset   00001777 (6007)\n-2C7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C87 Local Header Offset   00001777 (6007)\n+2C8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CC5 CENTRAL HEADER #18    02014B50 (33639248)\n-2CC9 Created Zip Spec      14 (20) '2.0'\n-2CCA Created OS            03 (3) 'Unix'\n-2CCB Extract Zip Spec      14 (20) '2.0'\n-2CCC Extract OS            00 (0) 'MS-DOS'\n-2CCD General Purpose Flag  0800 (2048)\n+2CD1 CENTRAL HEADER #18    02014B50 (33639248)\n+2CD5 Created Zip Spec      14 (20) '2.0'\n+2CD6 Created OS            03 (3) 'Unix'\n+2CD7 Extract Zip Spec      14 (20) '2.0'\n+2CD8 Extract OS            00 (0) 'MS-DOS'\n+2CD9 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2CCF Compression Method    0008 (8) 'Deflated'\n-2CD1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2CD5 CRC                   15F24384 (368198532)\n-2CD9 Compressed Size       00000042 (66)\n-2CDD Uncompressed Size     0000004B (75)\n-2CE1 Filename Length       0050 (80)\n-2CE3 Extra Length          0000 (0)\n-2CE5 Comment Length        0000 (0)\n-2CE7 Disk Start            0000 (0)\n-2CE9 Int File Attributes   0000 (0)\n+2CDB Compression Method    0008 (8) 'Deflated'\n+2CDD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2CE1 CRC                   9756252E (2539005230)\n+2CE5 Compressed Size       00000043 (67)\n+2CE9 Uncompressed Size     0000004C (76)\n+2CED Filename Length       0050 (80)\n+2CEF Extra Length          0000 (0)\n+2CF1 Comment Length        0000 (0)\n+2CF3 Disk Start            0000 (0)\n+2CF5 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2CEB Ext File Attributes   81A40000 (2175008768)\n+2CF7 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-2CEF Local Header Offset   000022DB (8923)\n-2CF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CFB Local Header Offset   000022EE (8942)\n+2CFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D43 CENTRAL HEADER #19    02014B50 (33639248)\n-2D47 Created Zip Spec      14 (20) '2.0'\n-2D48 Created OS            03 (3) 'Unix'\n-2D49 Extract Zip Spec      14 (20) '2.0'\n-2D4A Extract OS            00 (0) 'MS-DOS'\n-2D4B General Purpose Flag  0800 (2048)\n+2D4F CENTRAL HEADER #19    02014B50 (33639248)\n+2D53 Created Zip Spec      14 (20) '2.0'\n+2D54 Created OS            03 (3) 'Unix'\n+2D55 Extract Zip Spec      14 (20) '2.0'\n+2D56 Extract OS            00 (0) 'MS-DOS'\n+2D57 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2D4D Compression Method    0008 (8) 'Deflated'\n-2D4F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D53 CRC                   8CC24170 (2361540976)\n-2D57 Compressed Size       00000348 (840)\n-2D5B Uncompressed Size     0000081A (2074)\n-2D5F Filename Length       004A (74)\n-2D61 Extra Length          0000 (0)\n-2D63 Comment Length        0000 (0)\n-2D65 Disk Start            0000 (0)\n-2D67 Int File Attributes   0000 (0)\n+2D59 Compression Method    0008 (8) 'Deflated'\n+2D5B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D5F CRC                   582B6F15 (1479241493)\n+2D63 Compressed Size       00000340 (832)\n+2D67 Uncompressed Size     000007E7 (2023)\n+2D6B Filename Length       004A (74)\n+2D6D Extra Length          0000 (0)\n+2D6F Comment Length        0000 (0)\n+2D71 Disk Start            0000 (0)\n+2D73 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D69 Ext File Attributes   81A40000 (2175008768)\n+2D75 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-2D6D Local Header Offset   0000238B (9099)\n-2D71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D79 Local Header Offset   0000239F (9119)\n+2D7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2DBB CENTRAL HEADER #20    02014B50 (33639248)\n-2DBF Created Zip Spec      14 (20) '2.0'\n-2DC0 Created OS            03 (3) 'Unix'\n-2DC1 Extract Zip Spec      14 (20) '2.0'\n-2DC2 Extract OS            00 (0) 'MS-DOS'\n-2DC3 General Purpose Flag  0800 (2048)\n+2DC7 CENTRAL HEADER #20    02014B50 (33639248)\n+2DCB Created Zip Spec      14 (20) '2.0'\n+2DCC Created OS            03 (3) 'Unix'\n+2DCD Extract Zip Spec      14 (20) '2.0'\n+2DCE Extract OS            00 (0) 'MS-DOS'\n+2DCF General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2DC5 Compression Method    0008 (8) 'Deflated'\n-2DC7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2DCB CRC                   EEB71F7D (4004978557)\n-2DCF Compressed Size       00000050 (80)\n-2DD3 Uncompressed Size     00000059 (89)\n-2DD7 Filename Length       0051 (81)\n-2DD9 Extra Length          0000 (0)\n-2DDB Comment Length        0000 (0)\n-2DDD Disk Start            0000 (0)\n-2DDF Int File Attributes   0000 (0)\n+2DD1 Compression Method    0008 (8) 'Deflated'\n+2DD3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2DD7 CRC                   EEB71F7D (4004978557)\n+2DDB Compressed Size       00000050 (80)\n+2DDF Uncompressed Size     00000059 (89)\n+2DE3 Filename Length       0051 (81)\n+2DE5 Extra Length          0000 (0)\n+2DE7 Comment Length        0000 (0)\n+2DE9 Disk Start            0000 (0)\n+2DEB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2DE1 Ext File Attributes   81A40000 (2175008768)\n+2DED 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-2DE5 Local Header Offset   0000273B (10043)\n-2DE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2DF1 Local Header Offset   00002747 (10055)\n+2DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2DE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2E3A END CENTRAL HEADER    06054B50 (101010256)\n-2E3E Number of this disk   0000 (0)\n-2E40 Central Dir Disk no   0000 (0)\n-2E42 Entries in this disk  0014 (20)\n-2E44 Total Entries         0014 (20)\n-2E46 Size of Central Dir   00000640 (1600)\n-2E4A Offset to Central Dir 000027FA (10234)\n-2E4E Comment Length        0000 (0)\n+2E46 END CENTRAL HEADER    06054B50 (101010256)\n+2E4A Number of this disk   0000 (0)\n+2E4C Central Dir Disk no   0000 (0)\n+2E4E Entries in this disk  0014 (20)\n+2E50 Total Entries         0014 (20)\n+2E52 Size of Central Dir   00000640 (1600)\n+2E56 Offset to Central Dir 00002806 (10246)\n+2E5A Comment Length        0000 (0)\n #\n # Error Count: 12\n # Warning Count: 52\n #\n # Done\n"}, {"source1": "org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,284 +1,284 @@\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.metadata.definition.protobuf;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.builder.TypeBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import com.google.protobuf.ByteString;\n-import com.google.protobuf.Descriptors;\n-import com.google.protobuf.GeneratedMessageV3;\n-import com.google.protobuf.ProtocolStringList;\n-import com.google.protobuf.UnknownFieldSet;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.regex.Matcher;\n-import java.util.regex.Pattern;\n-\n-public class ProtobufTypeBuilder implements TypeBuilder {\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-    private static final Pattern MAP_PATTERN = Pattern.compile(\"^java\\\\.util\\\\.Map<(\\\\S+), (\\\\S+)>$\");\n-    private static final Pattern LIST_PATTERN = Pattern.compile(\"^java\\\\.util\\\\.List<(\\\\S+)>$\");\n-    private static final List<String> LIST = null;\n-    /**\n-     * provide a List<String> type for TypeDefinitionBuilder.build(type,class,cache)\n-     * \"repeated string\" transform to ProtocolStringList, should be build as List<String> type.\n-     */\n-    private static Type STRING_LIST_TYPE;\n-\n-    static {\n-        try {\n-            STRING_LIST_TYPE = ProtobufTypeBuilder.class.getDeclaredField(\"LIST\").getGenericType();\n-        } catch (NoSuchFieldException e) {\n-            // do nothing\n-        }\n-    }\n-\n-    @Override\n-    public boolean accept(Type type, Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-\n-        return GeneratedMessageV3.class.isAssignableFrom(clazz);\n-    }\n-\n-    @Override\n-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());\n-        try {\n-            GeneratedMessageV3.Builder builder = getMessageBuilder(clazz);\n-            typeDefinition = buildProtobufTypeDefinition(clazz, builder, typeCache);\n-        } catch (Exception e) {\n-            logger.info(\"TypeDefinition build failed.\", e);\n-        }\n-\n-        return typeDefinition;\n-    }\n-\n-    private GeneratedMessageV3.Builder getMessageBuilder(Class<?> requestType) throws Exception {\n-        Method method = requestType.getMethod(\"newBuilder\");\n-        return (GeneratedMessageV3.Builder) method.invoke(null, null);\n-    }\n-\n-    private TypeDefinition buildProtobufTypeDefinition(Class<?> clazz, GeneratedMessageV3.Builder builder, Map<Class<?>, TypeDefinition> typeCache) {\n-        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());\n-        if (builder == null) {\n-            return typeDefinition;\n-        }\n-\n-        Map<String, TypeDefinition> properties = new HashMap<>();\n-        Method[] methods = builder.getClass().getDeclaredMethods();\n-        for (Method method : methods) {\n-            String methodName = method.getName();\n-\n-            if (isSimplePropertySettingMethod(method)) {\n-                // property of custom type or primitive type\n-                properties.put(generateSimpleFiledName(methodName), TypeDefinitionBuilder.build(method.getGenericParameterTypes()[0], method.getParameterTypes()[0], typeCache));\n-            } else if (isMapPropertySettingMethod(method)) {\n-                // property of map\n-                Type type = method.getGenericParameterTypes()[0];\n-                String fieldName = generateMapFieldName(methodName);\n-                validateMapType(fieldName, type.toString());\n-                properties.put(fieldName, TypeDefinitionBuilder.build(type, method.getParameterTypes()[0], typeCache));\n-            } else if (isListPropertyGettingMethod(method)) {\n-                // property of list\n-                Type type = method.getGenericReturnType();\n-                String fieldName = generateListFieldName(methodName);\n-                TypeDefinition td;\n-                if (ProtocolStringList.class.isAssignableFrom(method.getReturnType())) {\n-                    // property defined as \"repeated string\" transform to ProtocolStringList,\n-                    // should be build as List<String>.\n-                    td = TypeDefinitionBuilder.build(STRING_LIST_TYPE, List.class, typeCache);\n-                } else {\n-                    // property without generic type should not be build ex method return List\n-                    if (!LIST_PATTERN.matcher(type.toString()).matches()) {\n-                        continue;\n-                    }\n-                    td = TypeDefinitionBuilder.build(type, method.getReturnType(), typeCache);\n-                }\n-                properties.put(fieldName, td);\n-            }\n-        }\n-        typeDefinition.setProperties(properties);\n-        typeCache.put(clazz, typeDefinition);\n-        return typeDefinition;\n-    }\n-\n-    /**\n-     * 1. Unsupported Map with key type is not String <br/>\n-     * Bytes is a primitive type in Proto, transform to ByteString.class in java<br/>\n-     *\n-     * @param fieldName\n-     * @param typeName\n-     * @return\n-     */\n-    private void validateMapType(String fieldName, String typeName) {\n-        Matcher matcher = MAP_PATTERN.matcher(typeName);\n-        if (!matcher.matches()) {\n-            throw new IllegalArgumentException(\"Map protobuf property \" + fieldName + \"of Type \" +\n-                    typeName + \" can't be parsed.The type name should match[\" + MAP_PATTERN.toString() + \"].\");\n-        }\n-    }\n-\n-    /**\n-     * get unCollection unMap property name from setting method.<br/>\n-     * ex:setXXX();<br/>\n-     *\n-     * @param methodName\n-     * @return\n-     */\n-    private String generateSimpleFiledName(String methodName) {\n-        return toCamelCase(methodName.substring(3));\n-    }\n-\n-    /**\n-     * get map property name from setting method.<br/>\n-     * ex: putAllXXX();<br/>\n-     *\n-     * @param methodName\n-     * @return\n-     */\n-    private String generateMapFieldName(String methodName) {\n-        return toCamelCase(methodName.substring(6));\n-    }\n-\n-    /**\n-     * get list property name from setting method.<br/>\n-     * ex\uff1a getXXXList()<br/>\n-     *\n-     * @param methodName\n-     * @return\n-     */\n-    private String generateListFieldName(String methodName) {\n-        return toCamelCase(methodName.substring(3, methodName.length() - 4));\n-    }\n-\n-\n-    private String toCamelCase(String nameString) {\n-        char[] chars = nameString.toCharArray();\n-        chars[0] = Character.toLowerCase(chars[0]);\n-        return new String(chars);\n-    }\n-\n-    /**\n-     * judge custom type or primitive type property<br/>\n-     * 1. proto3 grammar ex: string name = 1 <br/>\n-     * 2. proto3 grammar ex: optional string name =1 <br/>\n-     * generated setting method ex: setNameValue(String name);\n-     *\n-     * @param method\n-     * @return\n-     */\n-    private boolean isSimplePropertySettingMethod(Method method) {\n-        String methodName = method.getName();\n-        Class<?>[] types = method.getParameterTypes();\n-\n-        if (!methodName.startsWith(\"set\") || types.length != 1) {\n-            return false;\n-        }\n-\n-        // filter general setting method\n-        // 1. - setUnknownFields( com.google.protobuf.UnknownFieldSet unknownFields)\n-        // 2. - setField(com.google.protobuf.Descriptors.FieldDescriptor field,java.lang.Object value)\n-        // 3. - setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,int index,java.lang.Object value\uff09\n-        if (\"setField\".equals(methodName) && types[0].equals(Descriptors.FieldDescriptor.class)\n-                || \"setUnknownFields\".equals(methodName) && types[0].equals(UnknownFieldSet.class)\n-                || \"setRepeatedField\".equals(methodName) && types[0].equals(Descriptors.FieldDescriptor.class)) {\n-            return false;\n-        }\n-\n-        // String property has two setting method.\n-        // skip setXXXBytes(com.google.protobuf.ByteString value)\n-        // parse setXXX(String string)\n-        if (methodName.endsWith(\"Bytes\") && types[0].equals(ByteString.class)) {\n-            return false;\n-        }\n-\n-        // Protobuf property has two setting method.\n-        // skip setXXX(com.google.protobuf.Builder value)\n-        // parse setXXX(com.google.protobuf.Message value)\n-        if (GeneratedMessageV3.Builder.class.isAssignableFrom(types[0])) {\n-            return false;\n-        }\n-\n-        // Enum property has two setting method.\n-        // skip setXXXValue(int value)\n-        // parse setXXX(SomeEnum value)\n-        if (methodName.endsWith(\"Value\") && types[0] == int.class) {\n-            return false;\n-        }\n-\n-        return true;\n-    }\n-\n-\n-    /**\n-     * judge List property</br>\n-     * proto3 grammar ex: repeated string names; </br>\n-     * generated getting method\uff1aList<String> getNamesList()\n-     *\n-     * @param method\n-     * @return\n-     */\n-    boolean isListPropertyGettingMethod(Method method) {\n-        String methodName = method.getName();\n-        Class<?> type = method.getReturnType();\n-\n-\n-        if (!methodName.startsWith(\"get\") || !methodName.endsWith(\"List\")) {\n-            return false;\n-        }\n-\n-        // skip the setting method with Pb entity builder as parameter\n-        if (methodName.endsWith(\"BuilderList\")) {\n-            return false;\n-        }\n-\n-        // if field name end with List, should skip\n-        if (!List.class.isAssignableFrom(type)) {\n-            return false;\n-        }\n-\n-        return true;\n-    }\n-\n-    /**\n-     * judge map property</br>\n-     * proto3 grammar : map<string,string> card = 1; </br>\n-     * generated setting method: putAllCards(java.util.Map<String, string> values) </br>\n-     *\n-     * @param methodTemp\n-     * @return\n-     */\n-    private boolean isMapPropertySettingMethod(Method methodTemp) {\n-        String methodName = methodTemp.getName();\n-        Class[] parameters = methodTemp.getParameterTypes();\n-        if (methodName.startsWith(\"putAll\") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0])) {\n-            return true;\n-        }\n-\n-        return false;\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.metadata.definition.protobuf;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.builder.TypeBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import com.google.protobuf.ByteString;\r\n+import com.google.protobuf.Descriptors;\r\n+import com.google.protobuf.GeneratedMessageV3;\r\n+import com.google.protobuf.ProtocolStringList;\r\n+import com.google.protobuf.UnknownFieldSet;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.regex.Matcher;\r\n+import java.util.regex.Pattern;\r\n+\r\n+public class ProtobufTypeBuilder implements TypeBuilder {\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+    private static final Pattern MAP_PATTERN = Pattern.compile(\"^java\\\\.util\\\\.Map<(\\\\S+), (\\\\S+)>$\");\r\n+    private static final Pattern LIST_PATTERN = Pattern.compile(\"^java\\\\.util\\\\.List<(\\\\S+)>$\");\r\n+    private static final List<String> LIST = null;\r\n+    /**\r\n+     * provide a List<String> type for TypeDefinitionBuilder.build(type,class,cache)\r\n+     * \"repeated string\" transform to ProtocolStringList, should be build as List<String> type.\r\n+     */\r\n+    private static Type STRING_LIST_TYPE;\r\n+\r\n+    static {\r\n+        try {\r\n+            STRING_LIST_TYPE = ProtobufTypeBuilder.class.getDeclaredField(\"LIST\").getGenericType();\r\n+        } catch (NoSuchFieldException e) {\r\n+            // do nothing\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean accept(Type type, Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return GeneratedMessageV3.class.isAssignableFrom(clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());\r\n+        try {\r\n+            GeneratedMessageV3.Builder builder = getMessageBuilder(clazz);\r\n+            typeDefinition = buildProtobufTypeDefinition(clazz, builder, typeCache);\r\n+        } catch (Exception e) {\r\n+            logger.info(\"TypeDefinition build failed.\", e);\r\n+        }\r\n+\r\n+        return typeDefinition;\r\n+    }\r\n+\r\n+    private GeneratedMessageV3.Builder getMessageBuilder(Class<?> requestType) throws Exception {\r\n+        Method method = requestType.getMethod(\"newBuilder\");\r\n+        return (GeneratedMessageV3.Builder) method.invoke(null, null);\r\n+    }\r\n+\r\n+    private TypeDefinition buildProtobufTypeDefinition(Class<?> clazz, GeneratedMessageV3.Builder builder, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());\r\n+        if (builder == null) {\r\n+            return typeDefinition;\r\n+        }\r\n+\r\n+        Map<String, TypeDefinition> properties = new HashMap<>();\r\n+        Method[] methods = builder.getClass().getDeclaredMethods();\r\n+        for (Method method : methods) {\r\n+            String methodName = method.getName();\r\n+\r\n+            if (isSimplePropertySettingMethod(method)) {\r\n+                // property of custom type or primitive type\r\n+                properties.put(generateSimpleFiledName(methodName), TypeDefinitionBuilder.build(method.getGenericParameterTypes()[0], method.getParameterTypes()[0], typeCache));\r\n+            } else if (isMapPropertySettingMethod(method)) {\r\n+                // property of map\r\n+                Type type = method.getGenericParameterTypes()[0];\r\n+                String fieldName = generateMapFieldName(methodName);\r\n+                validateMapType(fieldName, type.toString());\r\n+                properties.put(fieldName, TypeDefinitionBuilder.build(type, method.getParameterTypes()[0], typeCache));\r\n+            } else if (isListPropertyGettingMethod(method)) {\r\n+                // property of list\r\n+                Type type = method.getGenericReturnType();\r\n+                String fieldName = generateListFieldName(methodName);\r\n+                TypeDefinition td;\r\n+                if (ProtocolStringList.class.isAssignableFrom(method.getReturnType())) {\r\n+                    // property defined as \"repeated string\" transform to ProtocolStringList,\r\n+                    // should be build as List<String>.\r\n+                    td = TypeDefinitionBuilder.build(STRING_LIST_TYPE, List.class, typeCache);\r\n+                } else {\r\n+                    // property without generic type should not be build ex method return List\r\n+                    if (!LIST_PATTERN.matcher(type.toString()).matches()) {\r\n+                        continue;\r\n+                    }\r\n+                    td = TypeDefinitionBuilder.build(type, method.getReturnType(), typeCache);\r\n+                }\r\n+                properties.put(fieldName, td);\r\n+            }\r\n+        }\r\n+        typeDefinition.setProperties(properties);\r\n+        typeCache.put(clazz, typeDefinition);\r\n+        return typeDefinition;\r\n+    }\r\n+\r\n+    /**\r\n+     * 1. Unsupported Map with key type is not String <br/>\r\n+     * Bytes is a primitive type in Proto, transform to ByteString.class in java<br/>\r\n+     *\r\n+     * @param fieldName\r\n+     * @param typeName\r\n+     * @return\r\n+     */\r\n+    private void validateMapType(String fieldName, String typeName) {\r\n+        Matcher matcher = MAP_PATTERN.matcher(typeName);\r\n+        if (!matcher.matches()) {\r\n+            throw new IllegalArgumentException(\"Map protobuf property \" + fieldName + \"of Type \" +\r\n+                    typeName + \" can't be parsed.The type name should match[\" + MAP_PATTERN.toString() + \"].\");\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get unCollection unMap property name from setting method.<br/>\r\n+     * ex:setXXX();<br/>\r\n+     *\r\n+     * @param methodName\r\n+     * @return\r\n+     */\r\n+    private String generateSimpleFiledName(String methodName) {\r\n+        return toCamelCase(methodName.substring(3));\r\n+    }\r\n+\r\n+    /**\r\n+     * get map property name from setting method.<br/>\r\n+     * ex: putAllXXX();<br/>\r\n+     *\r\n+     * @param methodName\r\n+     * @return\r\n+     */\r\n+    private String generateMapFieldName(String methodName) {\r\n+        return toCamelCase(methodName.substring(6));\r\n+    }\r\n+\r\n+    /**\r\n+     * get list property name from setting method.<br/>\r\n+     * ex\uff1a getXXXList()<br/>\r\n+     *\r\n+     * @param methodName\r\n+     * @return\r\n+     */\r\n+    private String generateListFieldName(String methodName) {\r\n+        return toCamelCase(methodName.substring(3, methodName.length() - 4));\r\n+    }\r\n+\r\n+\r\n+    private String toCamelCase(String nameString) {\r\n+        char[] chars = nameString.toCharArray();\r\n+        chars[0] = Character.toLowerCase(chars[0]);\r\n+        return new String(chars);\r\n+    }\r\n+\r\n+    /**\r\n+     * judge custom type or primitive type property<br/>\r\n+     * 1. proto3 grammar ex: string name = 1 <br/>\r\n+     * 2. proto3 grammar ex: optional string name =1 <br/>\r\n+     * generated setting method ex: setNameValue(String name);\r\n+     *\r\n+     * @param method\r\n+     * @return\r\n+     */\r\n+    private boolean isSimplePropertySettingMethod(Method method) {\r\n+        String methodName = method.getName();\r\n+        Class<?>[] types = method.getParameterTypes();\r\n+\r\n+        if (!methodName.startsWith(\"set\") || types.length != 1) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // filter general setting method\r\n+        // 1. - setUnknownFields( com.google.protobuf.UnknownFieldSet unknownFields)\r\n+        // 2. - setField(com.google.protobuf.Descriptors.FieldDescriptor field,java.lang.Object value)\r\n+        // 3. - setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,int index,java.lang.Object value\uff09\r\n+        if (\"setField\".equals(methodName) && types[0].equals(Descriptors.FieldDescriptor.class)\r\n+                || \"setUnknownFields\".equals(methodName) && types[0].equals(UnknownFieldSet.class)\r\n+                || \"setRepeatedField\".equals(methodName) && types[0].equals(Descriptors.FieldDescriptor.class)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // String property has two setting method.\r\n+        // skip setXXXBytes(com.google.protobuf.ByteString value)\r\n+        // parse setXXX(String string)\r\n+        if (methodName.endsWith(\"Bytes\") && types[0].equals(ByteString.class)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Protobuf property has two setting method.\r\n+        // skip setXXX(com.google.protobuf.Builder value)\r\n+        // parse setXXX(com.google.protobuf.Message value)\r\n+        if (GeneratedMessageV3.Builder.class.isAssignableFrom(types[0])) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Enum property has two setting method.\r\n+        // skip setXXXValue(int value)\r\n+        // parse setXXX(SomeEnum value)\r\n+        if (methodName.endsWith(\"Value\") && types[0] == int.class) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * judge List property</br>\r\n+     * proto3 grammar ex: repeated string names; </br>\r\n+     * generated getting method\uff1aList<String> getNamesList()\r\n+     *\r\n+     * @param method\r\n+     * @return\r\n+     */\r\n+    boolean isListPropertyGettingMethod(Method method) {\r\n+        String methodName = method.getName();\r\n+        Class<?> type = method.getReturnType();\r\n+\r\n+\r\n+        if (!methodName.startsWith(\"get\") || !methodName.endsWith(\"List\")) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // skip the setting method with Pb entity builder as parameter\r\n+        if (methodName.endsWith(\"BuilderList\")) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // if field name end with List, should skip\r\n+        if (!List.class.isAssignableFrom(type)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * judge map property</br>\r\n+     * proto3 grammar : map<string,string> card = 1; </br>\r\n+     * generated setting method: putAllCards(java.util.Map<String, string> values) </br>\r\n+     *\r\n+     * @param methodTemp\r\n+     * @return\r\n+     */\r\n+    private boolean isMapPropertySettingMethod(Method methodTemp) {\r\n+        String methodName = methodTemp.getName();\r\n+        Class[] parameters = methodTemp.getParameterTypes();\r\n+        if (methodName.startsWith(\"putAll\") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0])) {\r\n+            return true;\r\n+        }\r\n+\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder", "comments": ["Ordering differences only"], "unified_diff": "@@ -1 +1 @@\n-protobuf=org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder\n+protobuf=org.apache.dubbo.metadata.definition.protobuf.ProtobufTypeBuilder\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-definition-protobuf/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,130 +1,127 @@\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 2d6d 6574 6164 6174 613c 2f61 7274  bo-metadata</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: 2d6d 6574 6164 6174 612d 6465 6669 6e69  -metadata-defini\n-00000520: 7469 6f6e 2d70 726f 746f 6275 663c 2f61  tion-protobuf</a\n-00000530: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000540: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000550: 6572 7369 6f6e 3e0d 0a20 203c 6c69 6365  ersion>..  <lice\n-00000560: 6e73 6573 3e0d 0a20 2020 203c 6c69 6365  nses>..    <lice\n-00000570: 6e73 653e 0d0a 2020 2020 2020 3c6e 616d  nse>..      <nam\n-00000580: 653e 4170 6163 6865 204c 6963 656e 7365  e>Apache License\n-00000590: 2c20 5665 7273 696f 6e20 322e 303c 2f6e  , Version 2.0</n\n-000005a0: 616d 653e 0d0a 2020 2020 2020 3c75 726c  ame>..      <url\n-000005b0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n-000005c0: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n-000005d0: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n-000005e0: 3e0d 0a20 2020 2020 203c 6469 7374 7269  >..      <distri\n-000005f0: 6275 7469 6f6e 3e72 6570 6f3c 2f64 6973  bution>repo</dis\n-00000600: 7472 6962 7574 696f 6e3e 0d0a 2020 2020  tribution>..    \n-00000610: 3c2f 6c69 6365 6e73 653e 0d0a 2020 3c2f  </license>..  </\n-00000620: 6c69 6365 6e73 6573 3e0d 0a20 203c 6465  licenses>..  <de\n-00000630: 7065 6e64 656e 6369 6573 3e0d 0a20 2020  pendencies>..   \n-00000640: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000650: 2020 2020 203c 6772 6f75 7049 643e 636f       <groupId>co\n-00000660: 6d2e 676f 6f67 6c65 2e70 726f 746f 6275  m.google.protobu\n-00000670: 663c 2f67 726f 7570 4964 3e0d 0a20 2020  f</groupId>..   \n-00000680: 2020 203c 6172 7469 6661 6374 4964 3e70     <artifactId>p\n-00000690: 726f 746f 6275 662d 6a61 7661 3c2f 6172  rotobuf-java</ar\n-000006a0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-000006b0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000006c0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000006d0: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-000006e0: 6f6d 2e67 6f6f 676c 652e 7072 6f74 6f62  om.google.protob\n-000006f0: 7566 3c2f 6772 6f75 7049 643e 0d0a 2020  uf</groupId>..  \n-00000700: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000710: 7072 6f74 6f62 7566 2d6a 6176 612d 7574  protobuf-java-ut\n-00000720: 696c 3c2f 6172 7469 6661 6374 4964 3e0d  il</artifactId>.\n-00000730: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000740: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000750: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000760: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000770: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000780: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000790: 4964 3e64 7562 626f 2d6d 6574 6164 6174  Id>dubbo-metadat\n-000007a0: 612d 6170 693c 2f61 7274 6966 6163 7449  a-api</artifactI\n-000007b0: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-000007c0: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-000007d0: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-000007e0: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-000007f0: 7065 6e64 656e 6379 3e0d 0a20 203c 2f64  pendency>..  </d\n-00000800: 6570 656e 6465 6e63 6965 733e 0d0a 3c2f  ependencies>..</\n-00000810: 7072 6f6a 6563 743e 0d0a                 project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n+00000480: 6164 6174 613c 2f61 7274 6966 6163 7449  adata</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 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000500: 6465 6669 6e69 7469 6f6e 2d70 726f 746f  definition-proto\n+00000510: 6275 663c 2f61 7274 6966 6163 7449 643e  buf</artifactId>\n+00000520: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000530: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000540: 6c69 6365 6e73 6573 3e0a 2020 2020 3c6c  licenses>.    <l\n+00000550: 6963 656e 7365 3e0a 2020 2020 2020 3c6e  icense>.      <n\n+00000560: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n+00000570: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n+00000580: 2f6e 616d 653e 0a20 2020 2020 203c 7572  /name>.      <ur\n+00000590: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n+000005a0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000005b0: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n+000005c0: 6c3e 0a20 2020 2020 203c 6469 7374 7269  l>.      <distri\n+000005d0: 6275 7469 6f6e 3e72 6570 6f3c 2f64 6973  bution>repo</dis\n+000005e0: 7472 6962 7574 696f 6e3e 0a20 2020 203c  tribution>.    <\n+000005f0: 2f6c 6963 656e 7365 3e0a 2020 3c2f 6c69  /license>.  </li\n+00000600: 6365 6e73 6573 3e0a 2020 3c64 6570 656e  censes>.  <depen\n+00000610: 6465 6e63 6965 733e 0a20 2020 203c 6465  dencies>.    <de\n+00000620: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000630: 3c67 726f 7570 4964 3e63 6f6d 2e67 6f6f  <groupId>com.goo\n+00000640: 676c 652e 7072 6f74 6f62 7566 3c2f 6772  gle.protobuf</gr\n+00000650: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000660: 7469 6661 6374 4964 3e70 726f 746f 6275  tifactId>protobu\n+00000670: 662d 6a61 7661 3c2f 6172 7469 6661 6374  f-java</artifact\n+00000680: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+00000690: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+000006a0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006b0: 6f75 7049 643e 636f 6d2e 676f 6f67 6c65  oupId>com.google\n+000006c0: 2e70 726f 746f 6275 663c 2f67 726f 7570  .protobuf</group\n+000006d0: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+000006e0: 6163 7449 643e 7072 6f74 6f62 7566 2d6a  actId>protobuf-j\n+000006f0: 6176 612d 7574 696c 3c2f 6172 7469 6661  ava-util</artifa\n+00000700: 6374 4964 3e0a 2020 2020 3c2f 6465 7065  ctId>.    </depe\n+00000710: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000720: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000730: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000740: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000750: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000760: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n+00000770: 6174 612d 6170 693c 2f61 7274 6966 6163  ata-api</artifac\n+00000780: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000790: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+000007a0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+000007b0: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+000007c0: 7065 6e64 656e 6379 3e0a 2020 3c2f 6465  pendency>.  </de\n+000007d0: 7065 6e64 656e 6369 6573 3e0a 3c2f 7072  pendencies>.</pr\n+000007e0: 6f6a 6563 743e 0a                        oject>.\n"}]}
