{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,23 +1,23 @@\n-Zip file size: 34559 bytes, number of entries: 21\n+Zip file size: 34789 bytes, number of entries: 21\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     3695 bX stor 70-Jan-01 00:00 META-INF/DEPENDENCIES\n -rw----     2.0 fat    11358 bX stor 70-Jan-01 00:00 META-INF/LICENSE\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat      182 bX stor 70-Jan-01 00:00 META-INF/NOTICE\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/internal/\n -rw----     2.0 fat       85 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.properties\n--rw----     2.0 fat     2428 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n+-rw----     2.0 fat     2369 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/\n--rw----     2.0 fat    11818 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n--rw----     2.0 fat     1306 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n-21 files, 30897 bytes uncompressed, 30897 bytes compressed:  0.0%\n+-rw----     2.0 fat    12076 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n+-rw----     2.0 fat     1337 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n+21 files, 31127 bytes uncompressed, 31127 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -312,824 +312,824 @@\n #\n 400C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 400E   Length              0005 (5)\n 4010   Flags               01 (1) 'Modification'\n 4011   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 4015 PAYLOAD\n \n-4991 DATA DESCRIPTOR       08074B50 (134695760)\n-4995 CRC                   7376C130 (1937162544)\n-4999 Compressed Size       0000097C (2428)\n-499D Uncompressed Size     0000097C (2428)\n-\n-49A1 LOCAL HEADER #14      04034B50 (67324752)\n-49A5 Extract Zip Spec      14 (20) '2.0'\n-49A6 Extract OS            00 (0) 'MS-DOS'\n-49A7 General Purpose Flag  0000 (0)\n-49A9 Compression Method    0000 (0) 'Stored'\n-49AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49AF CRC                   00000000 (0)\n-49B3 Compressed Size       00000000 (0)\n-49B7 Uncompressed Size     00000000 (0)\n-49BB Filename Length       0004 (4)\n-49BD Extra Length          0009 (9)\n-49BF Filename              'XXXX'\n-#\n-# WARNING: Offset 0x49BF: Filename 'XXXX'\n-#          Zero length filename\n-#\n-49C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49C5   Length              0005 (5)\n-49C7   Flags               01 (1) 'Modification'\n-49C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-49CC LOCAL HEADER #15      04034B50 (67324752)\n-49D0 Extract Zip Spec      14 (20) '2.0'\n-49D1 Extract OS            00 (0) 'MS-DOS'\n-49D2 General Purpose Flag  0000 (0)\n-49D4 Compression Method    0000 (0) 'Stored'\n-49D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49DA CRC                   00000000 (0)\n-49DE Compressed Size       00000000 (0)\n-49E2 Uncompressed Size     00000000 (0)\n-49E6 Filename Length       000B (11)\n-49E8 Extra Length          0009 (9)\n-49EA Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49EA: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49F7   Length              0005 (5)\n-49F9   Flags               01 (1) 'Modification'\n-49FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-49FE LOCAL HEADER #16      04034B50 (67324752)\n-4A02 Extract Zip Spec      14 (20) '2.0'\n-4A03 Extract OS            00 (0) 'MS-DOS'\n-4A04 General Purpose Flag  0000 (0)\n-4A06 Compression Method    0000 (0) 'Stored'\n-4A08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4A0C CRC                   00000000 (0)\n-4A10 Compressed Size       00000000 (0)\n-4A14 Uncompressed Size     00000000 (0)\n-4A18 Filename Length       0011 (17)\n-4A1A Extra Length          0009 (9)\n-4A1C Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4A1C: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4A2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4A2F   Length              0005 (5)\n-4A31   Flags               01 (1) 'Modification'\n-4A32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4A36 LOCAL HEADER #17      04034B50 (67324752)\n-4A3A Extract Zip Spec      14 (20) '2.0'\n-4A3B Extract OS            00 (0) 'MS-DOS'\n-4A3C General Purpose Flag  0000 (0)\n-4A3E Compression Method    0000 (0) 'Stored'\n-4A40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4A44 CRC                   00000000 (0)\n-4A48 Compressed Size       00000000 (0)\n-4A4C Uncompressed Size     00000000 (0)\n-4A50 Filename Length       001E (30)\n-4A52 Extra Length          0009 (9)\n-4A54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4A54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4A72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4A74   Length              0005 (5)\n-4A76   Flags               01 (1) 'Modification'\n-4A77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4A7B LOCAL HEADER #18      04034B50 (67324752)\n-4A7F Extract Zip Spec      14 (20) '2.0'\n-4A80 Extract OS            00 (0) 'MS-DOS'\n-4A81 General Purpose Flag  0000 (0)\n-4A83 Compression Method    0000 (0) 'Stored'\n-4A85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4A89 CRC                   00000000 (0)\n-4A8D Compressed Size       00000000 (0)\n-4A91 Uncompressed Size     00000000 (0)\n-4A95 Filename Length       0026 (38)\n-4A97 Extra Length          0009 (9)\n-4A99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4A99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4AC1   Length              0005 (5)\n-4AC3   Flags               01 (1) 'Modification'\n-4AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4AC8 LOCAL HEADER #19      04034B50 (67324752)\n-4ACC Extract Zip Spec      14 (20) '2.0'\n-4ACD Extract OS            00 (0) 'MS-DOS'\n-4ACE General Purpose Flag  0000 (0)\n-4AD0 Compression Method    0000 (0) 'Stored'\n-4AD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AD6 CRC                   00000000 (0)\n-4ADA Compressed Size       00000000 (0)\n-4ADE Uncompressed Size     00000000 (0)\n-4AE2 Filename Length       002D (45)\n-4AE4 Extra Length          0009 (9)\n-4AE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B15   Length              0005 (5)\n-4B17   Flags               01 (1) 'Modification'\n-4B18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4B1C LOCAL HEADER #20      04034B50 (67324752)\n-4B20 Extract Zip Spec      14 (20) '2.0'\n-4B21 Extract OS            00 (0) 'MS-DOS'\n-4B22 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-4B24 Compression Method    0000 (0) 'Stored'\n-4B26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B2A CRC                   00000000 (0)\n-4B2E Compressed Size       00000000 (0)\n-4B32 Uncompressed Size     00000000 (0)\n-4B36 Filename Length       004C (76)\n-4B38 Extra Length          0009 (9)\n-4B3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B88   Length              0005 (5)\n-4B8A   Flags               01 (1) 'Modification'\n-4B8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B8F PAYLOAD\n-\n-79B9 DATA DESCRIPTOR       08074B50 (134695760)\n-79BD CRC                   52ECC716 (1391249174)\n-79C1 Compressed Size       00002E2A (11818)\n-79C5 Uncompressed Size     00002E2A (11818)\n-\n-79C9 LOCAL HEADER #21      04034B50 (67324752)\n-79CD Extract Zip Spec      14 (20) '2.0'\n-79CE Extract OS            00 (0) 'MS-DOS'\n-79CF General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-79D1 Compression Method    0000 (0) 'Stored'\n-79D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-79D7 CRC                   00000000 (0)\n-79DB Compressed Size       00000000 (0)\n-79DF Uncompressed Size     00000000 (0)\n-79E3 Filename Length       0053 (83)\n-79E5 Extra Length          0009 (9)\n-79E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7A3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7A3C   Length              0005 (5)\n-7A3E   Flags               01 (1) 'Modification'\n-7A3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-7A43 PAYLOAD\n-\n-7F5D DATA DESCRIPTOR       08074B50 (134695760)\n-7F61 CRC                   BB1FB1EA (3139416554)\n-7F65 Compressed Size       0000051A (1306)\n-7F69 Uncompressed Size     0000051A (1306)\n-\n-7F6D CENTRAL HEADER #1     02014B50 (33639248)\n-7F71 Created Zip Spec      14 (20) '2.0'\n-7F72 Created OS            00 (0) 'MS-DOS'\n-7F73 Extract Zip Spec      14 (20) '2.0'\n-7F74 Extract OS            00 (0) 'MS-DOS'\n-7F75 General Purpose Flag  0000 (0)\n-7F77 Compression Method    0000 (0) 'Stored'\n-7F79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7F7D CRC                   00000000 (0)\n-7F81 Compressed Size       00000000 (0)\n-7F85 Uncompressed Size     00000000 (0)\n-7F89 Filename Length       0009 (9)\n-7F8B Extra Length          0009 (9)\n-7F8D Comment Length        0000 (0)\n-7F8F Disk Start            0000 (0)\n-7F91 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-7F93 Ext File Attributes   00000000 (0)\n-7F97 Local Header Offset   00000000 (0)\n-7F9B Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x7F9B: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-7FA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7FA6   Length              0005 (5)\n-7FA8   Flags               01 (1) 'Modification'\n-7FA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7FAD CENTRAL HEADER #2     02014B50 (33639248)\n-7FB1 Created Zip Spec      14 (20) '2.0'\n-7FB2 Created OS            00 (0) 'MS-DOS'\n-7FB3 Extract Zip Spec      14 (20) '2.0'\n-7FB4 Extract OS            00 (0) 'MS-DOS'\n-7FB5 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-7FB7 Compression Method    0000 (0) 'Stored'\n-7FB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7FBD CRC                   0216DF7C (35053436)\n-7FC1 Compressed Size       00000E6F (3695)\n-7FC5 Uncompressed Size     00000E6F (3695)\n-7FC9 Filename Length       0015 (21)\n-7FCB Extra Length          0009 (9)\n-7FCD Comment Length        0000 (0)\n-7FCF Disk Start            0000 (0)\n-7FD1 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-7FD3 Ext File Attributes   00000000 (0)\n-7FD7 Local Header Offset   00000030 (48)\n-7FDB Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7FDB: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7FF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7FF2   Length              0005 (5)\n-7FF4   Flags               01 (1) 'Modification'\n-7FF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7FF9 CENTRAL HEADER #3     02014B50 (33639248)\n-7FFD Created Zip Spec      14 (20) '2.0'\n-7FFE Created OS            00 (0) 'MS-DOS'\n-7FFF Extract Zip Spec      14 (20) '2.0'\n-8000 Extract OS            00 (0) 'MS-DOS'\n-8001 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8003 Compression Method    0000 (0) 'Stored'\n-8005 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8009 CRC                   86E2B4B4 (2263004340)\n-800D Compressed Size       00002C5E (11358)\n-8011 Uncompressed Size     00002C5E (11358)\n-8015 Filename Length       0010 (16)\n-8017 Extra Length          0009 (9)\n-8019 Comment Length        0000 (0)\n-801B Disk Start            0000 (0)\n-801D Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-801F Ext File Attributes   00000000 (0)\n-8023 Local Header Offset   00000EEB (3819)\n-8027 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8027: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8037 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8039   Length              0005 (5)\n-803B   Flags               01 (1) 'Modification'\n-803C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8040 CENTRAL HEADER #4     02014B50 (33639248)\n-8044 Created Zip Spec      14 (20) '2.0'\n-8045 Created OS            00 (0) 'MS-DOS'\n-8046 Extract Zip Spec      14 (20) '2.0'\n-8047 Extract OS            00 (0) 'MS-DOS'\n-8048 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-804A Compression Method    0000 (0) 'Stored'\n-804C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8050 CRC                   EE027FB2 (3993141170)\n-8054 Compressed Size       00000019 (25)\n-8058 Uncompressed Size     00000019 (25)\n-805C Filename Length       0014 (20)\n-805E Extra Length          0009 (9)\n-8060 Comment Length        0000 (0)\n-8062 Disk Start            0000 (0)\n-8064 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8066 Ext File Attributes   00000000 (0)\n-806A Local Header Offset   00003B90 (15248)\n-806E Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x806E: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8082 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8084   Length              0005 (5)\n-8086   Flags               01 (1) 'Modification'\n-8087   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-808B CENTRAL HEADER #5     02014B50 (33639248)\n-808F Created Zip Spec      14 (20) '2.0'\n-8090 Created OS            00 (0) 'MS-DOS'\n-8091 Extract Zip Spec      14 (20) '2.0'\n-8092 Extract OS            00 (0) 'MS-DOS'\n-8093 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8095 Compression Method    0000 (0) 'Stored'\n-8097 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-809B CRC                   9EE6EE5C (2665934428)\n-809F Compressed Size       000000B6 (182)\n-80A3 Uncompressed Size     000000B6 (182)\n-80A7 Filename Length       000F (15)\n-80A9 Extra Length          0009 (9)\n-80AB Comment Length        0000 (0)\n-80AD Disk Start            0000 (0)\n-80AF Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-80B1 Ext File Attributes   00000000 (0)\n-80B5 Local Header Offset   00003BF4 (15348)\n-80B9 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x80B9: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-80C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-80CA   Length              0005 (5)\n-80CC   Flags               01 (1) 'Modification'\n-80CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-80D1 CENTRAL HEADER #6     02014B50 (33639248)\n-80D5 Created Zip Spec      14 (20) '2.0'\n-80D6 Created OS            00 (0) 'MS-DOS'\n-80D7 Extract Zip Spec      14 (20) '2.0'\n-80D8 Extract OS            00 (0) 'MS-DOS'\n-80D9 General Purpose Flag  0000 (0)\n-80DB Compression Method    0000 (0) 'Stored'\n-80DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-80E1 CRC                   00000000 (0)\n-80E5 Compressed Size       00000000 (0)\n-80E9 Uncompressed Size     00000000 (0)\n-80ED Filename Length       000F (15)\n-80EF Extra Length          0009 (9)\n-80F1 Comment Length        0000 (0)\n-80F3 Disk Start            0000 (0)\n-80F5 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-80F7 Ext File Attributes   00000000 (0)\n-80FB Local Header Offset   00003CF0 (15600)\n-80FF Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x80FF: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-810E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8110   Length              0005 (5)\n-8112   Flags               01 (1) 'Modification'\n-8113   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8117 CENTRAL HEADER #7     02014B50 (33639248)\n-811B Created Zip Spec      14 (20) '2.0'\n-811C Created OS            00 (0) 'MS-DOS'\n-811D Extract Zip Spec      14 (20) '2.0'\n-811E Extract OS            00 (0) 'MS-DOS'\n-811F General Purpose Flag  0000 (0)\n-8121 Compression Method    0000 (0) 'Stored'\n-8123 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8127 CRC                   00000000 (0)\n-812B Compressed Size       00000000 (0)\n-812F Uncompressed Size     00000000 (0)\n-8133 Filename Length       0018 (24)\n-8135 Extra Length          0009 (9)\n-8137 Comment Length        0000 (0)\n-8139 Disk Start            0000 (0)\n-813B Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-813D Ext File Attributes   00000000 (0)\n-8141 Local Header Offset   00003D26 (15654)\n-8145 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8145: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-815D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-815F   Length              0005 (5)\n-8161   Flags               01 (1) 'Modification'\n-8162   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8166 CENTRAL HEADER #8     02014B50 (33639248)\n-816A Created Zip Spec      14 (20) '2.0'\n-816B Created OS            00 (0) 'MS-DOS'\n-816C Extract Zip Spec      14 (20) '2.0'\n-816D Extract OS            00 (0) 'MS-DOS'\n-816E General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8170 Compression Method    0000 (0) 'Stored'\n-8172 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8176 CRC                   C46B2C4D (3295358029)\n-817A Compressed Size       00000055 (85)\n-817E Uncompressed Size     00000055 (85)\n-8182 Filename Length       005F (95)\n-8184 Extra Length          0009 (9)\n-8186 Comment Length        0000 (0)\n-8188 Disk Start            0000 (0)\n-818A Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-818C Ext File Attributes   00000000 (0)\n-8190 Local Header Offset   00003D65 (15717)\n-8194 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8194: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-81F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-81F5   Length              0005 (5)\n-81F7   Flags               01 (1) 'Modification'\n-81F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-81FC CENTRAL HEADER #9     02014B50 (33639248)\n-8200 Created Zip Spec      14 (20) '2.0'\n-8201 Created OS            00 (0) 'MS-DOS'\n-8202 Extract Zip Spec      14 (20) '2.0'\n-8203 Extract OS            00 (0) 'MS-DOS'\n-8204 General Purpose Flag  0000 (0)\n-8206 Compression Method    0000 (0) 'Stored'\n-8208 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-820C CRC                   00000000 (0)\n-8210 Compressed Size       00000000 (0)\n-8214 Uncompressed Size     00000000 (0)\n-8218 Filename Length       000F (15)\n-821A Extra Length          0009 (9)\n-821C Comment Length        0000 (0)\n-821E Disk Start            0000 (0)\n-8220 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8222 Ext File Attributes   00000000 (0)\n-8226 Local Header Offset   00003E50 (15952)\n-822A Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x822A: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8239 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-823B   Length              0005 (5)\n-823D   Flags               01 (1) 'Modification'\n-823E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8242 CENTRAL HEADER #10    02014B50 (33639248)\n-8246 Created Zip Spec      14 (20) '2.0'\n-8247 Created OS            00 (0) 'MS-DOS'\n-8248 Extract Zip Spec      14 (20) '2.0'\n-8249 Extract OS            00 (0) 'MS-DOS'\n-824A General Purpose Flag  0000 (0)\n-824C Compression Method    0000 (0) 'Stored'\n-824E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8252 CRC                   00000000 (0)\n-8256 Compressed Size       00000000 (0)\n-825A Uncompressed Size     00000000 (0)\n-825E Filename Length       0020 (32)\n-8260 Extra Length          0009 (9)\n-8262 Comment Length        0000 (0)\n-8264 Disk Start            0000 (0)\n-8266 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8268 Ext File Attributes   00000000 (0)\n-826C Local Header Offset   00003E86 (16006)\n-8270 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8270: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8290 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8292   Length              0005 (5)\n-8294   Flags               01 (1) 'Modification'\n-8295   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8299 CENTRAL HEADER #11    02014B50 (33639248)\n-829D Created Zip Spec      14 (20) '2.0'\n-829E Created OS            00 (0) 'MS-DOS'\n-829F Extract Zip Spec      14 (20) '2.0'\n-82A0 Extract OS            00 (0) 'MS-DOS'\n-82A1 General Purpose Flag  0000 (0)\n-82A3 Compression Method    0000 (0) 'Stored'\n-82A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-82A9 CRC                   00000000 (0)\n-82AD Compressed Size       00000000 (0)\n-82B1 Uncompressed Size     00000000 (0)\n-82B5 Filename Length       003A (58)\n-82B7 Extra Length          0009 (9)\n-82B9 Comment Length        0000 (0)\n-82BB Disk Start            0000 (0)\n-82BD Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-82BF Ext File Attributes   00000000 (0)\n-82C3 Local Header Offset   00003ECD (16077)\n-82C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x82C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8301 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8303   Length              0005 (5)\n-8305   Flags               01 (1) 'Modification'\n-8306   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-830A CENTRAL HEADER #12    02014B50 (33639248)\n-830E Created Zip Spec      14 (20) '2.0'\n-830F Created OS            00 (0) 'MS-DOS'\n-8310 Extract Zip Spec      14 (20) '2.0'\n-8311 Extract OS            00 (0) 'MS-DOS'\n-8312 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8314 Compression Method    0000 (0) 'Stored'\n-8316 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-831A CRC                   00000000 (0)\n-831E Compressed Size       00000000 (0)\n-8322 Uncompressed Size     00000000 (0)\n-8326 Filename Length       0048 (72)\n-8328 Extra Length          0009 (9)\n-832A Comment Length        0000 (0)\n-832C Disk Start            0000 (0)\n-832E Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8330 Ext File Attributes   00000000 (0)\n-8334 Local Header Offset   00003F2E (16174)\n-8338 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8338: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8380 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8382   Length              0005 (5)\n-8384   Flags               01 (1) 'Modification'\n-8385   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8389 CENTRAL HEADER #13    02014B50 (33639248)\n-838D Created Zip Spec      14 (20) '2.0'\n-838E Created OS            00 (0) 'MS-DOS'\n-838F Extract Zip Spec      14 (20) '2.0'\n-8390 Extract OS            00 (0) 'MS-DOS'\n-8391 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8393 Compression Method    0000 (0) 'Stored'\n-8395 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8399 CRC                   7376C130 (1937162544)\n-839D Compressed Size       0000097C (2428)\n-83A1 Uncompressed Size     0000097C (2428)\n-83A5 Filename Length       0041 (65)\n-83A7 Extra Length          0009 (9)\n-83A9 Comment Length        0000 (0)\n-83AB Disk Start            0000 (0)\n-83AD Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-83AF Ext File Attributes   00000000 (0)\n-83B3 Local Header Offset   00003FAD (16301)\n-83B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x83B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-83F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-83FA   Length              0005 (5)\n-83FC   Flags               01 (1) 'Modification'\n-83FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8401 CENTRAL HEADER #14    02014B50 (33639248)\n-8405 Created Zip Spec      14 (20) '2.0'\n-8406 Created OS            00 (0) 'MS-DOS'\n-8407 Extract Zip Spec      14 (20) '2.0'\n-8408 Extract OS            00 (0) 'MS-DOS'\n-8409 General Purpose Flag  0000 (0)\n-840B Compression Method    0000 (0) 'Stored'\n-840D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8411 CRC                   00000000 (0)\n-8415 Compressed Size       00000000 (0)\n-8419 Uncompressed Size     00000000 (0)\n-841D Filename Length       0004 (4)\n-841F Extra Length          0009 (9)\n-8421 Comment Length        0000 (0)\n-8423 Disk Start            0000 (0)\n-8425 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8427 Ext File Attributes   00000000 (0)\n-842B Local Header Offset   000049A1 (18849)\n-842F Filename              'XXXX'\n-#\n-# WARNING: Offset 0x842F: Filename 'XXXX'\n-#          Zero length filename\n-#\n-8433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8435   Length              0005 (5)\n-8437   Flags               01 (1) 'Modification'\n-8438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-843C CENTRAL HEADER #15    02014B50 (33639248)\n-8440 Created Zip Spec      14 (20) '2.0'\n-8441 Created OS            00 (0) 'MS-DOS'\n-8442 Extract Zip Spec      14 (20) '2.0'\n-8443 Extract OS            00 (0) 'MS-DOS'\n-8444 General Purpose Flag  0000 (0)\n-8446 Compression Method    0000 (0) 'Stored'\n-8448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-844C CRC                   00000000 (0)\n-8450 Compressed Size       00000000 (0)\n-8454 Uncompressed Size     00000000 (0)\n-8458 Filename Length       000B (11)\n-845A Extra Length          0009 (9)\n-845C Comment Length        0000 (0)\n-845E Disk Start            0000 (0)\n-8460 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8462 Ext File Attributes   00000000 (0)\n-8466 Local Header Offset   000049CC (18892)\n-846A Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x846A: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8475 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8477   Length              0005 (5)\n-8479   Flags               01 (1) 'Modification'\n-847A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-847E CENTRAL HEADER #16    02014B50 (33639248)\n-8482 Created Zip Spec      14 (20) '2.0'\n-8483 Created OS            00 (0) 'MS-DOS'\n-8484 Extract Zip Spec      14 (20) '2.0'\n-8485 Extract OS            00 (0) 'MS-DOS'\n-8486 General Purpose Flag  0000 (0)\n-8488 Compression Method    0000 (0) 'Stored'\n-848A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-848E CRC                   00000000 (0)\n-8492 Compressed Size       00000000 (0)\n-8496 Uncompressed Size     00000000 (0)\n-849A Filename Length       0011 (17)\n-849C Extra Length          0009 (9)\n-849E Comment Length        0000 (0)\n-84A0 Disk Start            0000 (0)\n-84A2 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-84A4 Ext File Attributes   00000000 (0)\n-84A8 Local Header Offset   000049FE (18942)\n-84AC Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x84AC: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-84BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-84BF   Length              0005 (5)\n-84C1   Flags               01 (1) 'Modification'\n-84C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-84C6 CENTRAL HEADER #17    02014B50 (33639248)\n-84CA Created Zip Spec      14 (20) '2.0'\n-84CB Created OS            00 (0) 'MS-DOS'\n-84CC Extract Zip Spec      14 (20) '2.0'\n-84CD Extract OS            00 (0) 'MS-DOS'\n-84CE General Purpose Flag  0000 (0)\n-84D0 Compression Method    0000 (0) 'Stored'\n-84D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-84D6 CRC                   00000000 (0)\n-84DA Compressed Size       00000000 (0)\n-84DE Uncompressed Size     00000000 (0)\n-84E2 Filename Length       001E (30)\n-84E4 Extra Length          0009 (9)\n-84E6 Comment Length        0000 (0)\n-84E8 Disk Start            0000 (0)\n-84EA Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-84EC Ext File Attributes   00000000 (0)\n-84F0 Local Header Offset   00004A36 (18998)\n-84F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x84F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8512 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8514   Length              0005 (5)\n-8516   Flags               01 (1) 'Modification'\n-8517   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-851B CENTRAL HEADER #18    02014B50 (33639248)\n-851F Created Zip Spec      14 (20) '2.0'\n-8520 Created OS            00 (0) 'MS-DOS'\n-8521 Extract Zip Spec      14 (20) '2.0'\n-8522 Extract OS            00 (0) 'MS-DOS'\n-8523 General Purpose Flag  0000 (0)\n-8525 Compression Method    0000 (0) 'Stored'\n-8527 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-852B CRC                   00000000 (0)\n-852F Compressed Size       00000000 (0)\n-8533 Uncompressed Size     00000000 (0)\n-8537 Filename Length       0026 (38)\n-8539 Extra Length          0009 (9)\n-853B Comment Length        0000 (0)\n-853D Disk Start            0000 (0)\n-853F Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8541 Ext File Attributes   00000000 (0)\n-8545 Local Header Offset   00004A7B (19067)\n-8549 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8549: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-856F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8571   Length              0005 (5)\n-8573   Flags               01 (1) 'Modification'\n-8574   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8578 CENTRAL HEADER #19    02014B50 (33639248)\n-857C Created Zip Spec      14 (20) '2.0'\n-857D Created OS            00 (0) 'MS-DOS'\n-857E Extract Zip Spec      14 (20) '2.0'\n-857F Extract OS            00 (0) 'MS-DOS'\n-8580 General Purpose Flag  0000 (0)\n-8582 Compression Method    0000 (0) 'Stored'\n-8584 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8588 CRC                   00000000 (0)\n-858C Compressed Size       00000000 (0)\n-8590 Uncompressed Size     00000000 (0)\n-8594 Filename Length       002D (45)\n-8596 Extra Length          0009 (9)\n-8598 Comment Length        0000 (0)\n-859A Disk Start            0000 (0)\n-859C Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-859E Ext File Attributes   00000000 (0)\n-85A2 Local Header Offset   00004AC8 (19144)\n-85A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x85A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-85D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-85D5   Length              0005 (5)\n-85D7   Flags               01 (1) 'Modification'\n-85D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-85DC CENTRAL HEADER #20    02014B50 (33639248)\n-85E0 Created Zip Spec      14 (20) '2.0'\n-85E1 Created OS            00 (0) 'MS-DOS'\n-85E2 Extract Zip Spec      14 (20) '2.0'\n-85E3 Extract OS            00 (0) 'MS-DOS'\n-85E4 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-85E6 Compression Method    0000 (0) 'Stored'\n-85E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-85EC CRC                   52ECC716 (1391249174)\n-85F0 Compressed Size       00002E2A (11818)\n-85F4 Uncompressed Size     00002E2A (11818)\n-85F8 Filename Length       004C (76)\n-85FA Extra Length          0009 (9)\n-85FC Comment Length        0000 (0)\n-85FE Disk Start            0000 (0)\n-8600 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8602 Ext File Attributes   00000000 (0)\n-8606 Local Header Offset   00004B1C (19228)\n-860A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x860A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8656 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8658   Length              0005 (5)\n-865A   Flags               01 (1) 'Modification'\n-865B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-865F CENTRAL HEADER #21    02014B50 (33639248)\n-8663 Created Zip Spec      14 (20) '2.0'\n-8664 Created OS            00 (0) 'MS-DOS'\n-8665 Extract Zip Spec      14 (20) '2.0'\n-8666 Extract OS            00 (0) 'MS-DOS'\n-8667 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8669 Compression Method    0000 (0) 'Stored'\n-866B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-866F CRC                   BB1FB1EA (3139416554)\n-8673 Compressed Size       0000051A (1306)\n-8677 Uncompressed Size     0000051A (1306)\n-867B Filename Length       0053 (83)\n-867D Extra Length          0009 (9)\n-867F Comment Length        0000 (0)\n-8681 Disk Start            0000 (0)\n-8683 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8685 Ext File Attributes   00000000 (0)\n-8689 Local Header Offset   000079C9 (31177)\n-868D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x868D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-86E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-86E2   Length              0005 (5)\n-86E4   Flags               01 (1) 'Modification'\n-86E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-86E9 END CENTRAL HEADER    06054B50 (101010256)\n-86ED Number of this disk   0000 (0)\n-86EF Central Dir Disk no   0000 (0)\n-86F1 Entries in this disk  0015 (21)\n-86F3 Total Entries         0015 (21)\n-86F5 Size of Central Dir   0000077C (1916)\n-86F9 Offset to Central Dir 00007F6D (32621)\n-86FD Comment Length        0000 (0)\n+4956 DATA DESCRIPTOR       08074B50 (134695760)\n+495A CRC                   91AC24FF (2443977983)\n+495E Compressed Size       00000941 (2369)\n+4962 Uncompressed Size     00000941 (2369)\n+\n+4966 LOCAL HEADER #14      04034B50 (67324752)\n+496A Extract Zip Spec      14 (20) '2.0'\n+496B Extract OS            00 (0) 'MS-DOS'\n+496C General Purpose Flag  0000 (0)\n+496E Compression Method    0000 (0) 'Stored'\n+4970 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4974 CRC                   00000000 (0)\n+4978 Compressed Size       00000000 (0)\n+497C Uncompressed Size     00000000 (0)\n+4980 Filename Length       0004 (4)\n+4982 Extra Length          0009 (9)\n+4984 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x4984: Filename 'XXXX'\n+#          Zero length filename\n+#\n+4988 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+498A   Length              0005 (5)\n+498C   Flags               01 (1) 'Modification'\n+498D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4991 LOCAL HEADER #15      04034B50 (67324752)\n+4995 Extract Zip Spec      14 (20) '2.0'\n+4996 Extract OS            00 (0) 'MS-DOS'\n+4997 General Purpose Flag  0000 (0)\n+4999 Compression Method    0000 (0) 'Stored'\n+499B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+499F CRC                   00000000 (0)\n+49A3 Compressed Size       00000000 (0)\n+49A7 Uncompressed Size     00000000 (0)\n+49AB Filename Length       000B (11)\n+49AD Extra Length          0009 (9)\n+49AF Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49AF: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49BC   Length              0005 (5)\n+49BE   Flags               01 (1) 'Modification'\n+49BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+49C3 LOCAL HEADER #16      04034B50 (67324752)\n+49C7 Extract Zip Spec      14 (20) '2.0'\n+49C8 Extract OS            00 (0) 'MS-DOS'\n+49C9 General Purpose Flag  0000 (0)\n+49CB Compression Method    0000 (0) 'Stored'\n+49CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49D1 CRC                   00000000 (0)\n+49D5 Compressed Size       00000000 (0)\n+49D9 Uncompressed Size     00000000 (0)\n+49DD Filename Length       0011 (17)\n+49DF Extra Length          0009 (9)\n+49E1 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49E1: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49F4   Length              0005 (5)\n+49F6   Flags               01 (1) 'Modification'\n+49F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+49FB LOCAL HEADER #17      04034B50 (67324752)\n+49FF Extract Zip Spec      14 (20) '2.0'\n+4A00 Extract OS            00 (0) 'MS-DOS'\n+4A01 General Purpose Flag  0000 (0)\n+4A03 Compression Method    0000 (0) 'Stored'\n+4A05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A09 CRC                   00000000 (0)\n+4A0D Compressed Size       00000000 (0)\n+4A11 Uncompressed Size     00000000 (0)\n+4A15 Filename Length       001E (30)\n+4A17 Extra Length          0009 (9)\n+4A19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A39   Length              0005 (5)\n+4A3B   Flags               01 (1) 'Modification'\n+4A3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4A40 LOCAL HEADER #18      04034B50 (67324752)\n+4A44 Extract Zip Spec      14 (20) '2.0'\n+4A45 Extract OS            00 (0) 'MS-DOS'\n+4A46 General Purpose Flag  0000 (0)\n+4A48 Compression Method    0000 (0) 'Stored'\n+4A4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A4E CRC                   00000000 (0)\n+4A52 Compressed Size       00000000 (0)\n+4A56 Uncompressed Size     00000000 (0)\n+4A5A Filename Length       0026 (38)\n+4A5C Extra Length          0009 (9)\n+4A5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A86   Length              0005 (5)\n+4A88   Flags               01 (1) 'Modification'\n+4A89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4A8D LOCAL HEADER #19      04034B50 (67324752)\n+4A91 Extract Zip Spec      14 (20) '2.0'\n+4A92 Extract OS            00 (0) 'MS-DOS'\n+4A93 General Purpose Flag  0000 (0)\n+4A95 Compression Method    0000 (0) 'Stored'\n+4A97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A9B CRC                   00000000 (0)\n+4A9F Compressed Size       00000000 (0)\n+4AA3 Uncompressed Size     00000000 (0)\n+4AA7 Filename Length       002D (45)\n+4AA9 Extra Length          0009 (9)\n+4AAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4ADA   Length              0005 (5)\n+4ADC   Flags               01 (1) 'Modification'\n+4ADD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4AE1 LOCAL HEADER #20      04034B50 (67324752)\n+4AE5 Extract Zip Spec      14 (20) '2.0'\n+4AE6 Extract OS            00 (0) 'MS-DOS'\n+4AE7 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+4AE9 Compression Method    0000 (0) 'Stored'\n+4AEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AEF CRC                   00000000 (0)\n+4AF3 Compressed Size       00000000 (0)\n+4AF7 Uncompressed Size     00000000 (0)\n+4AFB Filename Length       004C (76)\n+4AFD Extra Length          0009 (9)\n+4AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4B4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4B4D   Length              0005 (5)\n+4B4F   Flags               01 (1) 'Modification'\n+4B50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4B54 PAYLOAD\n+\n+7A80 DATA DESCRIPTOR       08074B50 (134695760)\n+7A84 CRC                   86E4A798 (2263132056)\n+7A88 Compressed Size       00002F2C (12076)\n+7A8C Uncompressed Size     00002F2C (12076)\n+\n+7A90 LOCAL HEADER #21      04034B50 (67324752)\n+7A94 Extract Zip Spec      14 (20) '2.0'\n+7A95 Extract OS            00 (0) 'MS-DOS'\n+7A96 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+7A98 Compression Method    0000 (0) 'Stored'\n+7A9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7A9E CRC                   00000000 (0)\n+7AA2 Compressed Size       00000000 (0)\n+7AA6 Uncompressed Size     00000000 (0)\n+7AAA Filename Length       0053 (83)\n+7AAC Extra Length          0009 (9)\n+7AAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7AAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7B01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7B03   Length              0005 (5)\n+7B05   Flags               01 (1) 'Modification'\n+7B06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+7B0A PAYLOAD\n+\n+8043 DATA DESCRIPTOR       08074B50 (134695760)\n+8047 CRC                   4296B4B4 (1117172916)\n+804B Compressed Size       00000539 (1337)\n+804F Uncompressed Size     00000539 (1337)\n+\n+8053 CENTRAL HEADER #1     02014B50 (33639248)\n+8057 Created Zip Spec      14 (20) '2.0'\n+8058 Created OS            00 (0) 'MS-DOS'\n+8059 Extract Zip Spec      14 (20) '2.0'\n+805A Extract OS            00 (0) 'MS-DOS'\n+805B General Purpose Flag  0000 (0)\n+805D Compression Method    0000 (0) 'Stored'\n+805F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8063 CRC                   00000000 (0)\n+8067 Compressed Size       00000000 (0)\n+806B Uncompressed Size     00000000 (0)\n+806F Filename Length       0009 (9)\n+8071 Extra Length          0009 (9)\n+8073 Comment Length        0000 (0)\n+8075 Disk Start            0000 (0)\n+8077 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8079 Ext File Attributes   00000000 (0)\n+807D Local Header Offset   00000000 (0)\n+8081 Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x8081: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+808A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+808C   Length              0005 (5)\n+808E   Flags               01 (1) 'Modification'\n+808F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8093 CENTRAL HEADER #2     02014B50 (33639248)\n+8097 Created Zip Spec      14 (20) '2.0'\n+8098 Created OS            00 (0) 'MS-DOS'\n+8099 Extract Zip Spec      14 (20) '2.0'\n+809A Extract OS            00 (0) 'MS-DOS'\n+809B General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+809D Compression Method    0000 (0) 'Stored'\n+809F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+80A3 CRC                   0216DF7C (35053436)\n+80A7 Compressed Size       00000E6F (3695)\n+80AB Uncompressed Size     00000E6F (3695)\n+80AF Filename Length       0015 (21)\n+80B1 Extra Length          0009 (9)\n+80B3 Comment Length        0000 (0)\n+80B5 Disk Start            0000 (0)\n+80B7 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+80B9 Ext File Attributes   00000000 (0)\n+80BD Local Header Offset   00000030 (48)\n+80C1 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x80C1: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+80D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+80D8   Length              0005 (5)\n+80DA   Flags               01 (1) 'Modification'\n+80DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+80DF CENTRAL HEADER #3     02014B50 (33639248)\n+80E3 Created Zip Spec      14 (20) '2.0'\n+80E4 Created OS            00 (0) 'MS-DOS'\n+80E5 Extract Zip Spec      14 (20) '2.0'\n+80E6 Extract OS            00 (0) 'MS-DOS'\n+80E7 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+80E9 Compression Method    0000 (0) 'Stored'\n+80EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+80EF CRC                   86E2B4B4 (2263004340)\n+80F3 Compressed Size       00002C5E (11358)\n+80F7 Uncompressed Size     00002C5E (11358)\n+80FB Filename Length       0010 (16)\n+80FD Extra Length          0009 (9)\n+80FF Comment Length        0000 (0)\n+8101 Disk Start            0000 (0)\n+8103 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8105 Ext File Attributes   00000000 (0)\n+8109 Local Header Offset   00000EEB (3819)\n+810D Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x810D: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+811D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+811F   Length              0005 (5)\n+8121   Flags               01 (1) 'Modification'\n+8122   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8126 CENTRAL HEADER #4     02014B50 (33639248)\n+812A Created Zip Spec      14 (20) '2.0'\n+812B Created OS            00 (0) 'MS-DOS'\n+812C Extract Zip Spec      14 (20) '2.0'\n+812D Extract OS            00 (0) 'MS-DOS'\n+812E General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+8130 Compression Method    0000 (0) 'Stored'\n+8132 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8136 CRC                   EE027FB2 (3993141170)\n+813A Compressed Size       00000019 (25)\n+813E Uncompressed Size     00000019 (25)\n+8142 Filename Length       0014 (20)\n+8144 Extra Length          0009 (9)\n+8146 Comment Length        0000 (0)\n+8148 Disk Start            0000 (0)\n+814A Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+814C Ext File Attributes   00000000 (0)\n+8150 Local Header Offset   00003B90 (15248)\n+8154 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8154: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+8168 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+816A   Length              0005 (5)\n+816C   Flags               01 (1) 'Modification'\n+816D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8171 CENTRAL HEADER #5     02014B50 (33639248)\n+8175 Created Zip Spec      14 (20) '2.0'\n+8176 Created OS            00 (0) 'MS-DOS'\n+8177 Extract Zip Spec      14 (20) '2.0'\n+8178 Extract OS            00 (0) 'MS-DOS'\n+8179 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+817B Compression Method    0000 (0) 'Stored'\n+817D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8181 CRC                   9EE6EE5C (2665934428)\n+8185 Compressed Size       000000B6 (182)\n+8189 Uncompressed Size     000000B6 (182)\n+818D Filename Length       000F (15)\n+818F Extra Length          0009 (9)\n+8191 Comment Length        0000 (0)\n+8193 Disk Start            0000 (0)\n+8195 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8197 Ext File Attributes   00000000 (0)\n+819B Local Header Offset   00003BF4 (15348)\n+819F Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x819F: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+81AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+81B0   Length              0005 (5)\n+81B2   Flags               01 (1) 'Modification'\n+81B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+81B7 CENTRAL HEADER #6     02014B50 (33639248)\n+81BB Created Zip Spec      14 (20) '2.0'\n+81BC Created OS            00 (0) 'MS-DOS'\n+81BD Extract Zip Spec      14 (20) '2.0'\n+81BE Extract OS            00 (0) 'MS-DOS'\n+81BF General Purpose Flag  0000 (0)\n+81C1 Compression Method    0000 (0) 'Stored'\n+81C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+81C7 CRC                   00000000 (0)\n+81CB Compressed Size       00000000 (0)\n+81CF Uncompressed Size     00000000 (0)\n+81D3 Filename Length       000F (15)\n+81D5 Extra Length          0009 (9)\n+81D7 Comment Length        0000 (0)\n+81D9 Disk Start            0000 (0)\n+81DB Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+81DD Ext File Attributes   00000000 (0)\n+81E1 Local Header Offset   00003CF0 (15600)\n+81E5 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x81E5: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+81F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+81F6   Length              0005 (5)\n+81F8   Flags               01 (1) 'Modification'\n+81F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+81FD CENTRAL HEADER #7     02014B50 (33639248)\n+8201 Created Zip Spec      14 (20) '2.0'\n+8202 Created OS            00 (0) 'MS-DOS'\n+8203 Extract Zip Spec      14 (20) '2.0'\n+8204 Extract OS            00 (0) 'MS-DOS'\n+8205 General Purpose Flag  0000 (0)\n+8207 Compression Method    0000 (0) 'Stored'\n+8209 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+820D CRC                   00000000 (0)\n+8211 Compressed Size       00000000 (0)\n+8215 Uncompressed Size     00000000 (0)\n+8219 Filename Length       0018 (24)\n+821B Extra Length          0009 (9)\n+821D Comment Length        0000 (0)\n+821F Disk Start            0000 (0)\n+8221 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8223 Ext File Attributes   00000000 (0)\n+8227 Local Header Offset   00003D26 (15654)\n+822B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x822B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+8243 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+8245   Length              0005 (5)\n+8247   Flags               01 (1) 'Modification'\n+8248   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+824C CENTRAL HEADER #8     02014B50 (33639248)\n+8250 Created Zip Spec      14 (20) '2.0'\n+8251 Created OS            00 (0) 'MS-DOS'\n+8252 Extract Zip Spec      14 (20) '2.0'\n+8253 Extract OS            00 (0) 'MS-DOS'\n+8254 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+8256 Compression Method    0000 (0) 'Stored'\n+8258 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+825C CRC                   C46B2C4D (3295358029)\n+8260 Compressed Size       00000055 (85)\n+8264 Uncompressed Size     00000055 (85)\n+8268 Filename Length       005F (95)\n+826A Extra Length          0009 (9)\n+826C Comment Length        0000 (0)\n+826E Disk Start            0000 (0)\n+8270 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8272 Ext File Attributes   00000000 (0)\n+8276 Local Header Offset   00003D65 (15717)\n+827A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x827A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+82D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+82DB   Length              0005 (5)\n+82DD   Flags               01 (1) 'Modification'\n+82DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+82E2 CENTRAL HEADER #9     02014B50 (33639248)\n+82E6 Created Zip Spec      14 (20) '2.0'\n+82E7 Created OS            00 (0) 'MS-DOS'\n+82E8 Extract Zip Spec      14 (20) '2.0'\n+82E9 Extract OS            00 (0) 'MS-DOS'\n+82EA General Purpose Flag  0000 (0)\n+82EC Compression Method    0000 (0) 'Stored'\n+82EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+82F2 CRC                   00000000 (0)\n+82F6 Compressed Size       00000000 (0)\n+82FA Uncompressed Size     00000000 (0)\n+82FE Filename Length       000F (15)\n+8300 Extra Length          0009 (9)\n+8302 Comment Length        0000 (0)\n+8304 Disk Start            0000 (0)\n+8306 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8308 Ext File Attributes   00000000 (0)\n+830C Local Header Offset   00003E50 (15952)\n+8310 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8310: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+831F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+8321   Length              0005 (5)\n+8323   Flags               01 (1) 'Modification'\n+8324   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8328 CENTRAL HEADER #10    02014B50 (33639248)\n+832C Created Zip Spec      14 (20) '2.0'\n+832D Created OS            00 (0) 'MS-DOS'\n+832E Extract Zip Spec      14 (20) '2.0'\n+832F Extract OS            00 (0) 'MS-DOS'\n+8330 General Purpose Flag  0000 (0)\n+8332 Compression Method    0000 (0) 'Stored'\n+8334 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8338 CRC                   00000000 (0)\n+833C Compressed Size       00000000 (0)\n+8340 Uncompressed Size     00000000 (0)\n+8344 Filename Length       0020 (32)\n+8346 Extra Length          0009 (9)\n+8348 Comment Length        0000 (0)\n+834A Disk Start            0000 (0)\n+834C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+834E Ext File Attributes   00000000 (0)\n+8352 Local Header Offset   00003E86 (16006)\n+8356 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8356: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+8376 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+8378   Length              0005 (5)\n+837A   Flags               01 (1) 'Modification'\n+837B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+837F CENTRAL HEADER #11    02014B50 (33639248)\n+8383 Created Zip Spec      14 (20) '2.0'\n+8384 Created OS            00 (0) 'MS-DOS'\n+8385 Extract Zip Spec      14 (20) '2.0'\n+8386 Extract OS            00 (0) 'MS-DOS'\n+8387 General Purpose Flag  0000 (0)\n+8389 Compression Method    0000 (0) 'Stored'\n+838B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+838F CRC                   00000000 (0)\n+8393 Compressed Size       00000000 (0)\n+8397 Uncompressed Size     00000000 (0)\n+839B Filename Length       003A (58)\n+839D Extra Length          0009 (9)\n+839F Comment Length        0000 (0)\n+83A1 Disk Start            0000 (0)\n+83A3 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+83A5 Ext File Attributes   00000000 (0)\n+83A9 Local Header Offset   00003ECD (16077)\n+83AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x83AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+83E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+83E9   Length              0005 (5)\n+83EB   Flags               01 (1) 'Modification'\n+83EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+83F0 CENTRAL HEADER #12    02014B50 (33639248)\n+83F4 Created Zip Spec      14 (20) '2.0'\n+83F5 Created OS            00 (0) 'MS-DOS'\n+83F6 Extract Zip Spec      14 (20) '2.0'\n+83F7 Extract OS            00 (0) 'MS-DOS'\n+83F8 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+83FA Compression Method    0000 (0) 'Stored'\n+83FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8400 CRC                   00000000 (0)\n+8404 Compressed Size       00000000 (0)\n+8408 Uncompressed Size     00000000 (0)\n+840C Filename Length       0048 (72)\n+840E Extra Length          0009 (9)\n+8410 Comment Length        0000 (0)\n+8412 Disk Start            0000 (0)\n+8414 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8416 Ext File Attributes   00000000 (0)\n+841A Local Header Offset   00003F2E (16174)\n+841E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x841E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+8466 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+8468   Length              0005 (5)\n+846A   Flags               01 (1) 'Modification'\n+846B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+846F CENTRAL HEADER #13    02014B50 (33639248)\n+8473 Created Zip Spec      14 (20) '2.0'\n+8474 Created OS            00 (0) 'MS-DOS'\n+8475 Extract Zip Spec      14 (20) '2.0'\n+8476 Extract OS            00 (0) 'MS-DOS'\n+8477 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+8479 Compression Method    0000 (0) 'Stored'\n+847B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+847F CRC                   91AC24FF (2443977983)\n+8483 Compressed Size       00000941 (2369)\n+8487 Uncompressed Size     00000941 (2369)\n+848B Filename Length       0041 (65)\n+848D Extra Length          0009 (9)\n+848F Comment Length        0000 (0)\n+8491 Disk Start            0000 (0)\n+8493 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8495 Ext File Attributes   00000000 (0)\n+8499 Local Header Offset   00003FAD (16301)\n+849D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x849D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+84DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+84E0   Length              0005 (5)\n+84E2   Flags               01 (1) 'Modification'\n+84E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+84E7 CENTRAL HEADER #14    02014B50 (33639248)\n+84EB Created Zip Spec      14 (20) '2.0'\n+84EC Created OS            00 (0) 'MS-DOS'\n+84ED Extract Zip Spec      14 (20) '2.0'\n+84EE Extract OS            00 (0) 'MS-DOS'\n+84EF General Purpose Flag  0000 (0)\n+84F1 Compression Method    0000 (0) 'Stored'\n+84F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+84F7 CRC                   00000000 (0)\n+84FB Compressed Size       00000000 (0)\n+84FF Uncompressed Size     00000000 (0)\n+8503 Filename Length       0004 (4)\n+8505 Extra Length          0009 (9)\n+8507 Comment Length        0000 (0)\n+8509 Disk Start            0000 (0)\n+850B Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+850D Ext File Attributes   00000000 (0)\n+8511 Local Header Offset   00004966 (18790)\n+8515 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x8515: Filename 'XXXX'\n+#          Zero length filename\n+#\n+8519 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+851B   Length              0005 (5)\n+851D   Flags               01 (1) 'Modification'\n+851E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8522 CENTRAL HEADER #15    02014B50 (33639248)\n+8526 Created Zip Spec      14 (20) '2.0'\n+8527 Created OS            00 (0) 'MS-DOS'\n+8528 Extract Zip Spec      14 (20) '2.0'\n+8529 Extract OS            00 (0) 'MS-DOS'\n+852A General Purpose Flag  0000 (0)\n+852C Compression Method    0000 (0) 'Stored'\n+852E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8532 CRC                   00000000 (0)\n+8536 Compressed Size       00000000 (0)\n+853A Uncompressed Size     00000000 (0)\n+853E Filename Length       000B (11)\n+8540 Extra Length          0009 (9)\n+8542 Comment Length        0000 (0)\n+8544 Disk Start            0000 (0)\n+8546 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8548 Ext File Attributes   00000000 (0)\n+854C Local Header Offset   00004991 (18833)\n+8550 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8550: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+855B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+855D   Length              0005 (5)\n+855F   Flags               01 (1) 'Modification'\n+8560   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8564 CENTRAL HEADER #16    02014B50 (33639248)\n+8568 Created Zip Spec      14 (20) '2.0'\n+8569 Created OS            00 (0) 'MS-DOS'\n+856A Extract Zip Spec      14 (20) '2.0'\n+856B Extract OS            00 (0) 'MS-DOS'\n+856C General Purpose Flag  0000 (0)\n+856E Compression Method    0000 (0) 'Stored'\n+8570 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8574 CRC                   00000000 (0)\n+8578 Compressed Size       00000000 (0)\n+857C Uncompressed Size     00000000 (0)\n+8580 Filename Length       0011 (17)\n+8582 Extra Length          0009 (9)\n+8584 Comment Length        0000 (0)\n+8586 Disk Start            0000 (0)\n+8588 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+858A Ext File Attributes   00000000 (0)\n+858E Local Header Offset   000049C3 (18883)\n+8592 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8592: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+85A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+85A5   Length              0005 (5)\n+85A7   Flags               01 (1) 'Modification'\n+85A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+85AC CENTRAL HEADER #17    02014B50 (33639248)\n+85B0 Created Zip Spec      14 (20) '2.0'\n+85B1 Created OS            00 (0) 'MS-DOS'\n+85B2 Extract Zip Spec      14 (20) '2.0'\n+85B3 Extract OS            00 (0) 'MS-DOS'\n+85B4 General Purpose Flag  0000 (0)\n+85B6 Compression Method    0000 (0) 'Stored'\n+85B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+85BC CRC                   00000000 (0)\n+85C0 Compressed Size       00000000 (0)\n+85C4 Uncompressed Size     00000000 (0)\n+85C8 Filename Length       001E (30)\n+85CA Extra Length          0009 (9)\n+85CC Comment Length        0000 (0)\n+85CE Disk Start            0000 (0)\n+85D0 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+85D2 Ext File Attributes   00000000 (0)\n+85D6 Local Header Offset   000049FB (18939)\n+85DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x85DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+85F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+85FA   Length              0005 (5)\n+85FC   Flags               01 (1) 'Modification'\n+85FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8601 CENTRAL HEADER #18    02014B50 (33639248)\n+8605 Created Zip Spec      14 (20) '2.0'\n+8606 Created OS            00 (0) 'MS-DOS'\n+8607 Extract Zip Spec      14 (20) '2.0'\n+8608 Extract OS            00 (0) 'MS-DOS'\n+8609 General Purpose Flag  0000 (0)\n+860B Compression Method    0000 (0) 'Stored'\n+860D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8611 CRC                   00000000 (0)\n+8615 Compressed Size       00000000 (0)\n+8619 Uncompressed Size     00000000 (0)\n+861D Filename Length       0026 (38)\n+861F Extra Length          0009 (9)\n+8621 Comment Length        0000 (0)\n+8623 Disk Start            0000 (0)\n+8625 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8627 Ext File Attributes   00000000 (0)\n+862B Local Header Offset   00004A40 (19008)\n+862F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x862F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+8655 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+8657   Length              0005 (5)\n+8659   Flags               01 (1) 'Modification'\n+865A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+865E CENTRAL HEADER #19    02014B50 (33639248)\n+8662 Created Zip Spec      14 (20) '2.0'\n+8663 Created OS            00 (0) 'MS-DOS'\n+8664 Extract Zip Spec      14 (20) '2.0'\n+8665 Extract OS            00 (0) 'MS-DOS'\n+8666 General Purpose Flag  0000 (0)\n+8668 Compression Method    0000 (0) 'Stored'\n+866A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+866E CRC                   00000000 (0)\n+8672 Compressed Size       00000000 (0)\n+8676 Uncompressed Size     00000000 (0)\n+867A Filename Length       002D (45)\n+867C Extra Length          0009 (9)\n+867E Comment Length        0000 (0)\n+8680 Disk Start            0000 (0)\n+8682 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+8684 Ext File Attributes   00000000 (0)\n+8688 Local Header Offset   00004A8D (19085)\n+868C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x868C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+86B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+86BB   Length              0005 (5)\n+86BD   Flags               01 (1) 'Modification'\n+86BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+86C2 CENTRAL HEADER #20    02014B50 (33639248)\n+86C6 Created Zip Spec      14 (20) '2.0'\n+86C7 Created OS            00 (0) 'MS-DOS'\n+86C8 Extract Zip Spec      14 (20) '2.0'\n+86C9 Extract OS            00 (0) 'MS-DOS'\n+86CA General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+86CC Compression Method    0000 (0) 'Stored'\n+86CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+86D2 CRC                   86E4A798 (2263132056)\n+86D6 Compressed Size       00002F2C (12076)\n+86DA Uncompressed Size     00002F2C (12076)\n+86DE Filename Length       004C (76)\n+86E0 Extra Length          0009 (9)\n+86E2 Comment Length        0000 (0)\n+86E4 Disk Start            0000 (0)\n+86E6 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+86E8 Ext File Attributes   00000000 (0)\n+86EC Local Header Offset   00004AE1 (19169)\n+86F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x86F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+873C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+873E   Length              0005 (5)\n+8740   Flags               01 (1) 'Modification'\n+8741   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8745 CENTRAL HEADER #21    02014B50 (33639248)\n+8749 Created Zip Spec      14 (20) '2.0'\n+874A Created OS            00 (0) 'MS-DOS'\n+874B Extract Zip Spec      14 (20) '2.0'\n+874C Extract OS            00 (0) 'MS-DOS'\n+874D General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+874F Compression Method    0000 (0) 'Stored'\n+8751 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8755 CRC                   4296B4B4 (1117172916)\n+8759 Compressed Size       00000539 (1337)\n+875D Uncompressed Size     00000539 (1337)\n+8761 Filename Length       0053 (83)\n+8763 Extra Length          0009 (9)\n+8765 Comment Length        0000 (0)\n+8767 Disk Start            0000 (0)\n+8769 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+876B Ext File Attributes   00000000 (0)\n+876F Local Header Offset   00007A90 (31376)\n+8773 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8773: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+87C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+87C8   Length              0005 (5)\n+87CA   Flags               01 (1) 'Modification'\n+87CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+87CF END CENTRAL HEADER    06054B50 (101010256)\n+87D3 Number of this disk   0000 (0)\n+87D5 Central Dir Disk no   0000 (0)\n+87D7 Entries in this disk  0015 (21)\n+87D9 Total Entries         0015 (21)\n+87DB Size of Central Dir   0000077C (1916)\n+87DF Offset to Central Dir 00008053 (32851)\n+87E3 Comment Length        0000 (0)\n #\n # Warning Count: 42\n #\n # Done\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/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,152 +1,149 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 6669 6763 656e 7465 723c  bo-configcenter<\n-000004a0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000004b0: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-000004c0: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-000004d0: 2f70 6172 656e 743e 0d0a 2020 3c67 726f  /parent>..  <gro\n-000004e0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000004f0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n-00000510: 7562 626f 2d63 6f6e 6669 6763 656e 7465  ubbo-configcente\n-00000520: 722d 6170 6f6c 6c6f 3c2f 6172 7469 6661  r-apollo</artifa\n-00000530: 6374 4964 3e0d 0a20 203c 7665 7273 696f  ctId>..  <versio\n-00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-00000550: 6e3e 0d0a 2020 3c6e 616d 653e 247b 7072  n>..  <name>${pr\n-00000560: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n-00000570: 7d3c 2f6e 616d 653e 0d0a 2020 3c64 6573  }</name>..  <des\n-00000580: 6372 6970 7469 6f6e 3e54 6865 2041 706f  cription>The Apo\n-00000590: 6c6c 6f20 696d 706c 656d 656e 7461 7469  llo implementati\n-000005a0: 6f6e 206f 6620 7468 6520 636f 6e66 6967  on of the config\n-000005b0: 6365 6e74 6572 2061 7069 3c2f 6465 7363  center api</desc\n-000005c0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005d0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005e0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005f0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-00000600: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000610: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000620: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000630: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000640: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000650: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000660: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000670: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000680: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000690: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-000006a0: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006b0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006c0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006d0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006e0: 2020 3c61 706f 6c6c 6f5f 6d6f 636b 5f73    <apollo_mock_s\n-000006f0: 6572 7665 725f 7665 7273 696f 6e3e 312e  erver_version>1.\n-00000700: 312e 313c 2f61 706f 6c6c 6f5f 6d6f 636b  1.1</apollo_mock\n-00000710: 5f73 6572 7665 725f 7665 7273 696f 6e3e  _server_version>\n-00000720: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-00000730: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-00000740: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000750: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000760: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000770: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000780: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000790: 7449 643e 6475 6262 6f2d 636f 6d6d 6f6e  tId>dubbo-common\n-000007a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000007b0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-000007c0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-000007d0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-000007e0: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007f0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000800: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000810: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n-00000820: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n-00000830: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000840: 2020 203c 6172 7469 6661 6374 4964 3e61     <artifactId>a\n-00000850: 706f 6c6c 6f2d 636c 6965 6e74 3c2f 6172  pollo-client</ar\n-00000860: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000870: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000880: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000890: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-000008a0: 6f6d 2e63 7472 6970 2e66 7261 6d65 776f  om.ctrip.framewo\n-000008b0: 726b 2e61 706f 6c6c 6f3c 2f67 726f 7570  rk.apollo</group\n-000008c0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008d0: 6661 6374 4964 3e61 706f 6c6c 6f2d 6d6f  factId>apollo-mo\n-000008e0: 636b 7365 7276 6572 3c2f 6172 7469 6661  ckserver</artifa\n-000008f0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000900: 7273 696f 6e3e 247b 6170 6f6c 6c6f 5f6d  rsion>${apollo_m\n-00000910: 6f63 6b5f 7365 7276 6572 5f76 6572 7369  ock_server_versi\n-00000920: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000930: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000940: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000950: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000960: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-00000970: 3c2f 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 2d63 6f6e  factId>dubbo-con\n+00000480: 6669 6763 656e 7465 723c 2f61 7274 6966  figcenter</artif\n+00000490: 6163 7449 643e 0a20 2020 203c 7665 7273  actId>.    <vers\n+000004a0: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+000004b0: 696f 6e3e 0a20 203c 2f70 6172 656e 743e  ion>.  </parent>\n+000004c0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n+000004d0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000004e0: 6f75 7049 643e 0a20 203c 6172 7469 6661  oupId>.  <artifa\n+000004f0: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+00000500: 6763 656e 7465 722d 6170 6f6c 6c6f 3c2f  gcenter-apollo</\n+00000510: 6172 7469 6661 6374 4964 3e0a 2020 3c76  artifactId>.  <v\n+00000520: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n+00000530: 6572 7369 6f6e 3e0a 2020 3c6e 616d 653e  ersion>.  <name>\n+00000540: 247b 7072 6f6a 6563 742e 6172 7469 6661  ${project.artifa\n+00000550: 6374 4964 7d3c 2f6e 616d 653e 0a20 203c  ctId}</name>.  <\n+00000560: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n+00000570: 4170 6f6c 6c6f 2069 6d70 6c65 6d65 6e74  Apollo implement\n+00000580: 6174 696f 6e20 6f66 2074 6865 2063 6f6e  ation of the con\n+00000590: 6669 6763 656e 7465 7220 6170 693c 2f64  figcenter api</d\n+000005a0: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005b0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005c0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005d0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005e0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005f0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+00000600: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000610: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000620: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000630: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000640: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000650: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000660: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000670: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000680: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000690: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+000006a0: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006b0: 6570 6c6f 793e 0a20 2020 203c 6170 6f6c  eploy>.    <apol\n+000006c0: 6c6f 5f6d 6f63 6b5f 7365 7276 6572 5f76  lo_mock_server_v\n+000006d0: 6572 7369 6f6e 3e31 2e31 2e31 3c2f 6170  ersion>1.1.1</ap\n+000006e0: 6f6c 6c6f 5f6d 6f63 6b5f 7365 7276 6572  ollo_mock_server\n+000006f0: 5f76 6572 7369 6f6e 3e0a 2020 3c2f 7072  _version>.  </pr\n+00000700: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+00000710: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+00000720: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000730: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000740: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000750: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000760: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n+00000770: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n+00000780: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000790: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000007a0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000007b0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000007c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000007d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000007e0: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n+000007f0: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n+00000800: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000810: 2020 3c61 7274 6966 6163 7449 643e 6170    <artifactId>ap\n+00000820: 6f6c 6c6f 2d63 6c69 656e 743c 2f61 7274  ollo-client</art\n+00000830: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000840: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 2020 3c67 726f 7570 4964 3e63 6f6d 2e63    <groupId>com.c\n+00000870: 7472 6970 2e66 7261 6d65 776f 726b 2e61  trip.framework.a\n+00000880: 706f 6c6c 6f3c 2f67 726f 7570 4964 3e0a  pollo</groupId>.\n+00000890: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000008a0: 643e 6170 6f6c 6c6f 2d6d 6f63 6b73 6572  d>apollo-mockser\n+000008b0: 7665 723c 2f61 7274 6966 6163 7449 643e  ver</artifactId>\n+000008c0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+000008d0: 247b 6170 6f6c 6c6f 5f6d 6f63 6b5f 7365  ${apollo_mock_se\n+000008e0: 7276 6572 5f76 6572 7369 6f6e 7d3c 2f76  rver_version}</v\n+000008f0: 6572 7369 6f6e 3e0a 2020 2020 2020 3c73  ersion>.      <s\n+00000900: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000910: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000920: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000930: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000940: 0a                                       .\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,258 +1,258 @@\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.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.ctrip.framework.apollo.Config;\n-import com.ctrip.framework.apollo.ConfigChangeListener;\n-import com.ctrip.framework.apollo.ConfigFile;\n-import com.ctrip.framework.apollo.ConfigService;\n-import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\n-import com.ctrip.framework.apollo.enums.ConfigSourceType;\n-import com.ctrip.framework.apollo.enums.PropertyChangeType;\n-import com.ctrip.framework.apollo.model.ConfigChange;\n-\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-\n-/**\n- * Apollo implementation, https://github.com/ctripcorp/apollo\n- *\n- * Apollo will be used for management of both governance rules and .properties files, by default, these two different\n- * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\n- * namespace and group different values, for example:\n- *\n- * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n- * 'group=dubbo' is for properties files.\n- *\n- * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\n- */\n-public class ApolloDynamicConfiguration implements DynamicConfiguration {\n-    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\n-    private static final String APOLLO_ENV_KEY = \"env\";\n-    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\n-    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\n-    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\n-    private static final String APOLLO_APPLICATION_KEY = \"application\";\n-    private static final String APOLLO_APPID_KEY = \"app.id\";\n-\n-    private URL url;\n-    private Config dubboConfig;\n-    private ConfigFile dubboConfigFile;\n-    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\n-\n-    ApolloDynamicConfiguration(URL url) {\n-        this.url = url;\n-        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\n-        String configEnv = url.getParameter(APOLLO_ENV_KEY);\n-        String configAddr = getAddressWithProtocolPrefix(url);\n-        String configCluster = url.getParameter(CLUSTER_KEY);\n-        String configAppId = url.getParameter(APOLLO_APPID_KEY);\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\n-            System.setProperty(APOLLO_ENV_KEY, configEnv);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\n-            System.setProperty(APOLLO_ADDR_KEY, configAddr);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\n-            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\n-            System.setProperty(APOLLO_APPID_KEY, configAppId);\n-        }\n-\n-        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\n-        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\n-        dubboConfig = ConfigService.getConfig(apolloNamespace);\n-        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\n-\n-        // Decide to fail or to continue when failed to connect to remote server.\n-        boolean check = url.getParameter(CHECK_KEY, true);\n-        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\n-            if (check) {\n-                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\n-            } else {\n-                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\n-                        \", will use the local cache value instead before eventually the connection is established.\");\n-            }\n-        }\n-    }\n-\n-    private String getAddressWithProtocolPrefix(URL url) {\n-        String address = url.getBackupAddress();\n-        if (StringUtils.isNotEmpty(address)) {\n-            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\n-                    .map(addr -> {\n-                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\n-                            return addr;\n-                        }\n-                        return APOLLO_PROTOCOL_PREFIX + addr;\n-                    })\n-                    .collect(Collectors.joining(\",\"));\n-        }\n-        return address;\n-    }\n-\n-    /**\n-     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\n-     * ignores the group parameter.\n-     */\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\n-        apolloListener.addListener(listener);\n-        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.get(group + key);\n-        if (apolloListener != null) {\n-            apolloListener.removeListener(listener);\n-            if (!apolloListener.hasInternalListener()) {\n-                dubboConfig.removeChangeListener(apolloListener);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isNotEmpty(group)) {\n-            if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-                return ConfigService.getAppConfig().getProperty(key, null);\n-            } else {\n-                return ConfigService.getConfig(group).getProperty(key, null);\n-            }\n-        }\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Recommend specify namespace and group when using Apollo.\n-     * <p>\n-     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n-     * 'group=dubbo' is for properties files.\n-     *\n-     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\n-     * @param group\n-     * @param timeout\n-     * @return\n-     * @throws IllegalStateException\n-     */\n-    @Override\n-    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isEmpty(group)) {\n-            return dubboConfigFile.getContent();\n-        }\n-        if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\n-        }\n-\n-        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\n-        if (configFile == null) {\n-            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\n-        }\n-        return configFile.getContent();\n-    }\n-\n-    /**\n-     * This method will be used by Configuration to get valid value at runtime.\n-     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\n-     * But I think Apollo's inheritance feature of namespace can solve the problem .\n-     */\n-    @Override\n-    public String getInternalProperty(String key) {\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Ignores the group parameter.\n-     *\n-     * @param key   property key the native listener will listen on\n-     * @param group to distinguish different set of properties\n-     * @return\n-     */\n-    private ApolloListener createTargetListener(String key, String group) {\n-        return new ApolloListener();\n-    }\n-\n-    public class ApolloListener implements ConfigChangeListener {\n-\n-        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\n-\n-        ApolloListener() {\n-        }\n-\n-        @Override\n-        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\n-            for (String key : changeEvent.changedKeys()) {\n-                ConfigChange change = changeEvent.getChange(key);\n-                if (\"\".equals(change.getNewValue())) {\n-                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\n-                            change.getOldValue() + \", the empty rule will not take effect.\");\n-                    return;\n-                }\n-\n-                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\n-                listeners.forEach(listener -> listener.process(event));\n-            }\n-        }\n-\n-        private ConfigChangeType getChangeType(ConfigChange change) {\n-            if (change.getChangeType() == PropertyChangeType.DELETED) {\n-                return ConfigChangeType.DELETED;\n-            }\n-            return ConfigChangeType.MODIFIED;\n-        }\n-\n-        void addListener(ConfigurationListener configurationListener) {\n-            this.listeners.add(configurationListener);\n-        }\n-\n-        void removeListener(ConfigurationListener configurationListener) {\n-            this.listeners.remove(configurationListener);\n-        }\n-\n-        boolean hasInternalListener() {\n-            return listeners != null && listeners.size() > 0;\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.ctrip.framework.apollo.Config;\r\n+import com.ctrip.framework.apollo.ConfigChangeListener;\r\n+import com.ctrip.framework.apollo.ConfigFile;\r\n+import com.ctrip.framework.apollo.ConfigService;\r\n+import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\r\n+import com.ctrip.framework.apollo.enums.ConfigSourceType;\r\n+import com.ctrip.framework.apollo.enums.PropertyChangeType;\r\n+import com.ctrip.framework.apollo.model.ConfigChange;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+\r\n+/**\r\n+ * Apollo implementation, https://github.com/ctripcorp/apollo\r\n+ *\r\n+ * Apollo will be used for management of both governance rules and .properties files, by default, these two different\r\n+ * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\r\n+ * namespace and group different values, for example:\r\n+ *\r\n+ * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+ * 'group=dubbo' is for properties files.\r\n+ *\r\n+ * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\r\n+ */\r\n+public class ApolloDynamicConfiguration implements DynamicConfiguration {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\r\n+    private static final String APOLLO_ENV_KEY = \"env\";\r\n+    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\r\n+    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\r\n+    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\r\n+    private static final String APOLLO_APPLICATION_KEY = \"application\";\r\n+    private static final String APOLLO_APPID_KEY = \"app.id\";\r\n+\r\n+    private URL url;\r\n+    private Config dubboConfig;\r\n+    private ConfigFile dubboConfigFile;\r\n+    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\r\n+\r\n+    ApolloDynamicConfiguration(URL url) {\r\n+        this.url = url;\r\n+        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\r\n+        String configEnv = url.getParameter(APOLLO_ENV_KEY);\r\n+        String configAddr = getAddressWithProtocolPrefix(url);\r\n+        String configCluster = url.getParameter(CLUSTER_KEY);\r\n+        String configAppId = url.getParameter(APOLLO_APPID_KEY);\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\r\n+            System.setProperty(APOLLO_ENV_KEY, configEnv);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\r\n+            System.setProperty(APOLLO_ADDR_KEY, configAddr);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\r\n+            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\r\n+            System.setProperty(APOLLO_APPID_KEY, configAppId);\r\n+        }\r\n+\r\n+        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\r\n+        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\r\n+        dubboConfig = ConfigService.getConfig(apolloNamespace);\r\n+        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\r\n+\r\n+        // Decide to fail or to continue when failed to connect to remote server.\r\n+        boolean check = url.getParameter(CHECK_KEY, true);\r\n+        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\r\n+            if (check) {\r\n+                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\r\n+            } else {\r\n+                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\r\n+                        \", will use the local cache value instead before eventually the connection is established.\");\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private String getAddressWithProtocolPrefix(URL url) {\r\n+        String address = url.getBackupAddress();\r\n+        if (StringUtils.isNotEmpty(address)) {\r\n+            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\r\n+                    .map(addr -> {\r\n+                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\r\n+                            return addr;\r\n+                        }\r\n+                        return APOLLO_PROTOCOL_PREFIX + addr;\r\n+                    })\r\n+                    .collect(Collectors.joining(\",\"));\r\n+        }\r\n+        return address;\r\n+    }\r\n+\r\n+    /**\r\n+     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\r\n+     * ignores the group parameter.\r\n+     */\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\r\n+        apolloListener.addListener(listener);\r\n+        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.get(group + key);\r\n+        if (apolloListener != null) {\r\n+            apolloListener.removeListener(listener);\r\n+            if (!apolloListener.hasInternalListener()) {\r\n+                dubboConfig.removeChangeListener(apolloListener);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isNotEmpty(group)) {\r\n+            if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+                return ConfigService.getAppConfig().getProperty(key, null);\r\n+            } else {\r\n+                return ConfigService.getConfig(group).getProperty(key, null);\r\n+            }\r\n+        }\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Recommend specify namespace and group when using Apollo.\r\n+     * <p>\r\n+     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+     * 'group=dubbo' is for properties files.\r\n+     *\r\n+     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\r\n+     * @param group\r\n+     * @param timeout\r\n+     * @return\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    @Override\r\n+    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isEmpty(group)) {\r\n+            return dubboConfigFile.getContent();\r\n+        }\r\n+        if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\r\n+        }\r\n+\r\n+        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\r\n+        if (configFile == null) {\r\n+            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\r\n+        }\r\n+        return configFile.getContent();\r\n+    }\r\n+\r\n+    /**\r\n+     * This method will be used by Configuration to get valid value at runtime.\r\n+     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\r\n+     * But I think Apollo's inheritance feature of namespace can solve the problem .\r\n+     */\r\n+    @Override\r\n+    public String getInternalProperty(String key) {\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Ignores the group parameter.\r\n+     *\r\n+     * @param key   property key the native listener will listen on\r\n+     * @param group to distinguish different set of properties\r\n+     * @return\r\n+     */\r\n+    private ApolloListener createTargetListener(String key, String group) {\r\n+        return new ApolloListener();\r\n+    }\r\n+\r\n+    public class ApolloListener implements ConfigChangeListener {\r\n+\r\n+        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\r\n+\r\n+        ApolloListener() {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\r\n+            for (String key : changeEvent.changedKeys()) {\r\n+                ConfigChange change = changeEvent.getChange(key);\r\n+                if (\"\".equals(change.getNewValue())) {\r\n+                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\r\n+                            change.getOldValue() + \", the empty rule will not take effect.\");\r\n+                    return;\r\n+                }\r\n+\r\n+                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\r\n+                listeners.forEach(listener -> listener.process(event));\r\n+            }\r\n+        }\r\n+\r\n+        private ConfigChangeType getChangeType(ConfigChange change) {\r\n+            if (change.getChangeType() == PropertyChangeType.DELETED) {\r\n+                return ConfigChangeType.DELETED;\r\n+            }\r\n+            return ConfigChangeType.MODIFIED;\r\n+        }\r\n+\r\n+        void addListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.add(configurationListener);\r\n+        }\r\n+\r\n+        void removeListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.remove(configurationListener);\r\n+        }\r\n+\r\n+        boolean hasInternalListener() {\r\n+            return listeners != null && listeners.size() > 0;\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\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.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- *\n- */\n-public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new ApolloDynamicConfiguration(url);\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.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new ApolloDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}]}
