{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,8 +1,8 @@\n-Zip file size: 139786 bytes, number of entries: 143\n+Zip file size: 140251 bytes, number of entries: 143\n -rw-r--r--  2.0 unx       64 b- defN 20-Apr-01 08:04 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/rpc/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/\n@@ -33,113 +33,113 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-cluster/\n -rw-r--r--  2.0 unx     2939 b- defN 20-Apr-01 08:04 META-INF/DEPENDENCIES\n -rw-r--r--  2.0 unx    11358 b- defN 20-Apr-01 08:04 META-INF/LICENSE\n -rw-r--r--  2.0 unx      170 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     1526 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java\n+-rw-r--r--  2.0 unx     1563 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java\n -rw-r--r--  2.0 unx     2084 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Cluster.java\n--rw-r--r--  2.0 unx     1738 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/ClusterInvoker.java\n+-rw-r--r--  2.0 unx     1778 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/ClusterInvoker.java\n -rw-r--r--  2.0 unx     4387 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Configurator.java\n -rw-r--r--  2.0 unx     1332 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java\n--rw-r--r--  2.0 unx     2832 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Constants.java\n+-rw-r--r--  2.0 unx     2934 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Constants.java\n -rw-r--r--  2.0 unx     1738 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Directory.java\n -rw-r--r--  2.0 unx     1842 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/LoadBalance.java\n -rw-r--r--  2.0 unx      977 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Merger.java\n -rw-r--r--  2.0 unx     3315 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/Router.java\n--rw-r--r--  2.0 unx     4120 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/RouterChain.java\n+-rw-r--r--  2.0 unx     4232 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/RouterChain.java\n -rw-r--r--  2.0 unx     1881 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/RouterFactory.java\n -rw-r--r--  2.0 unx     1077 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/RuleConverter.java\n -rw-r--r--  2.0 unx     8518 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/AbstractConfigurator.java\n -rw-r--r--  2.0 unx     1330 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java\n -rw-r--r--  2.0 unx     1270 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java\n -rw-r--r--  2.0 unx     1330 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java\n -rw-r--r--  2.0 unx     1278 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java\n--rw-r--r--  2.0 unx     8529 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java\n+-rw-r--r--  2.0 unx     8754 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java\n -rw-r--r--  2.0 unx     2915 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/parser/model/ConfigItem.java\n -rw-r--r--  2.0 unx     2058 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/configurator/parser/model/ConfiguratorConfig.java\n--rw-r--r--  2.0 unx     4820 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java\n+-rw-r--r--  2.0 unx     4961 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java\n -rw-r--r--  2.0 unx     3787 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/directory/StaticDirectory.java\n--rw-r--r--  2.0 unx     1732 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java\n--rw-r--r--  2.0 unx     3719 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java\n--rw-r--r--  2.0 unx     2260 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java\n--rw-r--r--  2.0 unx     2201 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java\n--rw-r--r--  2.0 unx     2661 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java\n+-rw-r--r--  2.0 unx     1772 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java\n+-rw-r--r--  2.0 unx     3810 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java\n+-rw-r--r--  2.0 unx     2316 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java\n+-rw-r--r--  2.0 unx     2255 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java\n+-rw-r--r--  2.0 unx     2723 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java\n -rw-r--r--  2.0 unx     4289 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java\n -rw-r--r--  2.0 unx     5355 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java\n -rw-r--r--  2.0 unx     5615 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java\n--rw-r--r--  2.0 unx     3328 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java\n+-rw-r--r--  2.0 unx     3408 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java\n -rw-r--r--  2.0 unx     4812 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java\n--rw-r--r--  2.0 unx     4565 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java\n+-rw-r--r--  2.0 unx     4665 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java\n -rw-r--r--  2.0 unx     2393 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/ArrayMerger.java\n -rw-r--r--  2.0 unx     1678 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/BooleanArrayMerger.java\n -rw-r--r--  2.0 unx     1639 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/ByteArrayMerger.java\n -rw-r--r--  2.0 unx     1637 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/CharArrayMerger.java\n--rw-r--r--  2.0 unx     1349 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java\n+-rw-r--r--  2.0 unx     1386 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java\n -rw-r--r--  2.0 unx     1647 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/FloatArrayMerger.java\n--rw-r--r--  2.0 unx     1332 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java\n--rw-r--r--  2.0 unx     1492 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/ListMerger.java\n--rw-r--r--  2.0 unx     1337 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java\n--rw-r--r--  2.0 unx     1466 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/MapMerger.java\n--rw-r--r--  2.0 unx     2851 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/MergerFactory.java\n--rw-r--r--  2.0 unx     1445 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/SetMerger.java\n+-rw-r--r--  2.0 unx     1370 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java\n+-rw-r--r--  2.0 unx     1535 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/ListMerger.java\n+-rw-r--r--  2.0 unx     1374 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java\n+-rw-r--r--  2.0 unx     1506 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/MapMerger.java\n+-rw-r--r--  2.0 unx     2927 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/MergerFactory.java\n+-rw-r--r--  2.0 unx     1484 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/SetMerger.java\n -rw-r--r--  2.0 unx     1647 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/merger/ShortArrayMerger.java\n--rw-r--r--  2.0 unx     2028 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/AbstractRouter.java\n+-rw-r--r--  2.0 unx     2099 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/AbstractRouter.java\n -rw-r--r--  2.0 unx     2610 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java\n -rw-r--r--  2.0 unx    13172 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/ConditionRouter.java\n -rw-r--r--  2.0 unx     1344 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java\n--rw-r--r--  2.0 unx     1419 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java\n--rw-r--r--  2.0 unx     1623 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java\n--rw-r--r--  2.0 unx     5147 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java\n--rw-r--r--  2.0 unx     1445 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java\n--rw-r--r--  2.0 unx     1345 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java\n+-rw-r--r--  2.0 unx     1455 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java\n+-rw-r--r--  2.0 unx     1672 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java\n+-rw-r--r--  2.0 unx     5274 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java\n+-rw-r--r--  2.0 unx     1481 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java\n+-rw-r--r--  2.0 unx     1382 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java\n -rw-r--r--  2.0 unx     1330 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRouterRule.java\n--rw-r--r--  2.0 unx     1748 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java\n--rw-r--r--  2.0 unx     3124 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java\n--rw-r--r--  2.0 unx     3923 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java\n+-rw-r--r--  2.0 unx     1803 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java\n+-rw-r--r--  2.0 unx     3200 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java\n+-rw-r--r--  2.0 unx     4026 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java\n -rw-r--r--  2.0 unx     1303 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/mock/MockRouterFactory.java\n -rw-r--r--  2.0 unx     6962 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/script/ScriptRouter.java\n -rw-r--r--  2.0 unx     1691 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java\n--rw-r--r--  2.0 unx    11640 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java\n--rw-r--r--  2.0 unx     1309 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java\n+-rw-r--r--  2.0 unx    11904 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java\n+-rw-r--r--  2.0 unx     1345 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java\n -rw-r--r--  2.0 unx     1320 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/model/Tag.java\n--rw-r--r--  2.0 unx     2783 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java\n--rw-r--r--  2.0 unx     1553 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java\n--rw-r--r--  2.0 unx    12855 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java\n+-rw-r--r--  2.0 unx     2873 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java\n+-rw-r--r--  2.0 unx     1597 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java\n+-rw-r--r--  2.0 unx    13174 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java\n -rw-r--r--  2.0 unx     1350 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/AvailableCluster.java\n -rw-r--r--  2.0 unx     1756 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/AvailableClusterInvoker.java\n -rw-r--r--  2.0 unx     1304 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/BroadcastCluster.java\n -rw-r--r--  2.0 unx     5152 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java\n -rw-r--r--  2.0 unx     6268 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ClusterUtils.java\n -rw-r--r--  2.0 unx     1369 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailbackCluster.java\n -rw-r--r--  2.0 unx     6871 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java\n -rw-r--r--  2.0 unx     1369 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailfastCluster.java\n -rw-r--r--  2.0 unx     2897 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailfastClusterInvoker.java\n -rw-r--r--  2.0 unx     1369 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailoverCluster.java\n -rw-r--r--  2.0 unx     5517 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailoverClusterInvoker.java\n -rw-r--r--  2.0 unx     1369 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailsafeCluster.java\n -rw-r--r--  2.0 unx     2370 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java\n -rw-r--r--  2.0 unx     1365 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ForkingCluster.java\n--rw-r--r--  2.0 unx     5323 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java\n--rw-r--r--  2.0 unx     1292 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/MergeableCluster.java\n--rw-r--r--  2.0 unx     7649 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java\n--rw-r--r--  2.0 unx     1168 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java\n--rw-r--r--  2.0 unx     1123 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java\n--rw-r--r--  2.0 unx     1776 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java\n--rw-r--r--  2.0 unx     3280 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java\n--rw-r--r--  2.0 unx      954 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java\n--rw-r--r--  2.0 unx     1419 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java\n--rw-r--r--  2.0 unx    11256 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java\n--rw-r--r--  2.0 unx     5320 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java\n+-rw-r--r--  2.0 unx     5436 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java\n+-rw-r--r--  2.0 unx     1324 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/MergeableCluster.java\n+-rw-r--r--  2.0 unx     7842 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java\n+-rw-r--r--  2.0 unx     1197 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java\n+-rw-r--r--  2.0 unx     1150 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java\n+-rw-r--r--  2.0 unx     1830 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java\n+-rw-r--r--  2.0 unx     3370 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java\n+-rw-r--r--  2.0 unx      976 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java\n+-rw-r--r--  2.0 unx     1454 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java\n+-rw-r--r--  2.0 unx    11508 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java\n+-rw-r--r--  2.0 unx     5452 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java\n -rw-r--r--  2.0 unx     7493 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java\n -rw-r--r--  2.0 unx     1466 b- defN 20-Apr-01 08:04 org/apache/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java\n -rw-r--r--  2.0 unx      651 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.Cluster\n -rw-r--r--  2.0 unx      170 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.ConfiguratorFactory\n -rw-r--r--  2.0 unx      387 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.LoadBalance\n -rw-r--r--  2.0 unx      631 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.Merger\n -rw-r--r--  2.0 unx      430 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.RouterFactory\n -rw-r--r--  2.0 unx       83 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository\n--rw-r--r--  2.0 unx      162 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor\n--rw-r--r--  2.0 unx     2616 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml\n+-rw-r--r--  2.0 unx      163 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor\n+-rw-r--r--  2.0 unx     2548 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml\n -rw-r--r--  2.0 unx       68 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.properties\n-143 files, 318382 bytes uncompressed, 113112 bytes compressed:  64.5%\n+143 files, 322087 bytes uncompressed, 113577 bytes compressed:  64.7%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -695,6433 +695,6433 @@\n 01CBF Extract Zip Spec      14 (20) '2.0'\n 01CC0 Extract OS            00 (0) 'MS-DOS'\n 01CC1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n 01CC3 Compression Method    0008 (8) 'Deflated'\n 01CC5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-01CC9 CRC                   8DDA999F (2379913631)\n-01CCD Compressed Size       00000311 (785)\n-01CD1 Uncompressed Size     000005F6 (1526)\n+01CC9 CRC                   C25375A4 (3260249508)\n+01CCD Compressed Size       00000319 (793)\n+01CD1 Uncompressed Size     0000061B (1563)\n 01CD5 Filename Length       0038 (56)\n 01CD7 Extra Length          0000 (0)\n 01CD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x1CD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 01D11 PAYLOAD\n \n-02022 LOCAL HEADER #40      04034B50 (67324752)\n-02026 Extract Zip Spec      14 (20) '2.0'\n-02027 Extract OS            00 (0) 'MS-DOS'\n-02028 General Purpose Flag  0800 (2048)\n+0202A LOCAL HEADER #40      04034B50 (67324752)\n+0202E Extract Zip Spec      14 (20) '2.0'\n+0202F Extract OS            00 (0) 'MS-DOS'\n+02030 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0202A Compression Method    0008 (8) 'Deflated'\n-0202C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-02030 CRC                   27965EEA (664166122)\n-02034 Compressed Size       00000394 (916)\n-02038 Uncompressed Size     00000824 (2084)\n-0203C Filename Length       0029 (41)\n-0203E Extra Length          0000 (0)\n-02040 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+02032 Compression Method    0008 (8) 'Deflated'\n+02034 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02038 CRC                   27965EEA (664166122)\n+0203C Compressed Size       00000394 (916)\n+02040 Uncompressed Size     00000824 (2084)\n+02044 Filename Length       0029 (41)\n+02046 Extra Length          0000 (0)\n+02048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2040: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02069 PAYLOAD\n+02071 PAYLOAD\n \n-023FD LOCAL HEADER #41      04034B50 (67324752)\n-02401 Extract Zip Spec      14 (20) '2.0'\n-02402 Extract OS            00 (0) 'MS-DOS'\n-02403 General Purpose Flag  0800 (2048)\n+02405 LOCAL HEADER #41      04034B50 (67324752)\n+02409 Extract Zip Spec      14 (20) '2.0'\n+0240A Extract OS            00 (0) 'MS-DOS'\n+0240B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02405 Compression Method    0008 (8) 'Deflated'\n-02407 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0240B CRC                   5E2260E1 (1579311329)\n-0240F Compressed Size       0000036C (876)\n-02413 Uncompressed Size     000006CA (1738)\n-02417 Filename Length       0030 (48)\n-02419 Extra Length          0000 (0)\n-0241B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0240D Compression Method    0008 (8) 'Deflated'\n+0240F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02413 CRC                   5EECCC48 (1592577096)\n+02417 Compressed Size       00000377 (887)\n+0241B Uncompressed Size     000006F2 (1778)\n+0241F Filename Length       0030 (48)\n+02421 Extra Length          0000 (0)\n+02423 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x241B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2423: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0244B PAYLOAD\n+02453 PAYLOAD\n \n-027B7 LOCAL HEADER #42      04034B50 (67324752)\n-027BB Extract Zip Spec      14 (20) '2.0'\n-027BC Extract OS            00 (0) 'MS-DOS'\n-027BD General Purpose Flag  0800 (2048)\n+027CA LOCAL HEADER #42      04034B50 (67324752)\n+027CE Extract Zip Spec      14 (20) '2.0'\n+027CF Extract OS            00 (0) 'MS-DOS'\n+027D0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-027BF Compression Method    0008 (8) 'Deflated'\n-027C1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-027C5 CRC                   665C4504 (1717323012)\n-027C9 Compressed Size       0000067E (1662)\n-027CD Uncompressed Size     00001123 (4387)\n-027D1 Filename Length       002E (46)\n-027D3 Extra Length          0000 (0)\n-027D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+027D2 Compression Method    0008 (8) 'Deflated'\n+027D4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+027D8 CRC                   665C4504 (1717323012)\n+027DC Compressed Size       0000067E (1662)\n+027E0 Uncompressed Size     00001123 (4387)\n+027E4 Filename Length       002E (46)\n+027E6 Extra Length          0000 (0)\n+027E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x27D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x27E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02803 PAYLOAD\n+02816 PAYLOAD\n \n-02E81 LOCAL HEADER #43      04034B50 (67324752)\n-02E85 Extract Zip Spec      14 (20) '2.0'\n-02E86 Extract OS            00 (0) 'MS-DOS'\n-02E87 General Purpose Flag  0800 (2048)\n+02E94 LOCAL HEADER #43      04034B50 (67324752)\n+02E98 Extract Zip Spec      14 (20) '2.0'\n+02E99 Extract OS            00 (0) 'MS-DOS'\n+02E9A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02E89 Compression Method    0008 (8) 'Deflated'\n-02E8B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-02E8F CRC                   7FA20103 (2141323523)\n-02E93 Compressed Size       0000029A (666)\n-02E97 Uncompressed Size     00000534 (1332)\n-02E9B Filename Length       0035 (53)\n-02E9D Extra Length          0000 (0)\n-02E9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+02E9C Compression Method    0008 (8) 'Deflated'\n+02E9E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02EA2 CRC                   7FA20103 (2141323523)\n+02EA6 Compressed Size       0000029A (666)\n+02EAA Uncompressed Size     00000534 (1332)\n+02EAE Filename Length       0035 (53)\n+02EB0 Extra Length          0000 (0)\n+02EB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2E9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2EB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02ED4 PAYLOAD\n+02EE7 PAYLOAD\n \n-0316E LOCAL HEADER #44      04034B50 (67324752)\n-03172 Extract Zip Spec      14 (20) '2.0'\n-03173 Extract OS            00 (0) 'MS-DOS'\n-03174 General Purpose Flag  0800 (2048)\n+03181 LOCAL HEADER #44      04034B50 (67324752)\n+03185 Extract Zip Spec      14 (20) '2.0'\n+03186 Extract OS            00 (0) 'MS-DOS'\n+03187 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03176 Compression Method    0008 (8) 'Deflated'\n-03178 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0317C CRC                   EE5647F1 (3998631921)\n-03180 Compressed Size       000004C0 (1216)\n-03184 Uncompressed Size     00000B10 (2832)\n-03188 Filename Length       002B (43)\n-0318A Extra Length          0000 (0)\n-0318C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03189 Compression Method    0008 (8) 'Deflated'\n+0318B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0318F CRC                   D4481329 (3561493289)\n+03193 Compressed Size       000004C9 (1225)\n+03197 Uncompressed Size     00000B76 (2934)\n+0319B Filename Length       002B (43)\n+0319D Extra Length          0000 (0)\n+0319F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x318C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x319F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-031B7 PAYLOAD\n+031CA PAYLOAD\n \n-03677 LOCAL HEADER #45      04034B50 (67324752)\n-0367B Extract Zip Spec      14 (20) '2.0'\n-0367C Extract OS            00 (0) 'MS-DOS'\n-0367D General Purpose Flag  0800 (2048)\n+03693 LOCAL HEADER #45      04034B50 (67324752)\n+03697 Extract Zip Spec      14 (20) '2.0'\n+03698 Extract OS            00 (0) 'MS-DOS'\n+03699 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0367F Compression Method    0008 (8) 'Deflated'\n-03681 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-03685 CRC                   2FCAE9BB (801827259)\n-03689 Compressed Size       0000032F (815)\n-0368D Uncompressed Size     000006CA (1738)\n-03691 Filename Length       002B (43)\n-03693 Extra Length          0000 (0)\n-03695 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0369B Compression Method    0008 (8) 'Deflated'\n+0369D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+036A1 CRC                   2FCAE9BB (801827259)\n+036A5 Compressed Size       0000032F (815)\n+036A9 Uncompressed Size     000006CA (1738)\n+036AD Filename Length       002B (43)\n+036AF Extra Length          0000 (0)\n+036B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3695: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x36B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-036C0 PAYLOAD\n+036DC PAYLOAD\n \n-039EF LOCAL HEADER #46      04034B50 (67324752)\n-039F3 Extract Zip Spec      14 (20) '2.0'\n-039F4 Extract OS            00 (0) 'MS-DOS'\n-039F5 General Purpose Flag  0800 (2048)\n+03A0B LOCAL HEADER #46      04034B50 (67324752)\n+03A0F Extract Zip Spec      14 (20) '2.0'\n+03A10 Extract OS            00 (0) 'MS-DOS'\n+03A11 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-039F7 Compression Method    0008 (8) 'Deflated'\n-039F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-039FD CRC                   2EFAFE2D (788201005)\n-03A01 Compressed Size       0000034D (845)\n-03A05 Uncompressed Size     00000732 (1842)\n-03A09 Filename Length       002D (45)\n-03A0B Extra Length          0000 (0)\n-03A0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03A13 Compression Method    0008 (8) 'Deflated'\n+03A15 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+03A19 CRC                   2EFAFE2D (788201005)\n+03A1D Compressed Size       0000034D (845)\n+03A21 Uncompressed Size     00000732 (1842)\n+03A25 Filename Length       002D (45)\n+03A27 Extra Length          0000 (0)\n+03A29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3A0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3A29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03A3A PAYLOAD\n+03A56 PAYLOAD\n \n-03D87 LOCAL HEADER #47      04034B50 (67324752)\n-03D8B Extract Zip Spec      14 (20) '2.0'\n-03D8C Extract OS            00 (0) 'MS-DOS'\n-03D8D General Purpose Flag  0800 (2048)\n+03DA3 LOCAL HEADER #47      04034B50 (67324752)\n+03DA7 Extract Zip Spec      14 (20) '2.0'\n+03DA8 Extract OS            00 (0) 'MS-DOS'\n+03DA9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03D8F Compression Method    0008 (8) 'Deflated'\n-03D91 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-03D95 CRC                   09ED5602 (166548994)\n-03D99 Compressed Size       0000022B (555)\n-03D9D Uncompressed Size     000003D1 (977)\n-03DA1 Filename Length       0028 (40)\n-03DA3 Extra Length          0000 (0)\n-03DA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03DAB Compression Method    0008 (8) 'Deflated'\n+03DAD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+03DB1 CRC                   09ED5602 (166548994)\n+03DB5 Compressed Size       0000022B (555)\n+03DB9 Uncompressed Size     000003D1 (977)\n+03DBD Filename Length       0028 (40)\n+03DBF Extra Length          0000 (0)\n+03DC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3DA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3DC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03DCD PAYLOAD\n+03DE9 PAYLOAD\n \n-03FF8 LOCAL HEADER #48      04034B50 (67324752)\n-03FFC Extract Zip Spec      14 (20) '2.0'\n-03FFD Extract OS            00 (0) 'MS-DOS'\n-03FFE General Purpose Flag  0800 (2048)\n+04014 LOCAL HEADER #48      04034B50 (67324752)\n+04018 Extract Zip Spec      14 (20) '2.0'\n+04019 Extract OS            00 (0) 'MS-DOS'\n+0401A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04000 Compression Method    0008 (8) 'Deflated'\n-04002 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04006 CRC                   58C25CA8 (1489132712)\n-0400A Compressed Size       0000054B (1355)\n-0400E Uncompressed Size     00000CF3 (3315)\n-04012 Filename Length       0028 (40)\n-04014 Extra Length          0000 (0)\n-04016 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0401C Compression Method    0008 (8) 'Deflated'\n+0401E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04022 CRC                   58C25CA8 (1489132712)\n+04026 Compressed Size       0000054B (1355)\n+0402A Uncompressed Size     00000CF3 (3315)\n+0402E Filename Length       0028 (40)\n+04030 Extra Length          0000 (0)\n+04032 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4016: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4032: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0403E PAYLOAD\n+0405A PAYLOAD\n \n-04589 LOCAL HEADER #49      04034B50 (67324752)\n-0458D Extract Zip Spec      14 (20) '2.0'\n-0458E Extract OS            00 (0) 'MS-DOS'\n-0458F General Purpose Flag  0800 (2048)\n+045A5 LOCAL HEADER #49      04034B50 (67324752)\n+045A9 Extract Zip Spec      14 (20) '2.0'\n+045AA Extract OS            00 (0) 'MS-DOS'\n+045AB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04591 Compression Method    0008 (8) 'Deflated'\n-04593 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04597 CRC                   AC72FCB3 (2893216947)\n-0459B Compressed Size       000005F2 (1522)\n-0459F Uncompressed Size     00001018 (4120)\n-045A3 Filename Length       002D (45)\n-045A5 Extra Length          0000 (0)\n-045A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+045AD Compression Method    0008 (8) 'Deflated'\n+045AF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+045B3 CRC                   234C96D0 (592221904)\n+045B7 Compressed Size       000005FB (1531)\n+045BB Uncompressed Size     00001088 (4232)\n+045BF Filename Length       002D (45)\n+045C1 Extra Length          0000 (0)\n+045C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x45A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x45C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-045D4 PAYLOAD\n+045F0 PAYLOAD\n \n-04BC6 LOCAL HEADER #50      04034B50 (67324752)\n-04BCA Extract Zip Spec      14 (20) '2.0'\n-04BCB Extract OS            00 (0) 'MS-DOS'\n-04BCC General Purpose Flag  0800 (2048)\n+04BEB LOCAL HEADER #50      04034B50 (67324752)\n+04BEF Extract Zip Spec      14 (20) '2.0'\n+04BF0 Extract OS            00 (0) 'MS-DOS'\n+04BF1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04BCE Compression Method    0008 (8) 'Deflated'\n-04BD0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04BD4 CRC                   FDB2D35D (4256355165)\n-04BD8 Compressed Size       00000396 (918)\n-04BDC Uncompressed Size     00000759 (1881)\n-04BE0 Filename Length       002F (47)\n-04BE2 Extra Length          0000 (0)\n-04BE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04BF3 Compression Method    0008 (8) 'Deflated'\n+04BF5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04BF9 CRC                   FDB2D35D (4256355165)\n+04BFD Compressed Size       00000396 (918)\n+04C01 Uncompressed Size     00000759 (1881)\n+04C05 Filename Length       002F (47)\n+04C07 Extra Length          0000 (0)\n+04C09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4BE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4C09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04C13 PAYLOAD\n+04C38 PAYLOAD\n \n-04FA9 LOCAL HEADER #51      04034B50 (67324752)\n-04FAD Extract Zip Spec      14 (20) '2.0'\n-04FAE Extract OS            00 (0) 'MS-DOS'\n-04FAF General Purpose Flag  0800 (2048)\n+04FCE LOCAL HEADER #51      04034B50 (67324752)\n+04FD2 Extract Zip Spec      14 (20) '2.0'\n+04FD3 Extract OS            00 (0) 'MS-DOS'\n+04FD4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04FB1 Compression Method    0008 (8) 'Deflated'\n-04FB3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04FB7 CRC                   BC987223 (3164107299)\n-04FBB Compressed Size       00000252 (594)\n-04FBF Uncompressed Size     00000435 (1077)\n-04FC3 Filename Length       002F (47)\n-04FC5 Extra Length          0000 (0)\n-04FC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04FD6 Compression Method    0008 (8) 'Deflated'\n+04FD8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04FDC CRC                   BC987223 (3164107299)\n+04FE0 Compressed Size       00000252 (594)\n+04FE4 Uncompressed Size     00000435 (1077)\n+04FE8 Filename Length       002F (47)\n+04FEA Extra Length          0000 (0)\n+04FEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4FC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4FEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04FF6 PAYLOAD\n+0501B PAYLOAD\n \n-05248 LOCAL HEADER #52      04034B50 (67324752)\n-0524C Extract Zip Spec      14 (20) '2.0'\n-0524D Extract OS            00 (0) 'MS-DOS'\n-0524E General Purpose Flag  0800 (2048)\n+0526D LOCAL HEADER #52      04034B50 (67324752)\n+05271 Extract Zip Spec      14 (20) '2.0'\n+05272 Extract OS            00 (0) 'MS-DOS'\n+05273 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-05250 Compression Method    0008 (8) 'Deflated'\n-05252 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-05256 CRC                   91868A4C (2441513548)\n-0525A Compressed Size       000008AF (2223)\n-0525E Uncompressed Size     00002146 (8518)\n-05262 Filename Length       0043 (67)\n-05264 Extra Length          0000 (0)\n-05266 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05275 Compression Method    0008 (8) 'Deflated'\n+05277 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0527B CRC                   91868A4C (2441513548)\n+0527F Compressed Size       000008AF (2223)\n+05283 Uncompressed Size     00002146 (8518)\n+05287 Filename Length       0043 (67)\n+05289 Extra Length          0000 (0)\n+0528B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5266: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x528B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-052A9 PAYLOAD\n+052CE PAYLOAD\n \n-05B58 LOCAL HEADER #53      04034B50 (67324752)\n-05B5C Extract Zip Spec      14 (20) '2.0'\n-05B5D Extract OS            00 (0) 'MS-DOS'\n-05B5E General Purpose Flag  0800 (2048)\n+05B7D LOCAL HEADER #53      04034B50 (67324752)\n+05B81 Extract Zip Spec      14 (20) '2.0'\n+05B82 Extract OS            00 (0) 'MS-DOS'\n+05B83 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-05B60 Compression Method    0008 (8) 'Deflated'\n-05B62 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-05B66 CRC                   FB552F52 (4216663890)\n-05B6A Compressed Size       0000028F (655)\n-05B6E Uncompressed Size     00000532 (1330)\n-05B72 Filename Length       0048 (72)\n-05B74 Extra Length          0000 (0)\n-05B76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05B85 Compression Method    0008 (8) 'Deflated'\n+05B87 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+05B8B CRC                   FB552F52 (4216663890)\n+05B8F Compressed Size       0000028F (655)\n+05B93 Uncompressed Size     00000532 (1330)\n+05B97 Filename Length       0048 (72)\n+05B99 Extra Length          0000 (0)\n+05B9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5B76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x5B9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05BBE PAYLOAD\n+05BE3 PAYLOAD\n \n-05E4D LOCAL HEADER #54      04034B50 (67324752)\n-05E51 Extract Zip Spec      14 (20) '2.0'\n-05E52 Extract OS            00 (0) 'MS-DOS'\n-05E53 General Purpose Flag  0800 (2048)\n+05E72 LOCAL HEADER #54      04034B50 (67324752)\n+05E76 Extract Zip Spec      14 (20) '2.0'\n+05E77 Extract OS            00 (0) 'MS-DOS'\n+05E78 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-05E55 Compression Method    0008 (8) 'Deflated'\n-05E57 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-05E5B CRC                   87AAF61F (2276128287)\n-05E5F Compressed Size       00000267 (615)\n-05E63 Uncompressed Size     000004F6 (1270)\n-05E67 Filename Length       004F (79)\n-05E69 Extra Length          0000 (0)\n-05E6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05E7A Compression Method    0008 (8) 'Deflated'\n+05E7C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+05E80 CRC                   87AAF61F (2276128287)\n+05E84 Compressed Size       00000267 (615)\n+05E88 Uncompressed Size     000004F6 (1270)\n+05E8C Filename Length       004F (79)\n+05E8E Extra Length          0000 (0)\n+05E90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5E6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x5E90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05EBA PAYLOAD\n+05EDF PAYLOAD\n \n-06121 LOCAL HEADER #55      04034B50 (67324752)\n-06125 Extract Zip Spec      14 (20) '2.0'\n-06126 Extract OS            00 (0) 'MS-DOS'\n-06127 General Purpose Flag  0800 (2048)\n+06146 LOCAL HEADER #55      04034B50 (67324752)\n+0614A Extract Zip Spec      14 (20) '2.0'\n+0614B Extract OS            00 (0) 'MS-DOS'\n+0614C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-06129 Compression Method    0008 (8) 'Deflated'\n-0612B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0612F CRC                   267D653A (645752122)\n-06133 Compressed Size       00000289 (649)\n-06137 Uncompressed Size     00000532 (1330)\n-0613B Filename Length       004C (76)\n-0613D Extra Length          0000 (0)\n-0613F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0614E Compression Method    0008 (8) 'Deflated'\n+06150 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+06154 CRC                   267D653A (645752122)\n+06158 Compressed Size       00000289 (649)\n+0615C Uncompressed Size     00000532 (1330)\n+06160 Filename Length       004C (76)\n+06162 Extra Length          0000 (0)\n+06164 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x613F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6164: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0618B PAYLOAD\n+061B0 PAYLOAD\n \n-06414 LOCAL HEADER #56      04034B50 (67324752)\n-06418 Extract Zip Spec      14 (20) '2.0'\n-06419 Extract OS            00 (0) 'MS-DOS'\n-0641A General Purpose Flag  0800 (2048)\n+06439 LOCAL HEADER #56      04034B50 (67324752)\n+0643D Extract Zip Spec      14 (20) '2.0'\n+0643E Extract OS            00 (0) 'MS-DOS'\n+0643F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0641C Compression Method    0008 (8) 'Deflated'\n-0641E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-06422 CRC                   2179F10E (561639694)\n-06426 Compressed Size       00000265 (613)\n-0642A Uncompressed Size     000004FE (1278)\n-0642E Filename Length       0053 (83)\n-06430 Extra Length          0000 (0)\n-06432 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+06441 Compression Method    0008 (8) 'Deflated'\n+06443 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+06447 CRC                   2179F10E (561639694)\n+0644B Compressed Size       00000265 (613)\n+0644F Uncompressed Size     000004FE (1278)\n+06453 Filename Length       0053 (83)\n+06455 Extra Length          0000 (0)\n+06457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6432: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-06485 PAYLOAD\n+064AA PAYLOAD\n \n-066EA LOCAL HEADER #57      04034B50 (67324752)\n-066EE Extract Zip Spec      14 (20) '2.0'\n-066EF Extract OS            00 (0) 'MS-DOS'\n-066F0 General Purpose Flag  0800 (2048)\n+0670F LOCAL HEADER #57      04034B50 (67324752)\n+06713 Extract Zip Spec      14 (20) '2.0'\n+06714 Extract OS            00 (0) 'MS-DOS'\n+06715 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-066F2 Compression Method    0008 (8) 'Deflated'\n-066F4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-066F8 CRC                   AF4730A5 (2940678309)\n-066FC Compressed Size       0000089E (2206)\n-06700 Uncompressed Size     00002151 (8529)\n-06704 Filename Length       0042 (66)\n-06706 Extra Length          0000 (0)\n-06708 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+06717 Compression Method    0008 (8) 'Deflated'\n+06719 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0671D CRC                   DEAE7474 (3735975028)\n+06721 Compressed Size       000008AD (2221)\n+06725 Uncompressed Size     00002232 (8754)\n+06729 Filename Length       0042 (66)\n+0672B Extra Length          0000 (0)\n+0672D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6708: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x672D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0674A PAYLOAD\n+0676F PAYLOAD\n \n-06FE8 LOCAL HEADER #58      04034B50 (67324752)\n-06FEC Extract Zip Spec      14 (20) '2.0'\n-06FED Extract OS            00 (0) 'MS-DOS'\n-06FEE General Purpose Flag  0800 (2048)\n+0701C LOCAL HEADER #58      04034B50 (67324752)\n+07020 Extract Zip Spec      14 (20) '2.0'\n+07021 Extract OS            00 (0) 'MS-DOS'\n+07022 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-06FF0 Compression Method    0008 (8) 'Deflated'\n-06FF2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-06FF6 CRC                   036D4C42 (57494594)\n-06FFA Compressed Size       000003B9 (953)\n-06FFE Uncompressed Size     00000B63 (2915)\n-07002 Filename Length       0046 (70)\n-07004 Extra Length          0000 (0)\n-07006 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07024 Compression Method    0008 (8) 'Deflated'\n+07026 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0702A CRC                   036D4C42 (57494594)\n+0702E Compressed Size       000003B9 (953)\n+07032 Uncompressed Size     00000B63 (2915)\n+07036 Filename Length       0046 (70)\n+07038 Extra Length          0000 (0)\n+0703A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7006: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x703A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0704C PAYLOAD\n+07080 PAYLOAD\n \n-07405 LOCAL HEADER #59      04034B50 (67324752)\n-07409 Extract Zip Spec      14 (20) '2.0'\n-0740A Extract OS            00 (0) 'MS-DOS'\n-0740B General Purpose Flag  0800 (2048)\n+07439 LOCAL HEADER #59      04034B50 (67324752)\n+0743D Extract Zip Spec      14 (20) '2.0'\n+0743E Extract OS            00 (0) 'MS-DOS'\n+0743F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0740D Compression Method    0008 (8) 'Deflated'\n-0740F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-07413 CRC                   27E35EC9 (669212361)\n-07417 Compressed Size       0000031E (798)\n-0741B Uncompressed Size     0000080A (2058)\n-0741F Filename Length       004E (78)\n-07421 Extra Length          0000 (0)\n-07423 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07441 Compression Method    0008 (8) 'Deflated'\n+07443 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+07447 CRC                   27E35EC9 (669212361)\n+0744B Compressed Size       0000031E (798)\n+0744F Uncompressed Size     0000080A (2058)\n+07453 Filename Length       004E (78)\n+07455 Extra Length          0000 (0)\n+07457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7423: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07471 PAYLOAD\n+074A5 PAYLOAD\n \n-0778F LOCAL HEADER #60      04034B50 (67324752)\n-07793 Extract Zip Spec      14 (20) '2.0'\n-07794 Extract OS            00 (0) 'MS-DOS'\n-07795 General Purpose Flag  0800 (2048)\n+077C3 LOCAL HEADER #60      04034B50 (67324752)\n+077C7 Extract Zip Spec      14 (20) '2.0'\n+077C8 Extract OS            00 (0) 'MS-DOS'\n+077C9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-07797 Compression Method    0008 (8) 'Deflated'\n-07799 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0779D CRC                   469827B2 (1184376754)\n-077A1 Compressed Size       00000600 (1536)\n-077A5 Uncompressed Size     000012D4 (4820)\n-077A9 Filename Length       003D (61)\n-077AB Extra Length          0000 (0)\n-077AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+077CB Compression Method    0008 (8) 'Deflated'\n+077CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+077D1 CRC                   A6C08F00 (2797637376)\n+077D5 Compressed Size       0000060F (1551)\n+077D9 Uncompressed Size     00001361 (4961)\n+077DD Filename Length       003D (61)\n+077DF Extra Length          0000 (0)\n+077E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x77AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x77E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-077EA PAYLOAD\n+0781E PAYLOAD\n \n-07DEA LOCAL HEADER #61      04034B50 (67324752)\n-07DEE Extract Zip Spec      14 (20) '2.0'\n-07DEF Extract OS            00 (0) 'MS-DOS'\n-07DF0 General Purpose Flag  0800 (2048)\n+07E2D LOCAL HEADER #61      04034B50 (67324752)\n+07E31 Extract Zip Spec      14 (20) '2.0'\n+07E32 Extract OS            00 (0) 'MS-DOS'\n+07E33 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-07DF2 Compression Method    0008 (8) 'Deflated'\n-07DF4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-07DF8 CRC                   FF9ED7FD (4288600061)\n-07DFC Compressed Size       000004D0 (1232)\n-07E00 Uncompressed Size     00000ECB (3787)\n-07E04 Filename Length       003B (59)\n-07E06 Extra Length          0000 (0)\n-07E08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07E35 Compression Method    0008 (8) 'Deflated'\n+07E37 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+07E3B CRC                   FF9ED7FD (4288600061)\n+07E3F Compressed Size       000004D0 (1232)\n+07E43 Uncompressed Size     00000ECB (3787)\n+07E47 Filename Length       003B (59)\n+07E49 Extra Length          0000 (0)\n+07E4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7E08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7E4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07E43 PAYLOAD\n+07E86 PAYLOAD\n \n-08313 LOCAL HEADER #62      04034B50 (67324752)\n-08317 Extract Zip Spec      14 (20) '2.0'\n-08318 Extract OS            00 (0) 'MS-DOS'\n-08319 General Purpose Flag  0800 (2048)\n+08356 LOCAL HEADER #62      04034B50 (67324752)\n+0835A Extract Zip Spec      14 (20) '2.0'\n+0835B Extract OS            00 (0) 'MS-DOS'\n+0835C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0831B Compression Method    0008 (8) 'Deflated'\n-0831D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08321 CRC                   5EE85BF3 (1592286195)\n-08325 Compressed Size       000002D7 (727)\n-08329 Uncompressed Size     000006C4 (1732)\n-0832D Filename Length       0050 (80)\n-0832F Extra Length          0000 (0)\n-08331 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0835E Compression Method    0008 (8) 'Deflated'\n+08360 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08364 CRC                   33C069B6 (868247990)\n+08368 Compressed Size       000002E0 (736)\n+0836C Uncompressed Size     000006EC (1772)\n+08370 Filename Length       0050 (80)\n+08372 Extra Length          0000 (0)\n+08374 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8331: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8374: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08381 PAYLOAD\n+083C4 PAYLOAD\n \n-08658 LOCAL HEADER #63      04034B50 (67324752)\n-0865C Extract Zip Spec      14 (20) '2.0'\n-0865D Extract OS            00 (0) 'MS-DOS'\n-0865E General Purpose Flag  0800 (2048)\n+086A4 LOCAL HEADER #63      04034B50 (67324752)\n+086A8 Extract Zip Spec      14 (20) '2.0'\n+086A9 Extract OS            00 (0) 'MS-DOS'\n+086AA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08660 Compression Method    0008 (8) 'Deflated'\n-08662 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08666 CRC                   4F276AEF (1327983343)\n-0866A Compressed Size       00000481 (1153)\n-0866E Uncompressed Size     00000E87 (3719)\n-08672 Filename Length       0045 (69)\n-08674 Extra Length          0000 (0)\n-08676 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+086AC Compression Method    0008 (8) 'Deflated'\n+086AE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+086B2 CRC                   1A3A8FC1 (440045505)\n+086B6 Compressed Size       0000048D (1165)\n+086BA Uncompressed Size     00000EE2 (3810)\n+086BE Filename Length       0045 (69)\n+086C0 Extra Length          0000 (0)\n+086C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8676: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x86C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-086BB PAYLOAD\n+08707 PAYLOAD\n \n-08B3C LOCAL HEADER #64      04034B50 (67324752)\n-08B40 Extract Zip Spec      14 (20) '2.0'\n-08B41 Extract OS            00 (0) 'MS-DOS'\n-08B42 General Purpose Flag  0800 (2048)\n+08B94 LOCAL HEADER #64      04034B50 (67324752)\n+08B98 Extract Zip Spec      14 (20) '2.0'\n+08B99 Extract OS            00 (0) 'MS-DOS'\n+08B9A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08B44 Compression Method    0008 (8) 'Deflated'\n-08B46 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08B4A CRC                   E239D68F (3795441295)\n-08B4E Compressed Size       00000386 (902)\n-08B52 Uncompressed Size     000008D4 (2260)\n-08B56 Filename Length       0040 (64)\n-08B58 Extra Length          0000 (0)\n-08B5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+08B9C Compression Method    0008 (8) 'Deflated'\n+08B9E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08BA2 CRC                   B2FCFE3E (3002924606)\n+08BA6 Compressed Size       0000038F (911)\n+08BAA Uncompressed Size     0000090C (2316)\n+08BAE Filename Length       0040 (64)\n+08BB0 Extra Length          0000 (0)\n+08BB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8B5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8BB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08B9A PAYLOAD\n+08BF2 PAYLOAD\n \n-08F20 LOCAL HEADER #65      04034B50 (67324752)\n-08F24 Extract Zip Spec      14 (20) '2.0'\n-08F25 Extract OS            00 (0) 'MS-DOS'\n-08F26 General Purpose Flag  0800 (2048)\n+08F81 LOCAL HEADER #65      04034B50 (67324752)\n+08F85 Extract Zip Spec      14 (20) '2.0'\n+08F86 Extract OS            00 (0) 'MS-DOS'\n+08F87 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08F28 Compression Method    0008 (8) 'Deflated'\n-08F2A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08F2E CRC                   5A7B56B1 (1518032561)\n-08F32 Compressed Size       00000359 (857)\n-08F36 Uncompressed Size     00000899 (2201)\n-08F3A Filename Length       004F (79)\n-08F3C Extra Length          0000 (0)\n-08F3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+08F89 Compression Method    0008 (8) 'Deflated'\n+08F8B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08F8F CRC                   8FEFC776 (2414856054)\n+08F93 Compressed Size       00000361 (865)\n+08F97 Uncompressed Size     000008CF (2255)\n+08F9B Filename Length       004F (79)\n+08F9D Extra Length          0000 (0)\n+08F9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8F3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8F9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08F8D PAYLOAD\n+08FEE PAYLOAD\n \n-092E6 LOCAL HEADER #66      04034B50 (67324752)\n-092EA Extract Zip Spec      14 (20) '2.0'\n-092EB Extract OS            00 (0) 'MS-DOS'\n-092EC General Purpose Flag  0800 (2048)\n+0934F LOCAL HEADER #66      04034B50 (67324752)\n+09353 Extract Zip Spec      14 (20) '2.0'\n+09354 Extract OS            00 (0) 'MS-DOS'\n+09355 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-092EE Compression Method    0008 (8) 'Deflated'\n-092F0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-092F4 CRC                   C3191A72 (3273202290)\n-092F8 Compressed Size       000003F3 (1011)\n-092FC Uncompressed Size     00000A65 (2661)\n-09300 Filename Length       0049 (73)\n-09302 Extra Length          0000 (0)\n-09304 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09357 Compression Method    0008 (8) 'Deflated'\n+09359 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0935D CRC                   33BD82F4 (868057844)\n+09361 Compressed Size       000003FF (1023)\n+09365 Uncompressed Size     00000AA3 (2723)\n+09369 Filename Length       0049 (73)\n+0936B Extra Length          0000 (0)\n+0936D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x9304: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x936D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0934D PAYLOAD\n+093B6 PAYLOAD\n \n-09740 LOCAL HEADER #67      04034B50 (67324752)\n-09744 Extract Zip Spec      14 (20) '2.0'\n-09745 Extract OS            00 (0) 'MS-DOS'\n-09746 General Purpose Flag  0800 (2048)\n+097B5 LOCAL HEADER #67      04034B50 (67324752)\n+097B9 Extract Zip Spec      14 (20) '2.0'\n+097BA Extract OS            00 (0) 'MS-DOS'\n+097BB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09748 Compression Method    0008 (8) 'Deflated'\n-0974A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0974E CRC                   BCC9CB9D (3167341469)\n-09752 Compressed Size       000005AE (1454)\n-09756 Uncompressed Size     000010C1 (4289)\n-0975A Filename Length       0041 (65)\n-0975C Extra Length          0000 (0)\n-0975E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+097BD Compression Method    0008 (8) 'Deflated'\n+097BF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+097C3 CRC                   BCC9CB9D (3167341469)\n+097C7 Compressed Size       000005AE (1454)\n+097CB Uncompressed Size     000010C1 (4289)\n+097CF Filename Length       0041 (65)\n+097D1 Extra Length          0000 (0)\n+097D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x975E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x97D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0979F PAYLOAD\n+09814 PAYLOAD\n \n-09D4D LOCAL HEADER #68      04034B50 (67324752)\n-09D51 Extract Zip Spec      14 (20) '2.0'\n-09D52 Extract OS            00 (0) 'MS-DOS'\n-09D53 General Purpose Flag  0800 (2048)\n+09DC2 LOCAL HEADER #68      04034B50 (67324752)\n+09DC6 Extract Zip Spec      14 (20) '2.0'\n+09DC7 Extract OS            00 (0) 'MS-DOS'\n+09DC8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09D55 Compression Method    0008 (8) 'Deflated'\n-09D57 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-09D5B CRC                   D501B98C (3573660044)\n-09D5F Compressed Size       000006C7 (1735)\n-09D63 Uncompressed Size     000014EB (5355)\n-09D67 Filename Length       0047 (71)\n-09D69 Extra Length          0000 (0)\n-09D6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09DCA Compression Method    0008 (8) 'Deflated'\n+09DCC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+09DD0 CRC                   D501B98C (3573660044)\n+09DD4 Compressed Size       000006C7 (1735)\n+09DD8 Uncompressed Size     000014EB (5355)\n+09DDC Filename Length       0047 (71)\n+09DDE Extra Length          0000 (0)\n+09DE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x9D6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x9DE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09DB2 PAYLOAD\n+09E27 PAYLOAD\n \n-0A479 LOCAL HEADER #69      04034B50 (67324752)\n-0A47D Extract Zip Spec      14 (20) '2.0'\n-0A47E Extract OS            00 (0) 'MS-DOS'\n-0A47F General Purpose Flag  0800 (2048)\n+0A4EE LOCAL HEADER #69      04034B50 (67324752)\n+0A4F2 Extract Zip Spec      14 (20) '2.0'\n+0A4F3 Extract OS            00 (0) 'MS-DOS'\n+0A4F4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A481 Compression Method    0008 (8) 'Deflated'\n-0A483 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0A487 CRC                   5955E637 (1498801719)\n-0A48B Compressed Size       000006DA (1754)\n-0A48F Uncompressed Size     000015EF (5615)\n-0A493 Filename Length       0044 (68)\n-0A495 Extra Length          0000 (0)\n-0A497 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A4F6 Compression Method    0008 (8) 'Deflated'\n+0A4F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0A4FC CRC                   5955E637 (1498801719)\n+0A500 Compressed Size       000006DA (1754)\n+0A504 Uncompressed Size     000015EF (5615)\n+0A508 Filename Length       0044 (68)\n+0A50A Extra Length          0000 (0)\n+0A50C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA497: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA50C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A4DB PAYLOAD\n+0A550 PAYLOAD\n \n-0ABB5 LOCAL HEADER #70      04034B50 (67324752)\n-0ABB9 Extract Zip Spec      14 (20) '2.0'\n-0ABBA Extract OS            00 (0) 'MS-DOS'\n-0ABBB General Purpose Flag  0800 (2048)\n+0AC2A LOCAL HEADER #70      04034B50 (67324752)\n+0AC2E Extract Zip Spec      14 (20) '2.0'\n+0AC2F Extract OS            00 (0) 'MS-DOS'\n+0AC30 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0ABBD Compression Method    0008 (8) 'Deflated'\n-0ABBF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0ABC3 CRC                   0BF8995C (200841564)\n-0ABC7 Compressed Size       0000054B (1355)\n-0ABCB Uncompressed Size     00000D00 (3328)\n-0ABCF Filename Length       003F (63)\n-0ABD1 Extra Length          0000 (0)\n-0ABD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0AC32 Compression Method    0008 (8) 'Deflated'\n+0AC34 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0AC38 CRC                   E9DD16E0 (3923580640)\n+0AC3C Compressed Size       00000557 (1367)\n+0AC40 Uncompressed Size     00000D50 (3408)\n+0AC44 Filename Length       003F (63)\n+0AC46 Extra Length          0000 (0)\n+0AC48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xABD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xAC48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0AC12 PAYLOAD\n+0AC87 PAYLOAD\n \n-0B15D LOCAL HEADER #71      04034B50 (67324752)\n-0B161 Extract Zip Spec      14 (20) '2.0'\n-0B162 Extract OS            00 (0) 'MS-DOS'\n-0B163 General Purpose Flag  0800 (2048)\n+0B1DE LOCAL HEADER #71      04034B50 (67324752)\n+0B1E2 Extract Zip Spec      14 (20) '2.0'\n+0B1E3 Extract OS            00 (0) 'MS-DOS'\n+0B1E4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0B165 Compression Method    0008 (8) 'Deflated'\n-0B167 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0B16B CRC                   B03BDD5E (2956713310)\n-0B16F Compressed Size       00000618 (1560)\n-0B173 Uncompressed Size     000012CC (4812)\n-0B177 Filename Length       0043 (67)\n-0B179 Extra Length          0000 (0)\n-0B17B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0B1E6 Compression Method    0008 (8) 'Deflated'\n+0B1E8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0B1EC CRC                   B03BDD5E (2956713310)\n+0B1F0 Compressed Size       00000618 (1560)\n+0B1F4 Uncompressed Size     000012CC (4812)\n+0B1F8 Filename Length       0043 (67)\n+0B1FA Extra Length          0000 (0)\n+0B1FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xB17B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xB1FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0B1BE PAYLOAD\n+0B23F PAYLOAD\n \n-0B7D6 LOCAL HEADER #72      04034B50 (67324752)\n-0B7DA Extract Zip Spec      14 (20) '2.0'\n-0B7DB Extract OS            00 (0) 'MS-DOS'\n-0B7DC General Purpose Flag  0800 (2048)\n+0B857 LOCAL HEADER #72      04034B50 (67324752)\n+0B85B Extract Zip Spec      14 (20) '2.0'\n+0B85C Extract OS            00 (0) 'MS-DOS'\n+0B85D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0B7DE Compression Method    0008 (8) 'Deflated'\n-0B7E0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0B7E4 CRC                   5F890A01 (1602816513)\n-0B7E8 Compressed Size       000005FA (1530)\n-0B7EC Uncompressed Size     000011D5 (4565)\n-0B7F0 Filename Length       0049 (73)\n-0B7F2 Extra Length          0000 (0)\n-0B7F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0B85F Compression Method    0008 (8) 'Deflated'\n+0B861 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0B865 CRC                   0139FCC5 (20577477)\n+0B869 Compressed Size       0000060A (1546)\n+0B86D Uncompressed Size     00001239 (4665)\n+0B871 Filename Length       0049 (73)\n+0B873 Extra Length          0000 (0)\n+0B875 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xB7F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xB875: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0B83D PAYLOAD\n+0B8BE PAYLOAD\n \n-0BE37 LOCAL HEADER #73      04034B50 (67324752)\n-0BE3B Extract Zip Spec      14 (20) '2.0'\n-0BE3C Extract OS            00 (0) 'MS-DOS'\n-0BE3D General Purpose Flag  0800 (2048)\n+0BEC8 LOCAL HEADER #73      04034B50 (67324752)\n+0BECC Extract Zip Spec      14 (20) '2.0'\n+0BECD Extract OS            00 (0) 'MS-DOS'\n+0BECE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0BE3F Compression Method    0008 (8) 'Deflated'\n-0BE41 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0BE45 CRC                   B70DC735 (3071133493)\n-0BE49 Compressed Size       000003D0 (976)\n-0BE4D Uncompressed Size     00000959 (2393)\n-0BE51 Filename Length       0034 (52)\n-0BE53 Extra Length          0000 (0)\n-0BE55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0BED0 Compression Method    0008 (8) 'Deflated'\n+0BED2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0BED6 CRC                   B70DC735 (3071133493)\n+0BEDA Compressed Size       000003D0 (976)\n+0BEDE Uncompressed Size     00000959 (2393)\n+0BEE2 Filename Length       0034 (52)\n+0BEE4 Extra Length          0000 (0)\n+0BEE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xBE55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xBEE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0BE89 PAYLOAD\n+0BF1A PAYLOAD\n \n-0C259 LOCAL HEADER #74      04034B50 (67324752)\n-0C25D Extract Zip Spec      14 (20) '2.0'\n-0C25E Extract OS            00 (0) 'MS-DOS'\n-0C25F General Purpose Flag  0800 (2048)\n+0C2EA LOCAL HEADER #74      04034B50 (67324752)\n+0C2EE Extract Zip Spec      14 (20) '2.0'\n+0C2EF Extract OS            00 (0) 'MS-DOS'\n+0C2F0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C261 Compression Method    0008 (8) 'Deflated'\n-0C263 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0C267 CRC                   5ECBBD86 (1590410630)\n-0C26B Compressed Size       000002E5 (741)\n-0C26F Uncompressed Size     0000068E (1678)\n-0C273 Filename Length       003B (59)\n-0C275 Extra Length          0000 (0)\n-0C277 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C2F2 Compression Method    0008 (8) 'Deflated'\n+0C2F4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0C2F8 CRC                   5ECBBD86 (1590410630)\n+0C2FC Compressed Size       000002E5 (741)\n+0C300 Uncompressed Size     0000068E (1678)\n+0C304 Filename Length       003B (59)\n+0C306 Extra Length          0000 (0)\n+0C308 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC277: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC308: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C2B2 PAYLOAD\n+0C343 PAYLOAD\n \n-0C597 LOCAL HEADER #75      04034B50 (67324752)\n-0C59B Extract Zip Spec      14 (20) '2.0'\n-0C59C Extract OS            00 (0) 'MS-DOS'\n-0C59D General Purpose Flag  0800 (2048)\n+0C628 LOCAL HEADER #75      04034B50 (67324752)\n+0C62C Extract Zip Spec      14 (20) '2.0'\n+0C62D Extract OS            00 (0) 'MS-DOS'\n+0C62E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C59F Compression Method    0008 (8) 'Deflated'\n-0C5A1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0C5A5 CRC                   0CC7ECCD (214428877)\n-0C5A9 Compressed Size       000002E1 (737)\n-0C5AD Uncompressed Size     00000667 (1639)\n-0C5B1 Filename Length       0038 (56)\n-0C5B3 Extra Length          0000 (0)\n-0C5B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C630 Compression Method    0008 (8) 'Deflated'\n+0C632 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0C636 CRC                   0CC7ECCD (214428877)\n+0C63A Compressed Size       000002E1 (737)\n+0C63E Uncompressed Size     00000667 (1639)\n+0C642 Filename Length       0038 (56)\n+0C644 Extra Length          0000 (0)\n+0C646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC5B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C5ED PAYLOAD\n+0C67E PAYLOAD\n \n-0C8CE LOCAL HEADER #76      04034B50 (67324752)\n-0C8D2 Extract Zip Spec      14 (20) '2.0'\n-0C8D3 Extract OS            00 (0) 'MS-DOS'\n-0C8D4 General Purpose Flag  0800 (2048)\n+0C95F LOCAL HEADER #76      04034B50 (67324752)\n+0C963 Extract Zip Spec      14 (20) '2.0'\n+0C964 Extract OS            00 (0) 'MS-DOS'\n+0C965 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C8D6 Compression Method    0008 (8) 'Deflated'\n-0C8D8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0C8DC CRC                   091CC51B (152880411)\n-0C8E0 Compressed Size       000002DF (735)\n-0C8E4 Uncompressed Size     00000665 (1637)\n-0C8E8 Filename Length       0038 (56)\n-0C8EA Extra Length          0000 (0)\n-0C8EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C967 Compression Method    0008 (8) 'Deflated'\n+0C969 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0C96D CRC                   091CC51B (152880411)\n+0C971 Compressed Size       000002DF (735)\n+0C975 Uncompressed Size     00000665 (1637)\n+0C979 Filename Length       0038 (56)\n+0C97B Extra Length          0000 (0)\n+0C97D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC8EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC97D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C924 PAYLOAD\n+0C9B5 PAYLOAD\n \n-0CC03 LOCAL HEADER #77      04034B50 (67324752)\n-0CC07 Extract Zip Spec      14 (20) '2.0'\n-0CC08 Extract OS            00 (0) 'MS-DOS'\n-0CC09 General Purpose Flag  0800 (2048)\n+0CC94 LOCAL HEADER #77      04034B50 (67324752)\n+0CC98 Extract Zip Spec      14 (20) '2.0'\n+0CC99 Extract OS            00 (0) 'MS-DOS'\n+0CC9A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0CC0B Compression Method    0008 (8) 'Deflated'\n-0CC0D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0CC11 CRC                   04E4C5B6 (82101686)\n-0CC15 Compressed Size       000002B3 (691)\n-0CC19 Uncompressed Size     00000545 (1349)\n-0CC1D Filename Length       003A (58)\n-0CC1F Extra Length          0000 (0)\n-0CC21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0CC9C Compression Method    0008 (8) 'Deflated'\n+0CC9E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0CCA2 CRC                   43B612AE (1136005806)\n+0CCA6 Compressed Size       000002B9 (697)\n+0CCAA Uncompressed Size     0000056A (1386)\n+0CCAE Filename Length       003A (58)\n+0CCB0 Extra Length          0000 (0)\n+0CCB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xCC21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xCCB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0CC5B PAYLOAD\n+0CCEC PAYLOAD\n \n-0CF0E LOCAL HEADER #78      04034B50 (67324752)\n-0CF12 Extract Zip Spec      14 (20) '2.0'\n-0CF13 Extract OS            00 (0) 'MS-DOS'\n-0CF14 General Purpose Flag  0800 (2048)\n+0CFA5 LOCAL HEADER #78      04034B50 (67324752)\n+0CFA9 Extract Zip Spec      14 (20) '2.0'\n+0CFAA Extract OS            00 (0) 'MS-DOS'\n+0CFAB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0CF16 Compression Method    0008 (8) 'Deflated'\n-0CF18 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0CF1C CRC                   DDA728F5 (3718719733)\n-0CF20 Compressed Size       000002E0 (736)\n-0CF24 Uncompressed Size     0000066F (1647)\n-0CF28 Filename Length       0039 (57)\n-0CF2A Extra Length          0000 (0)\n-0CF2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0CFAD Compression Method    0008 (8) 'Deflated'\n+0CFAF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0CFB3 CRC                   DDA728F5 (3718719733)\n+0CFB7 Compressed Size       000002E0 (736)\n+0CFBB Uncompressed Size     0000066F (1647)\n+0CFBF Filename Length       0039 (57)\n+0CFC1 Extra Length          0000 (0)\n+0CFC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xCF2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xCFC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0CF65 PAYLOAD\n+0CFFC PAYLOAD\n \n-0D245 LOCAL HEADER #79      04034B50 (67324752)\n-0D249 Extract Zip Spec      14 (20) '2.0'\n-0D24A Extract OS            00 (0) 'MS-DOS'\n-0D24B General Purpose Flag  0800 (2048)\n+0D2DC LOCAL HEADER #79      04034B50 (67324752)\n+0D2E0 Extract Zip Spec      14 (20) '2.0'\n+0D2E1 Extract OS            00 (0) 'MS-DOS'\n+0D2E2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D24D Compression Method    0008 (8) 'Deflated'\n-0D24F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0D253 CRC                   443829ED (1144531437)\n-0D257 Compressed Size       000002B0 (688)\n-0D25B Uncompressed Size     00000534 (1332)\n-0D25F Filename Length       0037 (55)\n-0D261 Extra Length          0000 (0)\n-0D263 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D2E4 Compression Method    0008 (8) 'Deflated'\n+0D2E6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0D2EA CRC                   389B0984 (949684612)\n+0D2EE Compressed Size       000002B7 (695)\n+0D2F2 Uncompressed Size     0000055A (1370)\n+0D2F6 Filename Length       0037 (55)\n+0D2F8 Extra Length          0000 (0)\n+0D2FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD263: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD2FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D29A PAYLOAD\n+0D331 PAYLOAD\n \n-0D54A LOCAL HEADER #80      04034B50 (67324752)\n-0D54E Extract Zip Spec      14 (20) '2.0'\n-0D54F Extract OS            00 (0) 'MS-DOS'\n-0D550 General Purpose Flag  0800 (2048)\n+0D5E8 LOCAL HEADER #80      04034B50 (67324752)\n+0D5EC Extract Zip Spec      14 (20) '2.0'\n+0D5ED Extract OS            00 (0) 'MS-DOS'\n+0D5EE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D552 Compression Method    0008 (8) 'Deflated'\n-0D554 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0D558 CRC                   482DE9DF (1210968543)\n-0D55C Compressed Size       000002CE (718)\n-0D560 Uncompressed Size     000005D4 (1492)\n-0D564 Filename Length       0033 (51)\n-0D566 Extra Length          0000 (0)\n-0D568 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D5F0 Compression Method    0008 (8) 'Deflated'\n+0D5F2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0D5F6 CRC                   792EF15D (2033119581)\n+0D5FA Compressed Size       000002D8 (728)\n+0D5FE Uncompressed Size     000005FF (1535)\n+0D602 Filename Length       0033 (51)\n+0D604 Extra Length          0000 (0)\n+0D606 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD568: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD606: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D59B PAYLOAD\n+0D639 PAYLOAD\n \n-0D869 LOCAL HEADER #81      04034B50 (67324752)\n-0D86D Extract Zip Spec      14 (20) '2.0'\n-0D86E Extract OS            00 (0) 'MS-DOS'\n-0D86F General Purpose Flag  0800 (2048)\n+0D911 LOCAL HEADER #81      04034B50 (67324752)\n+0D915 Extract Zip Spec      14 (20) '2.0'\n+0D916 Extract OS            00 (0) 'MS-DOS'\n+0D917 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D871 Compression Method    0008 (8) 'Deflated'\n-0D873 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0D877 CRC                   D3DCC156 (3554459990)\n-0D87B Compressed Size       000002B1 (689)\n-0D87F Uncompressed Size     00000539 (1337)\n-0D883 Filename Length       0038 (56)\n-0D885 Extra Length          0000 (0)\n-0D887 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D919 Compression Method    0008 (8) 'Deflated'\n+0D91B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0D91F CRC                   C7E5A422 (3353715746)\n+0D923 Compressed Size       000002B7 (695)\n+0D927 Uncompressed Size     0000055E (1374)\n+0D92B Filename Length       0038 (56)\n+0D92D Extra Length          0000 (0)\n+0D92F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD887: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD92F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D8BF PAYLOAD\n+0D967 PAYLOAD\n \n-0DB70 LOCAL HEADER #82      04034B50 (67324752)\n-0DB74 Extract Zip Spec      14 (20) '2.0'\n-0DB75 Extract OS            00 (0) 'MS-DOS'\n-0DB76 General Purpose Flag  0800 (2048)\n+0DC1E LOCAL HEADER #82      04034B50 (67324752)\n+0DC22 Extract Zip Spec      14 (20) '2.0'\n+0DC23 Extract OS            00 (0) 'MS-DOS'\n+0DC24 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0DB78 Compression Method    0008 (8) 'Deflated'\n-0DB7A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0DB7E CRC                   C4DD1C85 (3302825093)\n-0DB82 Compressed Size       000002D7 (727)\n-0DB86 Uncompressed Size     000005BA (1466)\n-0DB8A Filename Length       0032 (50)\n-0DB8C Extra Length          0000 (0)\n-0DB8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0DC26 Compression Method    0008 (8) 'Deflated'\n+0DC28 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0DC2C CRC                   2C8707FF (747046911)\n+0DC30 Compressed Size       000002DF (735)\n+0DC34 Uncompressed Size     000005E2 (1506)\n+0DC38 Filename Length       0032 (50)\n+0DC3A Extra Length          0000 (0)\n+0DC3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDB8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xDC3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0DBC0 PAYLOAD\n+0DC6E PAYLOAD\n \n-0DE97 LOCAL HEADER #83      04034B50 (67324752)\n-0DE9B Extract Zip Spec      14 (20) '2.0'\n-0DE9C Extract OS            00 (0) 'MS-DOS'\n-0DE9D General Purpose Flag  0800 (2048)\n+0DF4D LOCAL HEADER #83      04034B50 (67324752)\n+0DF51 Extract Zip Spec      14 (20) '2.0'\n+0DF52 Extract OS            00 (0) 'MS-DOS'\n+0DF53 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0DE9F Compression Method    0008 (8) 'Deflated'\n-0DEA1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0DEA5 CRC                   21EA98CC (569022668)\n-0DEA9 Compressed Size       00000442 (1090)\n-0DEAD Uncompressed Size     00000B23 (2851)\n-0DEB1 Filename Length       0036 (54)\n-0DEB3 Extra Length          0000 (0)\n-0DEB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0DF55 Compression Method    0008 (8) 'Deflated'\n+0DF57 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0DF5B CRC                   B5B9A154 (3048841556)\n+0DF5F Compressed Size       0000044E (1102)\n+0DF63 Uncompressed Size     00000B6F (2927)\n+0DF67 Filename Length       0036 (54)\n+0DF69 Extra Length          0000 (0)\n+0DF6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDEB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xDF6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0DEEB PAYLOAD\n+0DFA1 PAYLOAD\n \n-0E32D LOCAL HEADER #84      04034B50 (67324752)\n-0E331 Extract Zip Spec      14 (20) '2.0'\n-0E332 Extract OS            00 (0) 'MS-DOS'\n-0E333 General Purpose Flag  0800 (2048)\n+0E3EF LOCAL HEADER #84      04034B50 (67324752)\n+0E3F3 Extract Zip Spec      14 (20) '2.0'\n+0E3F4 Extract OS            00 (0) 'MS-DOS'\n+0E3F5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E335 Compression Method    0008 (8) 'Deflated'\n-0E337 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0E33B CRC                   96DC7168 (2531029352)\n-0E33F Compressed Size       000002CF (719)\n-0E343 Uncompressed Size     000005A5 (1445)\n-0E347 Filename Length       0032 (50)\n-0E349 Extra Length          0000 (0)\n-0E34B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0E3F7 Compression Method    0008 (8) 'Deflated'\n+0E3F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0E3FD CRC                   B82C3560 (3089904992)\n+0E401 Compressed Size       000002D6 (726)\n+0E405 Uncompressed Size     000005CC (1484)\n+0E409 Filename Length       0032 (50)\n+0E40B Extra Length          0000 (0)\n+0E40D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE34B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE40D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E37D PAYLOAD\n+0E43F PAYLOAD\n \n-0E64C LOCAL HEADER #85      04034B50 (67324752)\n-0E650 Extract Zip Spec      14 (20) '2.0'\n-0E651 Extract OS            00 (0) 'MS-DOS'\n-0E652 General Purpose Flag  0800 (2048)\n+0E715 LOCAL HEADER #85      04034B50 (67324752)\n+0E719 Extract Zip Spec      14 (20) '2.0'\n+0E71A Extract OS            00 (0) 'MS-DOS'\n+0E71B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E654 Compression Method    0008 (8) 'Deflated'\n-0E656 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0E65A CRC                   F57D6E98 (4118638232)\n-0E65E Compressed Size       000002DF (735)\n-0E662 Uncompressed Size     0000066F (1647)\n-0E666 Filename Length       0039 (57)\n-0E668 Extra Length          0000 (0)\n-0E66A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0E71D Compression Method    0008 (8) 'Deflated'\n+0E71F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0E723 CRC                   F57D6E98 (4118638232)\n+0E727 Compressed Size       000002DF (735)\n+0E72B Uncompressed Size     0000066F (1647)\n+0E72F Filename Length       0039 (57)\n+0E731 Extra Length          0000 (0)\n+0E733 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE66A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE733: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E6A3 PAYLOAD\n+0E76C PAYLOAD\n \n-0E982 LOCAL HEADER #86      04034B50 (67324752)\n-0E986 Extract Zip Spec      14 (20) '2.0'\n-0E987 Extract OS            00 (0) 'MS-DOS'\n-0E988 General Purpose Flag  0800 (2048)\n+0EA4B LOCAL HEADER #86      04034B50 (67324752)\n+0EA4F Extract Zip Spec      14 (20) '2.0'\n+0EA50 Extract OS            00 (0) 'MS-DOS'\n+0EA51 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E98A Compression Method    0008 (8) 'Deflated'\n-0E98C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0E990 CRC                   CD8D1CAF (3448577199)\n-0E994 Compressed Size       00000325 (805)\n-0E998 Uncompressed Size     000007EC (2028)\n-0E99C Filename Length       0037 (55)\n-0E99E Extra Length          0000 (0)\n-0E9A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0EA53 Compression Method    0008 (8) 'Deflated'\n+0EA55 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0EA59 CRC                   C962C74B (3378693963)\n+0EA5D Compressed Size       0000032F (815)\n+0EA61 Uncompressed Size     00000833 (2099)\n+0EA65 Filename Length       0037 (55)\n+0EA67 Extra Length          0000 (0)\n+0EA69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE9A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xEA69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E9D7 PAYLOAD\n+0EAA0 PAYLOAD\n \n-0ECFC LOCAL HEADER #87      04034B50 (67324752)\n-0ED00 Extract Zip Spec      14 (20) '2.0'\n-0ED01 Extract OS            00 (0) 'MS-DOS'\n-0ED02 General Purpose Flag  0800 (2048)\n+0EDCF LOCAL HEADER #87      04034B50 (67324752)\n+0EDD3 Extract Zip Spec      14 (20) '2.0'\n+0EDD4 Extract OS            00 (0) 'MS-DOS'\n+0EDD5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0ED04 Compression Method    0008 (8) 'Deflated'\n-0ED06 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0ED0A CRC                   7A4C73B7 (2051830711)\n-0ED0E Compressed Size       00000367 (871)\n-0ED12 Uncompressed Size     00000A32 (2610)\n-0ED16 Filename Length       003B (59)\n-0ED18 Extra Length          0000 (0)\n-0ED1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0EDD7 Compression Method    0008 (8) 'Deflated'\n+0EDD9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0EDDD CRC                   7A4C73B7 (2051830711)\n+0EDE1 Compressed Size       00000367 (871)\n+0EDE5 Uncompressed Size     00000A32 (2610)\n+0EDE9 Filename Length       003B (59)\n+0EDEB Extra Length          0000 (0)\n+0EDED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xED1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xEDED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0ED55 PAYLOAD\n+0EE28 PAYLOAD\n \n-0F0BC LOCAL HEADER #88      04034B50 (67324752)\n-0F0C0 Extract Zip Spec      14 (20) '2.0'\n-0F0C1 Extract OS            00 (0) 'MS-DOS'\n-0F0C2 General Purpose Flag  0800 (2048)\n+0F18F LOCAL HEADER #88      04034B50 (67324752)\n+0F193 Extract Zip Spec      14 (20) '2.0'\n+0F194 Extract OS            00 (0) 'MS-DOS'\n+0F195 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0F0C4 Compression Method    0008 (8) 'Deflated'\n-0F0C6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0F0CA CRC                   BCF898DF (3170408671)\n-0F0CE Compressed Size       00000C4A (3146)\n-0F0D2 Uncompressed Size     00003374 (13172)\n-0F0D6 Filename Length       0042 (66)\n-0F0D8 Extra Length          0000 (0)\n-0F0DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0F197 Compression Method    0008 (8) 'Deflated'\n+0F199 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0F19D CRC                   BCF898DF (3170408671)\n+0F1A1 Compressed Size       00000C4A (3146)\n+0F1A5 Uncompressed Size     00003374 (13172)\n+0F1A9 Filename Length       0042 (66)\n+0F1AB Extra Length          0000 (0)\n+0F1AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xF0DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xF1AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0F11C PAYLOAD\n+0F1EF PAYLOAD\n \n-0FD66 LOCAL HEADER #89      04034B50 (67324752)\n-0FD6A Extract Zip Spec      14 (20) '2.0'\n-0FD6B Extract OS            00 (0) 'MS-DOS'\n-0FD6C General Purpose Flag  0800 (2048)\n+0FE39 LOCAL HEADER #89      04034B50 (67324752)\n+0FE3D Extract Zip Spec      14 (20) '2.0'\n+0FE3E Extract OS            00 (0) 'MS-DOS'\n+0FE3F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0FD6E Compression Method    0008 (8) 'Deflated'\n-0FD70 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0FD74 CRC                   E35903B0 (3814261680)\n-0FD78 Compressed Size       0000029B (667)\n-0FD7C Uncompressed Size     00000540 (1344)\n-0FD80 Filename Length       0049 (73)\n-0FD82 Extra Length          0000 (0)\n-0FD84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0FE41 Compression Method    0008 (8) 'Deflated'\n+0FE43 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0FE47 CRC                   E35903B0 (3814261680)\n+0FE4B Compressed Size       0000029B (667)\n+0FE4F Uncompressed Size     00000540 (1344)\n+0FE53 Filename Length       0049 (73)\n+0FE55 Extra Length          0000 (0)\n+0FE57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xFD84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xFE57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0FDCD PAYLOAD\n+0FEA0 PAYLOAD\n \n-10068 LOCAL HEADER #90      04034B50 (67324752)\n-1006C Extract Zip Spec      14 (20) '2.0'\n-1006D Extract OS            00 (0) 'MS-DOS'\n-1006E General Purpose Flag  0800 (2048)\n+1013B LOCAL HEADER #90      04034B50 (67324752)\n+1013F Extract Zip Spec      14 (20) '2.0'\n+10140 Extract OS            00 (0) 'MS-DOS'\n+10141 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10070 Compression Method    0008 (8) 'Deflated'\n-10072 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-10076 CRC                   76BEB07B (1992208507)\n-1007A Compressed Size       000002E5 (741)\n-1007E Uncompressed Size     0000058B (1419)\n-10082 Filename Length       0043 (67)\n-10084 Extra Length          0000 (0)\n-10086 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10143 Compression Method    0008 (8) 'Deflated'\n+10145 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+10149 CRC                   9ADBEDAC (2598104492)\n+1014D Compressed Size       000002ED (749)\n+10151 Uncompressed Size     000005AF (1455)\n+10155 Filename Length       0043 (67)\n+10157 Extra Length          0000 (0)\n+10159 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10086: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10159: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-100C9 PAYLOAD\n+1019C PAYLOAD\n \n-103AE LOCAL HEADER #91      04034B50 (67324752)\n-103B2 Extract Zip Spec      14 (20) '2.0'\n-103B3 Extract OS            00 (0) 'MS-DOS'\n-103B4 General Purpose Flag  0800 (2048)\n+10489 LOCAL HEADER #91      04034B50 (67324752)\n+1048D Extract Zip Spec      14 (20) '2.0'\n+1048E Extract OS            00 (0) 'MS-DOS'\n+1048F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-103B6 Compression Method    0008 (8) 'Deflated'\n-103B8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-103BC CRC                   AFF80853 (2952267859)\n-103C0 Compressed Size       000002EF (751)\n-103C4 Uncompressed Size     00000657 (1623)\n-103C8 Filename Length       004A (74)\n-103CA Extra Length          0000 (0)\n-103CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10491 Compression Method    0008 (8) 'Deflated'\n+10493 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+10497 CRC                   0E6EFC60 (242154592)\n+1049B Compressed Size       000002F7 (759)\n+1049F Uncompressed Size     00000688 (1672)\n+104A3 Filename Length       004A (74)\n+104A5 Extra Length          0000 (0)\n+104A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x103CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x104A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10416 PAYLOAD\n+104F1 PAYLOAD\n \n-10705 LOCAL HEADER #92      04034B50 (67324752)\n-10709 Extract Zip Spec      14 (20) '2.0'\n-1070A Extract OS            00 (0) 'MS-DOS'\n-1070B General Purpose Flag  0800 (2048)\n+107E8 LOCAL HEADER #92      04034B50 (67324752)\n+107EC Extract Zip Spec      14 (20) '2.0'\n+107ED Extract OS            00 (0) 'MS-DOS'\n+107EE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1070D Compression Method    0008 (8) 'Deflated'\n-1070F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-10713 CRC                   64878DEF (1686605295)\n-10717 Compressed Size       00000677 (1655)\n-1071B Uncompressed Size     0000141B (5147)\n-1071F Filename Length       004A (74)\n-10721 Extra Length          0000 (0)\n-10723 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+107F0 Compression Method    0008 (8) 'Deflated'\n+107F2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+107F6 CRC                   44A1E13F (1151459647)\n+107FA Compressed Size       00000685 (1669)\n+107FE Uncompressed Size     0000149A (5274)\n+10802 Filename Length       004A (74)\n+10804 Extra Length          0000 (0)\n+10806 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10723: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10806: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1076D PAYLOAD\n+10850 PAYLOAD\n \n-10DE4 LOCAL HEADER #93      04034B50 (67324752)\n-10DE8 Extract Zip Spec      14 (20) '2.0'\n-10DE9 Extract OS            00 (0) 'MS-DOS'\n-10DEA General Purpose Flag  0800 (2048)\n+10ED5 LOCAL HEADER #93      04034B50 (67324752)\n+10ED9 Extract Zip Spec      14 (20) '2.0'\n+10EDA Extract OS            00 (0) 'MS-DOS'\n+10EDB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10DEC Compression Method    0008 (8) 'Deflated'\n-10DEE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-10DF2 CRC                   B919F4D5 (3105486037)\n-10DF6 Compressed Size       000002EA (746)\n-10DFA Uncompressed Size     000005A5 (1445)\n-10DFE Filename Length       0047 (71)\n-10E00 Extra Length          0000 (0)\n-10E02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10EDD Compression Method    0008 (8) 'Deflated'\n+10EDF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+10EE3 CRC                   F0BD77BE (4038948798)\n+10EE7 Compressed Size       000002F5 (757)\n+10EEB Uncompressed Size     000005C9 (1481)\n+10EEF Filename Length       0047 (71)\n+10EF1 Extra Length          0000 (0)\n+10EF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10E02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10EF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10E49 PAYLOAD\n+10F3A PAYLOAD\n \n-11133 LOCAL HEADER #94      04034B50 (67324752)\n-11137 Extract Zip Spec      14 (20) '2.0'\n-11138 Extract OS            00 (0) 'MS-DOS'\n-11139 General Purpose Flag  0800 (2048)\n+1122F LOCAL HEADER #94      04034B50 (67324752)\n+11233 Extract Zip Spec      14 (20) '2.0'\n+11234 Extract OS            00 (0) 'MS-DOS'\n+11235 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1113B Compression Method    0008 (8) 'Deflated'\n-1113D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-11141 CRC                   06325F9E (103964574)\n-11145 Compressed Size       000002A9 (681)\n-11149 Uncompressed Size     00000541 (1345)\n-1114D Filename Length       004E (78)\n-1114F Extra Length          0000 (0)\n-11151 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+11237 Compression Method    0008 (8) 'Deflated'\n+11239 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1123D CRC                   6CA6E955 (1822878037)\n+11241 Compressed Size       000002B3 (691)\n+11245 Uncompressed Size     00000566 (1382)\n+11249 Filename Length       004E (78)\n+1124B Extra Length          0000 (0)\n+1124D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11151: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1124D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1119F PAYLOAD\n+1129B PAYLOAD\n \n-11448 LOCAL HEADER #95      04034B50 (67324752)\n-1144C Extract Zip Spec      14 (20) '2.0'\n-1144D Extract OS            00 (0) 'MS-DOS'\n-1144E General Purpose Flag  0800 (2048)\n+1154E LOCAL HEADER #95      04034B50 (67324752)\n+11552 Extract Zip Spec      14 (20) '2.0'\n+11553 Extract OS            00 (0) 'MS-DOS'\n+11554 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11450 Compression Method    0008 (8) 'Deflated'\n-11452 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-11456 CRC                   1C57CB8B (475515787)\n-1145A Compressed Size       00000287 (647)\n-1145E Uncompressed Size     00000532 (1330)\n-11462 Filename Length       0053 (83)\n-11464 Extra Length          0000 (0)\n-11466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+11556 Compression Method    0008 (8) 'Deflated'\n+11558 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1155C CRC                   1C57CB8B (475515787)\n+11560 Compressed Size       00000287 (647)\n+11564 Uncompressed Size     00000532 (1330)\n+11568 Filename Length       0053 (83)\n+1156A Extra Length          0000 (0)\n+1156C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1156C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-114B9 PAYLOAD\n+115BF PAYLOAD\n \n-11740 LOCAL HEADER #96      04034B50 (67324752)\n-11744 Extract Zip Spec      14 (20) '2.0'\n-11745 Extract OS            00 (0) 'MS-DOS'\n-11746 General Purpose Flag  0800 (2048)\n+11846 LOCAL HEADER #96      04034B50 (67324752)\n+1184A Extract Zip Spec      14 (20) '2.0'\n+1184B Extract OS            00 (0) 'MS-DOS'\n+1184C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11748 Compression Method    0008 (8) 'Deflated'\n-1174A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1174E CRC                   9B53D29B (2605961883)\n-11752 Compressed Size       0000035C (860)\n-11756 Uncompressed Size     000006D4 (1748)\n-1175A Filename Length       0053 (83)\n-1175C Extra Length          0000 (0)\n-1175E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1184E Compression Method    0008 (8) 'Deflated'\n+11850 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+11854 CRC                   CDABD9DC (3450591708)\n+11858 Compressed Size       00000363 (867)\n+1185C Uncompressed Size     0000070B (1803)\n+11860 Filename Length       0053 (83)\n+11862 Extra Length          0000 (0)\n+11864 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1175E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11864: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-117B1 PAYLOAD\n+118B7 PAYLOAD\n \n-11B0D LOCAL HEADER #97      04034B50 (67324752)\n-11B11 Extract Zip Spec      14 (20) '2.0'\n-11B12 Extract OS            00 (0) 'MS-DOS'\n-11B13 General Purpose Flag  0800 (2048)\n+11C1A LOCAL HEADER #97      04034B50 (67324752)\n+11C1E Extract Zip Spec      14 (20) '2.0'\n+11C1F Extract OS            00 (0) 'MS-DOS'\n+11C20 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11B15 Compression Method    0008 (8) 'Deflated'\n-11B17 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-11B1B CRC                   F601821B (4127293979)\n-11B1F Compressed Size       000004C7 (1223)\n-11B23 Uncompressed Size     00000C34 (3124)\n-11B27 Filename Length       003F (63)\n-11B29 Extra Length          0000 (0)\n-11B2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+11C22 Compression Method    0008 (8) 'Deflated'\n+11C24 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+11C28 CRC                   EF9BEB14 (4019972884)\n+11C2C Compressed Size       000004D2 (1234)\n+11C30 Uncompressed Size     00000C80 (3200)\n+11C34 Filename Length       003F (63)\n+11C36 Extra Length          0000 (0)\n+11C38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11B2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11C38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-11B6A PAYLOAD\n+11C77 PAYLOAD\n \n-12031 LOCAL HEADER #98      04034B50 (67324752)\n-12035 Extract Zip Spec      14 (20) '2.0'\n-12036 Extract OS            00 (0) 'MS-DOS'\n-12037 General Purpose Flag  0800 (2048)\n+12149 LOCAL HEADER #98      04034B50 (67324752)\n+1214D Extract Zip Spec      14 (20) '2.0'\n+1214E Extract OS            00 (0) 'MS-DOS'\n+1214F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12039 Compression Method    0008 (8) 'Deflated'\n-1203B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1203F CRC                   9E4A1FA8 (2655657896)\n-12043 Compressed Size       000004FD (1277)\n-12047 Uncompressed Size     00000F53 (3923)\n-1204B Filename Length       0042 (66)\n-1204D Extra Length          0000 (0)\n-1204F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12151 Compression Method    0008 (8) 'Deflated'\n+12153 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+12157 CRC                   720B0082 (1913323650)\n+1215B Compressed Size       00000508 (1288)\n+1215F Uncompressed Size     00000FBA (4026)\n+12163 Filename Length       0042 (66)\n+12165 Extra Length          0000 (0)\n+12167 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1204F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x12167: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-12091 PAYLOAD\n+121A9 PAYLOAD\n \n-1258E LOCAL HEADER #99      04034B50 (67324752)\n-12592 Extract Zip Spec      14 (20) '2.0'\n-12593 Extract OS            00 (0) 'MS-DOS'\n-12594 General Purpose Flag  0800 (2048)\n+126B1 LOCAL HEADER #99      04034B50 (67324752)\n+126B5 Extract Zip Spec      14 (20) '2.0'\n+126B6 Extract OS            00 (0) 'MS-DOS'\n+126B7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12596 Compression Method    0008 (8) 'Deflated'\n-12598 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1259C CRC                   0EB84276 (246956662)\n-125A0 Compressed Size       00000292 (658)\n-125A4 Uncompressed Size     00000517 (1303)\n-125A8 Filename Length       003F (63)\n-125AA Extra Length          0000 (0)\n-125AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+126B9 Compression Method    0008 (8) 'Deflated'\n+126BB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+126BF CRC                   0EB84276 (246956662)\n+126C3 Compressed Size       00000292 (658)\n+126C7 Uncompressed Size     00000517 (1303)\n+126CB Filename Length       003F (63)\n+126CD Extra Length          0000 (0)\n+126CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x125AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x126CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-125EB PAYLOAD\n+1270E PAYLOAD\n \n-1287D LOCAL HEADER #100     04034B50 (67324752)\n-12881 Extract Zip Spec      14 (20) '2.0'\n-12882 Extract OS            00 (0) 'MS-DOS'\n-12883 General Purpose Flag  0800 (2048)\n+129A0 LOCAL HEADER #100     04034B50 (67324752)\n+129A4 Extract Zip Spec      14 (20) '2.0'\n+129A5 Extract OS            00 (0) 'MS-DOS'\n+129A6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12885 Compression Method    0008 (8) 'Deflated'\n-12887 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1288B CRC                   64ACCB0D (1689045773)\n-1288F Compressed Size       00000854 (2132)\n-12893 Uncompressed Size     00001B32 (6962)\n-12897 Filename Length       003C (60)\n-12899 Extra Length          0000 (0)\n-1289B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+129A8 Compression Method    0008 (8) 'Deflated'\n+129AA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+129AE CRC                   64ACCB0D (1689045773)\n+129B2 Compressed Size       00000854 (2132)\n+129B6 Uncompressed Size     00001B32 (6962)\n+129BA Filename Length       003C (60)\n+129BC Extra Length          0000 (0)\n+129BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1289B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x129BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-128D7 PAYLOAD\n+129FA PAYLOAD\n \n-1312B LOCAL HEADER #101     04034B50 (67324752)\n-1312F Extract Zip Spec      14 (20) '2.0'\n-13130 Extract OS            00 (0) 'MS-DOS'\n-13131 General Purpose Flag  0800 (2048)\n+1324E LOCAL HEADER #101     04034B50 (67324752)\n+13252 Extract Zip Spec      14 (20) '2.0'\n+13253 Extract OS            00 (0) 'MS-DOS'\n+13254 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-13133 Compression Method    0008 (8) 'Deflated'\n-13135 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-13139 CRC                   72CD5ED3 (1926061779)\n-1313D Compressed Size       00000326 (806)\n-13141 Uncompressed Size     0000069B (1691)\n-13145 Filename Length       0043 (67)\n-13147 Extra Length          0000 (0)\n-13149 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+13256 Compression Method    0008 (8) 'Deflated'\n+13258 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1325C CRC                   72CD5ED3 (1926061779)\n+13260 Compressed Size       00000326 (806)\n+13264 Uncompressed Size     0000069B (1691)\n+13268 Filename Length       0043 (67)\n+1326A Extra Length          0000 (0)\n+1326C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x13149: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1326C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1318C PAYLOAD\n+132AF PAYLOAD\n \n-134B2 LOCAL HEADER #102     04034B50 (67324752)\n-134B6 Extract Zip Spec      14 (20) '2.0'\n-134B7 Extract OS            00 (0) 'MS-DOS'\n-134B8 General Purpose Flag  0800 (2048)\n+135D5 LOCAL HEADER #102     04034B50 (67324752)\n+135D9 Extract Zip Spec      14 (20) '2.0'\n+135DA Extract OS            00 (0) 'MS-DOS'\n+135DB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-134BA Compression Method    0008 (8) 'Deflated'\n-134BC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-134C0 CRC                   4CF04636 (1290815030)\n-134C4 Compressed Size       00000C34 (3124)\n-134C8 Uncompressed Size     00002D78 (11640)\n-134CC Filename Length       0036 (54)\n-134CE Extra Length          0000 (0)\n-134D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+135DD Compression Method    0008 (8) 'Deflated'\n+135DF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+135E3 CRC                   20710777 (544278391)\n+135E7 Compressed Size       00000C40 (3136)\n+135EB Uncompressed Size     00002E80 (11904)\n+135EF Filename Length       0036 (54)\n+135F1 Extra Length          0000 (0)\n+135F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x134D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x135F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-13506 PAYLOAD\n+13629 PAYLOAD\n \n-1413A LOCAL HEADER #103     04034B50 (67324752)\n-1413E Extract Zip Spec      14 (20) '2.0'\n-1413F Extract OS            00 (0) 'MS-DOS'\n-14140 General Purpose Flag  0800 (2048)\n+14269 LOCAL HEADER #103     04034B50 (67324752)\n+1426D Extract Zip Spec      14 (20) '2.0'\n+1426E Extract OS            00 (0) 'MS-DOS'\n+1426F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14142 Compression Method    0008 (8) 'Deflated'\n-14144 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14148 CRC                   FC35A4FC (4231374076)\n-1414C Compressed Size       0000029B (667)\n-14150 Uncompressed Size     0000051D (1309)\n-14154 Filename Length       003D (61)\n-14156 Extra Length          0000 (0)\n-14158 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14271 Compression Method    0008 (8) 'Deflated'\n+14273 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14277 CRC                   1A0DB37D (437105533)\n+1427B Compressed Size       000002A5 (677)\n+1427F Uncompressed Size     00000541 (1345)\n+14283 Filename Length       003D (61)\n+14285 Extra Length          0000 (0)\n+14287 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14158: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14287: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14195 PAYLOAD\n+142C4 PAYLOAD\n \n-14430 LOCAL HEADER #104     04034B50 (67324752)\n-14434 Extract Zip Spec      14 (20) '2.0'\n-14435 Extract OS            00 (0) 'MS-DOS'\n-14436 General Purpose Flag  0800 (2048)\n+14569 LOCAL HEADER #104     04034B50 (67324752)\n+1456D Extract Zip Spec      14 (20) '2.0'\n+1456E Extract OS            00 (0) 'MS-DOS'\n+1456F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14438 Compression Method    0008 (8) 'Deflated'\n-1443A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1443E CRC                   20217A79 (539064953)\n-14442 Compressed Size       0000027E (638)\n-14446 Uncompressed Size     00000528 (1320)\n-1444A Filename Length       0036 (54)\n-1444C Extra Length          0000 (0)\n-1444E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14571 Compression Method    0008 (8) 'Deflated'\n+14573 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14577 CRC                   20217A79 (539064953)\n+1457B Compressed Size       0000027E (638)\n+1457F Uncompressed Size     00000528 (1320)\n+14583 Filename Length       0036 (54)\n+14585 Extra Length          0000 (0)\n+14587 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1444E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14587: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14484 PAYLOAD\n+145BD PAYLOAD\n \n-14702 LOCAL HEADER #105     04034B50 (67324752)\n-14706 Extract Zip Spec      14 (20) '2.0'\n-14707 Extract OS            00 (0) 'MS-DOS'\n-14708 General Purpose Flag  0800 (2048)\n+1483B LOCAL HEADER #105     04034B50 (67324752)\n+1483F Extract Zip Spec      14 (20) '2.0'\n+14840 Extract OS            00 (0) 'MS-DOS'\n+14841 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1470A Compression Method    0008 (8) 'Deflated'\n-1470C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14710 CRC                   5D27A74D (1562879821)\n-14714 Compressed Size       00000426 (1062)\n-14718 Uncompressed Size     00000ADF (2783)\n-1471C Filename Length       0040 (64)\n-1471E Extra Length          0000 (0)\n-14720 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14843 Compression Method    0008 (8) 'Deflated'\n+14845 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14849 CRC                   EFB59934 (4021655860)\n+1484D Compressed Size       00000430 (1072)\n+14851 Uncompressed Size     00000B39 (2873)\n+14855 Filename Length       0040 (64)\n+14857 Extra Length          0000 (0)\n+14859 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14720: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14859: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14760 PAYLOAD\n+14899 PAYLOAD\n \n-14B86 LOCAL HEADER #106     04034B50 (67324752)\n-14B8A Extract Zip Spec      14 (20) '2.0'\n-14B8B Extract OS            00 (0) 'MS-DOS'\n-14B8C General Purpose Flag  0800 (2048)\n+14CC9 LOCAL HEADER #106     04034B50 (67324752)\n+14CCD Extract Zip Spec      14 (20) '2.0'\n+14CCE Extract OS            00 (0) 'MS-DOS'\n+14CCF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14B8E Compression Method    0008 (8) 'Deflated'\n-14B90 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14B94 CRC                   6DBA7C3B (1840938043)\n-14B98 Compressed Size       00000301 (769)\n-14B9C Uncompressed Size     00000611 (1553)\n-14BA0 Filename Length       0040 (64)\n-14BA2 Extra Length          0000 (0)\n-14BA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14CD1 Compression Method    0008 (8) 'Deflated'\n+14CD3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14CD7 CRC                   B7F4FBDF (3086285791)\n+14CDB Compressed Size       0000030A (778)\n+14CDF Uncompressed Size     0000063D (1597)\n+14CE3 Filename Length       0040 (64)\n+14CE5 Extra Length          0000 (0)\n+14CE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14BA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14CE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14BE4 PAYLOAD\n+14D27 PAYLOAD\n \n-14EE5 LOCAL HEADER #107     04034B50 (67324752)\n-14EE9 Extract Zip Spec      14 (20) '2.0'\n-14EEA Extract OS            00 (0) 'MS-DOS'\n-14EEB General Purpose Flag  0800 (2048)\n+15031 LOCAL HEADER #107     04034B50 (67324752)\n+15035 Extract Zip Spec      14 (20) '2.0'\n+15036 Extract OS            00 (0) 'MS-DOS'\n+15037 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14EED Compression Method    0008 (8) 'Deflated'\n-14EEF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14EF3 CRC                   92ECBDF0 (2464988656)\n-14EF7 Compressed Size       00000CD9 (3289)\n-14EFB Uncompressed Size     00003237 (12855)\n-14EFF Filename Length       0040 (64)\n-14F01 Extra Length          0000 (0)\n-14F03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15039 Compression Method    0008 (8) 'Deflated'\n+1503B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1503F CRC                   11C1AD74 (297905524)\n+15043 Compressed Size       00000CF0 (3312)\n+15047 Uncompressed Size     00003376 (13174)\n+1504B Filename Length       0040 (64)\n+1504D Extra Length          0000 (0)\n+1504F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14F03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1504F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14F43 PAYLOAD\n+1508F PAYLOAD\n \n-15C1C LOCAL HEADER #108     04034B50 (67324752)\n-15C20 Extract Zip Spec      14 (20) '2.0'\n-15C21 Extract OS            00 (0) 'MS-DOS'\n-15C22 General Purpose Flag  0800 (2048)\n+15D7F LOCAL HEADER #108     04034B50 (67324752)\n+15D83 Extract Zip Spec      14 (20) '2.0'\n+15D84 Extract OS            00 (0) 'MS-DOS'\n+15D85 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15C24 Compression Method    0008 (8) 'Deflated'\n-15C26 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-15C2A CRC                   8CA55593 (2359645587)\n-15C2E Compressed Size       00000295 (661)\n-15C32 Uncompressed Size     00000546 (1350)\n-15C36 Filename Length       003A (58)\n-15C38 Extra Length          0000 (0)\n-15C3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15D87 Compression Method    0008 (8) 'Deflated'\n+15D89 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+15D8D CRC                   8CA55593 (2359645587)\n+15D91 Compressed Size       00000295 (661)\n+15D95 Uncompressed Size     00000546 (1350)\n+15D99 Filename Length       003A (58)\n+15D9B Extra Length          0000 (0)\n+15D9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15C3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15D9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-15C74 PAYLOAD\n+15DD7 PAYLOAD\n \n-15F09 LOCAL HEADER #109     04034B50 (67324752)\n-15F0D Extract Zip Spec      14 (20) '2.0'\n-15F0E Extract OS            00 (0) 'MS-DOS'\n-15F0F General Purpose Flag  0800 (2048)\n+1606C LOCAL HEADER #109     04034B50 (67324752)\n+16070 Extract Zip Spec      14 (20) '2.0'\n+16071 Extract OS            00 (0) 'MS-DOS'\n+16072 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15F11 Compression Method    0008 (8) 'Deflated'\n-15F13 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-15F17 CRC                   BDD5C58A (3184903562)\n-15F1B Compressed Size       00000301 (769)\n-15F1F Uncompressed Size     000006DC (1756)\n-15F23 Filename Length       0041 (65)\n-15F25 Extra Length          0000 (0)\n-15F27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16074 Compression Method    0008 (8) 'Deflated'\n+16076 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1607A CRC                   BDD5C58A (3184903562)\n+1607E Compressed Size       00000301 (769)\n+16082 Uncompressed Size     000006DC (1756)\n+16086 Filename Length       0041 (65)\n+16088 Extra Length          0000 (0)\n+1608A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15F27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1608A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-15F68 PAYLOAD\n+160CB PAYLOAD\n \n-16269 LOCAL HEADER #110     04034B50 (67324752)\n-1626D Extract Zip Spec      14 (20) '2.0'\n-1626E Extract OS            00 (0) 'MS-DOS'\n-1626F General Purpose Flag  0800 (2048)\n+163CC LOCAL HEADER #110     04034B50 (67324752)\n+163D0 Extract Zip Spec      14 (20) '2.0'\n+163D1 Extract OS            00 (0) 'MS-DOS'\n+163D2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-16271 Compression Method    0008 (8) 'Deflated'\n-16273 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16277 CRC                   DBE638BA (3689298106)\n-1627B Compressed Size       00000287 (647)\n-1627F Uncompressed Size     00000518 (1304)\n-16283 Filename Length       003A (58)\n-16285 Extra Length          0000 (0)\n-16287 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+163D4 Compression Method    0008 (8) 'Deflated'\n+163D6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+163DA CRC                   DBE638BA (3689298106)\n+163DE Compressed Size       00000287 (647)\n+163E2 Uncompressed Size     00000518 (1304)\n+163E6 Filename Length       003A (58)\n+163E8 Extra Length          0000 (0)\n+163EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16287: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x163EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-162C1 PAYLOAD\n+16424 PAYLOAD\n \n-16548 LOCAL HEADER #111     04034B50 (67324752)\n-1654C Extract Zip Spec      14 (20) '2.0'\n-1654D Extract OS            00 (0) 'MS-DOS'\n-1654E General Purpose Flag  0800 (2048)\n+166AB LOCAL HEADER #111     04034B50 (67324752)\n+166AF Extract Zip Spec      14 (20) '2.0'\n+166B0 Extract OS            00 (0) 'MS-DOS'\n+166B1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-16550 Compression Method    0008 (8) 'Deflated'\n-16552 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16556 CRC                   4263898A (1113819530)\n-1655A Compressed Size       0000065D (1629)\n-1655E Uncompressed Size     00001420 (5152)\n-16562 Filename Length       0041 (65)\n-16564 Extra Length          0000 (0)\n-16566 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+166B3 Compression Method    0008 (8) 'Deflated'\n+166B5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+166B9 CRC                   4263898A (1113819530)\n+166BD Compressed Size       0000065D (1629)\n+166C1 Uncompressed Size     00001420 (5152)\n+166C5 Filename Length       0041 (65)\n+166C7 Extra Length          0000 (0)\n+166C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16566: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x166C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-165A7 PAYLOAD\n+1670A PAYLOAD\n \n-16C04 LOCAL HEADER #112     04034B50 (67324752)\n-16C08 Extract Zip Spec      14 (20) '2.0'\n-16C09 Extract OS            00 (0) 'MS-DOS'\n-16C0A General Purpose Flag  0800 (2048)\n+16D67 LOCAL HEADER #112     04034B50 (67324752)\n+16D6B Extract Zip Spec      14 (20) '2.0'\n+16D6C Extract OS            00 (0) 'MS-DOS'\n+16D6D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-16C0C Compression Method    0008 (8) 'Deflated'\n-16C0E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16C12 CRC                   61647F39 (1633976121)\n-16C16 Compressed Size       000005E5 (1509)\n-16C1A Uncompressed Size     0000187C (6268)\n-16C1E Filename Length       0036 (54)\n-16C20 Extra Length          0000 (0)\n-16C22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16D6F Compression Method    0008 (8) 'Deflated'\n+16D71 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+16D75 CRC                   61647F39 (1633976121)\n+16D79 Compressed Size       000005E5 (1509)\n+16D7D Uncompressed Size     0000187C (6268)\n+16D81 Filename Length       0036 (54)\n+16D83 Extra Length          0000 (0)\n+16D85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16C22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16D85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-16C58 PAYLOAD\n+16DBB PAYLOAD\n \n-1723D LOCAL HEADER #113     04034B50 (67324752)\n-17241 Extract Zip Spec      14 (20) '2.0'\n-17242 Extract OS            00 (0) 'MS-DOS'\n-17243 General Purpose Flag  0800 (2048)\n+173A0 LOCAL HEADER #113     04034B50 (67324752)\n+173A4 Extract Zip Spec      14 (20) '2.0'\n+173A5 Extract OS            00 (0) 'MS-DOS'\n+173A6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17245 Compression Method    0008 (8) 'Deflated'\n-17247 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1724B CRC                   48FD2377 (1224549239)\n-1724F Compressed Size       000002AA (682)\n-17253 Uncompressed Size     00000559 (1369)\n-17257 Filename Length       0039 (57)\n-17259 Extra Length          0000 (0)\n-1725B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+173A8 Compression Method    0008 (8) 'Deflated'\n+173AA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+173AE CRC                   48FD2377 (1224549239)\n+173B2 Compressed Size       000002AA (682)\n+173B6 Uncompressed Size     00000559 (1369)\n+173BA Filename Length       0039 (57)\n+173BC Extra Length          0000 (0)\n+173BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1725B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x173BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-17294 PAYLOAD\n+173F7 PAYLOAD\n \n-1753E LOCAL HEADER #114     04034B50 (67324752)\n-17542 Extract Zip Spec      14 (20) '2.0'\n-17543 Extract OS            00 (0) 'MS-DOS'\n-17544 General Purpose Flag  0800 (2048)\n+176A1 LOCAL HEADER #114     04034B50 (67324752)\n+176A5 Extract Zip Spec      14 (20) '2.0'\n+176A6 Extract OS            00 (0) 'MS-DOS'\n+176A7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17546 Compression Method    0008 (8) 'Deflated'\n-17548 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1754C CRC                   DAA0DBC8 (3667975112)\n-17550 Compressed Size       000007C4 (1988)\n-17554 Uncompressed Size     00001AD7 (6871)\n-17558 Filename Length       0040 (64)\n-1755A Extra Length          0000 (0)\n-1755C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+176A9 Compression Method    0008 (8) 'Deflated'\n+176AB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+176AF CRC                   DAA0DBC8 (3667975112)\n+176B3 Compressed Size       000007C4 (1988)\n+176B7 Uncompressed Size     00001AD7 (6871)\n+176BB Filename Length       0040 (64)\n+176BD Extra Length          0000 (0)\n+176BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1755C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x176BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1759C PAYLOAD\n+176FF PAYLOAD\n \n-17D60 LOCAL HEADER #115     04034B50 (67324752)\n-17D64 Extract Zip Spec      14 (20) '2.0'\n-17D65 Extract OS            00 (0) 'MS-DOS'\n-17D66 General Purpose Flag  0800 (2048)\n+17EC3 LOCAL HEADER #115     04034B50 (67324752)\n+17EC7 Extract Zip Spec      14 (20) '2.0'\n+17EC8 Extract OS            00 (0) 'MS-DOS'\n+17EC9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17D68 Compression Method    0008 (8) 'Deflated'\n-17D6A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-17D6E CRC                   887DA686 (2289936006)\n-17D72 Compressed Size       000002A9 (681)\n-17D76 Uncompressed Size     00000559 (1369)\n-17D7A Filename Length       0039 (57)\n-17D7C Extra Length          0000 (0)\n-17D7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17ECB Compression Method    0008 (8) 'Deflated'\n+17ECD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+17ED1 CRC                   887DA686 (2289936006)\n+17ED5 Compressed Size       000002A9 (681)\n+17ED9 Uncompressed Size     00000559 (1369)\n+17EDD Filename Length       0039 (57)\n+17EDF Extra Length          0000 (0)\n+17EE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17D7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17EE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-17DB7 PAYLOAD\n+17F1A PAYLOAD\n \n-18060 LOCAL HEADER #116     04034B50 (67324752)\n-18064 Extract Zip Spec      14 (20) '2.0'\n-18065 Extract OS            00 (0) 'MS-DOS'\n-18066 General Purpose Flag  0800 (2048)\n+181C3 LOCAL HEADER #116     04034B50 (67324752)\n+181C7 Extract Zip Spec      14 (20) '2.0'\n+181C8 Extract OS            00 (0) 'MS-DOS'\n+181C9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18068 Compression Method    0008 (8) 'Deflated'\n-1806A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1806E CRC                   A7345C3C (2805226556)\n-18072 Compressed Size       000004AB (1195)\n-18076 Uncompressed Size     00000B51 (2897)\n-1807A Filename Length       0040 (64)\n-1807C Extra Length          0000 (0)\n-1807E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+181CB Compression Method    0008 (8) 'Deflated'\n+181CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+181D1 CRC                   A7345C3C (2805226556)\n+181D5 Compressed Size       000004AB (1195)\n+181D9 Uncompressed Size     00000B51 (2897)\n+181DD Filename Length       0040 (64)\n+181DF Extra Length          0000 (0)\n+181E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1807E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x181E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-180BE PAYLOAD\n+18221 PAYLOAD\n \n-18569 LOCAL HEADER #117     04034B50 (67324752)\n-1856D Extract Zip Spec      14 (20) '2.0'\n-1856E Extract OS            00 (0) 'MS-DOS'\n-1856F General Purpose Flag  0800 (2048)\n+186CC LOCAL HEADER #117     04034B50 (67324752)\n+186D0 Extract Zip Spec      14 (20) '2.0'\n+186D1 Extract OS            00 (0) 'MS-DOS'\n+186D2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18571 Compression Method    0008 (8) 'Deflated'\n-18573 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-18577 CRC                   C412C0D3 (3289563347)\n-1857B Compressed Size       000002A9 (681)\n-1857F Uncompressed Size     00000559 (1369)\n-18583 Filename Length       0039 (57)\n-18585 Extra Length          0000 (0)\n-18587 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+186D4 Compression Method    0008 (8) 'Deflated'\n+186D6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+186DA CRC                   C412C0D3 (3289563347)\n+186DE Compressed Size       000002A9 (681)\n+186E2 Uncompressed Size     00000559 (1369)\n+186E6 Filename Length       0039 (57)\n+186E8 Extra Length          0000 (0)\n+186EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18587: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x186EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-185C0 PAYLOAD\n+18723 PAYLOAD\n \n-18869 LOCAL HEADER #118     04034B50 (67324752)\n-1886D Extract Zip Spec      14 (20) '2.0'\n-1886E Extract OS            00 (0) 'MS-DOS'\n-1886F General Purpose Flag  0800 (2048)\n+189CC LOCAL HEADER #118     04034B50 (67324752)\n+189D0 Extract Zip Spec      14 (20) '2.0'\n+189D1 Extract OS            00 (0) 'MS-DOS'\n+189D2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18871 Compression Method    0008 (8) 'Deflated'\n-18873 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-18877 CRC                   7A3E3AF6 (2050898678)\n-1887B Compressed Size       00000730 (1840)\n-1887F Uncompressed Size     0000158D (5517)\n-18883 Filename Length       0040 (64)\n-18885 Extra Length          0000 (0)\n-18887 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+189D4 Compression Method    0008 (8) 'Deflated'\n+189D6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+189DA CRC                   7A3E3AF6 (2050898678)\n+189DE Compressed Size       00000730 (1840)\n+189E2 Uncompressed Size     0000158D (5517)\n+189E6 Filename Length       0040 (64)\n+189E8 Extra Length          0000 (0)\n+189EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18887: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x189EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-188C7 PAYLOAD\n+18A2A PAYLOAD\n \n-18FF7 LOCAL HEADER #119     04034B50 (67324752)\n-18FFB Extract Zip Spec      14 (20) '2.0'\n-18FFC Extract OS            00 (0) 'MS-DOS'\n-18FFD General Purpose Flag  0800 (2048)\n+1915A LOCAL HEADER #119     04034B50 (67324752)\n+1915E Extract Zip Spec      14 (20) '2.0'\n+1915F Extract OS            00 (0) 'MS-DOS'\n+19160 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18FFF Compression Method    0008 (8) 'Deflated'\n-19001 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19005 CRC                   68A40EAC (1755582124)\n-19009 Compressed Size       000002AA (682)\n-1900D Uncompressed Size     00000559 (1369)\n-19011 Filename Length       0039 (57)\n-19013 Extra Length          0000 (0)\n-19015 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19162 Compression Method    0008 (8) 'Deflated'\n+19164 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19168 CRC                   68A40EAC (1755582124)\n+1916C Compressed Size       000002AA (682)\n+19170 Uncompressed Size     00000559 (1369)\n+19174 Filename Length       0039 (57)\n+19176 Extra Length          0000 (0)\n+19178 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19015: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19178: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1904E PAYLOAD\n+191B1 PAYLOAD\n \n-192F8 LOCAL HEADER #120     04034B50 (67324752)\n-192FC Extract Zip Spec      14 (20) '2.0'\n-192FD Extract OS            00 (0) 'MS-DOS'\n-192FE General Purpose Flag  0800 (2048)\n+1945B LOCAL HEADER #120     04034B50 (67324752)\n+1945F Extract Zip Spec      14 (20) '2.0'\n+19460 Extract OS            00 (0) 'MS-DOS'\n+19461 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19300 Compression Method    0008 (8) 'Deflated'\n-19302 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19306 CRC                   DEA6E3F0 (3735479280)\n-1930A Compressed Size       000003F1 (1009)\n-1930E Uncompressed Size     00000942 (2370)\n-19312 Filename Length       0040 (64)\n-19314 Extra Length          0000 (0)\n-19316 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19463 Compression Method    0008 (8) 'Deflated'\n+19465 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19469 CRC                   DEA6E3F0 (3735479280)\n+1946D Compressed Size       000003F1 (1009)\n+19471 Uncompressed Size     00000942 (2370)\n+19475 Filename Length       0040 (64)\n+19477 Extra Length          0000 (0)\n+19479 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19316: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19479: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19356 PAYLOAD\n+194B9 PAYLOAD\n \n-19747 LOCAL HEADER #121     04034B50 (67324752)\n-1974B Extract Zip Spec      14 (20) '2.0'\n-1974C Extract OS            00 (0) 'MS-DOS'\n-1974D General Purpose Flag  0800 (2048)\n+198AA LOCAL HEADER #121     04034B50 (67324752)\n+198AE Extract Zip Spec      14 (20) '2.0'\n+198AF Extract OS            00 (0) 'MS-DOS'\n+198B0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1974F Compression Method    0008 (8) 'Deflated'\n-19751 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19755 CRC                   1E103695 (504379029)\n-19759 Compressed Size       000002A9 (681)\n-1975D Uncompressed Size     00000555 (1365)\n-19761 Filename Length       0038 (56)\n-19763 Extra Length          0000 (0)\n-19765 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+198B2 Compression Method    0008 (8) 'Deflated'\n+198B4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+198B8 CRC                   1E103695 (504379029)\n+198BC Compressed Size       000002A9 (681)\n+198C0 Uncompressed Size     00000555 (1365)\n+198C4 Filename Length       0038 (56)\n+198C6 Extra Length          0000 (0)\n+198C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19765: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x198C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1979D PAYLOAD\n+19900 PAYLOAD\n \n-19A46 LOCAL HEADER #122     04034B50 (67324752)\n-19A4A Extract Zip Spec      14 (20) '2.0'\n-19A4B Extract OS            00 (0) 'MS-DOS'\n-19A4C General Purpose Flag  0800 (2048)\n+19BA9 LOCAL HEADER #122     04034B50 (67324752)\n+19BAD Extract Zip Spec      14 (20) '2.0'\n+19BAE Extract OS            00 (0) 'MS-DOS'\n+19BAF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19A4E Compression Method    0008 (8) 'Deflated'\n-19A50 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19A54 CRC                   27AC8562 (665617762)\n-19A58 Compressed Size       00000730 (1840)\n-19A5C Uncompressed Size     000014CB (5323)\n-19A60 Filename Length       003F (63)\n-19A62 Extra Length          0000 (0)\n-19A64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19BB1 Compression Method    0008 (8) 'Deflated'\n+19BB3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19BB7 CRC                   0384CEE3 (59035363)\n+19BBB Compressed Size       0000073B (1851)\n+19BBF Uncompressed Size     0000153C (5436)\n+19BC3 Filename Length       003F (63)\n+19BC5 Extra Length          0000 (0)\n+19BC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19A64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19BC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19AA3 PAYLOAD\n+19C06 PAYLOAD\n \n-1A1D3 LOCAL HEADER #123     04034B50 (67324752)\n-1A1D7 Extract Zip Spec      14 (20) '2.0'\n-1A1D8 Extract OS            00 (0) 'MS-DOS'\n-1A1D9 General Purpose Flag  0800 (2048)\n+1A341 LOCAL HEADER #123     04034B50 (67324752)\n+1A345 Extract Zip Spec      14 (20) '2.0'\n+1A346 Extract OS            00 (0) 'MS-DOS'\n+1A347 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1A1DB Compression Method    0008 (8) 'Deflated'\n-1A1DD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1A1E1 CRC                   D9486541 (3645400385)\n-1A1E5 Compressed Size       0000028E (654)\n-1A1E9 Uncompressed Size     0000050C (1292)\n-1A1ED Filename Length       003A (58)\n-1A1EF Extra Length          0000 (0)\n-1A1F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1A349 Compression Method    0008 (8) 'Deflated'\n+1A34B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1A34F CRC                   A4DAB8AE (2765797550)\n+1A353 Compressed Size       00000297 (663)\n+1A357 Uncompressed Size     0000052C (1324)\n+1A35B Filename Length       003A (58)\n+1A35D Extra Length          0000 (0)\n+1A35F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1A1F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A35F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A22B PAYLOAD\n+1A399 PAYLOAD\n \n-1A4B9 LOCAL HEADER #124     04034B50 (67324752)\n-1A4BD Extract Zip Spec      14 (20) '2.0'\n-1A4BE Extract OS            00 (0) 'MS-DOS'\n-1A4BF General Purpose Flag  0800 (2048)\n+1A630 LOCAL HEADER #124     04034B50 (67324752)\n+1A634 Extract Zip Spec      14 (20) '2.0'\n+1A635 Extract OS            00 (0) 'MS-DOS'\n+1A636 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1A4C1 Compression Method    0008 (8) 'Deflated'\n-1A4C3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1A4C7 CRC                   011CB6AA (18658986)\n-1A4CB Compressed Size       000008AF (2223)\n-1A4CF Uncompressed Size     00001DE1 (7649)\n-1A4D3 Filename Length       0041 (65)\n-1A4D5 Extra Length          0000 (0)\n-1A4D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1A638 Compression Method    0008 (8) 'Deflated'\n+1A63A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1A63E CRC                   FAE0CB59 (4209036121)\n+1A642 Compressed Size       000008BE (2238)\n+1A646 Uncompressed Size     00001EA2 (7842)\n+1A64A Filename Length       0041 (65)\n+1A64C Extra Length          0000 (0)\n+1A64E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1A4D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A64E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A518 PAYLOAD\n+1A68F PAYLOAD\n \n-1ADC7 LOCAL HEADER #125     04034B50 (67324752)\n-1ADCB Extract Zip Spec      14 (20) '2.0'\n-1ADCC Extract OS            00 (0) 'MS-DOS'\n-1ADCD General Purpose Flag  0800 (2048)\n+1AF4D LOCAL HEADER #125     04034B50 (67324752)\n+1AF51 Extract Zip Spec      14 (20) '2.0'\n+1AF52 Extract OS            00 (0) 'MS-DOS'\n+1AF53 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1ADCF Compression Method    0008 (8) 'Deflated'\n-1ADD1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1ADD5 CRC                   6056B6FB (1616295675)\n-1ADD9 Compressed Size       00000269 (617)\n-1ADDD Uncompressed Size     00000490 (1168)\n-1ADE1 Filename Length       0043 (67)\n-1ADE3 Extra Length          0000 (0)\n-1ADE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1AF55 Compression Method    0008 (8) 'Deflated'\n+1AF57 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1AF5B CRC                   B9BB0148 (3116040520)\n+1AF5F Compressed Size       00000273 (627)\n+1AF63 Uncompressed Size     000004AD (1197)\n+1AF67 Filename Length       0043 (67)\n+1AF69 Extra Length          0000 (0)\n+1AF6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1ADE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1AF6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1AE28 PAYLOAD\n+1AFAE PAYLOAD\n \n-1B091 LOCAL HEADER #126     04034B50 (67324752)\n-1B095 Extract Zip Spec      14 (20) '2.0'\n-1B096 Extract OS            00 (0) 'MS-DOS'\n-1B097 General Purpose Flag  0800 (2048)\n+1B221 LOCAL HEADER #126     04034B50 (67324752)\n+1B225 Extract Zip Spec      14 (20) '2.0'\n+1B226 Extract OS            00 (0) 'MS-DOS'\n+1B227 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B099 Compression Method    0008 (8) 'Deflated'\n-1B09B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B09F CRC                   3DFE1DA9 (1040063913)\n-1B0A3 Compressed Size       00000261 (609)\n-1B0A7 Uncompressed Size     00000463 (1123)\n-1B0AB Filename Length       004E (78)\n-1B0AD Extra Length          0000 (0)\n-1B0AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B229 Compression Method    0008 (8) 'Deflated'\n+1B22B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B22F CRC                   381C2681 (941368961)\n+1B233 Compressed Size       00000268 (616)\n+1B237 Uncompressed Size     0000047E (1150)\n+1B23B Filename Length       004E (78)\n+1B23D Extra Length          0000 (0)\n+1B23F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B0AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B23F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B0FD PAYLOAD\n+1B28D PAYLOAD\n \n-1B35E LOCAL HEADER #127     04034B50 (67324752)\n-1B362 Extract Zip Spec      14 (20) '2.0'\n-1B363 Extract OS            00 (0) 'MS-DOS'\n-1B364 General Purpose Flag  0800 (2048)\n+1B4F5 LOCAL HEADER #127     04034B50 (67324752)\n+1B4F9 Extract Zip Spec      14 (20) '2.0'\n+1B4FA Extract OS            00 (0) 'MS-DOS'\n+1B4FB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B366 Compression Method    0008 (8) 'Deflated'\n-1B368 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B36C CRC                   026F661D (40855069)\n-1B370 Compressed Size       000002FD (765)\n-1B374 Uncompressed Size     000006F0 (1776)\n-1B378 Filename Length       004B (75)\n-1B37A Extra Length          0000 (0)\n-1B37C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B4FD Compression Method    0008 (8) 'Deflated'\n+1B4FF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B503 CRC                   21012AB4 (553724596)\n+1B507 Compressed Size       00000308 (776)\n+1B50B Uncompressed Size     00000726 (1830)\n+1B50F Filename Length       004B (75)\n+1B511 Extra Length          0000 (0)\n+1B513 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B37C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B513: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B3C7 PAYLOAD\n+1B55E PAYLOAD\n \n-1B6C4 LOCAL HEADER #128     04034B50 (67324752)\n-1B6C8 Extract Zip Spec      14 (20) '2.0'\n-1B6C9 Extract OS            00 (0) 'MS-DOS'\n-1B6CA General Purpose Flag  0800 (2048)\n+1B866 LOCAL HEADER #128     04034B50 (67324752)\n+1B86A Extract Zip Spec      14 (20) '2.0'\n+1B86B Extract OS            00 (0) 'MS-DOS'\n+1B86C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B6CC Compression Method    0008 (8) 'Deflated'\n-1B6CE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B6D2 CRC                   8138F7C2 (2167994306)\n-1B6D6 Compressed Size       0000049B (1179)\n-1B6DA Uncompressed Size     00000CD0 (3280)\n-1B6DE Filename Length       0041 (65)\n-1B6E0 Extra Length          0000 (0)\n-1B6E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B86E Compression Method    0008 (8) 'Deflated'\n+1B870 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B874 CRC                   06F39E69 (116629097)\n+1B878 Compressed Size       000004A7 (1191)\n+1B87C Uncompressed Size     00000D2A (3370)\n+1B880 Filename Length       0041 (65)\n+1B882 Extra Length          0000 (0)\n+1B884 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B6E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B884: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B723 PAYLOAD\n+1B8C5 PAYLOAD\n \n-1BBBE LOCAL HEADER #129     04034B50 (67324752)\n-1BBC2 Extract Zip Spec      14 (20) '2.0'\n-1BBC3 Extract OS            00 (0) 'MS-DOS'\n-1BBC4 General Purpose Flag  0800 (2048)\n+1BD6C LOCAL HEADER #129     04034B50 (67324752)\n+1BD70 Extract Zip Spec      14 (20) '2.0'\n+1BD71 Extract OS            00 (0) 'MS-DOS'\n+1BD72 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1BBC6 Compression Method    0008 (8) 'Deflated'\n-1BBC8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1BBCC CRC                   1A8FEFCC (445640652)\n-1BBD0 Compressed Size       00000221 (545)\n-1BBD4 Uncompressed Size     000003BA (954)\n-1BBD8 Filename Length       0041 (65)\n-1BBDA Extra Length          0000 (0)\n-1BBDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BD74 Compression Method    0008 (8) 'Deflated'\n+1BD76 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1BD7A CRC                   34F1D732 (888264498)\n+1BD7E Compressed Size       00000227 (551)\n+1BD82 Uncompressed Size     000003D0 (976)\n+1BD86 Filename Length       0041 (65)\n+1BD88 Extra Length          0000 (0)\n+1BD8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1BBDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1BD8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1BC1D PAYLOAD\n+1BDCB PAYLOAD\n \n-1BE3E LOCAL HEADER #130     04034B50 (67324752)\n-1BE42 Extract Zip Spec      14 (20) '2.0'\n-1BE43 Extract OS            00 (0) 'MS-DOS'\n-1BE44 General Purpose Flag  0800 (2048)\n+1BFF2 LOCAL HEADER #130     04034B50 (67324752)\n+1BFF6 Extract Zip Spec      14 (20) '2.0'\n+1BFF7 Extract OS            00 (0) 'MS-DOS'\n+1BFF8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1BE46 Compression Method    0008 (8) 'Deflated'\n-1BE48 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1BE4C CRC                   1071481B (275859483)\n-1BE50 Compressed Size       000002B5 (693)\n-1BE54 Uncompressed Size     0000058B (1419)\n-1BE58 Filename Length       0043 (67)\n-1BE5A Extra Length          0000 (0)\n-1BE5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BFFA Compression Method    0008 (8) 'Deflated'\n+1BFFC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1C000 CRC                   5C6630BB (1550201019)\n+1C004 Compressed Size       000002BD (701)\n+1C008 Uncompressed Size     000005AE (1454)\n+1C00C Filename Length       0043 (67)\n+1C00E Extra Length          0000 (0)\n+1C010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1BE5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1BE9F PAYLOAD\n+1C053 PAYLOAD\n \n-1C154 LOCAL HEADER #131     04034B50 (67324752)\n-1C158 Extract Zip Spec      14 (20) '2.0'\n-1C159 Extract OS            00 (0) 'MS-DOS'\n-1C15A General Purpose Flag  0800 (2048)\n+1C310 LOCAL HEADER #131     04034B50 (67324752)\n+1C314 Extract Zip Spec      14 (20) '2.0'\n+1C315 Extract OS            00 (0) 'MS-DOS'\n+1C316 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C15C Compression Method    0008 (8) 'Deflated'\n-1C15E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1C162 CRC                   E4476BF5 (3829885941)\n-1C166 Compressed Size       00000ACD (2765)\n-1C16A Uncompressed Size     00002BF8 (11256)\n-1C16E Filename Length       004A (74)\n-1C170 Extra Length          0000 (0)\n-1C172 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C318 Compression Method    0008 (8) 'Deflated'\n+1C31A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1C31E CRC                   CAF28C51 (3404893265)\n+1C322 Compressed Size       00000ADD (2781)\n+1C326 Uncompressed Size     00002CF4 (11508)\n+1C32A Filename Length       004A (74)\n+1C32C Extra Length          0000 (0)\n+1C32E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C172: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C32E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C1BC PAYLOAD\n+1C378 PAYLOAD\n \n-1CC89 LOCAL HEADER #132     04034B50 (67324752)\n-1CC8D Extract Zip Spec      14 (20) '2.0'\n-1CC8E Extract OS            00 (0) 'MS-DOS'\n-1CC8F General Purpose Flag  0800 (2048)\n+1CE55 LOCAL HEADER #132     04034B50 (67324752)\n+1CE59 Extract Zip Spec      14 (20) '2.0'\n+1CE5A Extract OS            00 (0) 'MS-DOS'\n+1CE5B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1CC91 Compression Method    0008 (8) 'Deflated'\n-1CC93 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1CC97 CRC                   F23CFA2B (4064082475)\n-1CC9B Compressed Size       000005E9 (1513)\n-1CC9F Uncompressed Size     000014C8 (5320)\n-1CCA3 Filename Length       0041 (65)\n-1CCA5 Extra Length          0000 (0)\n-1CCA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1CE5D Compression Method    0008 (8) 'Deflated'\n+1CE5F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1CE63 CRC                   36D0D661 (919656033)\n+1CE67 Compressed Size       000005F6 (1526)\n+1CE6B Uncompressed Size     0000154C (5452)\n+1CE6F Filename Length       0041 (65)\n+1CE71 Extra Length          0000 (0)\n+1CE73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1CCA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1CE73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1CCE8 PAYLOAD\n+1CEB4 PAYLOAD\n \n-1D2D1 LOCAL HEADER #133     04034B50 (67324752)\n-1D2D5 Extract Zip Spec      14 (20) '2.0'\n-1D2D6 Extract OS            00 (0) 'MS-DOS'\n-1D2D7 General Purpose Flag  0800 (2048)\n+1D4AA LOCAL HEADER #133     04034B50 (67324752)\n+1D4AE Extract Zip Spec      14 (20) '2.0'\n+1D4AF Extract OS            00 (0) 'MS-DOS'\n+1D4B0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1D2D9 Compression Method    0008 (8) 'Deflated'\n-1D2DB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1D2DF CRC                   A2C265E1 (2730649057)\n-1D2E3 Compressed Size       0000087E (2174)\n-1D2E7 Uncompressed Size     00001D45 (7493)\n-1D2EB Filename Length       0044 (68)\n-1D2ED Extra Length          0000 (0)\n-1D2EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D4B2 Compression Method    0008 (8) 'Deflated'\n+1D4B4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1D4B8 CRC                   A2C265E1 (2730649057)\n+1D4BC Compressed Size       0000087E (2174)\n+1D4C0 Uncompressed Size     00001D45 (7493)\n+1D4C4 Filename Length       0044 (68)\n+1D4C6 Extra Length          0000 (0)\n+1D4C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D2EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1D4C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1D333 PAYLOAD\n+1D50C PAYLOAD\n \n-1DBB1 LOCAL HEADER #134     04034B50 (67324752)\n-1DBB5 Extract Zip Spec      14 (20) '2.0'\n-1DBB6 Extract OS            00 (0) 'MS-DOS'\n-1DBB7 General Purpose Flag  0800 (2048)\n+1DD8A LOCAL HEADER #134     04034B50 (67324752)\n+1DD8E Extract Zip Spec      14 (20) '2.0'\n+1DD8F Extract OS            00 (0) 'MS-DOS'\n+1DD90 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1DBB9 Compression Method    0008 (8) 'Deflated'\n-1DBBB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1DBBF CRC                   AEA9AD13 (2930355475)\n-1DBC3 Compressed Size       000002AA (682)\n-1DBC7 Uncompressed Size     000005BA (1466)\n-1DBCB Filename Length       0044 (68)\n-1DBCD Extra Length          0000 (0)\n-1DBCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1DD92 Compression Method    0008 (8) 'Deflated'\n+1DD94 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1DD98 CRC                   AEA9AD13 (2930355475)\n+1DD9C Compressed Size       000002AA (682)\n+1DDA0 Uncompressed Size     000005BA (1466)\n+1DDA4 Filename Length       0044 (68)\n+1DDA6 Extra Length          0000 (0)\n+1DDA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1DBCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1DDA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1DC13 PAYLOAD\n+1DDEC PAYLOAD\n \n-1DEBD LOCAL HEADER #135     04034B50 (67324752)\n-1DEC1 Extract Zip Spec      14 (20) '2.0'\n-1DEC2 Extract OS            00 (0) 'MS-DOS'\n-1DEC3 General Purpose Flag  0800 (2048)\n+1E096 LOCAL HEADER #135     04034B50 (67324752)\n+1E09A Extract Zip Spec      14 (20) '2.0'\n+1E09B Extract OS            00 (0) 'MS-DOS'\n+1E09C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1DEC5 Compression Method    0008 (8) 'Deflated'\n-1DEC7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1DECB CRC                   DD05C4EA (3708142826)\n-1DECF Compressed Size       000000AB (171)\n-1DED3 Uncompressed Size     0000028B (651)\n-1DED7 Filename Length       003C (60)\n-1DED9 Extra Length          0000 (0)\n-1DEDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E09E Compression Method    0008 (8) 'Deflated'\n+1E0A0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E0A4 CRC                   DD05C4EA (3708142826)\n+1E0A8 Compressed Size       000000AB (171)\n+1E0AC Uncompressed Size     0000028B (651)\n+1E0B0 Filename Length       003C (60)\n+1E0B2 Extra Length          0000 (0)\n+1E0B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1DEDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E0B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1DF17 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E0F0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1DFC2 LOCAL HEADER #136     04034B50 (67324752)\n-1DFC6 Extract Zip Spec      14 (20) '2.0'\n-1DFC7 Extract OS            00 (0) 'MS-DOS'\n-1DFC8 General Purpose Flag  0800 (2048)\n+1E19B LOCAL HEADER #136     04034B50 (67324752)\n+1E19F Extract Zip Spec      14 (20) '2.0'\n+1E1A0 Extract OS            00 (0) 'MS-DOS'\n+1E1A1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1DFCA Compression Method    0008 (8) 'Deflated'\n-1DFCC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1DFD0 CRC                   AD5A1B17 (2908363543)\n-1DFD4 Compressed Size       00000057 (87)\n-1DFD8 Uncompressed Size     000000AA (170)\n-1DFDC Filename Length       0048 (72)\n-1DFDE Extra Length          0000 (0)\n-1DFE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E1A3 Compression Method    0008 (8) 'Deflated'\n+1E1A5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E1A9 CRC                   AD5A1B17 (2908363543)\n+1E1AD Compressed Size       00000057 (87)\n+1E1B1 Uncompressed Size     000000AA (170)\n+1E1B5 Filename Length       0048 (72)\n+1E1B7 Extra Length          0000 (0)\n+1E1B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1DFE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E1B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E028 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E201 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1E07F LOCAL HEADER #137     04034B50 (67324752)\n-1E083 Extract Zip Spec      14 (20) '2.0'\n-1E084 Extract OS            00 (0) 'MS-DOS'\n-1E085 General Purpose Flag  0800 (2048)\n+1E258 LOCAL HEADER #137     04034B50 (67324752)\n+1E25C Extract Zip Spec      14 (20) '2.0'\n+1E25D Extract OS            00 (0) 'MS-DOS'\n+1E25E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E087 Compression Method    0008 (8) 'Deflated'\n-1E089 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E08D CRC                   5933CC8E (1496566926)\n-1E091 Compressed Size       00000089 (137)\n-1E095 Uncompressed Size     00000183 (387)\n-1E099 Filename Length       0040 (64)\n-1E09B Extra Length          0000 (0)\n-1E09D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E260 Compression Method    0008 (8) 'Deflated'\n+1E262 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E266 CRC                   5933CC8E (1496566926)\n+1E26A Compressed Size       00000089 (137)\n+1E26E Uncompressed Size     00000183 (387)\n+1E272 Filename Length       0040 (64)\n+1E274 Extra Length          0000 (0)\n+1E276 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E09D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E276: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E0DD PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E2B6 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXX\n \n-1E166 LOCAL HEADER #138     04034B50 (67324752)\n-1E16A Extract Zip Spec      14 (20) '2.0'\n-1E16B Extract OS            00 (0) 'MS-DOS'\n-1E16C General Purpose Flag  0800 (2048)\n+1E33F LOCAL HEADER #138     04034B50 (67324752)\n+1E343 Extract Zip Spec      14 (20) '2.0'\n+1E344 Extract OS            00 (0) 'MS-DOS'\n+1E345 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E16E Compression Method    0008 (8) 'Deflated'\n-1E170 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E174 CRC                   F3E800FA (4092068090)\n-1E178 Compressed Size       00000096 (150)\n-1E17C Uncompressed Size     00000277 (631)\n-1E180 Filename Length       003B (59)\n-1E182 Extra Length          0000 (0)\n-1E184 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E347 Compression Method    0008 (8) 'Deflated'\n+1E349 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E34D CRC                   F3E800FA (4092068090)\n+1E351 Compressed Size       00000096 (150)\n+1E355 Uncompressed Size     00000277 (631)\n+1E359 Filename Length       003B (59)\n+1E35B Extra Length          0000 (0)\n+1E35D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E184: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E35D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E1BF PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E398 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXX\n \n-1E255 LOCAL HEADER #139     04034B50 (67324752)\n-1E259 Extract Zip Spec      14 (20) '2.0'\n-1E25A Extract OS            00 (0) 'MS-DOS'\n-1E25B General Purpose Flag  0800 (2048)\n+1E42E LOCAL HEADER #139     04034B50 (67324752)\n+1E432 Extract Zip Spec      14 (20) '2.0'\n+1E433 Extract OS            00 (0) 'MS-DOS'\n+1E434 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E25D Compression Method    0008 (8) 'Deflated'\n-1E25F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E263 CRC                   8DA26D4C (2376232268)\n-1E267 Compressed Size       00000086 (134)\n-1E26B Uncompressed Size     000001AE (430)\n-1E26F Filename Length       0042 (66)\n-1E271 Extra Length          0000 (0)\n-1E273 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E436 Compression Method    0008 (8) 'Deflated'\n+1E438 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E43C CRC                   8DA26D4C (2376232268)\n+1E440 Compressed Size       00000086 (134)\n+1E444 Uncompressed Size     000001AE (430)\n+1E448 Filename Length       0042 (66)\n+1E44A Extra Length          0000 (0)\n+1E44C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E273: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E44C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E2B5 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E48E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             X\n \n-1E33B LOCAL HEADER #140     04034B50 (67324752)\n-1E33F Extract Zip Spec      14 (20) '2.0'\n-1E340 Extract OS            00 (0) 'MS-DOS'\n-1E341 General Purpose Flag  0800 (2048)\n+1E514 LOCAL HEADER #140     04034B50 (67324752)\n+1E518 Extract Zip Spec      14 (20) '2.0'\n+1E519 Extract OS            00 (0) 'MS-DOS'\n+1E51A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E343 Compression Method    0008 (8) 'Deflated'\n-1E345 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E349 CRC                   AE0B59B2 (2919979442)\n-1E34D Compressed Size       00000049 (73)\n-1E351 Uncompressed Size     00000053 (83)\n-1E355 Filename Length       0058 (88)\n-1E357 Extra Length          0000 (0)\n-1E359 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E51C Compression Method    0008 (8) 'Deflated'\n+1E51E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E522 CRC                   AE0B59B2 (2919979442)\n+1E526 Compressed Size       00000049 (73)\n+1E52A Uncompressed Size     00000053 (83)\n+1E52E Filename Length       0058 (88)\n+1E530 Extra Length          0000 (0)\n+1E532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E359: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E3B1 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E58A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1E3FA LOCAL HEADER #141     04034B50 (67324752)\n-1E3FE Extract Zip Spec      14 (20) '2.0'\n-1E3FF Extract OS            00 (0) 'MS-DOS'\n-1E400 General Purpose Flag  0800 (2048)\n+1E5D3 LOCAL HEADER #141     04034B50 (67324752)\n+1E5D7 Extract Zip Spec      14 (20) '2.0'\n+1E5D8 Extract OS            00 (0) 'MS-DOS'\n+1E5D9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E402 Compression Method    0008 (8) 'Deflated'\n-1E404 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E408 CRC                   80BC13A6 (2159809446)\n-1E40C Compressed Size       00000058 (88)\n-1E410 Uncompressed Size     000000A2 (162)\n-1E414 Filename Length       0053 (83)\n-1E416 Extra Length          0000 (0)\n-1E418 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E5DB Compression Method    0008 (8) 'Deflated'\n+1E5DD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E5E1 CRC                   7F3BA707 (2134615815)\n+1E5E5 Compressed Size       00000059 (89)\n+1E5E9 Uncompressed Size     000000A3 (163)\n+1E5ED Filename Length       0053 (83)\n+1E5EF Extra Length          0000 (0)\n+1E5F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E418: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E5F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E46B PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1E644 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1E4C3 LOCAL HEADER #142     04034B50 (67324752)\n-1E4C7 Extract Zip Spec      14 (20) '2.0'\n-1E4C8 Extract OS            00 (0) 'MS-DOS'\n-1E4C9 General Purpose Flag  0800 (2048)\n+1E69D LOCAL HEADER #142     04034B50 (67324752)\n+1E6A1 Extract Zip Spec      14 (20) '2.0'\n+1E6A2 Extract OS            00 (0) 'MS-DOS'\n+1E6A3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E4CB Compression Method    0008 (8) 'Deflated'\n-1E4CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E4D1 CRC                   3E035C22 (1040407586)\n-1E4D5 Compressed Size       000003BC (956)\n-1E4D9 Uncompressed Size     00000A38 (2616)\n-1E4DD Filename Length       0035 (53)\n-1E4DF Extra Length          0000 (0)\n-1E4E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E6A5 Compression Method    0008 (8) 'Deflated'\n+1E6A7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E6AB CRC                   F526CD58 (4112960856)\n+1E6AF Compressed Size       000003B3 (947)\n+1E6B3 Uncompressed Size     000009F4 (2548)\n+1E6B7 Filename Length       0035 (53)\n+1E6B9 Extra Length          0000 (0)\n+1E6BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E4E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E6BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E516 PAYLOAD\n+1E6F0 PAYLOAD\n \n-1E8D2 LOCAL HEADER #143     04034B50 (67324752)\n-1E8D6 Extract Zip Spec      14 (20) '2.0'\n-1E8D7 Extract OS            00 (0) 'MS-DOS'\n-1E8D8 General Purpose Flag  0800 (2048)\n+1EAA3 LOCAL HEADER #143     04034B50 (67324752)\n+1EAA7 Extract Zip Spec      14 (20) '2.0'\n+1EAA8 Extract OS            00 (0) 'MS-DOS'\n+1EAA9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E8DA Compression Method    0008 (8) 'Deflated'\n-1E8DC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E8E0 CRC                   78750509 (2020934921)\n-1E8E4 Compressed Size       00000042 (66)\n-1E8E8 Uncompressed Size     00000044 (68)\n-1E8EC Filename Length       003C (60)\n-1E8EE Extra Length          0000 (0)\n-1E8F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EAAB Compression Method    0008 (8) 'Deflated'\n+1EAAD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EAB1 CRC                   78750509 (2020934921)\n+1EAB5 Compressed Size       00000042 (66)\n+1EAB9 Uncompressed Size     00000044 (68)\n+1EABD Filename Length       003C (60)\n+1EABF Extra Length          0000 (0)\n+1EAC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E8F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EAC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E92C PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1EAFD PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1E96E CENTRAL HEADER #1     02014B50 (33639248)\n-1E972 Created Zip Spec      14 (20) '2.0'\n-1E973 Created OS            03 (3) 'Unix'\n-1E974 Extract Zip Spec      14 (20) '2.0'\n-1E975 Extract OS            00 (0) 'MS-DOS'\n-1E976 General Purpose Flag  0800 (2048)\n+1EB3F CENTRAL HEADER #1     02014B50 (33639248)\n+1EB43 Created Zip Spec      14 (20) '2.0'\n+1EB44 Created OS            03 (3) 'Unix'\n+1EB45 Extract Zip Spec      14 (20) '2.0'\n+1EB46 Extract OS            00 (0) 'MS-DOS'\n+1EB47 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E978 Compression Method    0008 (8) 'Deflated'\n-1E97A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E97E CRC                   A689EB18 (2794056472)\n-1E982 Compressed Size       00000042 (66)\n-1E986 Uncompressed Size     00000040 (64)\n-1E98A Filename Length       0014 (20)\n-1E98C Extra Length          0000 (0)\n-1E98E Comment Length        0000 (0)\n-1E990 Disk Start            0000 (0)\n-1E992 Int File Attributes   0000 (0)\n+1EB49 Compression Method    0008 (8) 'Deflated'\n+1EB4B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EB4F CRC                   A689EB18 (2794056472)\n+1EB53 Compressed Size       00000042 (66)\n+1EB57 Uncompressed Size     00000040 (64)\n+1EB5B Filename Length       0014 (20)\n+1EB5D Extra Length          0000 (0)\n+1EB5F Comment Length        0000 (0)\n+1EB61 Disk Start            0000 (0)\n+1EB63 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1E994 Ext File Attributes   81A40000 (2175008768)\n+1EB65 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1E998 Local Header Offset   00000000 (0)\n-1E99C Filename              'XXXXXXXXXXXXXXXXXXXX'\n+1EB69 Local Header Offset   00000000 (0)\n+1EB6D Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E99C: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EB6D: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1E9B0 CENTRAL HEADER #2     02014B50 (33639248)\n-1E9B4 Created Zip Spec      14 (20) '2.0'\n-1E9B5 Created OS            03 (3) 'Unix'\n-1E9B6 Extract Zip Spec      0A (10) '1.0'\n-1E9B7 Extract OS            00 (0) 'MS-DOS'\n-1E9B8 General Purpose Flag  0800 (2048)\n+1EB81 CENTRAL HEADER #2     02014B50 (33639248)\n+1EB85 Created Zip Spec      14 (20) '2.0'\n+1EB86 Created OS            03 (3) 'Unix'\n+1EB87 Extract Zip Spec      0A (10) '1.0'\n+1EB88 Extract OS            00 (0) 'MS-DOS'\n+1EB89 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-1E9BA Compression Method    0000 (0) 'Stored'\n-1E9BC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E9C0 CRC                   00000000 (0)\n-1E9C4 Compressed Size       00000000 (0)\n-1E9C8 Uncompressed Size     00000000 (0)\n-1E9CC Filename Length       0009 (9)\n-1E9CE Extra Length          0000 (0)\n-1E9D0 Comment Length        0000 (0)\n-1E9D2 Disk Start            0000 (0)\n-1E9D4 Int File Attributes   0000 (0)\n+1EB8B Compression Method    0000 (0) 'Stored'\n+1EB8D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EB91 CRC                   00000000 (0)\n+1EB95 Compressed Size       00000000 (0)\n+1EB99 Uncompressed Size     00000000 (0)\n+1EB9D Filename Length       0009 (9)\n+1EB9F Extra Length          0000 (0)\n+1EBA1 Comment Length        0000 (0)\n+1EBA3 Disk Start            0000 (0)\n+1EBA5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1E9D6 Ext File Attributes   41ED0010 (1106051088)\n+1EBA7 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1E9DA Local Header Offset   00000074 (116)\n-1E9DE Filename              'XXXXXXXXX'\n+1EBAB Local Header Offset   00000074 (116)\n+1EBAF Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x1E9DE: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x1EBAF: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1E9DE: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EBAF: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1E9B6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x1EB87: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-1E9E7 CENTRAL HEADER #3     02014B50 (33639248)\n-1E9EB Created Zip Spec      14 (20) '2.0'\n-1E9EC Created OS            03 (3) 'Unix'\n-1E9ED Extract Zip Spec      0A (10) '1.0'\n-1E9EE Extract OS            00 (0) 'MS-DOS'\n-1E9EF General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1E9F1 Compression Method    0000 (0) 'Stored'\n-1E9F3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E9F7 CRC                   00000000 (0)\n-1E9FB Compressed Size       00000000 (0)\n-1E9FF Uncompressed Size     00000000 (0)\n-1EA03 Filename Length       0004 (4)\n-1EA05 Extra Length          0000 (0)\n-1EA07 Comment Length        0000 (0)\n-1EA09 Disk Start            0000 (0)\n-1EA0B Int File Attributes   0000 (0)\n+1EBB8 CENTRAL HEADER #3     02014B50 (33639248)\n+1EBBC Created Zip Spec      14 (20) '2.0'\n+1EBBD Created OS            03 (3) 'Unix'\n+1EBBE Extract Zip Spec      0A (10) '1.0'\n+1EBBF Extract OS            00 (0) 'MS-DOS'\n+1EBC0 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EBC2 Compression Method    0000 (0) 'Stored'\n+1EBC4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EBC8 CRC                   00000000 (0)\n+1EBCC Compressed Size       00000000 (0)\n+1EBD0 Uncompressed Size     00000000 (0)\n+1EBD4 Filename Length       0004 (4)\n+1EBD6 Extra Length          0000 (0)\n+1EBD8 Comment Length        0000 (0)\n+1EBDA Disk Start            0000 (0)\n+1EBDC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EA0D Ext File Attributes   41ED0010 (1106051088)\n+1EBDE Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EA11 Local Header Offset   0000009B (155)\n-1EA15 Filename              'XXXX'\n+1EBE2 Local Header Offset   0000009B (155)\n+1EBE6 Filename              'XXXX'\n #\n-# WARNING: Offset 0x1EA15: Filename 'XXXX'\n+# WARNING: Offset 0x1EBE6: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EA15: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x1EBE6: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1E9ED: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x1EBBE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-1EA19 CENTRAL HEADER #4     02014B50 (33639248)\n-1EA1D Created Zip Spec      14 (20) '2.0'\n-1EA1E Created OS            03 (3) 'Unix'\n-1EA1F Extract Zip Spec      0A (10) '1.0'\n-1EA20 Extract OS            00 (0) 'MS-DOS'\n-1EA21 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EA23 Compression Method    0000 (0) 'Stored'\n-1EA25 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EA29 CRC                   00000000 (0)\n-1EA2D Compressed Size       00000000 (0)\n-1EA31 Uncompressed Size     00000000 (0)\n-1EA35 Filename Length       000B (11)\n-1EA37 Extra Length          0000 (0)\n-1EA39 Comment Length        0000 (0)\n-1EA3B Disk Start            0000 (0)\n-1EA3D Int File Attributes   0000 (0)\n+1EBEA CENTRAL HEADER #4     02014B50 (33639248)\n+1EBEE Created Zip Spec      14 (20) '2.0'\n+1EBEF Created OS            03 (3) 'Unix'\n+1EBF0 Extract Zip Spec      0A (10) '1.0'\n+1EBF1 Extract OS            00 (0) 'MS-DOS'\n+1EBF2 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EBF4 Compression Method    0000 (0) 'Stored'\n+1EBF6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EBFA CRC                   00000000 (0)\n+1EBFE Compressed Size       00000000 (0)\n+1EC02 Uncompressed Size     00000000 (0)\n+1EC06 Filename Length       000B (11)\n+1EC08 Extra Length          0000 (0)\n+1EC0A Comment Length        0000 (0)\n+1EC0C Disk Start            0000 (0)\n+1EC0E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EA3F Ext File Attributes   41ED0010 (1106051088)\n+1EC10 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EA43 Local Header Offset   000000BD (189)\n-1EA47 Filename              'XXXXXXXXXXX'\n+1EC14 Local Header Offset   000000BD (189)\n+1EC18 Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EA47: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x1EC18: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EA47: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EC18: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EA1F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x1EBF0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-1EA52 CENTRAL HEADER #5     02014B50 (33639248)\n-1EA56 Created Zip Spec      14 (20) '2.0'\n-1EA57 Created OS            03 (3) 'Unix'\n-1EA58 Extract Zip Spec      0A (10) '1.0'\n-1EA59 Extract OS            00 (0) 'MS-DOS'\n-1EA5A General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EA5C Compression Method    0000 (0) 'Stored'\n-1EA5E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EA62 CRC                   00000000 (0)\n-1EA66 Compressed Size       00000000 (0)\n-1EA6A Uncompressed Size     00000000 (0)\n-1EA6E Filename Length       0011 (17)\n-1EA70 Extra Length          0000 (0)\n-1EA72 Comment Length        0000 (0)\n-1EA74 Disk Start            0000 (0)\n-1EA76 Int File Attributes   0000 (0)\n+1EC23 CENTRAL HEADER #5     02014B50 (33639248)\n+1EC27 Created Zip Spec      14 (20) '2.0'\n+1EC28 Created OS            03 (3) 'Unix'\n+1EC29 Extract Zip Spec      0A (10) '1.0'\n+1EC2A Extract OS            00 (0) 'MS-DOS'\n+1EC2B General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EC2D Compression Method    0000 (0) 'Stored'\n+1EC2F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EC33 CRC                   00000000 (0)\n+1EC37 Compressed Size       00000000 (0)\n+1EC3B Uncompressed Size     00000000 (0)\n+1EC3F Filename Length       0011 (17)\n+1EC41 Extra Length          0000 (0)\n+1EC43 Comment Length        0000 (0)\n+1EC45 Disk Start            0000 (0)\n+1EC47 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EA78 Ext File Attributes   41ED0010 (1106051088)\n+1EC49 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EA7C Local Header Offset   000000E6 (230)\n-1EA80 Filename              'XXXXXXXXXXXXXXXXX'\n+1EC4D Local Header Offset   000000E6 (230)\n+1EC51 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EA80: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EC51: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EA80: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EC51: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EA58: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EC29: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-1EA91 CENTRAL HEADER #6     02014B50 (33639248)\n-1EA95 Created Zip Spec      14 (20) '2.0'\n-1EA96 Created OS            03 (3) 'Unix'\n-1EA97 Extract Zip Spec      0A (10) '1.0'\n-1EA98 Extract OS            00 (0) 'MS-DOS'\n-1EA99 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EA9B Compression Method    0000 (0) 'Stored'\n-1EA9D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EAA1 CRC                   00000000 (0)\n-1EAA5 Compressed Size       00000000 (0)\n-1EAA9 Uncompressed Size     00000000 (0)\n-1EAAD Filename Length       0015 (21)\n-1EAAF Extra Length          0000 (0)\n-1EAB1 Comment Length        0000 (0)\n-1EAB3 Disk Start            0000 (0)\n-1EAB5 Int File Attributes   0000 (0)\n+1EC62 CENTRAL HEADER #6     02014B50 (33639248)\n+1EC66 Created Zip Spec      14 (20) '2.0'\n+1EC67 Created OS            03 (3) 'Unix'\n+1EC68 Extract Zip Spec      0A (10) '1.0'\n+1EC69 Extract OS            00 (0) 'MS-DOS'\n+1EC6A General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EC6C Compression Method    0000 (0) 'Stored'\n+1EC6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EC72 CRC                   00000000 (0)\n+1EC76 Compressed Size       00000000 (0)\n+1EC7A Uncompressed Size     00000000 (0)\n+1EC7E Filename Length       0015 (21)\n+1EC80 Extra Length          0000 (0)\n+1EC82 Comment Length        0000 (0)\n+1EC84 Disk Start            0000 (0)\n+1EC86 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EAB7 Ext File Attributes   41ED0010 (1106051088)\n+1EC88 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EABB Local Header Offset   00000115 (277)\n-1EABF Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+1EC8C Local Header Offset   00000115 (277)\n+1EC90 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EABF: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EC90: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EABF: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EC90: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EA97: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EC68: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EAD4 CENTRAL HEADER #7     02014B50 (33639248)\n-1EAD8 Created Zip Spec      14 (20) '2.0'\n-1EAD9 Created OS            03 (3) 'Unix'\n-1EADA Extract Zip Spec      0A (10) '1.0'\n-1EADB Extract OS            00 (0) 'MS-DOS'\n-1EADC General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EADE Compression Method    0000 (0) 'Stored'\n-1EAE0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EAE4 CRC                   00000000 (0)\n-1EAE8 Compressed Size       00000000 (0)\n-1EAEC Uncompressed Size     00000000 (0)\n-1EAF0 Filename Length       001D (29)\n-1EAF2 Extra Length          0000 (0)\n-1EAF4 Comment Length        0000 (0)\n-1EAF6 Disk Start            0000 (0)\n-1EAF8 Int File Attributes   0000 (0)\n+1ECA5 CENTRAL HEADER #7     02014B50 (33639248)\n+1ECA9 Created Zip Spec      14 (20) '2.0'\n+1ECAA Created OS            03 (3) 'Unix'\n+1ECAB Extract Zip Spec      0A (10) '1.0'\n+1ECAC Extract OS            00 (0) 'MS-DOS'\n+1ECAD General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1ECAF Compression Method    0000 (0) 'Stored'\n+1ECB1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1ECB5 CRC                   00000000 (0)\n+1ECB9 Compressed Size       00000000 (0)\n+1ECBD Uncompressed Size     00000000 (0)\n+1ECC1 Filename Length       001D (29)\n+1ECC3 Extra Length          0000 (0)\n+1ECC5 Comment Length        0000 (0)\n+1ECC7 Disk Start            0000 (0)\n+1ECC9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EAFA Ext File Attributes   41ED0010 (1106051088)\n+1ECCB Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EAFE Local Header Offset   00000148 (328)\n-1EB02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1ECCF Local Header Offset   00000148 (328)\n+1ECD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EB02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ECD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EB02: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1ECD3: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EADA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ECAB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EB1F CENTRAL HEADER #8     02014B50 (33639248)\n-1EB23 Created Zip Spec      14 (20) '2.0'\n-1EB24 Created OS            03 (3) 'Unix'\n-1EB25 Extract Zip Spec      0A (10) '1.0'\n-1EB26 Extract OS            00 (0) 'MS-DOS'\n-1EB27 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EB29 Compression Method    0000 (0) 'Stored'\n-1EB2B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EB2F CRC                   00000000 (0)\n-1EB33 Compressed Size       00000000 (0)\n-1EB37 Uncompressed Size     00000000 (0)\n-1EB3B Filename Length       002A (42)\n-1EB3D Extra Length          0000 (0)\n-1EB3F Comment Length        0000 (0)\n-1EB41 Disk Start            0000 (0)\n-1EB43 Int File Attributes   0000 (0)\n+1ECF0 CENTRAL HEADER #8     02014B50 (33639248)\n+1ECF4 Created Zip Spec      14 (20) '2.0'\n+1ECF5 Created OS            03 (3) 'Unix'\n+1ECF6 Extract Zip Spec      0A (10) '1.0'\n+1ECF7 Extract OS            00 (0) 'MS-DOS'\n+1ECF8 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1ECFA Compression Method    0000 (0) 'Stored'\n+1ECFC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1ED00 CRC                   00000000 (0)\n+1ED04 Compressed Size       00000000 (0)\n+1ED08 Uncompressed Size     00000000 (0)\n+1ED0C Filename Length       002A (42)\n+1ED0E Extra Length          0000 (0)\n+1ED10 Comment Length        0000 (0)\n+1ED12 Disk Start            0000 (0)\n+1ED14 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EB45 Ext File Attributes   41ED0010 (1106051088)\n+1ED16 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EB49 Local Header Offset   00000183 (387)\n-1EB4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1ED1A Local Header Offset   00000183 (387)\n+1ED1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EB4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ED1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EB4D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1ED1E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EB25: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ECF6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EB77 CENTRAL HEADER #9     02014B50 (33639248)\n-1EB7B Created Zip Spec      14 (20) '2.0'\n-1EB7C Created OS            03 (3) 'Unix'\n-1EB7D Extract Zip Spec      0A (10) '1.0'\n-1EB7E Extract OS            00 (0) 'MS-DOS'\n-1EB7F General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EB81 Compression Method    0000 (0) 'Stored'\n-1EB83 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EB87 CRC                   00000000 (0)\n-1EB8B Compressed Size       00000000 (0)\n-1EB8F Uncompressed Size     00000000 (0)\n-1EB93 Filename Length       0031 (49)\n-1EB95 Extra Length          0000 (0)\n-1EB97 Comment Length        0000 (0)\n-1EB99 Disk Start            0000 (0)\n-1EB9B Int File Attributes   0000 (0)\n+1ED48 CENTRAL HEADER #9     02014B50 (33639248)\n+1ED4C Created Zip Spec      14 (20) '2.0'\n+1ED4D Created OS            03 (3) 'Unix'\n+1ED4E Extract Zip Spec      0A (10) '1.0'\n+1ED4F Extract OS            00 (0) 'MS-DOS'\n+1ED50 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1ED52 Compression Method    0000 (0) 'Stored'\n+1ED54 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1ED58 CRC                   00000000 (0)\n+1ED5C Compressed Size       00000000 (0)\n+1ED60 Uncompressed Size     00000000 (0)\n+1ED64 Filename Length       0031 (49)\n+1ED66 Extra Length          0000 (0)\n+1ED68 Comment Length        0000 (0)\n+1ED6A Disk Start            0000 (0)\n+1ED6C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EB9D Ext File Attributes   41ED0010 (1106051088)\n+1ED6E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EBA1 Local Header Offset   000001CB (459)\n-1EBA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1ED72 Local Header Offset   000001CB (459)\n+1ED76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EBA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ED76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EBA5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1ED76: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EB7D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ED4E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EBD6 CENTRAL HEADER #10    02014B50 (33639248)\n-1EBDA Created Zip Spec      14 (20) '2.0'\n-1EBDB Created OS            03 (3) 'Unix'\n-1EBDC Extract Zip Spec      0A (10) '1.0'\n-1EBDD Extract OS            00 (0) 'MS-DOS'\n-1EBDE General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EBE0 Compression Method    0000 (0) 'Stored'\n-1EBE2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EBE6 CRC                   00000000 (0)\n-1EBEA Compressed Size       00000000 (0)\n-1EBEE Uncompressed Size     00000000 (0)\n-1EBF2 Filename Length       0033 (51)\n-1EBF4 Extra Length          0000 (0)\n-1EBF6 Comment Length        0000 (0)\n-1EBF8 Disk Start            0000 (0)\n-1EBFA Int File Attributes   0000 (0)\n+1EDA7 CENTRAL HEADER #10    02014B50 (33639248)\n+1EDAB Created Zip Spec      14 (20) '2.0'\n+1EDAC Created OS            03 (3) 'Unix'\n+1EDAD Extract Zip Spec      0A (10) '1.0'\n+1EDAE Extract OS            00 (0) 'MS-DOS'\n+1EDAF General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EDB1 Compression Method    0000 (0) 'Stored'\n+1EDB3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EDB7 CRC                   00000000 (0)\n+1EDBB Compressed Size       00000000 (0)\n+1EDBF Uncompressed Size     00000000 (0)\n+1EDC3 Filename Length       0033 (51)\n+1EDC5 Extra Length          0000 (0)\n+1EDC7 Comment Length        0000 (0)\n+1EDC9 Disk Start            0000 (0)\n+1EDCB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EBFC Ext File Attributes   41ED0010 (1106051088)\n+1EDCD Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EC00 Local Header Offset   0000021A (538)\n-1EC04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EDD1 Local Header Offset   0000021A (538)\n+1EDD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EC04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EDD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EC04: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EDD5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EBDC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EDAD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EC37 CENTRAL HEADER #11    02014B50 (33639248)\n-1EC3B Created Zip Spec      14 (20) '2.0'\n-1EC3C Created OS            03 (3) 'Unix'\n-1EC3D Extract Zip Spec      0A (10) '1.0'\n-1EC3E Extract OS            00 (0) 'MS-DOS'\n-1EC3F General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EC41 Compression Method    0000 (0) 'Stored'\n-1EC43 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EC47 CRC                   00000000 (0)\n-1EC4B Compressed Size       00000000 (0)\n-1EC4F Uncompressed Size     00000000 (0)\n-1EC53 Filename Length       0031 (49)\n-1EC55 Extra Length          0000 (0)\n-1EC57 Comment Length        0000 (0)\n-1EC59 Disk Start            0000 (0)\n-1EC5B Int File Attributes   0000 (0)\n+1EE08 CENTRAL HEADER #11    02014B50 (33639248)\n+1EE0C Created Zip Spec      14 (20) '2.0'\n+1EE0D Created OS            03 (3) 'Unix'\n+1EE0E Extract Zip Spec      0A (10) '1.0'\n+1EE0F Extract OS            00 (0) 'MS-DOS'\n+1EE10 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EE12 Compression Method    0000 (0) 'Stored'\n+1EE14 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EE18 CRC                   00000000 (0)\n+1EE1C Compressed Size       00000000 (0)\n+1EE20 Uncompressed Size     00000000 (0)\n+1EE24 Filename Length       0031 (49)\n+1EE26 Extra Length          0000 (0)\n+1EE28 Comment Length        0000 (0)\n+1EE2A Disk Start            0000 (0)\n+1EE2C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EC5D Ext File Attributes   41ED0010 (1106051088)\n+1EE2E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EC61 Local Header Offset   0000026B (619)\n-1EC65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EE32 Local Header Offset   0000026B (619)\n+1EE36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EC65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EE36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EC65: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EE36: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EC3D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EE0E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EC96 CENTRAL HEADER #12    02014B50 (33639248)\n-1EC9A Created Zip Spec      14 (20) '2.0'\n-1EC9B Created OS            03 (3) 'Unix'\n-1EC9C Extract Zip Spec      0A (10) '1.0'\n-1EC9D Extract OS            00 (0) 'MS-DOS'\n-1EC9E General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1ECA0 Compression Method    0000 (0) 'Stored'\n-1ECA2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1ECA6 CRC                   00000000 (0)\n-1ECAA Compressed Size       00000000 (0)\n-1ECAE Uncompressed Size     00000000 (0)\n-1ECB2 Filename Length       0037 (55)\n-1ECB4 Extra Length          0000 (0)\n-1ECB6 Comment Length        0000 (0)\n-1ECB8 Disk Start            0000 (0)\n-1ECBA Int File Attributes   0000 (0)\n+1EE67 CENTRAL HEADER #12    02014B50 (33639248)\n+1EE6B Created Zip Spec      14 (20) '2.0'\n+1EE6C Created OS            03 (3) 'Unix'\n+1EE6D Extract Zip Spec      0A (10) '1.0'\n+1EE6E Extract OS            00 (0) 'MS-DOS'\n+1EE6F General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EE71 Compression Method    0000 (0) 'Stored'\n+1EE73 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EE77 CRC                   00000000 (0)\n+1EE7B Compressed Size       00000000 (0)\n+1EE7F Uncompressed Size     00000000 (0)\n+1EE83 Filename Length       0037 (55)\n+1EE85 Extra Length          0000 (0)\n+1EE87 Comment Length        0000 (0)\n+1EE89 Disk Start            0000 (0)\n+1EE8B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1ECBC Ext File Attributes   41ED0010 (1106051088)\n+1EE8D Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1ECC0 Local Header Offset   000002BA (698)\n-1ECC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EE91 Local Header Offset   000002BA (698)\n+1EE95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1ECC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EE95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1ECC4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EE95: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EC9C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EE6D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1ECFB CENTRAL HEADER #13    02014B50 (33639248)\n-1ECFF Created Zip Spec      14 (20) '2.0'\n-1ED00 Created OS            03 (3) 'Unix'\n-1ED01 Extract Zip Spec      0A (10) '1.0'\n-1ED02 Extract OS            00 (0) 'MS-DOS'\n-1ED03 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1ED05 Compression Method    0000 (0) 'Stored'\n-1ED07 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1ED0B CRC                   00000000 (0)\n-1ED0F Compressed Size       00000000 (0)\n-1ED13 Uncompressed Size     00000000 (0)\n-1ED17 Filename Length       0027 (39)\n-1ED19 Extra Length          0000 (0)\n-1ED1B Comment Length        0000 (0)\n-1ED1D Disk Start            0000 (0)\n-1ED1F Int File Attributes   0000 (0)\n+1EECC CENTRAL HEADER #13    02014B50 (33639248)\n+1EED0 Created Zip Spec      14 (20) '2.0'\n+1EED1 Created OS            03 (3) 'Unix'\n+1EED2 Extract Zip Spec      0A (10) '1.0'\n+1EED3 Extract OS            00 (0) 'MS-DOS'\n+1EED4 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EED6 Compression Method    0000 (0) 'Stored'\n+1EED8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EEDC CRC                   00000000 (0)\n+1EEE0 Compressed Size       00000000 (0)\n+1EEE4 Uncompressed Size     00000000 (0)\n+1EEE8 Filename Length       0027 (39)\n+1EEEA Extra Length          0000 (0)\n+1EEEC Comment Length        0000 (0)\n+1EEEE Disk Start            0000 (0)\n+1EEF0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1ED21 Ext File Attributes   41ED0010 (1106051088)\n+1EEF2 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1ED25 Local Header Offset   0000030F (783)\n-1ED29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EEF6 Local Header Offset   0000030F (783)\n+1EEFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1ED29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EEFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1ED29: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EEFA: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1ED01: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EED2: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1ED50 CENTRAL HEADER #14    02014B50 (33639248)\n-1ED54 Created Zip Spec      14 (20) '2.0'\n-1ED55 Created OS            03 (3) 'Unix'\n-1ED56 Extract Zip Spec      0A (10) '1.0'\n-1ED57 Extract OS            00 (0) 'MS-DOS'\n-1ED58 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1ED5A Compression Method    0000 (0) 'Stored'\n-1ED5C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1ED60 CRC                   00000000 (0)\n-1ED64 Compressed Size       00000000 (0)\n-1ED68 Uncompressed Size     00000000 (0)\n-1ED6C Filename Length       0028 (40)\n-1ED6E Extra Length          0000 (0)\n-1ED70 Comment Length        0000 (0)\n-1ED72 Disk Start            0000 (0)\n-1ED74 Int File Attributes   0000 (0)\n+1EF21 CENTRAL HEADER #14    02014B50 (33639248)\n+1EF25 Created Zip Spec      14 (20) '2.0'\n+1EF26 Created OS            03 (3) 'Unix'\n+1EF27 Extract Zip Spec      0A (10) '1.0'\n+1EF28 Extract OS            00 (0) 'MS-DOS'\n+1EF29 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EF2B Compression Method    0000 (0) 'Stored'\n+1EF2D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EF31 CRC                   00000000 (0)\n+1EF35 Compressed Size       00000000 (0)\n+1EF39 Uncompressed Size     00000000 (0)\n+1EF3D Filename Length       0028 (40)\n+1EF3F Extra Length          0000 (0)\n+1EF41 Comment Length        0000 (0)\n+1EF43 Disk Start            0000 (0)\n+1EF45 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1ED76 Ext File Attributes   41ED0010 (1106051088)\n+1EF47 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1ED7A Local Header Offset   00000354 (852)\n-1ED7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EF4B Local Header Offset   00000354 (852)\n+1EF4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1ED7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EF4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1ED7E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EF4F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1ED56: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EF27: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EDA6 CENTRAL HEADER #15    02014B50 (33639248)\n-1EDAA Created Zip Spec      14 (20) '2.0'\n-1EDAB Created OS            03 (3) 'Unix'\n-1EDAC Extract Zip Spec      0A (10) '1.0'\n-1EDAD Extract OS            00 (0) 'MS-DOS'\n-1EDAE General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EDB0 Compression Method    0000 (0) 'Stored'\n-1EDB2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EDB6 CRC                   00000000 (0)\n-1EDBA Compressed Size       00000000 (0)\n-1EDBE Uncompressed Size     00000000 (0)\n-1EDC2 Filename Length       0029 (41)\n-1EDC4 Extra Length          0000 (0)\n-1EDC6 Comment Length        0000 (0)\n-1EDC8 Disk Start            0000 (0)\n-1EDCA Int File Attributes   0000 (0)\n+1EF77 CENTRAL HEADER #15    02014B50 (33639248)\n+1EF7B Created Zip Spec      14 (20) '2.0'\n+1EF7C Created OS            03 (3) 'Unix'\n+1EF7D Extract Zip Spec      0A (10) '1.0'\n+1EF7E Extract OS            00 (0) 'MS-DOS'\n+1EF7F General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EF81 Compression Method    0000 (0) 'Stored'\n+1EF83 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EF87 CRC                   00000000 (0)\n+1EF8B Compressed Size       00000000 (0)\n+1EF8F Uncompressed Size     00000000 (0)\n+1EF93 Filename Length       0029 (41)\n+1EF95 Extra Length          0000 (0)\n+1EF97 Comment Length        0000 (0)\n+1EF99 Disk Start            0000 (0)\n+1EF9B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EDCC Ext File Attributes   41ED0010 (1106051088)\n+1EF9D Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EDD0 Local Header Offset   0000039A (922)\n-1EDD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EFA1 Local Header Offset   0000039A (922)\n+1EFA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EDD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EFA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EDD4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EFA5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EDAC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EF7D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EDFD CENTRAL HEADER #16    02014B50 (33639248)\n-1EE01 Created Zip Spec      14 (20) '2.0'\n-1EE02 Created OS            03 (3) 'Unix'\n-1EE03 Extract Zip Spec      0A (10) '1.0'\n-1EE04 Extract OS            00 (0) 'MS-DOS'\n-1EE05 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EE07 Compression Method    0000 (0) 'Stored'\n-1EE09 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EE0D CRC                   00000000 (0)\n-1EE11 Compressed Size       00000000 (0)\n-1EE15 Uncompressed Size     00000000 (0)\n-1EE19 Filename Length       0029 (41)\n-1EE1B Extra Length          0000 (0)\n-1EE1D Comment Length        0000 (0)\n-1EE1F Disk Start            0000 (0)\n-1EE21 Int File Attributes   0000 (0)\n+1EFCE CENTRAL HEADER #16    02014B50 (33639248)\n+1EFD2 Created Zip Spec      14 (20) '2.0'\n+1EFD3 Created OS            03 (3) 'Unix'\n+1EFD4 Extract Zip Spec      0A (10) '1.0'\n+1EFD5 Extract OS            00 (0) 'MS-DOS'\n+1EFD6 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1EFD8 Compression Method    0000 (0) 'Stored'\n+1EFDA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EFDE CRC                   00000000 (0)\n+1EFE2 Compressed Size       00000000 (0)\n+1EFE6 Uncompressed Size     00000000 (0)\n+1EFEA Filename Length       0029 (41)\n+1EFEC Extra Length          0000 (0)\n+1EFEE Comment Length        0000 (0)\n+1EFF0 Disk Start            0000 (0)\n+1EFF2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EE23 Ext File Attributes   41ED0010 (1106051088)\n+1EFF4 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EE27 Local Header Offset   000003E1 (993)\n-1EE2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EFF8 Local Header Offset   000003E1 (993)\n+1EFFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EE2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EFFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EE2B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1EFFC: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EE03: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EFD4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EE54 CENTRAL HEADER #17    02014B50 (33639248)\n-1EE58 Created Zip Spec      14 (20) '2.0'\n-1EE59 Created OS            03 (3) 'Unix'\n-1EE5A Extract Zip Spec      0A (10) '1.0'\n-1EE5B Extract OS            00 (0) 'MS-DOS'\n-1EE5C General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EE5E Compression Method    0000 (0) 'Stored'\n-1EE60 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EE64 CRC                   00000000 (0)\n-1EE68 Compressed Size       00000000 (0)\n-1EE6C Uncompressed Size     00000000 (0)\n-1EE70 Filename Length       0024 (36)\n-1EE72 Extra Length          0000 (0)\n-1EE74 Comment Length        0000 (0)\n-1EE76 Disk Start            0000 (0)\n-1EE78 Int File Attributes   0000 (0)\n+1F025 CENTRAL HEADER #17    02014B50 (33639248)\n+1F029 Created Zip Spec      14 (20) '2.0'\n+1F02A Created OS            03 (3) 'Unix'\n+1F02B Extract Zip Spec      0A (10) '1.0'\n+1F02C Extract OS            00 (0) 'MS-DOS'\n+1F02D General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F02F Compression Method    0000 (0) 'Stored'\n+1F031 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F035 CRC                   00000000 (0)\n+1F039 Compressed Size       00000000 (0)\n+1F03D Uncompressed Size     00000000 (0)\n+1F041 Filename Length       0024 (36)\n+1F043 Extra Length          0000 (0)\n+1F045 Comment Length        0000 (0)\n+1F047 Disk Start            0000 (0)\n+1F049 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EE7A Ext File Attributes   41ED0010 (1106051088)\n+1F04B Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EE7E Local Header Offset   00000428 (1064)\n-1EE82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F04F Local Header Offset   00000428 (1064)\n+1F053 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EE82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F053: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EE82: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F053: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EE5A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F02B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EEA6 CENTRAL HEADER #18    02014B50 (33639248)\n-1EEAA Created Zip Spec      14 (20) '2.0'\n-1EEAB Created OS            03 (3) 'Unix'\n-1EEAC Extract Zip Spec      0A (10) '1.0'\n-1EEAD Extract OS            00 (0) 'MS-DOS'\n-1EEAE General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EEB0 Compression Method    0000 (0) 'Stored'\n-1EEB2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EEB6 CRC                   00000000 (0)\n-1EEBA Compressed Size       00000000 (0)\n-1EEBE Uncompressed Size     00000000 (0)\n-1EEC2 Filename Length       0024 (36)\n-1EEC4 Extra Length          0000 (0)\n-1EEC6 Comment Length        0000 (0)\n-1EEC8 Disk Start            0000 (0)\n-1EECA Int File Attributes   0000 (0)\n+1F077 CENTRAL HEADER #18    02014B50 (33639248)\n+1F07B Created Zip Spec      14 (20) '2.0'\n+1F07C Created OS            03 (3) 'Unix'\n+1F07D Extract Zip Spec      0A (10) '1.0'\n+1F07E Extract OS            00 (0) 'MS-DOS'\n+1F07F General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F081 Compression Method    0000 (0) 'Stored'\n+1F083 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F087 CRC                   00000000 (0)\n+1F08B Compressed Size       00000000 (0)\n+1F08F Uncompressed Size     00000000 (0)\n+1F093 Filename Length       0024 (36)\n+1F095 Extra Length          0000 (0)\n+1F097 Comment Length        0000 (0)\n+1F099 Disk Start            0000 (0)\n+1F09B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EECC Ext File Attributes   41ED0010 (1106051088)\n+1F09D Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EED0 Local Header Offset   0000046A (1130)\n-1EED4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F0A1 Local Header Offset   0000046A (1130)\n+1F0A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EED4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F0A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EED4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F0A5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EEAC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F07D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EEF8 CENTRAL HEADER #19    02014B50 (33639248)\n-1EEFC Created Zip Spec      14 (20) '2.0'\n-1EEFD Created OS            03 (3) 'Unix'\n-1EEFE Extract Zip Spec      0A (10) '1.0'\n-1EEFF Extract OS            00 (0) 'MS-DOS'\n-1EF00 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EF02 Compression Method    0000 (0) 'Stored'\n-1EF04 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EF08 CRC                   00000000 (0)\n-1EF0C Compressed Size       00000000 (0)\n-1EF10 Uncompressed Size     00000000 (0)\n-1EF14 Filename Length       002E (46)\n-1EF16 Extra Length          0000 (0)\n-1EF18 Comment Length        0000 (0)\n-1EF1A Disk Start            0000 (0)\n-1EF1C Int File Attributes   0000 (0)\n+1F0C9 CENTRAL HEADER #19    02014B50 (33639248)\n+1F0CD Created Zip Spec      14 (20) '2.0'\n+1F0CE Created OS            03 (3) 'Unix'\n+1F0CF Extract Zip Spec      0A (10) '1.0'\n+1F0D0 Extract OS            00 (0) 'MS-DOS'\n+1F0D1 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F0D3 Compression Method    0000 (0) 'Stored'\n+1F0D5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F0D9 CRC                   00000000 (0)\n+1F0DD Compressed Size       00000000 (0)\n+1F0E1 Uncompressed Size     00000000 (0)\n+1F0E5 Filename Length       002E (46)\n+1F0E7 Extra Length          0000 (0)\n+1F0E9 Comment Length        0000 (0)\n+1F0EB Disk Start            0000 (0)\n+1F0ED Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EF1E Ext File Attributes   41ED0010 (1106051088)\n+1F0EF Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EF22 Local Header Offset   000004AC (1196)\n-1EF26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F0F3 Local Header Offset   000004AC (1196)\n+1F0F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EF26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F0F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EF26: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F0F7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EEFE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F0CF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EF54 CENTRAL HEADER #20    02014B50 (33639248)\n-1EF58 Created Zip Spec      14 (20) '2.0'\n-1EF59 Created OS            03 (3) 'Unix'\n-1EF5A Extract Zip Spec      0A (10) '1.0'\n-1EF5B Extract OS            00 (0) 'MS-DOS'\n-1EF5C General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EF5E Compression Method    0000 (0) 'Stored'\n-1EF60 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EF64 CRC                   00000000 (0)\n-1EF68 Compressed Size       00000000 (0)\n-1EF6C Uncompressed Size     00000000 (0)\n-1EF70 Filename Length       0035 (53)\n-1EF72 Extra Length          0000 (0)\n-1EF74 Comment Length        0000 (0)\n-1EF76 Disk Start            0000 (0)\n-1EF78 Int File Attributes   0000 (0)\n+1F125 CENTRAL HEADER #20    02014B50 (33639248)\n+1F129 Created Zip Spec      14 (20) '2.0'\n+1F12A Created OS            03 (3) 'Unix'\n+1F12B Extract Zip Spec      0A (10) '1.0'\n+1F12C Extract OS            00 (0) 'MS-DOS'\n+1F12D General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F12F Compression Method    0000 (0) 'Stored'\n+1F131 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F135 CRC                   00000000 (0)\n+1F139 Compressed Size       00000000 (0)\n+1F13D Uncompressed Size     00000000 (0)\n+1F141 Filename Length       0035 (53)\n+1F143 Extra Length          0000 (0)\n+1F145 Comment Length        0000 (0)\n+1F147 Disk Start            0000 (0)\n+1F149 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EF7A Ext File Attributes   41ED0010 (1106051088)\n+1F14B Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EF7E Local Header Offset   000004F8 (1272)\n-1EF82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F14F Local Header Offset   000004F8 (1272)\n+1F153 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EF82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F153: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EF82: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F153: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EF5A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F12B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1EFB7 CENTRAL HEADER #21    02014B50 (33639248)\n-1EFBB Created Zip Spec      14 (20) '2.0'\n-1EFBC Created OS            03 (3) 'Unix'\n-1EFBD Extract Zip Spec      0A (10) '1.0'\n-1EFBE Extract OS            00 (0) 'MS-DOS'\n-1EFBF General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1EFC1 Compression Method    0000 (0) 'Stored'\n-1EFC3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EFC7 CRC                   00000000 (0)\n-1EFCB Compressed Size       00000000 (0)\n-1EFCF Uncompressed Size     00000000 (0)\n-1EFD3 Filename Length       003B (59)\n-1EFD5 Extra Length          0000 (0)\n-1EFD7 Comment Length        0000 (0)\n-1EFD9 Disk Start            0000 (0)\n-1EFDB Int File Attributes   0000 (0)\n+1F188 CENTRAL HEADER #21    02014B50 (33639248)\n+1F18C Created Zip Spec      14 (20) '2.0'\n+1F18D Created OS            03 (3) 'Unix'\n+1F18E Extract Zip Spec      0A (10) '1.0'\n+1F18F Extract OS            00 (0) 'MS-DOS'\n+1F190 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F192 Compression Method    0000 (0) 'Stored'\n+1F194 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F198 CRC                   00000000 (0)\n+1F19C Compressed Size       00000000 (0)\n+1F1A0 Uncompressed Size     00000000 (0)\n+1F1A4 Filename Length       003B (59)\n+1F1A6 Extra Length          0000 (0)\n+1F1A8 Comment Length        0000 (0)\n+1F1AA Disk Start            0000 (0)\n+1F1AC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1EFDD Ext File Attributes   41ED0010 (1106051088)\n+1F1AE Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1EFE1 Local Header Offset   0000054B (1355)\n-1EFE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F1B2 Local Header Offset   0000054B (1355)\n+1F1B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EFE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F1B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1EFE5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F1B6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1EFBD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F18E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F020 CENTRAL HEADER #22    02014B50 (33639248)\n-1F024 Created Zip Spec      14 (20) '2.0'\n-1F025 Created OS            03 (3) 'Unix'\n-1F026 Extract Zip Spec      0A (10) '1.0'\n-1F027 Extract OS            00 (0) 'MS-DOS'\n-1F028 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F02A Compression Method    0000 (0) 'Stored'\n-1F02C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F030 CRC                   00000000 (0)\n-1F034 Compressed Size       00000000 (0)\n-1F038 Uncompressed Size     00000000 (0)\n-1F03C Filename Length       0029 (41)\n-1F03E Extra Length          0000 (0)\n-1F040 Comment Length        0000 (0)\n-1F042 Disk Start            0000 (0)\n-1F044 Int File Attributes   0000 (0)\n+1F1F1 CENTRAL HEADER #22    02014B50 (33639248)\n+1F1F5 Created Zip Spec      14 (20) '2.0'\n+1F1F6 Created OS            03 (3) 'Unix'\n+1F1F7 Extract Zip Spec      0A (10) '1.0'\n+1F1F8 Extract OS            00 (0) 'MS-DOS'\n+1F1F9 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F1FB Compression Method    0000 (0) 'Stored'\n+1F1FD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F201 CRC                   00000000 (0)\n+1F205 Compressed Size       00000000 (0)\n+1F209 Uncompressed Size     00000000 (0)\n+1F20D Filename Length       0029 (41)\n+1F20F Extra Length          0000 (0)\n+1F211 Comment Length        0000 (0)\n+1F213 Disk Start            0000 (0)\n+1F215 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F046 Ext File Attributes   41ED0010 (1106051088)\n+1F217 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F04A Local Header Offset   000005A4 (1444)\n-1F04E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F21B Local Header Offset   000005A4 (1444)\n+1F21F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F04E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F21F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F04E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F21F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F026: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F1F7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F077 CENTRAL HEADER #23    02014B50 (33639248)\n-1F07B Created Zip Spec      14 (20) '2.0'\n-1F07C Created OS            03 (3) 'Unix'\n-1F07D Extract Zip Spec      0A (10) '1.0'\n-1F07E Extract OS            00 (0) 'MS-DOS'\n-1F07F General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F081 Compression Method    0000 (0) 'Stored'\n-1F083 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F087 CRC                   00000000 (0)\n-1F08B Compressed Size       00000000 (0)\n-1F08F Uncompressed Size     00000000 (0)\n-1F093 Filename Length       0029 (41)\n-1F095 Extra Length          0000 (0)\n-1F097 Comment Length        0000 (0)\n-1F099 Disk Start            0000 (0)\n-1F09B Int File Attributes   0000 (0)\n+1F248 CENTRAL HEADER #23    02014B50 (33639248)\n+1F24C Created Zip Spec      14 (20) '2.0'\n+1F24D Created OS            03 (3) 'Unix'\n+1F24E Extract Zip Spec      0A (10) '1.0'\n+1F24F Extract OS            00 (0) 'MS-DOS'\n+1F250 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F252 Compression Method    0000 (0) 'Stored'\n+1F254 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F258 CRC                   00000000 (0)\n+1F25C Compressed Size       00000000 (0)\n+1F260 Uncompressed Size     00000000 (0)\n+1F264 Filename Length       0029 (41)\n+1F266 Extra Length          0000 (0)\n+1F268 Comment Length        0000 (0)\n+1F26A Disk Start            0000 (0)\n+1F26C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F09D Ext File Attributes   41ED0010 (1106051088)\n+1F26E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F0A1 Local Header Offset   000005EB (1515)\n-1F0A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F272 Local Header Offset   000005EB (1515)\n+1F276 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F0A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F276: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F0A5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F276: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F07D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F24E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F0CE CENTRAL HEADER #24    02014B50 (33639248)\n-1F0D2 Created Zip Spec      14 (20) '2.0'\n-1F0D3 Created OS            03 (3) 'Unix'\n-1F0D4 Extract Zip Spec      0A (10) '1.0'\n-1F0D5 Extract OS            00 (0) 'MS-DOS'\n-1F0D6 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F0D8 Compression Method    0000 (0) 'Stored'\n-1F0DA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F0DE CRC                   00000000 (0)\n-1F0E2 Compressed Size       00000000 (0)\n-1F0E6 Uncompressed Size     00000000 (0)\n-1F0EA Filename Length       002B (43)\n-1F0EC Extra Length          0000 (0)\n-1F0EE Comment Length        0000 (0)\n-1F0F0 Disk Start            0000 (0)\n-1F0F2 Int File Attributes   0000 (0)\n+1F29F CENTRAL HEADER #24    02014B50 (33639248)\n+1F2A3 Created Zip Spec      14 (20) '2.0'\n+1F2A4 Created OS            03 (3) 'Unix'\n+1F2A5 Extract Zip Spec      0A (10) '1.0'\n+1F2A6 Extract OS            00 (0) 'MS-DOS'\n+1F2A7 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F2A9 Compression Method    0000 (0) 'Stored'\n+1F2AB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F2AF CRC                   00000000 (0)\n+1F2B3 Compressed Size       00000000 (0)\n+1F2B7 Uncompressed Size     00000000 (0)\n+1F2BB Filename Length       002B (43)\n+1F2BD Extra Length          0000 (0)\n+1F2BF Comment Length        0000 (0)\n+1F2C1 Disk Start            0000 (0)\n+1F2C3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F0F4 Ext File Attributes   41ED0010 (1106051088)\n+1F2C5 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F0F8 Local Header Offset   00000632 (1586)\n-1F0FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F2C9 Local Header Offset   00000632 (1586)\n+1F2CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F0FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F2CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F0FC: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F2CD: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F0D4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F2A5: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F127 CENTRAL HEADER #25    02014B50 (33639248)\n-1F12B Created Zip Spec      14 (20) '2.0'\n-1F12C Created OS            03 (3) 'Unix'\n-1F12D Extract Zip Spec      0A (10) '1.0'\n-1F12E Extract OS            00 (0) 'MS-DOS'\n-1F12F General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F131 Compression Method    0000 (0) 'Stored'\n-1F133 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F137 CRC                   00000000 (0)\n-1F13B Compressed Size       00000000 (0)\n-1F13F Uncompressed Size     00000000 (0)\n-1F143 Filename Length       0028 (40)\n-1F145 Extra Length          0000 (0)\n-1F147 Comment Length        0000 (0)\n-1F149 Disk Start            0000 (0)\n-1F14B Int File Attributes   0000 (0)\n+1F2F8 CENTRAL HEADER #25    02014B50 (33639248)\n+1F2FC Created Zip Spec      14 (20) '2.0'\n+1F2FD Created OS            03 (3) 'Unix'\n+1F2FE Extract Zip Spec      0A (10) '1.0'\n+1F2FF Extract OS            00 (0) 'MS-DOS'\n+1F300 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F302 Compression Method    0000 (0) 'Stored'\n+1F304 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F308 CRC                   00000000 (0)\n+1F30C Compressed Size       00000000 (0)\n+1F310 Uncompressed Size     00000000 (0)\n+1F314 Filename Length       0028 (40)\n+1F316 Extra Length          0000 (0)\n+1F318 Comment Length        0000 (0)\n+1F31A Disk Start            0000 (0)\n+1F31C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F14D Ext File Attributes   41ED0010 (1106051088)\n+1F31E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F151 Local Header Offset   0000067B (1659)\n-1F155 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F322 Local Header Offset   0000067B (1659)\n+1F326 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F155: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F326: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F155: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F326: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F12D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F2FE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F17D CENTRAL HEADER #26    02014B50 (33639248)\n-1F181 Created Zip Spec      14 (20) '2.0'\n-1F182 Created OS            03 (3) 'Unix'\n-1F183 Extract Zip Spec      0A (10) '1.0'\n-1F184 Extract OS            00 (0) 'MS-DOS'\n-1F185 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F187 Compression Method    0000 (0) 'Stored'\n-1F189 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F18D CRC                   00000000 (0)\n-1F191 Compressed Size       00000000 (0)\n-1F195 Uncompressed Size     00000000 (0)\n-1F199 Filename Length       002E (46)\n-1F19B Extra Length          0000 (0)\n-1F19D Comment Length        0000 (0)\n-1F19F Disk Start            0000 (0)\n-1F1A1 Int File Attributes   0000 (0)\n+1F34E CENTRAL HEADER #26    02014B50 (33639248)\n+1F352 Created Zip Spec      14 (20) '2.0'\n+1F353 Created OS            03 (3) 'Unix'\n+1F354 Extract Zip Spec      0A (10) '1.0'\n+1F355 Extract OS            00 (0) 'MS-DOS'\n+1F356 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F358 Compression Method    0000 (0) 'Stored'\n+1F35A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F35E CRC                   00000000 (0)\n+1F362 Compressed Size       00000000 (0)\n+1F366 Uncompressed Size     00000000 (0)\n+1F36A Filename Length       002E (46)\n+1F36C Extra Length          0000 (0)\n+1F36E Comment Length        0000 (0)\n+1F370 Disk Start            0000 (0)\n+1F372 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F1A3 Ext File Attributes   41ED0010 (1106051088)\n+1F374 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F1A7 Local Header Offset   000006C1 (1729)\n-1F1AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F378 Local Header Offset   000006C1 (1729)\n+1F37C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F1AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F37C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F1AB: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F37C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F183: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F354: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F1D9 CENTRAL HEADER #27    02014B50 (33639248)\n-1F1DD Created Zip Spec      14 (20) '2.0'\n-1F1DE Created OS            03 (3) 'Unix'\n-1F1DF Extract Zip Spec      0A (10) '1.0'\n-1F1E0 Extract OS            00 (0) 'MS-DOS'\n-1F1E1 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F1E3 Compression Method    0000 (0) 'Stored'\n-1F1E5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F1E9 CRC                   00000000 (0)\n-1F1ED Compressed Size       00000000 (0)\n-1F1F1 Uncompressed Size     00000000 (0)\n-1F1F5 Filename Length       0025 (37)\n-1F1F7 Extra Length          0000 (0)\n-1F1F9 Comment Length        0000 (0)\n-1F1FB Disk Start            0000 (0)\n-1F1FD Int File Attributes   0000 (0)\n+1F3AA CENTRAL HEADER #27    02014B50 (33639248)\n+1F3AE Created Zip Spec      14 (20) '2.0'\n+1F3AF Created OS            03 (3) 'Unix'\n+1F3B0 Extract Zip Spec      0A (10) '1.0'\n+1F3B1 Extract OS            00 (0) 'MS-DOS'\n+1F3B2 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F3B4 Compression Method    0000 (0) 'Stored'\n+1F3B6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F3BA CRC                   00000000 (0)\n+1F3BE Compressed Size       00000000 (0)\n+1F3C2 Uncompressed Size     00000000 (0)\n+1F3C6 Filename Length       0025 (37)\n+1F3C8 Extra Length          0000 (0)\n+1F3CA Comment Length        0000 (0)\n+1F3CC Disk Start            0000 (0)\n+1F3CE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F1FF Ext File Attributes   41ED0010 (1106051088)\n+1F3D0 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F203 Local Header Offset   0000070D (1805)\n-1F207 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F3D4 Local Header Offset   0000070D (1805)\n+1F3D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F207: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F3D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F207: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F3D8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F1DF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F3B0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F22C CENTRAL HEADER #28    02014B50 (33639248)\n-1F230 Created Zip Spec      14 (20) '2.0'\n-1F231 Created OS            03 (3) 'Unix'\n-1F232 Extract Zip Spec      0A (10) '1.0'\n-1F233 Extract OS            00 (0) 'MS-DOS'\n-1F234 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F236 Compression Method    0000 (0) 'Stored'\n-1F238 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F23C CRC                   00000000 (0)\n-1F240 Compressed Size       00000000 (0)\n-1F244 Uncompressed Size     00000000 (0)\n-1F248 Filename Length       002F (47)\n-1F24A Extra Length          0000 (0)\n-1F24C Comment Length        0000 (0)\n-1F24E Disk Start            0000 (0)\n-1F250 Int File Attributes   0000 (0)\n+1F3FD CENTRAL HEADER #28    02014B50 (33639248)\n+1F401 Created Zip Spec      14 (20) '2.0'\n+1F402 Created OS            03 (3) 'Unix'\n+1F403 Extract Zip Spec      0A (10) '1.0'\n+1F404 Extract OS            00 (0) 'MS-DOS'\n+1F405 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F407 Compression Method    0000 (0) 'Stored'\n+1F409 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F40D CRC                   00000000 (0)\n+1F411 Compressed Size       00000000 (0)\n+1F415 Uncompressed Size     00000000 (0)\n+1F419 Filename Length       002F (47)\n+1F41B Extra Length          0000 (0)\n+1F41D Comment Length        0000 (0)\n+1F41F Disk Start            0000 (0)\n+1F421 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F252 Ext File Attributes   41ED0010 (1106051088)\n+1F423 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F256 Local Header Offset   00000750 (1872)\n-1F25A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F427 Local Header Offset   00000750 (1872)\n+1F42B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F25A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F42B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F25A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F42B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F232: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F403: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F289 CENTRAL HEADER #29    02014B50 (33639248)\n-1F28D Created Zip Spec      14 (20) '2.0'\n-1F28E Created OS            03 (3) 'Unix'\n-1F28F Extract Zip Spec      0A (10) '1.0'\n-1F290 Extract OS            00 (0) 'MS-DOS'\n-1F291 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F293 Compression Method    0000 (0) 'Stored'\n-1F295 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F299 CRC                   00000000 (0)\n-1F29D Compressed Size       00000000 (0)\n-1F2A1 Uncompressed Size     00000000 (0)\n-1F2A5 Filename Length       002E (46)\n-1F2A7 Extra Length          0000 (0)\n-1F2A9 Comment Length        0000 (0)\n-1F2AB Disk Start            0000 (0)\n-1F2AD Int File Attributes   0000 (0)\n+1F45A CENTRAL HEADER #29    02014B50 (33639248)\n+1F45E Created Zip Spec      14 (20) '2.0'\n+1F45F Created OS            03 (3) 'Unix'\n+1F460 Extract Zip Spec      0A (10) '1.0'\n+1F461 Extract OS            00 (0) 'MS-DOS'\n+1F462 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F464 Compression Method    0000 (0) 'Stored'\n+1F466 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F46A CRC                   00000000 (0)\n+1F46E Compressed Size       00000000 (0)\n+1F472 Uncompressed Size     00000000 (0)\n+1F476 Filename Length       002E (46)\n+1F478 Extra Length          0000 (0)\n+1F47A Comment Length        0000 (0)\n+1F47C Disk Start            0000 (0)\n+1F47E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F2AF Ext File Attributes   41ED0010 (1106051088)\n+1F480 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F2B3 Local Header Offset   0000079D (1949)\n-1F2B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F484 Local Header Offset   0000079D (1949)\n+1F488 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F2B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F488: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F2B7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F488: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F28F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F460: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F2E5 CENTRAL HEADER #30    02014B50 (33639248)\n-1F2E9 Created Zip Spec      14 (20) '2.0'\n-1F2EA Created OS            03 (3) 'Unix'\n-1F2EB Extract Zip Spec      0A (10) '1.0'\n-1F2EC Extract OS            00 (0) 'MS-DOS'\n-1F2ED General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F2EF Compression Method    0000 (0) 'Stored'\n-1F2F1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F2F5 CRC                   00000000 (0)\n-1F2F9 Compressed Size       00000000 (0)\n-1F2FD Uncompressed Size     00000000 (0)\n-1F301 Filename Length       002D (45)\n-1F303 Extra Length          0000 (0)\n-1F305 Comment Length        0000 (0)\n-1F307 Disk Start            0000 (0)\n-1F309 Int File Attributes   0000 (0)\n+1F4B6 CENTRAL HEADER #30    02014B50 (33639248)\n+1F4BA Created Zip Spec      14 (20) '2.0'\n+1F4BB Created OS            03 (3) 'Unix'\n+1F4BC Extract Zip Spec      0A (10) '1.0'\n+1F4BD Extract OS            00 (0) 'MS-DOS'\n+1F4BE General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F4C0 Compression Method    0000 (0) 'Stored'\n+1F4C2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F4C6 CRC                   00000000 (0)\n+1F4CA Compressed Size       00000000 (0)\n+1F4CE Uncompressed Size     00000000 (0)\n+1F4D2 Filename Length       002D (45)\n+1F4D4 Extra Length          0000 (0)\n+1F4D6 Comment Length        0000 (0)\n+1F4D8 Disk Start            0000 (0)\n+1F4DA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F30B Ext File Attributes   41ED0010 (1106051088)\n+1F4DC Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F30F Local Header Offset   000007E9 (2025)\n-1F313 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F4E0 Local Header Offset   000007E9 (2025)\n+1F4E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F313: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F4E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F313: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F4E4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F2EB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F4BC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F340 CENTRAL HEADER #31    02014B50 (33639248)\n-1F344 Created Zip Spec      14 (20) '2.0'\n-1F345 Created OS            03 (3) 'Unix'\n-1F346 Extract Zip Spec      0A (10) '1.0'\n-1F347 Extract OS            00 (0) 'MS-DOS'\n-1F348 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F34A Compression Method    0000 (0) 'Stored'\n-1F34C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F350 CRC                   00000000 (0)\n-1F354 Compressed Size       00000000 (0)\n-1F358 Uncompressed Size     00000000 (0)\n-1F35C Filename Length       000F (15)\n-1F35E Extra Length          0000 (0)\n-1F360 Comment Length        0000 (0)\n-1F362 Disk Start            0000 (0)\n-1F364 Int File Attributes   0000 (0)\n+1F511 CENTRAL HEADER #31    02014B50 (33639248)\n+1F515 Created Zip Spec      14 (20) '2.0'\n+1F516 Created OS            03 (3) 'Unix'\n+1F517 Extract Zip Spec      0A (10) '1.0'\n+1F518 Extract OS            00 (0) 'MS-DOS'\n+1F519 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F51B Compression Method    0000 (0) 'Stored'\n+1F51D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F521 CRC                   00000000 (0)\n+1F525 Compressed Size       00000000 (0)\n+1F529 Uncompressed Size     00000000 (0)\n+1F52D Filename Length       000F (15)\n+1F52F Extra Length          0000 (0)\n+1F531 Comment Length        0000 (0)\n+1F533 Disk Start            0000 (0)\n+1F535 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F366 Ext File Attributes   41ED0010 (1106051088)\n+1F537 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F36A Local Header Offset   00000834 (2100)\n-1F36E Filename              'XXXXXXXXXXXXXXX'\n+1F53B Local Header Offset   00000834 (2100)\n+1F53F Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F36E: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F53F: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F36E: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F53F: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F346: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F517: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-1F37D CENTRAL HEADER #32    02014B50 (33639248)\n-1F381 Created Zip Spec      14 (20) '2.0'\n-1F382 Created OS            03 (3) 'Unix'\n-1F383 Extract Zip Spec      0A (10) '1.0'\n-1F384 Extract OS            00 (0) 'MS-DOS'\n-1F385 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F387 Compression Method    0000 (0) 'Stored'\n-1F389 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F38D CRC                   00000000 (0)\n-1F391 Compressed Size       00000000 (0)\n-1F395 Uncompressed Size     00000000 (0)\n-1F399 Filename Length       0018 (24)\n-1F39B Extra Length          0000 (0)\n-1F39D Comment Length        0000 (0)\n-1F39F Disk Start            0000 (0)\n-1F3A1 Int File Attributes   0000 (0)\n+1F54E CENTRAL HEADER #32    02014B50 (33639248)\n+1F552 Created Zip Spec      14 (20) '2.0'\n+1F553 Created OS            03 (3) 'Unix'\n+1F554 Extract Zip Spec      0A (10) '1.0'\n+1F555 Extract OS            00 (0) 'MS-DOS'\n+1F556 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F558 Compression Method    0000 (0) 'Stored'\n+1F55A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F55E CRC                   00000000 (0)\n+1F562 Compressed Size       00000000 (0)\n+1F566 Uncompressed Size     00000000 (0)\n+1F56A Filename Length       0018 (24)\n+1F56C Extra Length          0000 (0)\n+1F56E Comment Length        0000 (0)\n+1F570 Disk Start            0000 (0)\n+1F572 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F3A3 Ext File Attributes   41ED0010 (1106051088)\n+1F574 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F3A7 Local Header Offset   00000861 (2145)\n-1F3AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+1F578 Local Header Offset   00000861 (2145)\n+1F57C Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F3AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F57C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F3AB: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F57C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F383: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F554: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F3C3 CENTRAL HEADER #33    02014B50 (33639248)\n-1F3C7 Created Zip Spec      14 (20) '2.0'\n-1F3C8 Created OS            03 (3) 'Unix'\n-1F3C9 Extract Zip Spec      0A (10) '1.0'\n-1F3CA Extract OS            00 (0) 'MS-DOS'\n-1F3CB General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F3CD Compression Method    0000 (0) 'Stored'\n-1F3CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F3D3 CRC                   00000000 (0)\n-1F3D7 Compressed Size       00000000 (0)\n-1F3DB Uncompressed Size     00000000 (0)\n-1F3DF Filename Length       000F (15)\n-1F3E1 Extra Length          0000 (0)\n-1F3E3 Comment Length        0000 (0)\n-1F3E5 Disk Start            0000 (0)\n-1F3E7 Int File Attributes   0000 (0)\n+1F594 CENTRAL HEADER #33    02014B50 (33639248)\n+1F598 Created Zip Spec      14 (20) '2.0'\n+1F599 Created OS            03 (3) 'Unix'\n+1F59A Extract Zip Spec      0A (10) '1.0'\n+1F59B Extract OS            00 (0) 'MS-DOS'\n+1F59C General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F59E Compression Method    0000 (0) 'Stored'\n+1F5A0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F5A4 CRC                   00000000 (0)\n+1F5A8 Compressed Size       00000000 (0)\n+1F5AC Uncompressed Size     00000000 (0)\n+1F5B0 Filename Length       000F (15)\n+1F5B2 Extra Length          0000 (0)\n+1F5B4 Comment Length        0000 (0)\n+1F5B6 Disk Start            0000 (0)\n+1F5B8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F3E9 Ext File Attributes   41ED0010 (1106051088)\n+1F5BA Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F3ED Local Header Offset   00000897 (2199)\n-1F3F1 Filename              'XXXXXXXXXXXXXXX'\n+1F5BE Local Header Offset   00000897 (2199)\n+1F5C2 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F3F1: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F5C2: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F3F1: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F5C2: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F3C9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F59A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-1F400 CENTRAL HEADER #34    02014B50 (33639248)\n-1F404 Created Zip Spec      14 (20) '2.0'\n-1F405 Created OS            03 (3) 'Unix'\n-1F406 Extract Zip Spec      0A (10) '1.0'\n-1F407 Extract OS            00 (0) 'MS-DOS'\n-1F408 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F40A Compression Method    0000 (0) 'Stored'\n-1F40C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F410 CRC                   00000000 (0)\n-1F414 Compressed Size       00000000 (0)\n-1F418 Uncompressed Size     00000000 (0)\n-1F41C Filename Length       0020 (32)\n-1F41E Extra Length          0000 (0)\n-1F420 Comment Length        0000 (0)\n-1F422 Disk Start            0000 (0)\n-1F424 Int File Attributes   0000 (0)\n+1F5D1 CENTRAL HEADER #34    02014B50 (33639248)\n+1F5D5 Created Zip Spec      14 (20) '2.0'\n+1F5D6 Created OS            03 (3) 'Unix'\n+1F5D7 Extract Zip Spec      0A (10) '1.0'\n+1F5D8 Extract OS            00 (0) 'MS-DOS'\n+1F5D9 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F5DB Compression Method    0000 (0) 'Stored'\n+1F5DD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F5E1 CRC                   00000000 (0)\n+1F5E5 Compressed Size       00000000 (0)\n+1F5E9 Uncompressed Size     00000000 (0)\n+1F5ED Filename Length       0020 (32)\n+1F5EF Extra Length          0000 (0)\n+1F5F1 Comment Length        0000 (0)\n+1F5F3 Disk Start            0000 (0)\n+1F5F5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F426 Ext File Attributes   41ED0010 (1106051088)\n+1F5F7 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F42A Local Header Offset   000008C4 (2244)\n-1F42E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F5FB Local Header Offset   000008C4 (2244)\n+1F5FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F42E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F5FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F42E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F5FF: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F406: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F5D7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F44E CENTRAL HEADER #35    02014B50 (33639248)\n-1F452 Created Zip Spec      14 (20) '2.0'\n-1F453 Created OS            03 (3) 'Unix'\n-1F454 Extract Zip Spec      0A (10) '1.0'\n-1F455 Extract OS            00 (0) 'MS-DOS'\n-1F456 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-1F458 Compression Method    0000 (0) 'Stored'\n-1F45A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F45E CRC                   00000000 (0)\n-1F462 Compressed Size       00000000 (0)\n-1F466 Uncompressed Size     00000000 (0)\n-1F46A Filename Length       002E (46)\n-1F46C Extra Length          0000 (0)\n-1F46E Comment Length        0000 (0)\n-1F470 Disk Start            0000 (0)\n-1F472 Int File Attributes   0000 (0)\n+1F61F CENTRAL HEADER #35    02014B50 (33639248)\n+1F623 Created Zip Spec      14 (20) '2.0'\n+1F624 Created OS            03 (3) 'Unix'\n+1F625 Extract Zip Spec      0A (10) '1.0'\n+1F626 Extract OS            00 (0) 'MS-DOS'\n+1F627 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+1F629 Compression Method    0000 (0) 'Stored'\n+1F62B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F62F CRC                   00000000 (0)\n+1F633 Compressed Size       00000000 (0)\n+1F637 Uncompressed Size     00000000 (0)\n+1F63B Filename Length       002E (46)\n+1F63D Extra Length          0000 (0)\n+1F63F Comment Length        0000 (0)\n+1F641 Disk Start            0000 (0)\n+1F643 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F474 Ext File Attributes   41ED0010 (1106051088)\n+1F645 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-1F478 Local Header Offset   00000902 (2306)\n-1F47C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F649 Local Header Offset   00000902 (2306)\n+1F64D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F47C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F64D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x1F47C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x1F64D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x1F454: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F625: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-1F4AA CENTRAL HEADER #36    02014B50 (33639248)\n-1F4AE Created Zip Spec      14 (20) '2.0'\n-1F4AF Created OS            03 (3) 'Unix'\n-1F4B0 Extract Zip Spec      14 (20) '2.0'\n-1F4B1 Extract OS            00 (0) 'MS-DOS'\n-1F4B2 General Purpose Flag  0800 (2048)\n+1F67B CENTRAL HEADER #36    02014B50 (33639248)\n+1F67F Created Zip Spec      14 (20) '2.0'\n+1F680 Created OS            03 (3) 'Unix'\n+1F681 Extract Zip Spec      14 (20) '2.0'\n+1F682 Extract OS            00 (0) 'MS-DOS'\n+1F683 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F4B4 Compression Method    0008 (8) 'Deflated'\n-1F4B6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F4BA CRC                   65181493 (1696076947)\n-1F4BE Compressed Size       000002F6 (758)\n-1F4C2 Uncompressed Size     00000B7B (2939)\n-1F4C6 Filename Length       0015 (21)\n-1F4C8 Extra Length          0000 (0)\n-1F4CA Comment Length        0000 (0)\n-1F4CC Disk Start            0000 (0)\n-1F4CE Int File Attributes   0000 (0)\n+1F685 Compression Method    0008 (8) 'Deflated'\n+1F687 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F68B CRC                   65181493 (1696076947)\n+1F68F Compressed Size       000002F6 (758)\n+1F693 Uncompressed Size     00000B7B (2939)\n+1F697 Filename Length       0015 (21)\n+1F699 Extra Length          0000 (0)\n+1F69B Comment Length        0000 (0)\n+1F69D Disk Start            0000 (0)\n+1F69F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F4D0 Ext File Attributes   81A40000 (2175008768)\n+1F6A1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F4D4 Local Header Offset   0000094E (2382)\n-1F4D8 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+1F6A5 Local Header Offset   0000094E (2382)\n+1F6A9 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F4D8: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F6A9: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F4ED CENTRAL HEADER #37    02014B50 (33639248)\n-1F4F1 Created Zip Spec      14 (20) '2.0'\n-1F4F2 Created OS            03 (3) 'Unix'\n-1F4F3 Extract Zip Spec      14 (20) '2.0'\n-1F4F4 Extract OS            00 (0) 'MS-DOS'\n-1F4F5 General Purpose Flag  0800 (2048)\n+1F6BE CENTRAL HEADER #37    02014B50 (33639248)\n+1F6C2 Created Zip Spec      14 (20) '2.0'\n+1F6C3 Created OS            03 (3) 'Unix'\n+1F6C4 Extract Zip Spec      14 (20) '2.0'\n+1F6C5 Extract OS            00 (0) 'MS-DOS'\n+1F6C6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F4F7 Compression Method    0008 (8) 'Deflated'\n-1F4F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F4FD CRC                   86E2B4B4 (2263004340)\n-1F501 Compressed Size       00000F6D (3949)\n-1F505 Uncompressed Size     00002C5E (11358)\n-1F509 Filename Length       0010 (16)\n-1F50B Extra Length          0000 (0)\n-1F50D Comment Length        0000 (0)\n-1F50F Disk Start            0000 (0)\n-1F511 Int File Attributes   0000 (0)\n+1F6C8 Compression Method    0008 (8) 'Deflated'\n+1F6CA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F6CE CRC                   86E2B4B4 (2263004340)\n+1F6D2 Compressed Size       00000F6D (3949)\n+1F6D6 Uncompressed Size     00002C5E (11358)\n+1F6DA Filename Length       0010 (16)\n+1F6DC Extra Length          0000 (0)\n+1F6DE Comment Length        0000 (0)\n+1F6E0 Disk Start            0000 (0)\n+1F6E2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F513 Ext File Attributes   81A40000 (2175008768)\n+1F6E4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F517 Local Header Offset   00000C77 (3191)\n-1F51B Filename              'XXXXXXXXXXXXXXXX'\n+1F6E8 Local Header Offset   00000C77 (3191)\n+1F6EC Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F51B: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F6EC: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F52B CENTRAL HEADER #38    02014B50 (33639248)\n-1F52F Created Zip Spec      14 (20) '2.0'\n-1F530 Created OS            03 (3) 'Unix'\n-1F531 Extract Zip Spec      14 (20) '2.0'\n-1F532 Extract OS            00 (0) 'MS-DOS'\n-1F533 General Purpose Flag  0800 (2048)\n+1F6FC CENTRAL HEADER #38    02014B50 (33639248)\n+1F700 Created Zip Spec      14 (20) '2.0'\n+1F701 Created OS            03 (3) 'Unix'\n+1F702 Extract Zip Spec      14 (20) '2.0'\n+1F703 Extract OS            00 (0) 'MS-DOS'\n+1F704 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F535 Compression Method    0008 (8) 'Deflated'\n-1F537 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F53B CRC                   8175A335 (2171970357)\n-1F53F Compressed Size       0000007C (124)\n-1F543 Uncompressed Size     000000AA (170)\n-1F547 Filename Length       000F (15)\n-1F549 Extra Length          0000 (0)\n-1F54B Comment Length        0000 (0)\n-1F54D Disk Start            0000 (0)\n-1F54F Int File Attributes   0000 (0)\n+1F706 Compression Method    0008 (8) 'Deflated'\n+1F708 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F70C CRC                   8175A335 (2171970357)\n+1F710 Compressed Size       0000007C (124)\n+1F714 Uncompressed Size     000000AA (170)\n+1F718 Filename Length       000F (15)\n+1F71A Extra Length          0000 (0)\n+1F71C Comment Length        0000 (0)\n+1F71E Disk Start            0000 (0)\n+1F720 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F551 Ext File Attributes   81A40000 (2175008768)\n+1F722 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F555 Local Header Offset   00001C12 (7186)\n-1F559 Filename              'XXXXXXXXXXXXXXX'\n+1F726 Local Header Offset   00001C12 (7186)\n+1F72A Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F559: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F72A: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F568 CENTRAL HEADER #39    02014B50 (33639248)\n-1F56C Created Zip Spec      14 (20) '2.0'\n-1F56D Created OS            03 (3) 'Unix'\n-1F56E Extract Zip Spec      14 (20) '2.0'\n-1F56F Extract OS            00 (0) 'MS-DOS'\n-1F570 General Purpose Flag  0800 (2048)\n+1F739 CENTRAL HEADER #39    02014B50 (33639248)\n+1F73D Created Zip Spec      14 (20) '2.0'\n+1F73E Created OS            03 (3) 'Unix'\n+1F73F Extract Zip Spec      14 (20) '2.0'\n+1F740 Extract OS            00 (0) 'MS-DOS'\n+1F741 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F572 Compression Method    0008 (8) 'Deflated'\n-1F574 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F578 CRC                   8DDA999F (2379913631)\n-1F57C Compressed Size       00000311 (785)\n-1F580 Uncompressed Size     000005F6 (1526)\n-1F584 Filename Length       0038 (56)\n-1F586 Extra Length          0000 (0)\n-1F588 Comment Length        0000 (0)\n-1F58A Disk Start            0000 (0)\n-1F58C Int File Attributes   0000 (0)\n+1F743 Compression Method    0008 (8) 'Deflated'\n+1F745 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F749 CRC                   C25375A4 (3260249508)\n+1F74D Compressed Size       00000319 (793)\n+1F751 Uncompressed Size     0000061B (1563)\n+1F755 Filename Length       0038 (56)\n+1F757 Extra Length          0000 (0)\n+1F759 Comment Length        0000 (0)\n+1F75B Disk Start            0000 (0)\n+1F75D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F58E Ext File Attributes   81A40000 (2175008768)\n+1F75F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F592 Local Header Offset   00001CBB (7355)\n-1F596 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F763 Local Header Offset   00001CBB (7355)\n+1F767 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F596: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F767: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F5CE CENTRAL HEADER #40    02014B50 (33639248)\n-1F5D2 Created Zip Spec      14 (20) '2.0'\n-1F5D3 Created OS            03 (3) 'Unix'\n-1F5D4 Extract Zip Spec      14 (20) '2.0'\n-1F5D5 Extract OS            00 (0) 'MS-DOS'\n-1F5D6 General Purpose Flag  0800 (2048)\n+1F79F CENTRAL HEADER #40    02014B50 (33639248)\n+1F7A3 Created Zip Spec      14 (20) '2.0'\n+1F7A4 Created OS            03 (3) 'Unix'\n+1F7A5 Extract Zip Spec      14 (20) '2.0'\n+1F7A6 Extract OS            00 (0) 'MS-DOS'\n+1F7A7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F5D8 Compression Method    0008 (8) 'Deflated'\n-1F5DA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F5DE CRC                   27965EEA (664166122)\n-1F5E2 Compressed Size       00000394 (916)\n-1F5E6 Uncompressed Size     00000824 (2084)\n-1F5EA Filename Length       0029 (41)\n-1F5EC Extra Length          0000 (0)\n-1F5EE Comment Length        0000 (0)\n-1F5F0 Disk Start            0000 (0)\n-1F5F2 Int File Attributes   0000 (0)\n+1F7A9 Compression Method    0008 (8) 'Deflated'\n+1F7AB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F7AF CRC                   27965EEA (664166122)\n+1F7B3 Compressed Size       00000394 (916)\n+1F7B7 Uncompressed Size     00000824 (2084)\n+1F7BB Filename Length       0029 (41)\n+1F7BD Extra Length          0000 (0)\n+1F7BF Comment Length        0000 (0)\n+1F7C1 Disk Start            0000 (0)\n+1F7C3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F5F4 Ext File Attributes   81A40000 (2175008768)\n+1F7C5 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F5F8 Local Header Offset   00002022 (8226)\n-1F5FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F7C9 Local Header Offset   0000202A (8234)\n+1F7CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F5FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F7CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F625 CENTRAL HEADER #41    02014B50 (33639248)\n-1F629 Created Zip Spec      14 (20) '2.0'\n-1F62A Created OS            03 (3) 'Unix'\n-1F62B Extract Zip Spec      14 (20) '2.0'\n-1F62C Extract OS            00 (0) 'MS-DOS'\n-1F62D General Purpose Flag  0800 (2048)\n+1F7F6 CENTRAL HEADER #41    02014B50 (33639248)\n+1F7FA Created Zip Spec      14 (20) '2.0'\n+1F7FB Created OS            03 (3) 'Unix'\n+1F7FC Extract Zip Spec      14 (20) '2.0'\n+1F7FD Extract OS            00 (0) 'MS-DOS'\n+1F7FE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F62F Compression Method    0008 (8) 'Deflated'\n-1F631 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F635 CRC                   5E2260E1 (1579311329)\n-1F639 Compressed Size       0000036C (876)\n-1F63D Uncompressed Size     000006CA (1738)\n-1F641 Filename Length       0030 (48)\n-1F643 Extra Length          0000 (0)\n-1F645 Comment Length        0000 (0)\n-1F647 Disk Start            0000 (0)\n-1F649 Int File Attributes   0000 (0)\n+1F800 Compression Method    0008 (8) 'Deflated'\n+1F802 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F806 CRC                   5EECCC48 (1592577096)\n+1F80A Compressed Size       00000377 (887)\n+1F80E Uncompressed Size     000006F2 (1778)\n+1F812 Filename Length       0030 (48)\n+1F814 Extra Length          0000 (0)\n+1F816 Comment Length        0000 (0)\n+1F818 Disk Start            0000 (0)\n+1F81A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F64B Ext File Attributes   81A40000 (2175008768)\n+1F81C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F64F Local Header Offset   000023FD (9213)\n-1F653 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F820 Local Header Offset   00002405 (9221)\n+1F824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F653: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F683 CENTRAL HEADER #42    02014B50 (33639248)\n-1F687 Created Zip Spec      14 (20) '2.0'\n-1F688 Created OS            03 (3) 'Unix'\n-1F689 Extract Zip Spec      14 (20) '2.0'\n-1F68A Extract OS            00 (0) 'MS-DOS'\n-1F68B General Purpose Flag  0800 (2048)\n+1F854 CENTRAL HEADER #42    02014B50 (33639248)\n+1F858 Created Zip Spec      14 (20) '2.0'\n+1F859 Created OS            03 (3) 'Unix'\n+1F85A Extract Zip Spec      14 (20) '2.0'\n+1F85B Extract OS            00 (0) 'MS-DOS'\n+1F85C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F68D Compression Method    0008 (8) 'Deflated'\n-1F68F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F693 CRC                   665C4504 (1717323012)\n-1F697 Compressed Size       0000067E (1662)\n-1F69B Uncompressed Size     00001123 (4387)\n-1F69F Filename Length       002E (46)\n-1F6A1 Extra Length          0000 (0)\n-1F6A3 Comment Length        0000 (0)\n-1F6A5 Disk Start            0000 (0)\n-1F6A7 Int File Attributes   0000 (0)\n+1F85E Compression Method    0008 (8) 'Deflated'\n+1F860 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F864 CRC                   665C4504 (1717323012)\n+1F868 Compressed Size       0000067E (1662)\n+1F86C Uncompressed Size     00001123 (4387)\n+1F870 Filename Length       002E (46)\n+1F872 Extra Length          0000 (0)\n+1F874 Comment Length        0000 (0)\n+1F876 Disk Start            0000 (0)\n+1F878 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F6A9 Ext File Attributes   81A40000 (2175008768)\n+1F87A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F6AD Local Header Offset   000027B7 (10167)\n-1F6B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F87E Local Header Offset   000027CA (10186)\n+1F882 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F6B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F882: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F6DF CENTRAL HEADER #43    02014B50 (33639248)\n-1F6E3 Created Zip Spec      14 (20) '2.0'\n-1F6E4 Created OS            03 (3) 'Unix'\n-1F6E5 Extract Zip Spec      14 (20) '2.0'\n-1F6E6 Extract OS            00 (0) 'MS-DOS'\n-1F6E7 General Purpose Flag  0800 (2048)\n+1F8B0 CENTRAL HEADER #43    02014B50 (33639248)\n+1F8B4 Created Zip Spec      14 (20) '2.0'\n+1F8B5 Created OS            03 (3) 'Unix'\n+1F8B6 Extract Zip Spec      14 (20) '2.0'\n+1F8B7 Extract OS            00 (0) 'MS-DOS'\n+1F8B8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F6E9 Compression Method    0008 (8) 'Deflated'\n-1F6EB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F6EF CRC                   7FA20103 (2141323523)\n-1F6F3 Compressed Size       0000029A (666)\n-1F6F7 Uncompressed Size     00000534 (1332)\n-1F6FB Filename Length       0035 (53)\n-1F6FD Extra Length          0000 (0)\n-1F6FF Comment Length        0000 (0)\n-1F701 Disk Start            0000 (0)\n-1F703 Int File Attributes   0000 (0)\n+1F8BA Compression Method    0008 (8) 'Deflated'\n+1F8BC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F8C0 CRC                   7FA20103 (2141323523)\n+1F8C4 Compressed Size       0000029A (666)\n+1F8C8 Uncompressed Size     00000534 (1332)\n+1F8CC Filename Length       0035 (53)\n+1F8CE Extra Length          0000 (0)\n+1F8D0 Comment Length        0000 (0)\n+1F8D2 Disk Start            0000 (0)\n+1F8D4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F705 Ext File Attributes   81A40000 (2175008768)\n+1F8D6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F709 Local Header Offset   00002E81 (11905)\n-1F70D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F8DA Local Header Offset   00002E94 (11924)\n+1F8DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F70D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F8DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F742 CENTRAL HEADER #44    02014B50 (33639248)\n-1F746 Created Zip Spec      14 (20) '2.0'\n-1F747 Created OS            03 (3) 'Unix'\n-1F748 Extract Zip Spec      14 (20) '2.0'\n-1F749 Extract OS            00 (0) 'MS-DOS'\n-1F74A General Purpose Flag  0800 (2048)\n+1F913 CENTRAL HEADER #44    02014B50 (33639248)\n+1F917 Created Zip Spec      14 (20) '2.0'\n+1F918 Created OS            03 (3) 'Unix'\n+1F919 Extract Zip Spec      14 (20) '2.0'\n+1F91A Extract OS            00 (0) 'MS-DOS'\n+1F91B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F74C Compression Method    0008 (8) 'Deflated'\n-1F74E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F752 CRC                   EE5647F1 (3998631921)\n-1F756 Compressed Size       000004C0 (1216)\n-1F75A Uncompressed Size     00000B10 (2832)\n-1F75E Filename Length       002B (43)\n-1F760 Extra Length          0000 (0)\n-1F762 Comment Length        0000 (0)\n-1F764 Disk Start            0000 (0)\n-1F766 Int File Attributes   0000 (0)\n+1F91D Compression Method    0008 (8) 'Deflated'\n+1F91F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F923 CRC                   D4481329 (3561493289)\n+1F927 Compressed Size       000004C9 (1225)\n+1F92B Uncompressed Size     00000B76 (2934)\n+1F92F Filename Length       002B (43)\n+1F931 Extra Length          0000 (0)\n+1F933 Comment Length        0000 (0)\n+1F935 Disk Start            0000 (0)\n+1F937 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F768 Ext File Attributes   81A40000 (2175008768)\n+1F939 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F76C Local Header Offset   0000316E (12654)\n-1F770 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F93D Local Header Offset   00003181 (12673)\n+1F941 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F770: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F941: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F79B CENTRAL HEADER #45    02014B50 (33639248)\n-1F79F Created Zip Spec      14 (20) '2.0'\n-1F7A0 Created OS            03 (3) 'Unix'\n-1F7A1 Extract Zip Spec      14 (20) '2.0'\n-1F7A2 Extract OS            00 (0) 'MS-DOS'\n-1F7A3 General Purpose Flag  0800 (2048)\n+1F96C CENTRAL HEADER #45    02014B50 (33639248)\n+1F970 Created Zip Spec      14 (20) '2.0'\n+1F971 Created OS            03 (3) 'Unix'\n+1F972 Extract Zip Spec      14 (20) '2.0'\n+1F973 Extract OS            00 (0) 'MS-DOS'\n+1F974 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F7A5 Compression Method    0008 (8) 'Deflated'\n-1F7A7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F7AB CRC                   2FCAE9BB (801827259)\n-1F7AF Compressed Size       0000032F (815)\n-1F7B3 Uncompressed Size     000006CA (1738)\n-1F7B7 Filename Length       002B (43)\n-1F7B9 Extra Length          0000 (0)\n-1F7BB Comment Length        0000 (0)\n-1F7BD Disk Start            0000 (0)\n-1F7BF Int File Attributes   0000 (0)\n+1F976 Compression Method    0008 (8) 'Deflated'\n+1F978 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F97C CRC                   2FCAE9BB (801827259)\n+1F980 Compressed Size       0000032F (815)\n+1F984 Uncompressed Size     000006CA (1738)\n+1F988 Filename Length       002B (43)\n+1F98A Extra Length          0000 (0)\n+1F98C Comment Length        0000 (0)\n+1F98E Disk Start            0000 (0)\n+1F990 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F7C1 Ext File Attributes   81A40000 (2175008768)\n+1F992 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F7C5 Local Header Offset   00003677 (13943)\n-1F7C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F996 Local Header Offset   00003693 (13971)\n+1F99A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F7C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F99A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F7F4 CENTRAL HEADER #46    02014B50 (33639248)\n-1F7F8 Created Zip Spec      14 (20) '2.0'\n-1F7F9 Created OS            03 (3) 'Unix'\n-1F7FA Extract Zip Spec      14 (20) '2.0'\n-1F7FB Extract OS            00 (0) 'MS-DOS'\n-1F7FC General Purpose Flag  0800 (2048)\n+1F9C5 CENTRAL HEADER #46    02014B50 (33639248)\n+1F9C9 Created Zip Spec      14 (20) '2.0'\n+1F9CA Created OS            03 (3) 'Unix'\n+1F9CB Extract Zip Spec      14 (20) '2.0'\n+1F9CC Extract OS            00 (0) 'MS-DOS'\n+1F9CD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F7FE Compression Method    0008 (8) 'Deflated'\n-1F800 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F804 CRC                   2EFAFE2D (788201005)\n-1F808 Compressed Size       0000034D (845)\n-1F80C Uncompressed Size     00000732 (1842)\n-1F810 Filename Length       002D (45)\n-1F812 Extra Length          0000 (0)\n-1F814 Comment Length        0000 (0)\n-1F816 Disk Start            0000 (0)\n-1F818 Int File Attributes   0000 (0)\n+1F9CF Compression Method    0008 (8) 'Deflated'\n+1F9D1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F9D5 CRC                   2EFAFE2D (788201005)\n+1F9D9 Compressed Size       0000034D (845)\n+1F9DD Uncompressed Size     00000732 (1842)\n+1F9E1 Filename Length       002D (45)\n+1F9E3 Extra Length          0000 (0)\n+1F9E5 Comment Length        0000 (0)\n+1F9E7 Disk Start            0000 (0)\n+1F9E9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F81A Ext File Attributes   81A40000 (2175008768)\n+1F9EB Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F81E Local Header Offset   000039EF (14831)\n-1F822 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F9EF Local Header Offset   00003A0B (14859)\n+1F9F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F822: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F9F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F84F CENTRAL HEADER #47    02014B50 (33639248)\n-1F853 Created Zip Spec      14 (20) '2.0'\n-1F854 Created OS            03 (3) 'Unix'\n-1F855 Extract Zip Spec      14 (20) '2.0'\n-1F856 Extract OS            00 (0) 'MS-DOS'\n-1F857 General Purpose Flag  0800 (2048)\n+1FA20 CENTRAL HEADER #47    02014B50 (33639248)\n+1FA24 Created Zip Spec      14 (20) '2.0'\n+1FA25 Created OS            03 (3) 'Unix'\n+1FA26 Extract Zip Spec      14 (20) '2.0'\n+1FA27 Extract OS            00 (0) 'MS-DOS'\n+1FA28 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F859 Compression Method    0008 (8) 'Deflated'\n-1F85B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F85F CRC                   09ED5602 (166548994)\n-1F863 Compressed Size       0000022B (555)\n-1F867 Uncompressed Size     000003D1 (977)\n-1F86B Filename Length       0028 (40)\n-1F86D Extra Length          0000 (0)\n-1F86F Comment Length        0000 (0)\n-1F871 Disk Start            0000 (0)\n-1F873 Int File Attributes   0000 (0)\n+1FA2A Compression Method    0008 (8) 'Deflated'\n+1FA2C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FA30 CRC                   09ED5602 (166548994)\n+1FA34 Compressed Size       0000022B (555)\n+1FA38 Uncompressed Size     000003D1 (977)\n+1FA3C Filename Length       0028 (40)\n+1FA3E Extra Length          0000 (0)\n+1FA40 Comment Length        0000 (0)\n+1FA42 Disk Start            0000 (0)\n+1FA44 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F875 Ext File Attributes   81A40000 (2175008768)\n+1FA46 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F879 Local Header Offset   00003D87 (15751)\n-1F87D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FA4A Local Header Offset   00003DA3 (15779)\n+1FA4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F87D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FA4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F8A5 CENTRAL HEADER #48    02014B50 (33639248)\n-1F8A9 Created Zip Spec      14 (20) '2.0'\n-1F8AA Created OS            03 (3) 'Unix'\n-1F8AB Extract Zip Spec      14 (20) '2.0'\n-1F8AC Extract OS            00 (0) 'MS-DOS'\n-1F8AD General Purpose Flag  0800 (2048)\n+1FA76 CENTRAL HEADER #48    02014B50 (33639248)\n+1FA7A Created Zip Spec      14 (20) '2.0'\n+1FA7B Created OS            03 (3) 'Unix'\n+1FA7C Extract Zip Spec      14 (20) '2.0'\n+1FA7D Extract OS            00 (0) 'MS-DOS'\n+1FA7E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F8AF Compression Method    0008 (8) 'Deflated'\n-1F8B1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F8B5 CRC                   58C25CA8 (1489132712)\n-1F8B9 Compressed Size       0000054B (1355)\n-1F8BD Uncompressed Size     00000CF3 (3315)\n-1F8C1 Filename Length       0028 (40)\n-1F8C3 Extra Length          0000 (0)\n-1F8C5 Comment Length        0000 (0)\n-1F8C7 Disk Start            0000 (0)\n-1F8C9 Int File Attributes   0000 (0)\n+1FA80 Compression Method    0008 (8) 'Deflated'\n+1FA82 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FA86 CRC                   58C25CA8 (1489132712)\n+1FA8A Compressed Size       0000054B (1355)\n+1FA8E Uncompressed Size     00000CF3 (3315)\n+1FA92 Filename Length       0028 (40)\n+1FA94 Extra Length          0000 (0)\n+1FA96 Comment Length        0000 (0)\n+1FA98 Disk Start            0000 (0)\n+1FA9A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F8CB Ext File Attributes   81A40000 (2175008768)\n+1FA9C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F8CF Local Header Offset   00003FF8 (16376)\n-1F8D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FAA0 Local Header Offset   00004014 (16404)\n+1FAA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F8D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FAA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F8FB CENTRAL HEADER #49    02014B50 (33639248)\n-1F8FF Created Zip Spec      14 (20) '2.0'\n-1F900 Created OS            03 (3) 'Unix'\n-1F901 Extract Zip Spec      14 (20) '2.0'\n-1F902 Extract OS            00 (0) 'MS-DOS'\n-1F903 General Purpose Flag  0800 (2048)\n+1FACC CENTRAL HEADER #49    02014B50 (33639248)\n+1FAD0 Created Zip Spec      14 (20) '2.0'\n+1FAD1 Created OS            03 (3) 'Unix'\n+1FAD2 Extract Zip Spec      14 (20) '2.0'\n+1FAD3 Extract OS            00 (0) 'MS-DOS'\n+1FAD4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F905 Compression Method    0008 (8) 'Deflated'\n-1F907 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F90B CRC                   AC72FCB3 (2893216947)\n-1F90F Compressed Size       000005F2 (1522)\n-1F913 Uncompressed Size     00001018 (4120)\n-1F917 Filename Length       002D (45)\n-1F919 Extra Length          0000 (0)\n-1F91B Comment Length        0000 (0)\n-1F91D Disk Start            0000 (0)\n-1F91F Int File Attributes   0000 (0)\n+1FAD6 Compression Method    0008 (8) 'Deflated'\n+1FAD8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FADC CRC                   234C96D0 (592221904)\n+1FAE0 Compressed Size       000005FB (1531)\n+1FAE4 Uncompressed Size     00001088 (4232)\n+1FAE8 Filename Length       002D (45)\n+1FAEA Extra Length          0000 (0)\n+1FAEC Comment Length        0000 (0)\n+1FAEE Disk Start            0000 (0)\n+1FAF0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F921 Ext File Attributes   81A40000 (2175008768)\n+1FAF2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F925 Local Header Offset   00004589 (17801)\n-1F929 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FAF6 Local Header Offset   000045A5 (17829)\n+1FAFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F929: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FAFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F956 CENTRAL HEADER #50    02014B50 (33639248)\n-1F95A Created Zip Spec      14 (20) '2.0'\n-1F95B Created OS            03 (3) 'Unix'\n-1F95C Extract Zip Spec      14 (20) '2.0'\n-1F95D Extract OS            00 (0) 'MS-DOS'\n-1F95E General Purpose Flag  0800 (2048)\n+1FB27 CENTRAL HEADER #50    02014B50 (33639248)\n+1FB2B Created Zip Spec      14 (20) '2.0'\n+1FB2C Created OS            03 (3) 'Unix'\n+1FB2D Extract Zip Spec      14 (20) '2.0'\n+1FB2E Extract OS            00 (0) 'MS-DOS'\n+1FB2F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F960 Compression Method    0008 (8) 'Deflated'\n-1F962 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F966 CRC                   FDB2D35D (4256355165)\n-1F96A Compressed Size       00000396 (918)\n-1F96E Uncompressed Size     00000759 (1881)\n-1F972 Filename Length       002F (47)\n-1F974 Extra Length          0000 (0)\n-1F976 Comment Length        0000 (0)\n-1F978 Disk Start            0000 (0)\n-1F97A Int File Attributes   0000 (0)\n+1FB31 Compression Method    0008 (8) 'Deflated'\n+1FB33 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FB37 CRC                   FDB2D35D (4256355165)\n+1FB3B Compressed Size       00000396 (918)\n+1FB3F Uncompressed Size     00000759 (1881)\n+1FB43 Filename Length       002F (47)\n+1FB45 Extra Length          0000 (0)\n+1FB47 Comment Length        0000 (0)\n+1FB49 Disk Start            0000 (0)\n+1FB4B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F97C Ext File Attributes   81A40000 (2175008768)\n+1FB4D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F980 Local Header Offset   00004BC6 (19398)\n-1F984 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FB51 Local Header Offset   00004BEB (19435)\n+1FB55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F984: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FB55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1F9B3 CENTRAL HEADER #51    02014B50 (33639248)\n-1F9B7 Created Zip Spec      14 (20) '2.0'\n-1F9B8 Created OS            03 (3) 'Unix'\n-1F9B9 Extract Zip Spec      14 (20) '2.0'\n-1F9BA Extract OS            00 (0) 'MS-DOS'\n-1F9BB General Purpose Flag  0800 (2048)\n+1FB84 CENTRAL HEADER #51    02014B50 (33639248)\n+1FB88 Created Zip Spec      14 (20) '2.0'\n+1FB89 Created OS            03 (3) 'Unix'\n+1FB8A Extract Zip Spec      14 (20) '2.0'\n+1FB8B Extract OS            00 (0) 'MS-DOS'\n+1FB8C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F9BD Compression Method    0008 (8) 'Deflated'\n-1F9BF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F9C3 CRC                   BC987223 (3164107299)\n-1F9C7 Compressed Size       00000252 (594)\n-1F9CB Uncompressed Size     00000435 (1077)\n-1F9CF Filename Length       002F (47)\n-1F9D1 Extra Length          0000 (0)\n-1F9D3 Comment Length        0000 (0)\n-1F9D5 Disk Start            0000 (0)\n-1F9D7 Int File Attributes   0000 (0)\n+1FB8E Compression Method    0008 (8) 'Deflated'\n+1FB90 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FB94 CRC                   BC987223 (3164107299)\n+1FB98 Compressed Size       00000252 (594)\n+1FB9C Uncompressed Size     00000435 (1077)\n+1FBA0 Filename Length       002F (47)\n+1FBA2 Extra Length          0000 (0)\n+1FBA4 Comment Length        0000 (0)\n+1FBA6 Disk Start            0000 (0)\n+1FBA8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1F9D9 Ext File Attributes   81A40000 (2175008768)\n+1FBAA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1F9DD Local Header Offset   00004FA9 (20393)\n-1F9E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FBAE Local Header Offset   00004FCE (20430)\n+1FBB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F9E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FBB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FA10 CENTRAL HEADER #52    02014B50 (33639248)\n-1FA14 Created Zip Spec      14 (20) '2.0'\n-1FA15 Created OS            03 (3) 'Unix'\n-1FA16 Extract Zip Spec      14 (20) '2.0'\n-1FA17 Extract OS            00 (0) 'MS-DOS'\n-1FA18 General Purpose Flag  0800 (2048)\n+1FBE1 CENTRAL HEADER #52    02014B50 (33639248)\n+1FBE5 Created Zip Spec      14 (20) '2.0'\n+1FBE6 Created OS            03 (3) 'Unix'\n+1FBE7 Extract Zip Spec      14 (20) '2.0'\n+1FBE8 Extract OS            00 (0) 'MS-DOS'\n+1FBE9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FA1A Compression Method    0008 (8) 'Deflated'\n-1FA1C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FA20 CRC                   91868A4C (2441513548)\n-1FA24 Compressed Size       000008AF (2223)\n-1FA28 Uncompressed Size     00002146 (8518)\n-1FA2C Filename Length       0043 (67)\n-1FA2E Extra Length          0000 (0)\n-1FA30 Comment Length        0000 (0)\n-1FA32 Disk Start            0000 (0)\n-1FA34 Int File Attributes   0000 (0)\n+1FBEB Compression Method    0008 (8) 'Deflated'\n+1FBED Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FBF1 CRC                   91868A4C (2441513548)\n+1FBF5 Compressed Size       000008AF (2223)\n+1FBF9 Uncompressed Size     00002146 (8518)\n+1FBFD Filename Length       0043 (67)\n+1FBFF Extra Length          0000 (0)\n+1FC01 Comment Length        0000 (0)\n+1FC03 Disk Start            0000 (0)\n+1FC05 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FA36 Ext File Attributes   81A40000 (2175008768)\n+1FC07 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FA3A Local Header Offset   00005248 (21064)\n-1FA3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FC0B Local Header Offset   0000526D (21101)\n+1FC0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FA3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FC0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FA81 CENTRAL HEADER #53    02014B50 (33639248)\n-1FA85 Created Zip Spec      14 (20) '2.0'\n-1FA86 Created OS            03 (3) 'Unix'\n-1FA87 Extract Zip Spec      14 (20) '2.0'\n-1FA88 Extract OS            00 (0) 'MS-DOS'\n-1FA89 General Purpose Flag  0800 (2048)\n+1FC52 CENTRAL HEADER #53    02014B50 (33639248)\n+1FC56 Created Zip Spec      14 (20) '2.0'\n+1FC57 Created OS            03 (3) 'Unix'\n+1FC58 Extract Zip Spec      14 (20) '2.0'\n+1FC59 Extract OS            00 (0) 'MS-DOS'\n+1FC5A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FA8B Compression Method    0008 (8) 'Deflated'\n-1FA8D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FA91 CRC                   FB552F52 (4216663890)\n-1FA95 Compressed Size       0000028F (655)\n-1FA99 Uncompressed Size     00000532 (1330)\n-1FA9D Filename Length       0048 (72)\n-1FA9F Extra Length          0000 (0)\n-1FAA1 Comment Length        0000 (0)\n-1FAA3 Disk Start            0000 (0)\n-1FAA5 Int File Attributes   0000 (0)\n+1FC5C Compression Method    0008 (8) 'Deflated'\n+1FC5E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FC62 CRC                   FB552F52 (4216663890)\n+1FC66 Compressed Size       0000028F (655)\n+1FC6A Uncompressed Size     00000532 (1330)\n+1FC6E Filename Length       0048 (72)\n+1FC70 Extra Length          0000 (0)\n+1FC72 Comment Length        0000 (0)\n+1FC74 Disk Start            0000 (0)\n+1FC76 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FAA7 Ext File Attributes   81A40000 (2175008768)\n+1FC78 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FAAB Local Header Offset   00005B58 (23384)\n-1FAAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FC7C Local Header Offset   00005B7D (23421)\n+1FC80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FAAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FC80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FAF7 CENTRAL HEADER #54    02014B50 (33639248)\n-1FAFB Created Zip Spec      14 (20) '2.0'\n-1FAFC Created OS            03 (3) 'Unix'\n-1FAFD Extract Zip Spec      14 (20) '2.0'\n-1FAFE Extract OS            00 (0) 'MS-DOS'\n-1FAFF General Purpose Flag  0800 (2048)\n+1FCC8 CENTRAL HEADER #54    02014B50 (33639248)\n+1FCCC Created Zip Spec      14 (20) '2.0'\n+1FCCD Created OS            03 (3) 'Unix'\n+1FCCE Extract Zip Spec      14 (20) '2.0'\n+1FCCF Extract OS            00 (0) 'MS-DOS'\n+1FCD0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FB01 Compression Method    0008 (8) 'Deflated'\n-1FB03 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FB07 CRC                   87AAF61F (2276128287)\n-1FB0B Compressed Size       00000267 (615)\n-1FB0F Uncompressed Size     000004F6 (1270)\n-1FB13 Filename Length       004F (79)\n-1FB15 Extra Length          0000 (0)\n-1FB17 Comment Length        0000 (0)\n-1FB19 Disk Start            0000 (0)\n-1FB1B Int File Attributes   0000 (0)\n+1FCD2 Compression Method    0008 (8) 'Deflated'\n+1FCD4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FCD8 CRC                   87AAF61F (2276128287)\n+1FCDC Compressed Size       00000267 (615)\n+1FCE0 Uncompressed Size     000004F6 (1270)\n+1FCE4 Filename Length       004F (79)\n+1FCE6 Extra Length          0000 (0)\n+1FCE8 Comment Length        0000 (0)\n+1FCEA Disk Start            0000 (0)\n+1FCEC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FB1D Ext File Attributes   81A40000 (2175008768)\n+1FCEE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FB21 Local Header Offset   00005E4D (24141)\n-1FB25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FCF2 Local Header Offset   00005E72 (24178)\n+1FCF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FB25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FCF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FB74 CENTRAL HEADER #55    02014B50 (33639248)\n-1FB78 Created Zip Spec      14 (20) '2.0'\n-1FB79 Created OS            03 (3) 'Unix'\n-1FB7A Extract Zip Spec      14 (20) '2.0'\n-1FB7B Extract OS            00 (0) 'MS-DOS'\n-1FB7C General Purpose Flag  0800 (2048)\n+1FD45 CENTRAL HEADER #55    02014B50 (33639248)\n+1FD49 Created Zip Spec      14 (20) '2.0'\n+1FD4A Created OS            03 (3) 'Unix'\n+1FD4B Extract Zip Spec      14 (20) '2.0'\n+1FD4C Extract OS            00 (0) 'MS-DOS'\n+1FD4D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FB7E Compression Method    0008 (8) 'Deflated'\n-1FB80 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FB84 CRC                   267D653A (645752122)\n-1FB88 Compressed Size       00000289 (649)\n-1FB8C Uncompressed Size     00000532 (1330)\n-1FB90 Filename Length       004C (76)\n-1FB92 Extra Length          0000 (0)\n-1FB94 Comment Length        0000 (0)\n-1FB96 Disk Start            0000 (0)\n-1FB98 Int File Attributes   0000 (0)\n+1FD4F Compression Method    0008 (8) 'Deflated'\n+1FD51 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FD55 CRC                   267D653A (645752122)\n+1FD59 Compressed Size       00000289 (649)\n+1FD5D Uncompressed Size     00000532 (1330)\n+1FD61 Filename Length       004C (76)\n+1FD63 Extra Length          0000 (0)\n+1FD65 Comment Length        0000 (0)\n+1FD67 Disk Start            0000 (0)\n+1FD69 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FB9A Ext File Attributes   81A40000 (2175008768)\n+1FD6B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FB9E Local Header Offset   00006121 (24865)\n-1FBA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FD6F Local Header Offset   00006146 (24902)\n+1FD73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FBA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FD73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FBEE CENTRAL HEADER #56    02014B50 (33639248)\n-1FBF2 Created Zip Spec      14 (20) '2.0'\n-1FBF3 Created OS            03 (3) 'Unix'\n-1FBF4 Extract Zip Spec      14 (20) '2.0'\n-1FBF5 Extract OS            00 (0) 'MS-DOS'\n-1FBF6 General Purpose Flag  0800 (2048)\n+1FDBF CENTRAL HEADER #56    02014B50 (33639248)\n+1FDC3 Created Zip Spec      14 (20) '2.0'\n+1FDC4 Created OS            03 (3) 'Unix'\n+1FDC5 Extract Zip Spec      14 (20) '2.0'\n+1FDC6 Extract OS            00 (0) 'MS-DOS'\n+1FDC7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FBF8 Compression Method    0008 (8) 'Deflated'\n-1FBFA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FBFE CRC                   2179F10E (561639694)\n-1FC02 Compressed Size       00000265 (613)\n-1FC06 Uncompressed Size     000004FE (1278)\n-1FC0A Filename Length       0053 (83)\n-1FC0C Extra Length          0000 (0)\n-1FC0E Comment Length        0000 (0)\n-1FC10 Disk Start            0000 (0)\n-1FC12 Int File Attributes   0000 (0)\n+1FDC9 Compression Method    0008 (8) 'Deflated'\n+1FDCB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FDCF CRC                   2179F10E (561639694)\n+1FDD3 Compressed Size       00000265 (613)\n+1FDD7 Uncompressed Size     000004FE (1278)\n+1FDDB Filename Length       0053 (83)\n+1FDDD Extra Length          0000 (0)\n+1FDDF Comment Length        0000 (0)\n+1FDE1 Disk Start            0000 (0)\n+1FDE3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FC14 Ext File Attributes   81A40000 (2175008768)\n+1FDE5 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FC18 Local Header Offset   00006414 (25620)\n-1FC1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FDE9 Local Header Offset   00006439 (25657)\n+1FDED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FC1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FDED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FC6F CENTRAL HEADER #57    02014B50 (33639248)\n-1FC73 Created Zip Spec      14 (20) '2.0'\n-1FC74 Created OS            03 (3) 'Unix'\n-1FC75 Extract Zip Spec      14 (20) '2.0'\n-1FC76 Extract OS            00 (0) 'MS-DOS'\n-1FC77 General Purpose Flag  0800 (2048)\n+1FE40 CENTRAL HEADER #57    02014B50 (33639248)\n+1FE44 Created Zip Spec      14 (20) '2.0'\n+1FE45 Created OS            03 (3) 'Unix'\n+1FE46 Extract Zip Spec      14 (20) '2.0'\n+1FE47 Extract OS            00 (0) 'MS-DOS'\n+1FE48 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FC79 Compression Method    0008 (8) 'Deflated'\n-1FC7B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FC7F CRC                   AF4730A5 (2940678309)\n-1FC83 Compressed Size       0000089E (2206)\n-1FC87 Uncompressed Size     00002151 (8529)\n-1FC8B Filename Length       0042 (66)\n-1FC8D Extra Length          0000 (0)\n-1FC8F Comment Length        0000 (0)\n-1FC91 Disk Start            0000 (0)\n-1FC93 Int File Attributes   0000 (0)\n+1FE4A Compression Method    0008 (8) 'Deflated'\n+1FE4C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FE50 CRC                   DEAE7474 (3735975028)\n+1FE54 Compressed Size       000008AD (2221)\n+1FE58 Uncompressed Size     00002232 (8754)\n+1FE5C Filename Length       0042 (66)\n+1FE5E Extra Length          0000 (0)\n+1FE60 Comment Length        0000 (0)\n+1FE62 Disk Start            0000 (0)\n+1FE64 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FC95 Ext File Attributes   81A40000 (2175008768)\n+1FE66 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FC99 Local Header Offset   000066EA (26346)\n-1FC9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FE6A Local Header Offset   0000670F (26383)\n+1FE6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FC9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FE6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FCDF CENTRAL HEADER #58    02014B50 (33639248)\n-1FCE3 Created Zip Spec      14 (20) '2.0'\n-1FCE4 Created OS            03 (3) 'Unix'\n-1FCE5 Extract Zip Spec      14 (20) '2.0'\n-1FCE6 Extract OS            00 (0) 'MS-DOS'\n-1FCE7 General Purpose Flag  0800 (2048)\n+1FEB0 CENTRAL HEADER #58    02014B50 (33639248)\n+1FEB4 Created Zip Spec      14 (20) '2.0'\n+1FEB5 Created OS            03 (3) 'Unix'\n+1FEB6 Extract Zip Spec      14 (20) '2.0'\n+1FEB7 Extract OS            00 (0) 'MS-DOS'\n+1FEB8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FCE9 Compression Method    0008 (8) 'Deflated'\n-1FCEB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FCEF CRC                   036D4C42 (57494594)\n-1FCF3 Compressed Size       000003B9 (953)\n-1FCF7 Uncompressed Size     00000B63 (2915)\n-1FCFB Filename Length       0046 (70)\n-1FCFD Extra Length          0000 (0)\n-1FCFF Comment Length        0000 (0)\n-1FD01 Disk Start            0000 (0)\n-1FD03 Int File Attributes   0000 (0)\n+1FEBA Compression Method    0008 (8) 'Deflated'\n+1FEBC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FEC0 CRC                   036D4C42 (57494594)\n+1FEC4 Compressed Size       000003B9 (953)\n+1FEC8 Uncompressed Size     00000B63 (2915)\n+1FECC Filename Length       0046 (70)\n+1FECE Extra Length          0000 (0)\n+1FED0 Comment Length        0000 (0)\n+1FED2 Disk Start            0000 (0)\n+1FED4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FD05 Ext File Attributes   81A40000 (2175008768)\n+1FED6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FD09 Local Header Offset   00006FE8 (28648)\n-1FD0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FEDA Local Header Offset   0000701C (28700)\n+1FEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FD0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FD53 CENTRAL HEADER #59    02014B50 (33639248)\n-1FD57 Created Zip Spec      14 (20) '2.0'\n-1FD58 Created OS            03 (3) 'Unix'\n-1FD59 Extract Zip Spec      14 (20) '2.0'\n-1FD5A Extract OS            00 (0) 'MS-DOS'\n-1FD5B General Purpose Flag  0800 (2048)\n+1FF24 CENTRAL HEADER #59    02014B50 (33639248)\n+1FF28 Created Zip Spec      14 (20) '2.0'\n+1FF29 Created OS            03 (3) 'Unix'\n+1FF2A Extract Zip Spec      14 (20) '2.0'\n+1FF2B Extract OS            00 (0) 'MS-DOS'\n+1FF2C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FD5D Compression Method    0008 (8) 'Deflated'\n-1FD5F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FD63 CRC                   27E35EC9 (669212361)\n-1FD67 Compressed Size       0000031E (798)\n-1FD6B Uncompressed Size     0000080A (2058)\n-1FD6F Filename Length       004E (78)\n-1FD71 Extra Length          0000 (0)\n-1FD73 Comment Length        0000 (0)\n-1FD75 Disk Start            0000 (0)\n-1FD77 Int File Attributes   0000 (0)\n+1FF2E Compression Method    0008 (8) 'Deflated'\n+1FF30 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FF34 CRC                   27E35EC9 (669212361)\n+1FF38 Compressed Size       0000031E (798)\n+1FF3C Uncompressed Size     0000080A (2058)\n+1FF40 Filename Length       004E (78)\n+1FF42 Extra Length          0000 (0)\n+1FF44 Comment Length        0000 (0)\n+1FF46 Disk Start            0000 (0)\n+1FF48 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FD79 Ext File Attributes   81A40000 (2175008768)\n+1FF4A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FD7D Local Header Offset   00007405 (29701)\n-1FD81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FF4E Local Header Offset   00007439 (29753)\n+1FF52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FD81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FF52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FDCF CENTRAL HEADER #60    02014B50 (33639248)\n-1FDD3 Created Zip Spec      14 (20) '2.0'\n-1FDD4 Created OS            03 (3) 'Unix'\n-1FDD5 Extract Zip Spec      14 (20) '2.0'\n-1FDD6 Extract OS            00 (0) 'MS-DOS'\n-1FDD7 General Purpose Flag  0800 (2048)\n+1FFA0 CENTRAL HEADER #60    02014B50 (33639248)\n+1FFA4 Created Zip Spec      14 (20) '2.0'\n+1FFA5 Created OS            03 (3) 'Unix'\n+1FFA6 Extract Zip Spec      14 (20) '2.0'\n+1FFA7 Extract OS            00 (0) 'MS-DOS'\n+1FFA8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FDD9 Compression Method    0008 (8) 'Deflated'\n-1FDDB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FDDF CRC                   469827B2 (1184376754)\n-1FDE3 Compressed Size       00000600 (1536)\n-1FDE7 Uncompressed Size     000012D4 (4820)\n-1FDEB Filename Length       003D (61)\n-1FDED Extra Length          0000 (0)\n-1FDEF Comment Length        0000 (0)\n-1FDF1 Disk Start            0000 (0)\n-1FDF3 Int File Attributes   0000 (0)\n+1FFAA Compression Method    0008 (8) 'Deflated'\n+1FFAC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FFB0 CRC                   A6C08F00 (2797637376)\n+1FFB4 Compressed Size       0000060F (1551)\n+1FFB8 Uncompressed Size     00001361 (4961)\n+1FFBC Filename Length       003D (61)\n+1FFBE Extra Length          0000 (0)\n+1FFC0 Comment Length        0000 (0)\n+1FFC2 Disk Start            0000 (0)\n+1FFC4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FDF5 Ext File Attributes   81A40000 (2175008768)\n+1FFC6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FDF9 Local Header Offset   0000778F (30607)\n-1FDFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FFCA Local Header Offset   000077C3 (30659)\n+1FFCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FDFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FFCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FE3A CENTRAL HEADER #61    02014B50 (33639248)\n-1FE3E Created Zip Spec      14 (20) '2.0'\n-1FE3F Created OS            03 (3) 'Unix'\n-1FE40 Extract Zip Spec      14 (20) '2.0'\n-1FE41 Extract OS            00 (0) 'MS-DOS'\n-1FE42 General Purpose Flag  0800 (2048)\n+2000B CENTRAL HEADER #61    02014B50 (33639248)\n+2000F Created Zip Spec      14 (20) '2.0'\n+20010 Created OS            03 (3) 'Unix'\n+20011 Extract Zip Spec      14 (20) '2.0'\n+20012 Extract OS            00 (0) 'MS-DOS'\n+20013 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FE44 Compression Method    0008 (8) 'Deflated'\n-1FE46 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FE4A CRC                   FF9ED7FD (4288600061)\n-1FE4E Compressed Size       000004D0 (1232)\n-1FE52 Uncompressed Size     00000ECB (3787)\n-1FE56 Filename Length       003B (59)\n-1FE58 Extra Length          0000 (0)\n-1FE5A Comment Length        0000 (0)\n-1FE5C Disk Start            0000 (0)\n-1FE5E Int File Attributes   0000 (0)\n+20015 Compression Method    0008 (8) 'Deflated'\n+20017 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2001B CRC                   FF9ED7FD (4288600061)\n+2001F Compressed Size       000004D0 (1232)\n+20023 Uncompressed Size     00000ECB (3787)\n+20027 Filename Length       003B (59)\n+20029 Extra Length          0000 (0)\n+2002B Comment Length        0000 (0)\n+2002D Disk Start            0000 (0)\n+2002F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FE60 Ext File Attributes   81A40000 (2175008768)\n+20031 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FE64 Local Header Offset   00007DEA (32234)\n-1FE68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20035 Local Header Offset   00007E2D (32301)\n+20039 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FE68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20039: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FEA3 CENTRAL HEADER #62    02014B50 (33639248)\n-1FEA7 Created Zip Spec      14 (20) '2.0'\n-1FEA8 Created OS            03 (3) 'Unix'\n-1FEA9 Extract Zip Spec      14 (20) '2.0'\n-1FEAA Extract OS            00 (0) 'MS-DOS'\n-1FEAB General Purpose Flag  0800 (2048)\n+20074 CENTRAL HEADER #62    02014B50 (33639248)\n+20078 Created Zip Spec      14 (20) '2.0'\n+20079 Created OS            03 (3) 'Unix'\n+2007A Extract Zip Spec      14 (20) '2.0'\n+2007B Extract OS            00 (0) 'MS-DOS'\n+2007C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FEAD Compression Method    0008 (8) 'Deflated'\n-1FEAF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FEB3 CRC                   5EE85BF3 (1592286195)\n-1FEB7 Compressed Size       000002D7 (727)\n-1FEBB Uncompressed Size     000006C4 (1732)\n-1FEBF Filename Length       0050 (80)\n-1FEC1 Extra Length          0000 (0)\n-1FEC3 Comment Length        0000 (0)\n-1FEC5 Disk Start            0000 (0)\n-1FEC7 Int File Attributes   0000 (0)\n+2007E Compression Method    0008 (8) 'Deflated'\n+20080 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20084 CRC                   33C069B6 (868247990)\n+20088 Compressed Size       000002E0 (736)\n+2008C Uncompressed Size     000006EC (1772)\n+20090 Filename Length       0050 (80)\n+20092 Extra Length          0000 (0)\n+20094 Comment Length        0000 (0)\n+20096 Disk Start            0000 (0)\n+20098 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FEC9 Ext File Attributes   81A40000 (2175008768)\n+2009A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FECD Local Header Offset   00008313 (33555)\n-1FED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2009E Local Header Offset   00008356 (33622)\n+200A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x200A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FF21 CENTRAL HEADER #63    02014B50 (33639248)\n-1FF25 Created Zip Spec      14 (20) '2.0'\n-1FF26 Created OS            03 (3) 'Unix'\n-1FF27 Extract Zip Spec      14 (20) '2.0'\n-1FF28 Extract OS            00 (0) 'MS-DOS'\n-1FF29 General Purpose Flag  0800 (2048)\n+200F2 CENTRAL HEADER #63    02014B50 (33639248)\n+200F6 Created Zip Spec      14 (20) '2.0'\n+200F7 Created OS            03 (3) 'Unix'\n+200F8 Extract Zip Spec      14 (20) '2.0'\n+200F9 Extract OS            00 (0) 'MS-DOS'\n+200FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FF2B Compression Method    0008 (8) 'Deflated'\n-1FF2D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FF31 CRC                   4F276AEF (1327983343)\n-1FF35 Compressed Size       00000481 (1153)\n-1FF39 Uncompressed Size     00000E87 (3719)\n-1FF3D Filename Length       0045 (69)\n-1FF3F Extra Length          0000 (0)\n-1FF41 Comment Length        0000 (0)\n-1FF43 Disk Start            0000 (0)\n-1FF45 Int File Attributes   0000 (0)\n+200FC Compression Method    0008 (8) 'Deflated'\n+200FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20102 CRC                   1A3A8FC1 (440045505)\n+20106 Compressed Size       0000048D (1165)\n+2010A Uncompressed Size     00000EE2 (3810)\n+2010E Filename Length       0045 (69)\n+20110 Extra Length          0000 (0)\n+20112 Comment Length        0000 (0)\n+20114 Disk Start            0000 (0)\n+20116 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FF47 Ext File Attributes   81A40000 (2175008768)\n+20118 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FF4B Local Header Offset   00008658 (34392)\n-1FF4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2011C Local Header Offset   000086A4 (34468)\n+20120 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FF4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20120: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-1FF94 CENTRAL HEADER #64    02014B50 (33639248)\n-1FF98 Created Zip Spec      14 (20) '2.0'\n-1FF99 Created OS            03 (3) 'Unix'\n-1FF9A Extract Zip Spec      14 (20) '2.0'\n-1FF9B Extract OS            00 (0) 'MS-DOS'\n-1FF9C General Purpose Flag  0800 (2048)\n+20165 CENTRAL HEADER #64    02014B50 (33639248)\n+20169 Created Zip Spec      14 (20) '2.0'\n+2016A Created OS            03 (3) 'Unix'\n+2016B Extract Zip Spec      14 (20) '2.0'\n+2016C Extract OS            00 (0) 'MS-DOS'\n+2016D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FF9E Compression Method    0008 (8) 'Deflated'\n-1FFA0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FFA4 CRC                   E239D68F (3795441295)\n-1FFA8 Compressed Size       00000386 (902)\n-1FFAC Uncompressed Size     000008D4 (2260)\n-1FFB0 Filename Length       0040 (64)\n-1FFB2 Extra Length          0000 (0)\n-1FFB4 Comment Length        0000 (0)\n-1FFB6 Disk Start            0000 (0)\n-1FFB8 Int File Attributes   0000 (0)\n+2016F Compression Method    0008 (8) 'Deflated'\n+20171 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20175 CRC                   B2FCFE3E (3002924606)\n+20179 Compressed Size       0000038F (911)\n+2017D Uncompressed Size     0000090C (2316)\n+20181 Filename Length       0040 (64)\n+20183 Extra Length          0000 (0)\n+20185 Comment Length        0000 (0)\n+20187 Disk Start            0000 (0)\n+20189 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-1FFBA Ext File Attributes   81A40000 (2175008768)\n+2018B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-1FFBE Local Header Offset   00008B3C (35644)\n-1FFC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2018F Local Header Offset   00008B94 (35732)\n+20193 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FFC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20193: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20002 CENTRAL HEADER #65    02014B50 (33639248)\n-20006 Created Zip Spec      14 (20) '2.0'\n-20007 Created OS            03 (3) 'Unix'\n-20008 Extract Zip Spec      14 (20) '2.0'\n-20009 Extract OS            00 (0) 'MS-DOS'\n-2000A General Purpose Flag  0800 (2048)\n+201D3 CENTRAL HEADER #65    02014B50 (33639248)\n+201D7 Created Zip Spec      14 (20) '2.0'\n+201D8 Created OS            03 (3) 'Unix'\n+201D9 Extract Zip Spec      14 (20) '2.0'\n+201DA Extract OS            00 (0) 'MS-DOS'\n+201DB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2000C Compression Method    0008 (8) 'Deflated'\n-2000E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20012 CRC                   5A7B56B1 (1518032561)\n-20016 Compressed Size       00000359 (857)\n-2001A Uncompressed Size     00000899 (2201)\n-2001E Filename Length       004F (79)\n-20020 Extra Length          0000 (0)\n-20022 Comment Length        0000 (0)\n-20024 Disk Start            0000 (0)\n-20026 Int File Attributes   0000 (0)\n+201DD Compression Method    0008 (8) 'Deflated'\n+201DF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+201E3 CRC                   8FEFC776 (2414856054)\n+201E7 Compressed Size       00000361 (865)\n+201EB Uncompressed Size     000008CF (2255)\n+201EF Filename Length       004F (79)\n+201F1 Extra Length          0000 (0)\n+201F3 Comment Length        0000 (0)\n+201F5 Disk Start            0000 (0)\n+201F7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20028 Ext File Attributes   81A40000 (2175008768)\n+201F9 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2002C Local Header Offset   00008F20 (36640)\n-20030 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+201FD Local Header Offset   00008F81 (36737)\n+20201 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20030: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20201: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2007F CENTRAL HEADER #66    02014B50 (33639248)\n-20083 Created Zip Spec      14 (20) '2.0'\n-20084 Created OS            03 (3) 'Unix'\n-20085 Extract Zip Spec      14 (20) '2.0'\n-20086 Extract OS            00 (0) 'MS-DOS'\n-20087 General Purpose Flag  0800 (2048)\n+20250 CENTRAL HEADER #66    02014B50 (33639248)\n+20254 Created Zip Spec      14 (20) '2.0'\n+20255 Created OS            03 (3) 'Unix'\n+20256 Extract Zip Spec      14 (20) '2.0'\n+20257 Extract OS            00 (0) 'MS-DOS'\n+20258 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20089 Compression Method    0008 (8) 'Deflated'\n-2008B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2008F CRC                   C3191A72 (3273202290)\n-20093 Compressed Size       000003F3 (1011)\n-20097 Uncompressed Size     00000A65 (2661)\n-2009B Filename Length       0049 (73)\n-2009D Extra Length          0000 (0)\n-2009F Comment Length        0000 (0)\n-200A1 Disk Start            0000 (0)\n-200A3 Int File Attributes   0000 (0)\n+2025A Compression Method    0008 (8) 'Deflated'\n+2025C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20260 CRC                   33BD82F4 (868057844)\n+20264 Compressed Size       000003FF (1023)\n+20268 Uncompressed Size     00000AA3 (2723)\n+2026C Filename Length       0049 (73)\n+2026E Extra Length          0000 (0)\n+20270 Comment Length        0000 (0)\n+20272 Disk Start            0000 (0)\n+20274 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-200A5 Ext File Attributes   81A40000 (2175008768)\n+20276 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-200A9 Local Header Offset   000092E6 (37606)\n-200AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2027A Local Header Offset   0000934F (37711)\n+2027E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x200AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2027E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-200F6 CENTRAL HEADER #67    02014B50 (33639248)\n-200FA Created Zip Spec      14 (20) '2.0'\n-200FB Created OS            03 (3) 'Unix'\n-200FC Extract Zip Spec      14 (20) '2.0'\n-200FD Extract OS            00 (0) 'MS-DOS'\n-200FE General Purpose Flag  0800 (2048)\n+202C7 CENTRAL HEADER #67    02014B50 (33639248)\n+202CB Created Zip Spec      14 (20) '2.0'\n+202CC Created OS            03 (3) 'Unix'\n+202CD Extract Zip Spec      14 (20) '2.0'\n+202CE Extract OS            00 (0) 'MS-DOS'\n+202CF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20100 Compression Method    0008 (8) 'Deflated'\n-20102 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20106 CRC                   BCC9CB9D (3167341469)\n-2010A Compressed Size       000005AE (1454)\n-2010E Uncompressed Size     000010C1 (4289)\n-20112 Filename Length       0041 (65)\n-20114 Extra Length          0000 (0)\n-20116 Comment Length        0000 (0)\n-20118 Disk Start            0000 (0)\n-2011A Int File Attributes   0000 (0)\n+202D1 Compression Method    0008 (8) 'Deflated'\n+202D3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+202D7 CRC                   BCC9CB9D (3167341469)\n+202DB Compressed Size       000005AE (1454)\n+202DF Uncompressed Size     000010C1 (4289)\n+202E3 Filename Length       0041 (65)\n+202E5 Extra Length          0000 (0)\n+202E7 Comment Length        0000 (0)\n+202E9 Disk Start            0000 (0)\n+202EB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2011C Ext File Attributes   81A40000 (2175008768)\n+202ED Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20120 Local Header Offset   00009740 (38720)\n-20124 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+202F1 Local Header Offset   000097B5 (38837)\n+202F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20124: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x202F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20165 CENTRAL HEADER #68    02014B50 (33639248)\n-20169 Created Zip Spec      14 (20) '2.0'\n-2016A Created OS            03 (3) 'Unix'\n-2016B Extract Zip Spec      14 (20) '2.0'\n-2016C Extract OS            00 (0) 'MS-DOS'\n-2016D General Purpose Flag  0800 (2048)\n+20336 CENTRAL HEADER #68    02014B50 (33639248)\n+2033A Created Zip Spec      14 (20) '2.0'\n+2033B Created OS            03 (3) 'Unix'\n+2033C Extract Zip Spec      14 (20) '2.0'\n+2033D Extract OS            00 (0) 'MS-DOS'\n+2033E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2016F Compression Method    0008 (8) 'Deflated'\n-20171 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20175 CRC                   D501B98C (3573660044)\n-20179 Compressed Size       000006C7 (1735)\n-2017D Uncompressed Size     000014EB (5355)\n-20181 Filename Length       0047 (71)\n-20183 Extra Length          0000 (0)\n-20185 Comment Length        0000 (0)\n-20187 Disk Start            0000 (0)\n-20189 Int File Attributes   0000 (0)\n+20340 Compression Method    0008 (8) 'Deflated'\n+20342 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20346 CRC                   D501B98C (3573660044)\n+2034A Compressed Size       000006C7 (1735)\n+2034E Uncompressed Size     000014EB (5355)\n+20352 Filename Length       0047 (71)\n+20354 Extra Length          0000 (0)\n+20356 Comment Length        0000 (0)\n+20358 Disk Start            0000 (0)\n+2035A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2018B Ext File Attributes   81A40000 (2175008768)\n+2035C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2018F Local Header Offset   00009D4D (40269)\n-20193 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20360 Local Header Offset   00009DC2 (40386)\n+20364 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20193: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20364: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-201DA CENTRAL HEADER #69    02014B50 (33639248)\n-201DE Created Zip Spec      14 (20) '2.0'\n-201DF Created OS            03 (3) 'Unix'\n-201E0 Extract Zip Spec      14 (20) '2.0'\n-201E1 Extract OS            00 (0) 'MS-DOS'\n-201E2 General Purpose Flag  0800 (2048)\n+203AB CENTRAL HEADER #69    02014B50 (33639248)\n+203AF Created Zip Spec      14 (20) '2.0'\n+203B0 Created OS            03 (3) 'Unix'\n+203B1 Extract Zip Spec      14 (20) '2.0'\n+203B2 Extract OS            00 (0) 'MS-DOS'\n+203B3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-201E4 Compression Method    0008 (8) 'Deflated'\n-201E6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-201EA CRC                   5955E637 (1498801719)\n-201EE Compressed Size       000006DA (1754)\n-201F2 Uncompressed Size     000015EF (5615)\n-201F6 Filename Length       0044 (68)\n-201F8 Extra Length          0000 (0)\n-201FA Comment Length        0000 (0)\n-201FC Disk Start            0000 (0)\n-201FE Int File Attributes   0000 (0)\n+203B5 Compression Method    0008 (8) 'Deflated'\n+203B7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+203BB CRC                   5955E637 (1498801719)\n+203BF Compressed Size       000006DA (1754)\n+203C3 Uncompressed Size     000015EF (5615)\n+203C7 Filename Length       0044 (68)\n+203C9 Extra Length          0000 (0)\n+203CB Comment Length        0000 (0)\n+203CD Disk Start            0000 (0)\n+203CF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20200 Ext File Attributes   81A40000 (2175008768)\n+203D1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20204 Local Header Offset   0000A479 (42105)\n-20208 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+203D5 Local Header Offset   0000A4EE (42222)\n+203D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20208: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x203D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2024C CENTRAL HEADER #70    02014B50 (33639248)\n-20250 Created Zip Spec      14 (20) '2.0'\n-20251 Created OS            03 (3) 'Unix'\n-20252 Extract Zip Spec      14 (20) '2.0'\n-20253 Extract OS            00 (0) 'MS-DOS'\n-20254 General Purpose Flag  0800 (2048)\n+2041D CENTRAL HEADER #70    02014B50 (33639248)\n+20421 Created Zip Spec      14 (20) '2.0'\n+20422 Created OS            03 (3) 'Unix'\n+20423 Extract Zip Spec      14 (20) '2.0'\n+20424 Extract OS            00 (0) 'MS-DOS'\n+20425 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20256 Compression Method    0008 (8) 'Deflated'\n-20258 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2025C CRC                   0BF8995C (200841564)\n-20260 Compressed Size       0000054B (1355)\n-20264 Uncompressed Size     00000D00 (3328)\n-20268 Filename Length       003F (63)\n-2026A Extra Length          0000 (0)\n-2026C Comment Length        0000 (0)\n-2026E Disk Start            0000 (0)\n-20270 Int File Attributes   0000 (0)\n+20427 Compression Method    0008 (8) 'Deflated'\n+20429 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2042D CRC                   E9DD16E0 (3923580640)\n+20431 Compressed Size       00000557 (1367)\n+20435 Uncompressed Size     00000D50 (3408)\n+20439 Filename Length       003F (63)\n+2043B Extra Length          0000 (0)\n+2043D Comment Length        0000 (0)\n+2043F Disk Start            0000 (0)\n+20441 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20272 Ext File Attributes   81A40000 (2175008768)\n+20443 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20276 Local Header Offset   0000ABB5 (43957)\n-2027A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20447 Local Header Offset   0000AC2A (44074)\n+2044B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2027A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2044B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-202B9 CENTRAL HEADER #71    02014B50 (33639248)\n-202BD Created Zip Spec      14 (20) '2.0'\n-202BE Created OS            03 (3) 'Unix'\n-202BF Extract Zip Spec      14 (20) '2.0'\n-202C0 Extract OS            00 (0) 'MS-DOS'\n-202C1 General Purpose Flag  0800 (2048)\n+2048A CENTRAL HEADER #71    02014B50 (33639248)\n+2048E Created Zip Spec      14 (20) '2.0'\n+2048F Created OS            03 (3) 'Unix'\n+20490 Extract Zip Spec      14 (20) '2.0'\n+20491 Extract OS            00 (0) 'MS-DOS'\n+20492 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-202C3 Compression Method    0008 (8) 'Deflated'\n-202C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-202C9 CRC                   B03BDD5E (2956713310)\n-202CD Compressed Size       00000618 (1560)\n-202D1 Uncompressed Size     000012CC (4812)\n-202D5 Filename Length       0043 (67)\n-202D7 Extra Length          0000 (0)\n-202D9 Comment Length        0000 (0)\n-202DB Disk Start            0000 (0)\n-202DD Int File Attributes   0000 (0)\n+20494 Compression Method    0008 (8) 'Deflated'\n+20496 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2049A CRC                   B03BDD5E (2956713310)\n+2049E Compressed Size       00000618 (1560)\n+204A2 Uncompressed Size     000012CC (4812)\n+204A6 Filename Length       0043 (67)\n+204A8 Extra Length          0000 (0)\n+204AA Comment Length        0000 (0)\n+204AC Disk Start            0000 (0)\n+204AE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-202DF Ext File Attributes   81A40000 (2175008768)\n+204B0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-202E3 Local Header Offset   0000B15D (45405)\n-202E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+204B4 Local Header Offset   0000B1DE (45534)\n+204B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x202E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x204B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2032A CENTRAL HEADER #72    02014B50 (33639248)\n-2032E Created Zip Spec      14 (20) '2.0'\n-2032F Created OS            03 (3) 'Unix'\n-20330 Extract Zip Spec      14 (20) '2.0'\n-20331 Extract OS            00 (0) 'MS-DOS'\n-20332 General Purpose Flag  0800 (2048)\n+204FB CENTRAL HEADER #72    02014B50 (33639248)\n+204FF Created Zip Spec      14 (20) '2.0'\n+20500 Created OS            03 (3) 'Unix'\n+20501 Extract Zip Spec      14 (20) '2.0'\n+20502 Extract OS            00 (0) 'MS-DOS'\n+20503 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20334 Compression Method    0008 (8) 'Deflated'\n-20336 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2033A CRC                   5F890A01 (1602816513)\n-2033E Compressed Size       000005FA (1530)\n-20342 Uncompressed Size     000011D5 (4565)\n-20346 Filename Length       0049 (73)\n-20348 Extra Length          0000 (0)\n-2034A Comment Length        0000 (0)\n-2034C Disk Start            0000 (0)\n-2034E Int File Attributes   0000 (0)\n+20505 Compression Method    0008 (8) 'Deflated'\n+20507 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2050B CRC                   0139FCC5 (20577477)\n+2050F Compressed Size       0000060A (1546)\n+20513 Uncompressed Size     00001239 (4665)\n+20517 Filename Length       0049 (73)\n+20519 Extra Length          0000 (0)\n+2051B Comment Length        0000 (0)\n+2051D Disk Start            0000 (0)\n+2051F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20350 Ext File Attributes   81A40000 (2175008768)\n+20521 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20354 Local Header Offset   0000B7D6 (47062)\n-20358 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20525 Local Header Offset   0000B857 (47191)\n+20529 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20358: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20529: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-203A1 CENTRAL HEADER #73    02014B50 (33639248)\n-203A5 Created Zip Spec      14 (20) '2.0'\n-203A6 Created OS            03 (3) 'Unix'\n-203A7 Extract Zip Spec      14 (20) '2.0'\n-203A8 Extract OS            00 (0) 'MS-DOS'\n-203A9 General Purpose Flag  0800 (2048)\n+20572 CENTRAL HEADER #73    02014B50 (33639248)\n+20576 Created Zip Spec      14 (20) '2.0'\n+20577 Created OS            03 (3) 'Unix'\n+20578 Extract Zip Spec      14 (20) '2.0'\n+20579 Extract OS            00 (0) 'MS-DOS'\n+2057A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-203AB Compression Method    0008 (8) 'Deflated'\n-203AD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-203B1 CRC                   B70DC735 (3071133493)\n-203B5 Compressed Size       000003D0 (976)\n-203B9 Uncompressed Size     00000959 (2393)\n-203BD Filename Length       0034 (52)\n-203BF Extra Length          0000 (0)\n-203C1 Comment Length        0000 (0)\n-203C3 Disk Start            0000 (0)\n-203C5 Int File Attributes   0000 (0)\n+2057C Compression Method    0008 (8) 'Deflated'\n+2057E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20582 CRC                   B70DC735 (3071133493)\n+20586 Compressed Size       000003D0 (976)\n+2058A Uncompressed Size     00000959 (2393)\n+2058E Filename Length       0034 (52)\n+20590 Extra Length          0000 (0)\n+20592 Comment Length        0000 (0)\n+20594 Disk Start            0000 (0)\n+20596 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-203C7 Ext File Attributes   81A40000 (2175008768)\n+20598 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-203CB Local Header Offset   0000BE37 (48695)\n-203CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2059C Local Header Offset   0000BEC8 (48840)\n+205A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x203CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x205A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20403 CENTRAL HEADER #74    02014B50 (33639248)\n-20407 Created Zip Spec      14 (20) '2.0'\n-20408 Created OS            03 (3) 'Unix'\n-20409 Extract Zip Spec      14 (20) '2.0'\n-2040A Extract OS            00 (0) 'MS-DOS'\n-2040B General Purpose Flag  0800 (2048)\n+205D4 CENTRAL HEADER #74    02014B50 (33639248)\n+205D8 Created Zip Spec      14 (20) '2.0'\n+205D9 Created OS            03 (3) 'Unix'\n+205DA Extract Zip Spec      14 (20) '2.0'\n+205DB Extract OS            00 (0) 'MS-DOS'\n+205DC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2040D Compression Method    0008 (8) 'Deflated'\n-2040F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20413 CRC                   5ECBBD86 (1590410630)\n-20417 Compressed Size       000002E5 (741)\n-2041B Uncompressed Size     0000068E (1678)\n-2041F Filename Length       003B (59)\n-20421 Extra Length          0000 (0)\n-20423 Comment Length        0000 (0)\n-20425 Disk Start            0000 (0)\n-20427 Int File Attributes   0000 (0)\n+205DE Compression Method    0008 (8) 'Deflated'\n+205E0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+205E4 CRC                   5ECBBD86 (1590410630)\n+205E8 Compressed Size       000002E5 (741)\n+205EC Uncompressed Size     0000068E (1678)\n+205F0 Filename Length       003B (59)\n+205F2 Extra Length          0000 (0)\n+205F4 Comment Length        0000 (0)\n+205F6 Disk Start            0000 (0)\n+205F8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20429 Ext File Attributes   81A40000 (2175008768)\n+205FA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2042D Local Header Offset   0000C259 (49753)\n-20431 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+205FE Local Header Offset   0000C2EA (49898)\n+20602 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20431: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20602: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2046C CENTRAL HEADER #75    02014B50 (33639248)\n-20470 Created Zip Spec      14 (20) '2.0'\n-20471 Created OS            03 (3) 'Unix'\n-20472 Extract Zip Spec      14 (20) '2.0'\n-20473 Extract OS            00 (0) 'MS-DOS'\n-20474 General Purpose Flag  0800 (2048)\n+2063D CENTRAL HEADER #75    02014B50 (33639248)\n+20641 Created Zip Spec      14 (20) '2.0'\n+20642 Created OS            03 (3) 'Unix'\n+20643 Extract Zip Spec      14 (20) '2.0'\n+20644 Extract OS            00 (0) 'MS-DOS'\n+20645 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20476 Compression Method    0008 (8) 'Deflated'\n-20478 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2047C CRC                   0CC7ECCD (214428877)\n-20480 Compressed Size       000002E1 (737)\n-20484 Uncompressed Size     00000667 (1639)\n-20488 Filename Length       0038 (56)\n-2048A Extra Length          0000 (0)\n-2048C Comment Length        0000 (0)\n-2048E Disk Start            0000 (0)\n-20490 Int File Attributes   0000 (0)\n+20647 Compression Method    0008 (8) 'Deflated'\n+20649 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2064D CRC                   0CC7ECCD (214428877)\n+20651 Compressed Size       000002E1 (737)\n+20655 Uncompressed Size     00000667 (1639)\n+20659 Filename Length       0038 (56)\n+2065B Extra Length          0000 (0)\n+2065D Comment Length        0000 (0)\n+2065F Disk Start            0000 (0)\n+20661 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20492 Ext File Attributes   81A40000 (2175008768)\n+20663 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20496 Local Header Offset   0000C597 (50583)\n-2049A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20667 Local Header Offset   0000C628 (50728)\n+2066B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2049A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2066B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-204D2 CENTRAL HEADER #76    02014B50 (33639248)\n-204D6 Created Zip Spec      14 (20) '2.0'\n-204D7 Created OS            03 (3) 'Unix'\n-204D8 Extract Zip Spec      14 (20) '2.0'\n-204D9 Extract OS            00 (0) 'MS-DOS'\n-204DA General Purpose Flag  0800 (2048)\n+206A3 CENTRAL HEADER #76    02014B50 (33639248)\n+206A7 Created Zip Spec      14 (20) '2.0'\n+206A8 Created OS            03 (3) 'Unix'\n+206A9 Extract Zip Spec      14 (20) '2.0'\n+206AA Extract OS            00 (0) 'MS-DOS'\n+206AB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-204DC Compression Method    0008 (8) 'Deflated'\n-204DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-204E2 CRC                   091CC51B (152880411)\n-204E6 Compressed Size       000002DF (735)\n-204EA Uncompressed Size     00000665 (1637)\n-204EE Filename Length       0038 (56)\n-204F0 Extra Length          0000 (0)\n-204F2 Comment Length        0000 (0)\n-204F4 Disk Start            0000 (0)\n-204F6 Int File Attributes   0000 (0)\n+206AD Compression Method    0008 (8) 'Deflated'\n+206AF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+206B3 CRC                   091CC51B (152880411)\n+206B7 Compressed Size       000002DF (735)\n+206BB Uncompressed Size     00000665 (1637)\n+206BF Filename Length       0038 (56)\n+206C1 Extra Length          0000 (0)\n+206C3 Comment Length        0000 (0)\n+206C5 Disk Start            0000 (0)\n+206C7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-204F8 Ext File Attributes   81A40000 (2175008768)\n+206C9 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-204FC Local Header Offset   0000C8CE (51406)\n-20500 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+206CD Local Header Offset   0000C95F (51551)\n+206D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20500: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x206D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20538 CENTRAL HEADER #77    02014B50 (33639248)\n-2053C Created Zip Spec      14 (20) '2.0'\n-2053D Created OS            03 (3) 'Unix'\n-2053E Extract Zip Spec      14 (20) '2.0'\n-2053F Extract OS            00 (0) 'MS-DOS'\n-20540 General Purpose Flag  0800 (2048)\n+20709 CENTRAL HEADER #77    02014B50 (33639248)\n+2070D Created Zip Spec      14 (20) '2.0'\n+2070E Created OS            03 (3) 'Unix'\n+2070F Extract Zip Spec      14 (20) '2.0'\n+20710 Extract OS            00 (0) 'MS-DOS'\n+20711 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20542 Compression Method    0008 (8) 'Deflated'\n-20544 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20548 CRC                   04E4C5B6 (82101686)\n-2054C Compressed Size       000002B3 (691)\n-20550 Uncompressed Size     00000545 (1349)\n-20554 Filename Length       003A (58)\n-20556 Extra Length          0000 (0)\n-20558 Comment Length        0000 (0)\n-2055A Disk Start            0000 (0)\n-2055C Int File Attributes   0000 (0)\n+20713 Compression Method    0008 (8) 'Deflated'\n+20715 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20719 CRC                   43B612AE (1136005806)\n+2071D Compressed Size       000002B9 (697)\n+20721 Uncompressed Size     0000056A (1386)\n+20725 Filename Length       003A (58)\n+20727 Extra Length          0000 (0)\n+20729 Comment Length        0000 (0)\n+2072B Disk Start            0000 (0)\n+2072D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2055E Ext File Attributes   81A40000 (2175008768)\n+2072F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20562 Local Header Offset   0000CC03 (52227)\n-20566 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20733 Local Header Offset   0000CC94 (52372)\n+20737 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20566: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20737: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-205A0 CENTRAL HEADER #78    02014B50 (33639248)\n-205A4 Created Zip Spec      14 (20) '2.0'\n-205A5 Created OS            03 (3) 'Unix'\n-205A6 Extract Zip Spec      14 (20) '2.0'\n-205A7 Extract OS            00 (0) 'MS-DOS'\n-205A8 General Purpose Flag  0800 (2048)\n+20771 CENTRAL HEADER #78    02014B50 (33639248)\n+20775 Created Zip Spec      14 (20) '2.0'\n+20776 Created OS            03 (3) 'Unix'\n+20777 Extract Zip Spec      14 (20) '2.0'\n+20778 Extract OS            00 (0) 'MS-DOS'\n+20779 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-205AA Compression Method    0008 (8) 'Deflated'\n-205AC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-205B0 CRC                   DDA728F5 (3718719733)\n-205B4 Compressed Size       000002E0 (736)\n-205B8 Uncompressed Size     0000066F (1647)\n-205BC Filename Length       0039 (57)\n-205BE Extra Length          0000 (0)\n-205C0 Comment Length        0000 (0)\n-205C2 Disk Start            0000 (0)\n-205C4 Int File Attributes   0000 (0)\n+2077B Compression Method    0008 (8) 'Deflated'\n+2077D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20781 CRC                   DDA728F5 (3718719733)\n+20785 Compressed Size       000002E0 (736)\n+20789 Uncompressed Size     0000066F (1647)\n+2078D Filename Length       0039 (57)\n+2078F Extra Length          0000 (0)\n+20791 Comment Length        0000 (0)\n+20793 Disk Start            0000 (0)\n+20795 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-205C6 Ext File Attributes   81A40000 (2175008768)\n+20797 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-205CA Local Header Offset   0000CF0E (53006)\n-205CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2079B Local Header Offset   0000CFA5 (53157)\n+2079F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x205CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2079F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20607 CENTRAL HEADER #79    02014B50 (33639248)\n-2060B Created Zip Spec      14 (20) '2.0'\n-2060C Created OS            03 (3) 'Unix'\n-2060D Extract Zip Spec      14 (20) '2.0'\n-2060E Extract OS            00 (0) 'MS-DOS'\n-2060F General Purpose Flag  0800 (2048)\n+207D8 CENTRAL HEADER #79    02014B50 (33639248)\n+207DC Created Zip Spec      14 (20) '2.0'\n+207DD Created OS            03 (3) 'Unix'\n+207DE Extract Zip Spec      14 (20) '2.0'\n+207DF Extract OS            00 (0) 'MS-DOS'\n+207E0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20611 Compression Method    0008 (8) 'Deflated'\n-20613 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20617 CRC                   443829ED (1144531437)\n-2061B Compressed Size       000002B0 (688)\n-2061F Uncompressed Size     00000534 (1332)\n-20623 Filename Length       0037 (55)\n-20625 Extra Length          0000 (0)\n-20627 Comment Length        0000 (0)\n-20629 Disk Start            0000 (0)\n-2062B Int File Attributes   0000 (0)\n+207E2 Compression Method    0008 (8) 'Deflated'\n+207E4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+207E8 CRC                   389B0984 (949684612)\n+207EC Compressed Size       000002B7 (695)\n+207F0 Uncompressed Size     0000055A (1370)\n+207F4 Filename Length       0037 (55)\n+207F6 Extra Length          0000 (0)\n+207F8 Comment Length        0000 (0)\n+207FA Disk Start            0000 (0)\n+207FC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2062D Ext File Attributes   81A40000 (2175008768)\n+207FE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20631 Local Header Offset   0000D245 (53829)\n-20635 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20802 Local Header Offset   0000D2DC (53980)\n+20806 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20635: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20806: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2066C CENTRAL HEADER #80    02014B50 (33639248)\n-20670 Created Zip Spec      14 (20) '2.0'\n-20671 Created OS            03 (3) 'Unix'\n-20672 Extract Zip Spec      14 (20) '2.0'\n-20673 Extract OS            00 (0) 'MS-DOS'\n-20674 General Purpose Flag  0800 (2048)\n+2083D CENTRAL HEADER #80    02014B50 (33639248)\n+20841 Created Zip Spec      14 (20) '2.0'\n+20842 Created OS            03 (3) 'Unix'\n+20843 Extract Zip Spec      14 (20) '2.0'\n+20844 Extract OS            00 (0) 'MS-DOS'\n+20845 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20676 Compression Method    0008 (8) 'Deflated'\n-20678 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2067C CRC                   482DE9DF (1210968543)\n-20680 Compressed Size       000002CE (718)\n-20684 Uncompressed Size     000005D4 (1492)\n-20688 Filename Length       0033 (51)\n-2068A Extra Length          0000 (0)\n-2068C Comment Length        0000 (0)\n-2068E Disk Start            0000 (0)\n-20690 Int File Attributes   0000 (0)\n+20847 Compression Method    0008 (8) 'Deflated'\n+20849 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2084D CRC                   792EF15D (2033119581)\n+20851 Compressed Size       000002D8 (728)\n+20855 Uncompressed Size     000005FF (1535)\n+20859 Filename Length       0033 (51)\n+2085B Extra Length          0000 (0)\n+2085D Comment Length        0000 (0)\n+2085F Disk Start            0000 (0)\n+20861 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20692 Ext File Attributes   81A40000 (2175008768)\n+20863 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20696 Local Header Offset   0000D54A (54602)\n-2069A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20867 Local Header Offset   0000D5E8 (54760)\n+2086B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2069A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2086B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-206CD CENTRAL HEADER #81    02014B50 (33639248)\n-206D1 Created Zip Spec      14 (20) '2.0'\n-206D2 Created OS            03 (3) 'Unix'\n-206D3 Extract Zip Spec      14 (20) '2.0'\n-206D4 Extract OS            00 (0) 'MS-DOS'\n-206D5 General Purpose Flag  0800 (2048)\n+2089E CENTRAL HEADER #81    02014B50 (33639248)\n+208A2 Created Zip Spec      14 (20) '2.0'\n+208A3 Created OS            03 (3) 'Unix'\n+208A4 Extract Zip Spec      14 (20) '2.0'\n+208A5 Extract OS            00 (0) 'MS-DOS'\n+208A6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-206D7 Compression Method    0008 (8) 'Deflated'\n-206D9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-206DD CRC                   D3DCC156 (3554459990)\n-206E1 Compressed Size       000002B1 (689)\n-206E5 Uncompressed Size     00000539 (1337)\n-206E9 Filename Length       0038 (56)\n-206EB Extra Length          0000 (0)\n-206ED Comment Length        0000 (0)\n-206EF Disk Start            0000 (0)\n-206F1 Int File Attributes   0000 (0)\n+208A8 Compression Method    0008 (8) 'Deflated'\n+208AA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+208AE CRC                   C7E5A422 (3353715746)\n+208B2 Compressed Size       000002B7 (695)\n+208B6 Uncompressed Size     0000055E (1374)\n+208BA Filename Length       0038 (56)\n+208BC Extra Length          0000 (0)\n+208BE Comment Length        0000 (0)\n+208C0 Disk Start            0000 (0)\n+208C2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-206F3 Ext File Attributes   81A40000 (2175008768)\n+208C4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-206F7 Local Header Offset   0000D869 (55401)\n-206FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+208C8 Local Header Offset   0000D911 (55569)\n+208CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x206FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x208CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20733 CENTRAL HEADER #82    02014B50 (33639248)\n-20737 Created Zip Spec      14 (20) '2.0'\n-20738 Created OS            03 (3) 'Unix'\n-20739 Extract Zip Spec      14 (20) '2.0'\n-2073A Extract OS            00 (0) 'MS-DOS'\n-2073B General Purpose Flag  0800 (2048)\n+20904 CENTRAL HEADER #82    02014B50 (33639248)\n+20908 Created Zip Spec      14 (20) '2.0'\n+20909 Created OS            03 (3) 'Unix'\n+2090A Extract Zip Spec      14 (20) '2.0'\n+2090B Extract OS            00 (0) 'MS-DOS'\n+2090C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2073D Compression Method    0008 (8) 'Deflated'\n-2073F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20743 CRC                   C4DD1C85 (3302825093)\n-20747 Compressed Size       000002D7 (727)\n-2074B Uncompressed Size     000005BA (1466)\n-2074F Filename Length       0032 (50)\n-20751 Extra Length          0000 (0)\n-20753 Comment Length        0000 (0)\n-20755 Disk Start            0000 (0)\n-20757 Int File Attributes   0000 (0)\n+2090E Compression Method    0008 (8) 'Deflated'\n+20910 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20914 CRC                   2C8707FF (747046911)\n+20918 Compressed Size       000002DF (735)\n+2091C Uncompressed Size     000005E2 (1506)\n+20920 Filename Length       0032 (50)\n+20922 Extra Length          0000 (0)\n+20924 Comment Length        0000 (0)\n+20926 Disk Start            0000 (0)\n+20928 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20759 Ext File Attributes   81A40000 (2175008768)\n+2092A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2075D Local Header Offset   0000DB70 (56176)\n-20761 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2092E Local Header Offset   0000DC1E (56350)\n+20932 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20761: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20932: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20793 CENTRAL HEADER #83    02014B50 (33639248)\n-20797 Created Zip Spec      14 (20) '2.0'\n-20798 Created OS            03 (3) 'Unix'\n-20799 Extract Zip Spec      14 (20) '2.0'\n-2079A Extract OS            00 (0) 'MS-DOS'\n-2079B General Purpose Flag  0800 (2048)\n+20964 CENTRAL HEADER #83    02014B50 (33639248)\n+20968 Created Zip Spec      14 (20) '2.0'\n+20969 Created OS            03 (3) 'Unix'\n+2096A Extract Zip Spec      14 (20) '2.0'\n+2096B Extract OS            00 (0) 'MS-DOS'\n+2096C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2079D Compression Method    0008 (8) 'Deflated'\n-2079F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-207A3 CRC                   21EA98CC (569022668)\n-207A7 Compressed Size       00000442 (1090)\n-207AB Uncompressed Size     00000B23 (2851)\n-207AF Filename Length       0036 (54)\n-207B1 Extra Length          0000 (0)\n-207B3 Comment Length        0000 (0)\n-207B5 Disk Start            0000 (0)\n-207B7 Int File Attributes   0000 (0)\n+2096E Compression Method    0008 (8) 'Deflated'\n+20970 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20974 CRC                   B5B9A154 (3048841556)\n+20978 Compressed Size       0000044E (1102)\n+2097C Uncompressed Size     00000B6F (2927)\n+20980 Filename Length       0036 (54)\n+20982 Extra Length          0000 (0)\n+20984 Comment Length        0000 (0)\n+20986 Disk Start            0000 (0)\n+20988 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-207B9 Ext File Attributes   81A40000 (2175008768)\n+2098A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-207BD Local Header Offset   0000DE97 (56983)\n-207C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2098E Local Header Offset   0000DF4D (57165)\n+20992 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x207C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20992: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-207F7 CENTRAL HEADER #84    02014B50 (33639248)\n-207FB Created Zip Spec      14 (20) '2.0'\n-207FC Created OS            03 (3) 'Unix'\n-207FD Extract Zip Spec      14 (20) '2.0'\n-207FE Extract OS            00 (0) 'MS-DOS'\n-207FF General Purpose Flag  0800 (2048)\n+209C8 CENTRAL HEADER #84    02014B50 (33639248)\n+209CC Created Zip Spec      14 (20) '2.0'\n+209CD Created OS            03 (3) 'Unix'\n+209CE Extract Zip Spec      14 (20) '2.0'\n+209CF Extract OS            00 (0) 'MS-DOS'\n+209D0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20801 Compression Method    0008 (8) 'Deflated'\n-20803 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20807 CRC                   96DC7168 (2531029352)\n-2080B Compressed Size       000002CF (719)\n-2080F Uncompressed Size     000005A5 (1445)\n-20813 Filename Length       0032 (50)\n-20815 Extra Length          0000 (0)\n-20817 Comment Length        0000 (0)\n-20819 Disk Start            0000 (0)\n-2081B Int File Attributes   0000 (0)\n+209D2 Compression Method    0008 (8) 'Deflated'\n+209D4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+209D8 CRC                   B82C3560 (3089904992)\n+209DC Compressed Size       000002D6 (726)\n+209E0 Uncompressed Size     000005CC (1484)\n+209E4 Filename Length       0032 (50)\n+209E6 Extra Length          0000 (0)\n+209E8 Comment Length        0000 (0)\n+209EA Disk Start            0000 (0)\n+209EC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2081D Ext File Attributes   81A40000 (2175008768)\n+209EE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20821 Local Header Offset   0000E32D (58157)\n-20825 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+209F2 Local Header Offset   0000E3EF (58351)\n+209F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20825: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x209F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20857 CENTRAL HEADER #85    02014B50 (33639248)\n-2085B Created Zip Spec      14 (20) '2.0'\n-2085C Created OS            03 (3) 'Unix'\n-2085D Extract Zip Spec      14 (20) '2.0'\n-2085E Extract OS            00 (0) 'MS-DOS'\n-2085F General Purpose Flag  0800 (2048)\n+20A28 CENTRAL HEADER #85    02014B50 (33639248)\n+20A2C Created Zip Spec      14 (20) '2.0'\n+20A2D Created OS            03 (3) 'Unix'\n+20A2E Extract Zip Spec      14 (20) '2.0'\n+20A2F Extract OS            00 (0) 'MS-DOS'\n+20A30 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20861 Compression Method    0008 (8) 'Deflated'\n-20863 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20867 CRC                   F57D6E98 (4118638232)\n-2086B Compressed Size       000002DF (735)\n-2086F Uncompressed Size     0000066F (1647)\n-20873 Filename Length       0039 (57)\n-20875 Extra Length          0000 (0)\n-20877 Comment Length        0000 (0)\n-20879 Disk Start            0000 (0)\n-2087B Int File Attributes   0000 (0)\n+20A32 Compression Method    0008 (8) 'Deflated'\n+20A34 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20A38 CRC                   F57D6E98 (4118638232)\n+20A3C Compressed Size       000002DF (735)\n+20A40 Uncompressed Size     0000066F (1647)\n+20A44 Filename Length       0039 (57)\n+20A46 Extra Length          0000 (0)\n+20A48 Comment Length        0000 (0)\n+20A4A Disk Start            0000 (0)\n+20A4C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2087D Ext File Attributes   81A40000 (2175008768)\n+20A4E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20881 Local Header Offset   0000E64C (58956)\n-20885 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20A52 Local Header Offset   0000E715 (59157)\n+20A56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20885: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20A56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-208BE CENTRAL HEADER #86    02014B50 (33639248)\n-208C2 Created Zip Spec      14 (20) '2.0'\n-208C3 Created OS            03 (3) 'Unix'\n-208C4 Extract Zip Spec      14 (20) '2.0'\n-208C5 Extract OS            00 (0) 'MS-DOS'\n-208C6 General Purpose Flag  0800 (2048)\n+20A8F CENTRAL HEADER #86    02014B50 (33639248)\n+20A93 Created Zip Spec      14 (20) '2.0'\n+20A94 Created OS            03 (3) 'Unix'\n+20A95 Extract Zip Spec      14 (20) '2.0'\n+20A96 Extract OS            00 (0) 'MS-DOS'\n+20A97 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-208C8 Compression Method    0008 (8) 'Deflated'\n-208CA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-208CE CRC                   CD8D1CAF (3448577199)\n-208D2 Compressed Size       00000325 (805)\n-208D6 Uncompressed Size     000007EC (2028)\n-208DA Filename Length       0037 (55)\n-208DC Extra Length          0000 (0)\n-208DE Comment Length        0000 (0)\n-208E0 Disk Start            0000 (0)\n-208E2 Int File Attributes   0000 (0)\n+20A99 Compression Method    0008 (8) 'Deflated'\n+20A9B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20A9F CRC                   C962C74B (3378693963)\n+20AA3 Compressed Size       0000032F (815)\n+20AA7 Uncompressed Size     00000833 (2099)\n+20AAB Filename Length       0037 (55)\n+20AAD Extra Length          0000 (0)\n+20AAF Comment Length        0000 (0)\n+20AB1 Disk Start            0000 (0)\n+20AB3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-208E4 Ext File Attributes   81A40000 (2175008768)\n+20AB5 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-208E8 Local Header Offset   0000E982 (59778)\n-208EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20AB9 Local Header Offset   0000EA4B (59979)\n+20ABD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x208EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20ABD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20923 CENTRAL HEADER #87    02014B50 (33639248)\n-20927 Created Zip Spec      14 (20) '2.0'\n-20928 Created OS            03 (3) 'Unix'\n-20929 Extract Zip Spec      14 (20) '2.0'\n-2092A Extract OS            00 (0) 'MS-DOS'\n-2092B General Purpose Flag  0800 (2048)\n+20AF4 CENTRAL HEADER #87    02014B50 (33639248)\n+20AF8 Created Zip Spec      14 (20) '2.0'\n+20AF9 Created OS            03 (3) 'Unix'\n+20AFA Extract Zip Spec      14 (20) '2.0'\n+20AFB Extract OS            00 (0) 'MS-DOS'\n+20AFC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2092D Compression Method    0008 (8) 'Deflated'\n-2092F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20933 CRC                   7A4C73B7 (2051830711)\n-20937 Compressed Size       00000367 (871)\n-2093B Uncompressed Size     00000A32 (2610)\n-2093F Filename Length       003B (59)\n-20941 Extra Length          0000 (0)\n-20943 Comment Length        0000 (0)\n-20945 Disk Start            0000 (0)\n-20947 Int File Attributes   0000 (0)\n+20AFE Compression Method    0008 (8) 'Deflated'\n+20B00 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20B04 CRC                   7A4C73B7 (2051830711)\n+20B08 Compressed Size       00000367 (871)\n+20B0C Uncompressed Size     00000A32 (2610)\n+20B10 Filename Length       003B (59)\n+20B12 Extra Length          0000 (0)\n+20B14 Comment Length        0000 (0)\n+20B16 Disk Start            0000 (0)\n+20B18 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20949 Ext File Attributes   81A40000 (2175008768)\n+20B1A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2094D Local Header Offset   0000ECFC (60668)\n-20951 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20B1E Local Header Offset   0000EDCF (60879)\n+20B22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20951: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2098C CENTRAL HEADER #88    02014B50 (33639248)\n-20990 Created Zip Spec      14 (20) '2.0'\n-20991 Created OS            03 (3) 'Unix'\n-20992 Extract Zip Spec      14 (20) '2.0'\n-20993 Extract OS            00 (0) 'MS-DOS'\n-20994 General Purpose Flag  0800 (2048)\n+20B5D CENTRAL HEADER #88    02014B50 (33639248)\n+20B61 Created Zip Spec      14 (20) '2.0'\n+20B62 Created OS            03 (3) 'Unix'\n+20B63 Extract Zip Spec      14 (20) '2.0'\n+20B64 Extract OS            00 (0) 'MS-DOS'\n+20B65 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20996 Compression Method    0008 (8) 'Deflated'\n-20998 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2099C CRC                   BCF898DF (3170408671)\n-209A0 Compressed Size       00000C4A (3146)\n-209A4 Uncompressed Size     00003374 (13172)\n-209A8 Filename Length       0042 (66)\n-209AA Extra Length          0000 (0)\n-209AC Comment Length        0000 (0)\n-209AE Disk Start            0000 (0)\n-209B0 Int File Attributes   0000 (0)\n+20B67 Compression Method    0008 (8) 'Deflated'\n+20B69 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20B6D CRC                   BCF898DF (3170408671)\n+20B71 Compressed Size       00000C4A (3146)\n+20B75 Uncompressed Size     00003374 (13172)\n+20B79 Filename Length       0042 (66)\n+20B7B Extra Length          0000 (0)\n+20B7D Comment Length        0000 (0)\n+20B7F Disk Start            0000 (0)\n+20B81 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-209B2 Ext File Attributes   81A40000 (2175008768)\n+20B83 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-209B6 Local Header Offset   0000F0BC (61628)\n-209BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20B87 Local Header Offset   0000F18F (61839)\n+20B8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x209BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-209FC CENTRAL HEADER #89    02014B50 (33639248)\n-20A00 Created Zip Spec      14 (20) '2.0'\n-20A01 Created OS            03 (3) 'Unix'\n-20A02 Extract Zip Spec      14 (20) '2.0'\n-20A03 Extract OS            00 (0) 'MS-DOS'\n-20A04 General Purpose Flag  0800 (2048)\n+20BCD CENTRAL HEADER #89    02014B50 (33639248)\n+20BD1 Created Zip Spec      14 (20) '2.0'\n+20BD2 Created OS            03 (3) 'Unix'\n+20BD3 Extract Zip Spec      14 (20) '2.0'\n+20BD4 Extract OS            00 (0) 'MS-DOS'\n+20BD5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20A06 Compression Method    0008 (8) 'Deflated'\n-20A08 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20A0C CRC                   E35903B0 (3814261680)\n-20A10 Compressed Size       0000029B (667)\n-20A14 Uncompressed Size     00000540 (1344)\n-20A18 Filename Length       0049 (73)\n-20A1A Extra Length          0000 (0)\n-20A1C Comment Length        0000 (0)\n-20A1E Disk Start            0000 (0)\n-20A20 Int File Attributes   0000 (0)\n+20BD7 Compression Method    0008 (8) 'Deflated'\n+20BD9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20BDD CRC                   E35903B0 (3814261680)\n+20BE1 Compressed Size       0000029B (667)\n+20BE5 Uncompressed Size     00000540 (1344)\n+20BE9 Filename Length       0049 (73)\n+20BEB Extra Length          0000 (0)\n+20BED Comment Length        0000 (0)\n+20BEF Disk Start            0000 (0)\n+20BF1 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20A22 Ext File Attributes   81A40000 (2175008768)\n+20BF3 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20A26 Local Header Offset   0000FD66 (64870)\n-20A2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20BF7 Local Header Offset   0000FE39 (65081)\n+20BFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20A2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20BFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20A73 CENTRAL HEADER #90    02014B50 (33639248)\n-20A77 Created Zip Spec      14 (20) '2.0'\n-20A78 Created OS            03 (3) 'Unix'\n-20A79 Extract Zip Spec      14 (20) '2.0'\n-20A7A Extract OS            00 (0) 'MS-DOS'\n-20A7B General Purpose Flag  0800 (2048)\n+20C44 CENTRAL HEADER #90    02014B50 (33639248)\n+20C48 Created Zip Spec      14 (20) '2.0'\n+20C49 Created OS            03 (3) 'Unix'\n+20C4A Extract Zip Spec      14 (20) '2.0'\n+20C4B Extract OS            00 (0) 'MS-DOS'\n+20C4C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20A7D Compression Method    0008 (8) 'Deflated'\n-20A7F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20A83 CRC                   76BEB07B (1992208507)\n-20A87 Compressed Size       000002E5 (741)\n-20A8B Uncompressed Size     0000058B (1419)\n-20A8F Filename Length       0043 (67)\n-20A91 Extra Length          0000 (0)\n-20A93 Comment Length        0000 (0)\n-20A95 Disk Start            0000 (0)\n-20A97 Int File Attributes   0000 (0)\n+20C4E Compression Method    0008 (8) 'Deflated'\n+20C50 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20C54 CRC                   9ADBEDAC (2598104492)\n+20C58 Compressed Size       000002ED (749)\n+20C5C Uncompressed Size     000005AF (1455)\n+20C60 Filename Length       0043 (67)\n+20C62 Extra Length          0000 (0)\n+20C64 Comment Length        0000 (0)\n+20C66 Disk Start            0000 (0)\n+20C68 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20A99 Ext File Attributes   81A40000 (2175008768)\n+20C6A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20A9D Local Header Offset   00010068 (65640)\n-20AA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20C6E Local Header Offset   0001013B (65851)\n+20C72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20AA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20C72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20AE4 CENTRAL HEADER #91    02014B50 (33639248)\n-20AE8 Created Zip Spec      14 (20) '2.0'\n-20AE9 Created OS            03 (3) 'Unix'\n-20AEA Extract Zip Spec      14 (20) '2.0'\n-20AEB Extract OS            00 (0) 'MS-DOS'\n-20AEC General Purpose Flag  0800 (2048)\n+20CB5 CENTRAL HEADER #91    02014B50 (33639248)\n+20CB9 Created Zip Spec      14 (20) '2.0'\n+20CBA Created OS            03 (3) 'Unix'\n+20CBB Extract Zip Spec      14 (20) '2.0'\n+20CBC Extract OS            00 (0) 'MS-DOS'\n+20CBD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20AEE Compression Method    0008 (8) 'Deflated'\n-20AF0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20AF4 CRC                   AFF80853 (2952267859)\n-20AF8 Compressed Size       000002EF (751)\n-20AFC Uncompressed Size     00000657 (1623)\n-20B00 Filename Length       004A (74)\n-20B02 Extra Length          0000 (0)\n-20B04 Comment Length        0000 (0)\n-20B06 Disk Start            0000 (0)\n-20B08 Int File Attributes   0000 (0)\n+20CBF Compression Method    0008 (8) 'Deflated'\n+20CC1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20CC5 CRC                   0E6EFC60 (242154592)\n+20CC9 Compressed Size       000002F7 (759)\n+20CCD Uncompressed Size     00000688 (1672)\n+20CD1 Filename Length       004A (74)\n+20CD3 Extra Length          0000 (0)\n+20CD5 Comment Length        0000 (0)\n+20CD7 Disk Start            0000 (0)\n+20CD9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20B0A Ext File Attributes   81A40000 (2175008768)\n+20CDB Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20B0E Local Header Offset   000103AE (66478)\n-20B12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20CDF Local Header Offset   00010489 (66697)\n+20CE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20B12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20CE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20B5C CENTRAL HEADER #92    02014B50 (33639248)\n-20B60 Created Zip Spec      14 (20) '2.0'\n-20B61 Created OS            03 (3) 'Unix'\n-20B62 Extract Zip Spec      14 (20) '2.0'\n-20B63 Extract OS            00 (0) 'MS-DOS'\n-20B64 General Purpose Flag  0800 (2048)\n+20D2D CENTRAL HEADER #92    02014B50 (33639248)\n+20D31 Created Zip Spec      14 (20) '2.0'\n+20D32 Created OS            03 (3) 'Unix'\n+20D33 Extract Zip Spec      14 (20) '2.0'\n+20D34 Extract OS            00 (0) 'MS-DOS'\n+20D35 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20B66 Compression Method    0008 (8) 'Deflated'\n-20B68 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20B6C CRC                   64878DEF (1686605295)\n-20B70 Compressed Size       00000677 (1655)\n-20B74 Uncompressed Size     0000141B (5147)\n-20B78 Filename Length       004A (74)\n-20B7A Extra Length          0000 (0)\n-20B7C Comment Length        0000 (0)\n-20B7E Disk Start            0000 (0)\n-20B80 Int File Attributes   0000 (0)\n+20D37 Compression Method    0008 (8) 'Deflated'\n+20D39 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20D3D CRC                   44A1E13F (1151459647)\n+20D41 Compressed Size       00000685 (1669)\n+20D45 Uncompressed Size     0000149A (5274)\n+20D49 Filename Length       004A (74)\n+20D4B Extra Length          0000 (0)\n+20D4D Comment Length        0000 (0)\n+20D4F Disk Start            0000 (0)\n+20D51 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20B82 Ext File Attributes   81A40000 (2175008768)\n+20D53 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20B86 Local Header Offset   00010705 (67333)\n-20B8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20D57 Local Header Offset   000107E8 (67560)\n+20D5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20B8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20D5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20BD4 CENTRAL HEADER #93    02014B50 (33639248)\n-20BD8 Created Zip Spec      14 (20) '2.0'\n-20BD9 Created OS            03 (3) 'Unix'\n-20BDA Extract Zip Spec      14 (20) '2.0'\n-20BDB Extract OS            00 (0) 'MS-DOS'\n-20BDC General Purpose Flag  0800 (2048)\n+20DA5 CENTRAL HEADER #93    02014B50 (33639248)\n+20DA9 Created Zip Spec      14 (20) '2.0'\n+20DAA Created OS            03 (3) 'Unix'\n+20DAB Extract Zip Spec      14 (20) '2.0'\n+20DAC Extract OS            00 (0) 'MS-DOS'\n+20DAD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20BDE Compression Method    0008 (8) 'Deflated'\n-20BE0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20BE4 CRC                   B919F4D5 (3105486037)\n-20BE8 Compressed Size       000002EA (746)\n-20BEC Uncompressed Size     000005A5 (1445)\n-20BF0 Filename Length       0047 (71)\n-20BF2 Extra Length          0000 (0)\n-20BF4 Comment Length        0000 (0)\n-20BF6 Disk Start            0000 (0)\n-20BF8 Int File Attributes   0000 (0)\n+20DAF Compression Method    0008 (8) 'Deflated'\n+20DB1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20DB5 CRC                   F0BD77BE (4038948798)\n+20DB9 Compressed Size       000002F5 (757)\n+20DBD Uncompressed Size     000005C9 (1481)\n+20DC1 Filename Length       0047 (71)\n+20DC3 Extra Length          0000 (0)\n+20DC5 Comment Length        0000 (0)\n+20DC7 Disk Start            0000 (0)\n+20DC9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20BFA Ext File Attributes   81A40000 (2175008768)\n+20DCB Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20BFE Local Header Offset   00010DE4 (69092)\n-20C02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20DCF Local Header Offset   00010ED5 (69333)\n+20DD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20C02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20DD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20C49 CENTRAL HEADER #94    02014B50 (33639248)\n-20C4D Created Zip Spec      14 (20) '2.0'\n-20C4E Created OS            03 (3) 'Unix'\n-20C4F Extract Zip Spec      14 (20) '2.0'\n-20C50 Extract OS            00 (0) 'MS-DOS'\n-20C51 General Purpose Flag  0800 (2048)\n+20E1A CENTRAL HEADER #94    02014B50 (33639248)\n+20E1E Created Zip Spec      14 (20) '2.0'\n+20E1F Created OS            03 (3) 'Unix'\n+20E20 Extract Zip Spec      14 (20) '2.0'\n+20E21 Extract OS            00 (0) 'MS-DOS'\n+20E22 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20C53 Compression Method    0008 (8) 'Deflated'\n-20C55 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20C59 CRC                   06325F9E (103964574)\n-20C5D Compressed Size       000002A9 (681)\n-20C61 Uncompressed Size     00000541 (1345)\n-20C65 Filename Length       004E (78)\n-20C67 Extra Length          0000 (0)\n-20C69 Comment Length        0000 (0)\n-20C6B Disk Start            0000 (0)\n-20C6D Int File Attributes   0000 (0)\n+20E24 Compression Method    0008 (8) 'Deflated'\n+20E26 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20E2A CRC                   6CA6E955 (1822878037)\n+20E2E Compressed Size       000002B3 (691)\n+20E32 Uncompressed Size     00000566 (1382)\n+20E36 Filename Length       004E (78)\n+20E38 Extra Length          0000 (0)\n+20E3A Comment Length        0000 (0)\n+20E3C Disk Start            0000 (0)\n+20E3E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20C6F Ext File Attributes   81A40000 (2175008768)\n+20E40 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20C73 Local Header Offset   00011133 (69939)\n-20C77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20E44 Local Header Offset   0001122F (70191)\n+20E48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20C77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20E48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20CC5 CENTRAL HEADER #95    02014B50 (33639248)\n-20CC9 Created Zip Spec      14 (20) '2.0'\n-20CCA Created OS            03 (3) 'Unix'\n-20CCB Extract Zip Spec      14 (20) '2.0'\n-20CCC Extract OS            00 (0) 'MS-DOS'\n-20CCD General Purpose Flag  0800 (2048)\n+20E96 CENTRAL HEADER #95    02014B50 (33639248)\n+20E9A Created Zip Spec      14 (20) '2.0'\n+20E9B Created OS            03 (3) 'Unix'\n+20E9C Extract Zip Spec      14 (20) '2.0'\n+20E9D Extract OS            00 (0) 'MS-DOS'\n+20E9E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20CCF Compression Method    0008 (8) 'Deflated'\n-20CD1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20CD5 CRC                   1C57CB8B (475515787)\n-20CD9 Compressed Size       00000287 (647)\n-20CDD Uncompressed Size     00000532 (1330)\n-20CE1 Filename Length       0053 (83)\n-20CE3 Extra Length          0000 (0)\n-20CE5 Comment Length        0000 (0)\n-20CE7 Disk Start            0000 (0)\n-20CE9 Int File Attributes   0000 (0)\n+20EA0 Compression Method    0008 (8) 'Deflated'\n+20EA2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20EA6 CRC                   1C57CB8B (475515787)\n+20EAA Compressed Size       00000287 (647)\n+20EAE Uncompressed Size     00000532 (1330)\n+20EB2 Filename Length       0053 (83)\n+20EB4 Extra Length          0000 (0)\n+20EB6 Comment Length        0000 (0)\n+20EB8 Disk Start            0000 (0)\n+20EBA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20CEB Ext File Attributes   81A40000 (2175008768)\n+20EBC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20CEF Local Header Offset   00011448 (70728)\n-20CF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20EC0 Local Header Offset   0001154E (70990)\n+20EC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20CF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20EC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20D46 CENTRAL HEADER #96    02014B50 (33639248)\n-20D4A Created Zip Spec      14 (20) '2.0'\n-20D4B Created OS            03 (3) 'Unix'\n-20D4C Extract Zip Spec      14 (20) '2.0'\n-20D4D Extract OS            00 (0) 'MS-DOS'\n-20D4E General Purpose Flag  0800 (2048)\n+20F17 CENTRAL HEADER #96    02014B50 (33639248)\n+20F1B Created Zip Spec      14 (20) '2.0'\n+20F1C Created OS            03 (3) 'Unix'\n+20F1D Extract Zip Spec      14 (20) '2.0'\n+20F1E Extract OS            00 (0) 'MS-DOS'\n+20F1F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20D50 Compression Method    0008 (8) 'Deflated'\n-20D52 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20D56 CRC                   9B53D29B (2605961883)\n-20D5A Compressed Size       0000035C (860)\n-20D5E Uncompressed Size     000006D4 (1748)\n-20D62 Filename Length       0053 (83)\n-20D64 Extra Length          0000 (0)\n-20D66 Comment Length        0000 (0)\n-20D68 Disk Start            0000 (0)\n-20D6A Int File Attributes   0000 (0)\n+20F21 Compression Method    0008 (8) 'Deflated'\n+20F23 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20F27 CRC                   CDABD9DC (3450591708)\n+20F2B Compressed Size       00000363 (867)\n+20F2F Uncompressed Size     0000070B (1803)\n+20F33 Filename Length       0053 (83)\n+20F35 Extra Length          0000 (0)\n+20F37 Comment Length        0000 (0)\n+20F39 Disk Start            0000 (0)\n+20F3B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20D6C Ext File Attributes   81A40000 (2175008768)\n+20F3D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20D70 Local Header Offset   00011740 (71488)\n-20D74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20F41 Local Header Offset   00011846 (71750)\n+20F45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20D74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20DC7 CENTRAL HEADER #97    02014B50 (33639248)\n-20DCB Created Zip Spec      14 (20) '2.0'\n-20DCC Created OS            03 (3) 'Unix'\n-20DCD Extract Zip Spec      14 (20) '2.0'\n-20DCE Extract OS            00 (0) 'MS-DOS'\n-20DCF General Purpose Flag  0800 (2048)\n+20F98 CENTRAL HEADER #97    02014B50 (33639248)\n+20F9C Created Zip Spec      14 (20) '2.0'\n+20F9D Created OS            03 (3) 'Unix'\n+20F9E Extract Zip Spec      14 (20) '2.0'\n+20F9F Extract OS            00 (0) 'MS-DOS'\n+20FA0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20DD1 Compression Method    0008 (8) 'Deflated'\n-20DD3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20DD7 CRC                   F601821B (4127293979)\n-20DDB Compressed Size       000004C7 (1223)\n-20DDF Uncompressed Size     00000C34 (3124)\n-20DE3 Filename Length       003F (63)\n-20DE5 Extra Length          0000 (0)\n-20DE7 Comment Length        0000 (0)\n-20DE9 Disk Start            0000 (0)\n-20DEB Int File Attributes   0000 (0)\n+20FA2 Compression Method    0008 (8) 'Deflated'\n+20FA4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20FA8 CRC                   EF9BEB14 (4019972884)\n+20FAC Compressed Size       000004D2 (1234)\n+20FB0 Uncompressed Size     00000C80 (3200)\n+20FB4 Filename Length       003F (63)\n+20FB6 Extra Length          0000 (0)\n+20FB8 Comment Length        0000 (0)\n+20FBA Disk Start            0000 (0)\n+20FBC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20DED Ext File Attributes   81A40000 (2175008768)\n+20FBE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20DF1 Local Header Offset   00011B0D (72461)\n-20DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20FC2 Local Header Offset   00011C1A (72730)\n+20FC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20FC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20E34 CENTRAL HEADER #98    02014B50 (33639248)\n-20E38 Created Zip Spec      14 (20) '2.0'\n-20E39 Created OS            03 (3) 'Unix'\n-20E3A Extract Zip Spec      14 (20) '2.0'\n-20E3B Extract OS            00 (0) 'MS-DOS'\n-20E3C General Purpose Flag  0800 (2048)\n+21005 CENTRAL HEADER #98    02014B50 (33639248)\n+21009 Created Zip Spec      14 (20) '2.0'\n+2100A Created OS            03 (3) 'Unix'\n+2100B Extract Zip Spec      14 (20) '2.0'\n+2100C Extract OS            00 (0) 'MS-DOS'\n+2100D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20E3E Compression Method    0008 (8) 'Deflated'\n-20E40 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20E44 CRC                   9E4A1FA8 (2655657896)\n-20E48 Compressed Size       000004FD (1277)\n-20E4C Uncompressed Size     00000F53 (3923)\n-20E50 Filename Length       0042 (66)\n-20E52 Extra Length          0000 (0)\n-20E54 Comment Length        0000 (0)\n-20E56 Disk Start            0000 (0)\n-20E58 Int File Attributes   0000 (0)\n+2100F Compression Method    0008 (8) 'Deflated'\n+21011 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21015 CRC                   720B0082 (1913323650)\n+21019 Compressed Size       00000508 (1288)\n+2101D Uncompressed Size     00000FBA (4026)\n+21021 Filename Length       0042 (66)\n+21023 Extra Length          0000 (0)\n+21025 Comment Length        0000 (0)\n+21027 Disk Start            0000 (0)\n+21029 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20E5A Ext File Attributes   81A40000 (2175008768)\n+2102B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20E5E Local Header Offset   00012031 (73777)\n-20E62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2102F Local Header Offset   00012149 (74057)\n+21033 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20E62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21033: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20EA4 CENTRAL HEADER #99    02014B50 (33639248)\n-20EA8 Created Zip Spec      14 (20) '2.0'\n-20EA9 Created OS            03 (3) 'Unix'\n-20EAA Extract Zip Spec      14 (20) '2.0'\n-20EAB Extract OS            00 (0) 'MS-DOS'\n-20EAC General Purpose Flag  0800 (2048)\n+21075 CENTRAL HEADER #99    02014B50 (33639248)\n+21079 Created Zip Spec      14 (20) '2.0'\n+2107A Created OS            03 (3) 'Unix'\n+2107B Extract Zip Spec      14 (20) '2.0'\n+2107C Extract OS            00 (0) 'MS-DOS'\n+2107D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20EAE Compression Method    0008 (8) 'Deflated'\n-20EB0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20EB4 CRC                   0EB84276 (246956662)\n-20EB8 Compressed Size       00000292 (658)\n-20EBC Uncompressed Size     00000517 (1303)\n-20EC0 Filename Length       003F (63)\n-20EC2 Extra Length          0000 (0)\n-20EC4 Comment Length        0000 (0)\n-20EC6 Disk Start            0000 (0)\n-20EC8 Int File Attributes   0000 (0)\n+2107F Compression Method    0008 (8) 'Deflated'\n+21081 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21085 CRC                   0EB84276 (246956662)\n+21089 Compressed Size       00000292 (658)\n+2108D Uncompressed Size     00000517 (1303)\n+21091 Filename Length       003F (63)\n+21093 Extra Length          0000 (0)\n+21095 Comment Length        0000 (0)\n+21097 Disk Start            0000 (0)\n+21099 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20ECA Ext File Attributes   81A40000 (2175008768)\n+2109B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20ECE Local Header Offset   0001258E (75150)\n-20ED2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2109F Local Header Offset   000126B1 (75441)\n+210A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20ED2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x210A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20F11 CENTRAL HEADER #100   02014B50 (33639248)\n-20F15 Created Zip Spec      14 (20) '2.0'\n-20F16 Created OS            03 (3) 'Unix'\n-20F17 Extract Zip Spec      14 (20) '2.0'\n-20F18 Extract OS            00 (0) 'MS-DOS'\n-20F19 General Purpose Flag  0800 (2048)\n+210E2 CENTRAL HEADER #100   02014B50 (33639248)\n+210E6 Created Zip Spec      14 (20) '2.0'\n+210E7 Created OS            03 (3) 'Unix'\n+210E8 Extract Zip Spec      14 (20) '2.0'\n+210E9 Extract OS            00 (0) 'MS-DOS'\n+210EA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20F1B Compression Method    0008 (8) 'Deflated'\n-20F1D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20F21 CRC                   64ACCB0D (1689045773)\n-20F25 Compressed Size       00000854 (2132)\n-20F29 Uncompressed Size     00001B32 (6962)\n-20F2D Filename Length       003C (60)\n-20F2F Extra Length          0000 (0)\n-20F31 Comment Length        0000 (0)\n-20F33 Disk Start            0000 (0)\n-20F35 Int File Attributes   0000 (0)\n+210EC Compression Method    0008 (8) 'Deflated'\n+210EE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+210F2 CRC                   64ACCB0D (1689045773)\n+210F6 Compressed Size       00000854 (2132)\n+210FA Uncompressed Size     00001B32 (6962)\n+210FE Filename Length       003C (60)\n+21100 Extra Length          0000 (0)\n+21102 Comment Length        0000 (0)\n+21104 Disk Start            0000 (0)\n+21106 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20F37 Ext File Attributes   81A40000 (2175008768)\n+21108 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20F3B Local Header Offset   0001287D (75901)\n-20F3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2110C Local Header Offset   000129A0 (76192)\n+21110 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20F3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21110: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20F7B CENTRAL HEADER #101   02014B50 (33639248)\n-20F7F Created Zip Spec      14 (20) '2.0'\n-20F80 Created OS            03 (3) 'Unix'\n-20F81 Extract Zip Spec      14 (20) '2.0'\n-20F82 Extract OS            00 (0) 'MS-DOS'\n-20F83 General Purpose Flag  0800 (2048)\n+2114C CENTRAL HEADER #101   02014B50 (33639248)\n+21150 Created Zip Spec      14 (20) '2.0'\n+21151 Created OS            03 (3) 'Unix'\n+21152 Extract Zip Spec      14 (20) '2.0'\n+21153 Extract OS            00 (0) 'MS-DOS'\n+21154 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20F85 Compression Method    0008 (8) 'Deflated'\n-20F87 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20F8B CRC                   72CD5ED3 (1926061779)\n-20F8F Compressed Size       00000326 (806)\n-20F93 Uncompressed Size     0000069B (1691)\n-20F97 Filename Length       0043 (67)\n-20F99 Extra Length          0000 (0)\n-20F9B Comment Length        0000 (0)\n-20F9D Disk Start            0000 (0)\n-20F9F Int File Attributes   0000 (0)\n+21156 Compression Method    0008 (8) 'Deflated'\n+21158 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2115C CRC                   72CD5ED3 (1926061779)\n+21160 Compressed Size       00000326 (806)\n+21164 Uncompressed Size     0000069B (1691)\n+21168 Filename Length       0043 (67)\n+2116A Extra Length          0000 (0)\n+2116C Comment Length        0000 (0)\n+2116E Disk Start            0000 (0)\n+21170 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20FA1 Ext File Attributes   81A40000 (2175008768)\n+21172 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-20FA5 Local Header Offset   0001312B (78123)\n-20FA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21176 Local Header Offset   0001324E (78414)\n+2117A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20FA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2117A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-20FEC CENTRAL HEADER #102   02014B50 (33639248)\n-20FF0 Created Zip Spec      14 (20) '2.0'\n-20FF1 Created OS            03 (3) 'Unix'\n-20FF2 Extract Zip Spec      14 (20) '2.0'\n-20FF3 Extract OS            00 (0) 'MS-DOS'\n-20FF4 General Purpose Flag  0800 (2048)\n+211BD CENTRAL HEADER #102   02014B50 (33639248)\n+211C1 Created Zip Spec      14 (20) '2.0'\n+211C2 Created OS            03 (3) 'Unix'\n+211C3 Extract Zip Spec      14 (20) '2.0'\n+211C4 Extract OS            00 (0) 'MS-DOS'\n+211C5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20FF6 Compression Method    0008 (8) 'Deflated'\n-20FF8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20FFC CRC                   4CF04636 (1290815030)\n-21000 Compressed Size       00000C34 (3124)\n-21004 Uncompressed Size     00002D78 (11640)\n-21008 Filename Length       0036 (54)\n-2100A Extra Length          0000 (0)\n-2100C Comment Length        0000 (0)\n-2100E Disk Start            0000 (0)\n-21010 Int File Attributes   0000 (0)\n+211C7 Compression Method    0008 (8) 'Deflated'\n+211C9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+211CD CRC                   20710777 (544278391)\n+211D1 Compressed Size       00000C40 (3136)\n+211D5 Uncompressed Size     00002E80 (11904)\n+211D9 Filename Length       0036 (54)\n+211DB Extra Length          0000 (0)\n+211DD Comment Length        0000 (0)\n+211DF Disk Start            0000 (0)\n+211E1 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21012 Ext File Attributes   81A40000 (2175008768)\n+211E3 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21016 Local Header Offset   000134B2 (79026)\n-2101A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+211E7 Local Header Offset   000135D5 (79317)\n+211EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2101A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x211EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21050 CENTRAL HEADER #103   02014B50 (33639248)\n-21054 Created Zip Spec      14 (20) '2.0'\n-21055 Created OS            03 (3) 'Unix'\n-21056 Extract Zip Spec      14 (20) '2.0'\n-21057 Extract OS            00 (0) 'MS-DOS'\n-21058 General Purpose Flag  0800 (2048)\n+21221 CENTRAL HEADER #103   02014B50 (33639248)\n+21225 Created Zip Spec      14 (20) '2.0'\n+21226 Created OS            03 (3) 'Unix'\n+21227 Extract Zip Spec      14 (20) '2.0'\n+21228 Extract OS            00 (0) 'MS-DOS'\n+21229 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2105A Compression Method    0008 (8) 'Deflated'\n-2105C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21060 CRC                   FC35A4FC (4231374076)\n-21064 Compressed Size       0000029B (667)\n-21068 Uncompressed Size     0000051D (1309)\n-2106C Filename Length       003D (61)\n-2106E Extra Length          0000 (0)\n-21070 Comment Length        0000 (0)\n-21072 Disk Start            0000 (0)\n-21074 Int File Attributes   0000 (0)\n+2122B Compression Method    0008 (8) 'Deflated'\n+2122D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21231 CRC                   1A0DB37D (437105533)\n+21235 Compressed Size       000002A5 (677)\n+21239 Uncompressed Size     00000541 (1345)\n+2123D Filename Length       003D (61)\n+2123F Extra Length          0000 (0)\n+21241 Comment Length        0000 (0)\n+21243 Disk Start            0000 (0)\n+21245 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21076 Ext File Attributes   81A40000 (2175008768)\n+21247 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2107A Local Header Offset   0001413A (82234)\n-2107E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2124B Local Header Offset   00014269 (82537)\n+2124F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2107E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2124F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-210BB CENTRAL HEADER #104   02014B50 (33639248)\n-210BF Created Zip Spec      14 (20) '2.0'\n-210C0 Created OS            03 (3) 'Unix'\n-210C1 Extract Zip Spec      14 (20) '2.0'\n-210C2 Extract OS            00 (0) 'MS-DOS'\n-210C3 General Purpose Flag  0800 (2048)\n+2128C CENTRAL HEADER #104   02014B50 (33639248)\n+21290 Created Zip Spec      14 (20) '2.0'\n+21291 Created OS            03 (3) 'Unix'\n+21292 Extract Zip Spec      14 (20) '2.0'\n+21293 Extract OS            00 (0) 'MS-DOS'\n+21294 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-210C5 Compression Method    0008 (8) 'Deflated'\n-210C7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-210CB CRC                   20217A79 (539064953)\n-210CF Compressed Size       0000027E (638)\n-210D3 Uncompressed Size     00000528 (1320)\n-210D7 Filename Length       0036 (54)\n-210D9 Extra Length          0000 (0)\n-210DB Comment Length        0000 (0)\n-210DD Disk Start            0000 (0)\n-210DF Int File Attributes   0000 (0)\n+21296 Compression Method    0008 (8) 'Deflated'\n+21298 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2129C CRC                   20217A79 (539064953)\n+212A0 Compressed Size       0000027E (638)\n+212A4 Uncompressed Size     00000528 (1320)\n+212A8 Filename Length       0036 (54)\n+212AA Extra Length          0000 (0)\n+212AC Comment Length        0000 (0)\n+212AE Disk Start            0000 (0)\n+212B0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-210E1 Ext File Attributes   81A40000 (2175008768)\n+212B2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-210E5 Local Header Offset   00014430 (82992)\n-210E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+212B6 Local Header Offset   00014569 (83305)\n+212BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x210E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x212BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2111F CENTRAL HEADER #105   02014B50 (33639248)\n-21123 Created Zip Spec      14 (20) '2.0'\n-21124 Created OS            03 (3) 'Unix'\n-21125 Extract Zip Spec      14 (20) '2.0'\n-21126 Extract OS            00 (0) 'MS-DOS'\n-21127 General Purpose Flag  0800 (2048)\n+212F0 CENTRAL HEADER #105   02014B50 (33639248)\n+212F4 Created Zip Spec      14 (20) '2.0'\n+212F5 Created OS            03 (3) 'Unix'\n+212F6 Extract Zip Spec      14 (20) '2.0'\n+212F7 Extract OS            00 (0) 'MS-DOS'\n+212F8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21129 Compression Method    0008 (8) 'Deflated'\n-2112B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2112F CRC                   5D27A74D (1562879821)\n-21133 Compressed Size       00000426 (1062)\n-21137 Uncompressed Size     00000ADF (2783)\n-2113B Filename Length       0040 (64)\n-2113D Extra Length          0000 (0)\n-2113F Comment Length        0000 (0)\n-21141 Disk Start            0000 (0)\n-21143 Int File Attributes   0000 (0)\n+212FA Compression Method    0008 (8) 'Deflated'\n+212FC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21300 CRC                   EFB59934 (4021655860)\n+21304 Compressed Size       00000430 (1072)\n+21308 Uncompressed Size     00000B39 (2873)\n+2130C Filename Length       0040 (64)\n+2130E Extra Length          0000 (0)\n+21310 Comment Length        0000 (0)\n+21312 Disk Start            0000 (0)\n+21314 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21145 Ext File Attributes   81A40000 (2175008768)\n+21316 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21149 Local Header Offset   00014702 (83714)\n-2114D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2131A Local Header Offset   0001483B (84027)\n+2131E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2114D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2131E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2118D CENTRAL HEADER #106   02014B50 (33639248)\n-21191 Created Zip Spec      14 (20) '2.0'\n-21192 Created OS            03 (3) 'Unix'\n-21193 Extract Zip Spec      14 (20) '2.0'\n-21194 Extract OS            00 (0) 'MS-DOS'\n-21195 General Purpose Flag  0800 (2048)\n+2135E CENTRAL HEADER #106   02014B50 (33639248)\n+21362 Created Zip Spec      14 (20) '2.0'\n+21363 Created OS            03 (3) 'Unix'\n+21364 Extract Zip Spec      14 (20) '2.0'\n+21365 Extract OS            00 (0) 'MS-DOS'\n+21366 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21197 Compression Method    0008 (8) 'Deflated'\n-21199 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2119D CRC                   6DBA7C3B (1840938043)\n-211A1 Compressed Size       00000301 (769)\n-211A5 Uncompressed Size     00000611 (1553)\n-211A9 Filename Length       0040 (64)\n-211AB Extra Length          0000 (0)\n-211AD Comment Length        0000 (0)\n-211AF Disk Start            0000 (0)\n-211B1 Int File Attributes   0000 (0)\n+21368 Compression Method    0008 (8) 'Deflated'\n+2136A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2136E CRC                   B7F4FBDF (3086285791)\n+21372 Compressed Size       0000030A (778)\n+21376 Uncompressed Size     0000063D (1597)\n+2137A Filename Length       0040 (64)\n+2137C Extra Length          0000 (0)\n+2137E Comment Length        0000 (0)\n+21380 Disk Start            0000 (0)\n+21382 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-211B3 Ext File Attributes   81A40000 (2175008768)\n+21384 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-211B7 Local Header Offset   00014B86 (84870)\n-211BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21388 Local Header Offset   00014CC9 (85193)\n+2138C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x211BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2138C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-211FB CENTRAL HEADER #107   02014B50 (33639248)\n-211FF Created Zip Spec      14 (20) '2.0'\n-21200 Created OS            03 (3) 'Unix'\n-21201 Extract Zip Spec      14 (20) '2.0'\n-21202 Extract OS            00 (0) 'MS-DOS'\n-21203 General Purpose Flag  0800 (2048)\n+213CC CENTRAL HEADER #107   02014B50 (33639248)\n+213D0 Created Zip Spec      14 (20) '2.0'\n+213D1 Created OS            03 (3) 'Unix'\n+213D2 Extract Zip Spec      14 (20) '2.0'\n+213D3 Extract OS            00 (0) 'MS-DOS'\n+213D4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21205 Compression Method    0008 (8) 'Deflated'\n-21207 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2120B CRC                   92ECBDF0 (2464988656)\n-2120F Compressed Size       00000CD9 (3289)\n-21213 Uncompressed Size     00003237 (12855)\n-21217 Filename Length       0040 (64)\n-21219 Extra Length          0000 (0)\n-2121B Comment Length        0000 (0)\n-2121D Disk Start            0000 (0)\n-2121F Int File Attributes   0000 (0)\n+213D6 Compression Method    0008 (8) 'Deflated'\n+213D8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+213DC CRC                   11C1AD74 (297905524)\n+213E0 Compressed Size       00000CF0 (3312)\n+213E4 Uncompressed Size     00003376 (13174)\n+213E8 Filename Length       0040 (64)\n+213EA Extra Length          0000 (0)\n+213EC Comment Length        0000 (0)\n+213EE Disk Start            0000 (0)\n+213F0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21221 Ext File Attributes   81A40000 (2175008768)\n+213F2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21225 Local Header Offset   00014EE5 (85733)\n-21229 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+213F6 Local Header Offset   00015031 (86065)\n+213FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21229: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x213FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21269 CENTRAL HEADER #108   02014B50 (33639248)\n-2126D Created Zip Spec      14 (20) '2.0'\n-2126E Created OS            03 (3) 'Unix'\n-2126F Extract Zip Spec      14 (20) '2.0'\n-21270 Extract OS            00 (0) 'MS-DOS'\n-21271 General Purpose Flag  0800 (2048)\n+2143A CENTRAL HEADER #108   02014B50 (33639248)\n+2143E Created Zip Spec      14 (20) '2.0'\n+2143F Created OS            03 (3) 'Unix'\n+21440 Extract Zip Spec      14 (20) '2.0'\n+21441 Extract OS            00 (0) 'MS-DOS'\n+21442 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21273 Compression Method    0008 (8) 'Deflated'\n-21275 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21279 CRC                   8CA55593 (2359645587)\n-2127D Compressed Size       00000295 (661)\n-21281 Uncompressed Size     00000546 (1350)\n-21285 Filename Length       003A (58)\n-21287 Extra Length          0000 (0)\n-21289 Comment Length        0000 (0)\n-2128B Disk Start            0000 (0)\n-2128D Int File Attributes   0000 (0)\n+21444 Compression Method    0008 (8) 'Deflated'\n+21446 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2144A CRC                   8CA55593 (2359645587)\n+2144E Compressed Size       00000295 (661)\n+21452 Uncompressed Size     00000546 (1350)\n+21456 Filename Length       003A (58)\n+21458 Extra Length          0000 (0)\n+2145A Comment Length        0000 (0)\n+2145C Disk Start            0000 (0)\n+2145E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2128F Ext File Attributes   81A40000 (2175008768)\n+21460 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21293 Local Header Offset   00015C1C (89116)\n-21297 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21464 Local Header Offset   00015D7F (89471)\n+21468 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21297: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21468: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-212D1 CENTRAL HEADER #109   02014B50 (33639248)\n-212D5 Created Zip Spec      14 (20) '2.0'\n-212D6 Created OS            03 (3) 'Unix'\n-212D7 Extract Zip Spec      14 (20) '2.0'\n-212D8 Extract OS            00 (0) 'MS-DOS'\n-212D9 General Purpose Flag  0800 (2048)\n+214A2 CENTRAL HEADER #109   02014B50 (33639248)\n+214A6 Created Zip Spec      14 (20) '2.0'\n+214A7 Created OS            03 (3) 'Unix'\n+214A8 Extract Zip Spec      14 (20) '2.0'\n+214A9 Extract OS            00 (0) 'MS-DOS'\n+214AA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-212DB Compression Method    0008 (8) 'Deflated'\n-212DD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-212E1 CRC                   BDD5C58A (3184903562)\n-212E5 Compressed Size       00000301 (769)\n-212E9 Uncompressed Size     000006DC (1756)\n-212ED Filename Length       0041 (65)\n-212EF Extra Length          0000 (0)\n-212F1 Comment Length        0000 (0)\n-212F3 Disk Start            0000 (0)\n-212F5 Int File Attributes   0000 (0)\n+214AC Compression Method    0008 (8) 'Deflated'\n+214AE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+214B2 CRC                   BDD5C58A (3184903562)\n+214B6 Compressed Size       00000301 (769)\n+214BA Uncompressed Size     000006DC (1756)\n+214BE Filename Length       0041 (65)\n+214C0 Extra Length          0000 (0)\n+214C2 Comment Length        0000 (0)\n+214C4 Disk Start            0000 (0)\n+214C6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-212F7 Ext File Attributes   81A40000 (2175008768)\n+214C8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-212FB Local Header Offset   00015F09 (89865)\n-212FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+214CC Local Header Offset   0001606C (90220)\n+214D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x212FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x214D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21340 CENTRAL HEADER #110   02014B50 (33639248)\n-21344 Created Zip Spec      14 (20) '2.0'\n-21345 Created OS            03 (3) 'Unix'\n-21346 Extract Zip Spec      14 (20) '2.0'\n-21347 Extract OS            00 (0) 'MS-DOS'\n-21348 General Purpose Flag  0800 (2048)\n+21511 CENTRAL HEADER #110   02014B50 (33639248)\n+21515 Created Zip Spec      14 (20) '2.0'\n+21516 Created OS            03 (3) 'Unix'\n+21517 Extract Zip Spec      14 (20) '2.0'\n+21518 Extract OS            00 (0) 'MS-DOS'\n+21519 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2134A Compression Method    0008 (8) 'Deflated'\n-2134C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21350 CRC                   DBE638BA (3689298106)\n-21354 Compressed Size       00000287 (647)\n-21358 Uncompressed Size     00000518 (1304)\n-2135C Filename Length       003A (58)\n-2135E Extra Length          0000 (0)\n-21360 Comment Length        0000 (0)\n-21362 Disk Start            0000 (0)\n-21364 Int File Attributes   0000 (0)\n+2151B Compression Method    0008 (8) 'Deflated'\n+2151D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21521 CRC                   DBE638BA (3689298106)\n+21525 Compressed Size       00000287 (647)\n+21529 Uncompressed Size     00000518 (1304)\n+2152D Filename Length       003A (58)\n+2152F Extra Length          0000 (0)\n+21531 Comment Length        0000 (0)\n+21533 Disk Start            0000 (0)\n+21535 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21366 Ext File Attributes   81A40000 (2175008768)\n+21537 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2136A Local Header Offset   00016269 (90729)\n-2136E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2153B Local Header Offset   000163CC (91084)\n+2153F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2136E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2153F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-213A8 CENTRAL HEADER #111   02014B50 (33639248)\n-213AC Created Zip Spec      14 (20) '2.0'\n-213AD Created OS            03 (3) 'Unix'\n-213AE Extract Zip Spec      14 (20) '2.0'\n-213AF Extract OS            00 (0) 'MS-DOS'\n-213B0 General Purpose Flag  0800 (2048)\n+21579 CENTRAL HEADER #111   02014B50 (33639248)\n+2157D Created Zip Spec      14 (20) '2.0'\n+2157E Created OS            03 (3) 'Unix'\n+2157F Extract Zip Spec      14 (20) '2.0'\n+21580 Extract OS            00 (0) 'MS-DOS'\n+21581 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-213B2 Compression Method    0008 (8) 'Deflated'\n-213B4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-213B8 CRC                   4263898A (1113819530)\n-213BC Compressed Size       0000065D (1629)\n-213C0 Uncompressed Size     00001420 (5152)\n-213C4 Filename Length       0041 (65)\n-213C6 Extra Length          0000 (0)\n-213C8 Comment Length        0000 (0)\n-213CA Disk Start            0000 (0)\n-213CC Int File Attributes   0000 (0)\n+21583 Compression Method    0008 (8) 'Deflated'\n+21585 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21589 CRC                   4263898A (1113819530)\n+2158D Compressed Size       0000065D (1629)\n+21591 Uncompressed Size     00001420 (5152)\n+21595 Filename Length       0041 (65)\n+21597 Extra Length          0000 (0)\n+21599 Comment Length        0000 (0)\n+2159B Disk Start            0000 (0)\n+2159D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-213CE Ext File Attributes   81A40000 (2175008768)\n+2159F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-213D2 Local Header Offset   00016548 (91464)\n-213D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+215A3 Local Header Offset   000166AB (91819)\n+215A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x213D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x215A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21417 CENTRAL HEADER #112   02014B50 (33639248)\n-2141B Created Zip Spec      14 (20) '2.0'\n-2141C Created OS            03 (3) 'Unix'\n-2141D Extract Zip Spec      14 (20) '2.0'\n-2141E Extract OS            00 (0) 'MS-DOS'\n-2141F General Purpose Flag  0800 (2048)\n+215E8 CENTRAL HEADER #112   02014B50 (33639248)\n+215EC Created Zip Spec      14 (20) '2.0'\n+215ED Created OS            03 (3) 'Unix'\n+215EE Extract Zip Spec      14 (20) '2.0'\n+215EF Extract OS            00 (0) 'MS-DOS'\n+215F0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21421 Compression Method    0008 (8) 'Deflated'\n-21423 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21427 CRC                   61647F39 (1633976121)\n-2142B Compressed Size       000005E5 (1509)\n-2142F Uncompressed Size     0000187C (6268)\n-21433 Filename Length       0036 (54)\n-21435 Extra Length          0000 (0)\n-21437 Comment Length        0000 (0)\n-21439 Disk Start            0000 (0)\n-2143B Int File Attributes   0000 (0)\n+215F2 Compression Method    0008 (8) 'Deflated'\n+215F4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+215F8 CRC                   61647F39 (1633976121)\n+215FC Compressed Size       000005E5 (1509)\n+21600 Uncompressed Size     0000187C (6268)\n+21604 Filename Length       0036 (54)\n+21606 Extra Length          0000 (0)\n+21608 Comment Length        0000 (0)\n+2160A Disk Start            0000 (0)\n+2160C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2143D Ext File Attributes   81A40000 (2175008768)\n+2160E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21441 Local Header Offset   00016C04 (93188)\n-21445 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21612 Local Header Offset   00016D67 (93543)\n+21616 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21445: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21616: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2147B CENTRAL HEADER #113   02014B50 (33639248)\n-2147F Created Zip Spec      14 (20) '2.0'\n-21480 Created OS            03 (3) 'Unix'\n-21481 Extract Zip Spec      14 (20) '2.0'\n-21482 Extract OS            00 (0) 'MS-DOS'\n-21483 General Purpose Flag  0800 (2048)\n+2164C CENTRAL HEADER #113   02014B50 (33639248)\n+21650 Created Zip Spec      14 (20) '2.0'\n+21651 Created OS            03 (3) 'Unix'\n+21652 Extract Zip Spec      14 (20) '2.0'\n+21653 Extract OS            00 (0) 'MS-DOS'\n+21654 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21485 Compression Method    0008 (8) 'Deflated'\n-21487 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2148B CRC                   48FD2377 (1224549239)\n-2148F Compressed Size       000002AA (682)\n-21493 Uncompressed Size     00000559 (1369)\n-21497 Filename Length       0039 (57)\n-21499 Extra Length          0000 (0)\n-2149B Comment Length        0000 (0)\n-2149D Disk Start            0000 (0)\n-2149F Int File Attributes   0000 (0)\n+21656 Compression Method    0008 (8) 'Deflated'\n+21658 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2165C CRC                   48FD2377 (1224549239)\n+21660 Compressed Size       000002AA (682)\n+21664 Uncompressed Size     00000559 (1369)\n+21668 Filename Length       0039 (57)\n+2166A Extra Length          0000 (0)\n+2166C Comment Length        0000 (0)\n+2166E Disk Start            0000 (0)\n+21670 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-214A1 Ext File Attributes   81A40000 (2175008768)\n+21672 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-214A5 Local Header Offset   0001723D (94781)\n-214A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21676 Local Header Offset   000173A0 (95136)\n+2167A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x214A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2167A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-214E2 CENTRAL HEADER #114   02014B50 (33639248)\n-214E6 Created Zip Spec      14 (20) '2.0'\n-214E7 Created OS            03 (3) 'Unix'\n-214E8 Extract Zip Spec      14 (20) '2.0'\n-214E9 Extract OS            00 (0) 'MS-DOS'\n-214EA General Purpose Flag  0800 (2048)\n+216B3 CENTRAL HEADER #114   02014B50 (33639248)\n+216B7 Created Zip Spec      14 (20) '2.0'\n+216B8 Created OS            03 (3) 'Unix'\n+216B9 Extract Zip Spec      14 (20) '2.0'\n+216BA Extract OS            00 (0) 'MS-DOS'\n+216BB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-214EC Compression Method    0008 (8) 'Deflated'\n-214EE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-214F2 CRC                   DAA0DBC8 (3667975112)\n-214F6 Compressed Size       000007C4 (1988)\n-214FA Uncompressed Size     00001AD7 (6871)\n-214FE Filename Length       0040 (64)\n-21500 Extra Length          0000 (0)\n-21502 Comment Length        0000 (0)\n-21504 Disk Start            0000 (0)\n-21506 Int File Attributes   0000 (0)\n+216BD Compression Method    0008 (8) 'Deflated'\n+216BF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+216C3 CRC                   DAA0DBC8 (3667975112)\n+216C7 Compressed Size       000007C4 (1988)\n+216CB Uncompressed Size     00001AD7 (6871)\n+216CF Filename Length       0040 (64)\n+216D1 Extra Length          0000 (0)\n+216D3 Comment Length        0000 (0)\n+216D5 Disk Start            0000 (0)\n+216D7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21508 Ext File Attributes   81A40000 (2175008768)\n+216D9 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2150C Local Header Offset   0001753E (95550)\n-21510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+216DD Local Header Offset   000176A1 (95905)\n+216E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x216E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21550 CENTRAL HEADER #115   02014B50 (33639248)\n-21554 Created Zip Spec      14 (20) '2.0'\n-21555 Created OS            03 (3) 'Unix'\n-21556 Extract Zip Spec      14 (20) '2.0'\n-21557 Extract OS            00 (0) 'MS-DOS'\n-21558 General Purpose Flag  0800 (2048)\n+21721 CENTRAL HEADER #115   02014B50 (33639248)\n+21725 Created Zip Spec      14 (20) '2.0'\n+21726 Created OS            03 (3) 'Unix'\n+21727 Extract Zip Spec      14 (20) '2.0'\n+21728 Extract OS            00 (0) 'MS-DOS'\n+21729 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2155A Compression Method    0008 (8) 'Deflated'\n-2155C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21560 CRC                   887DA686 (2289936006)\n-21564 Compressed Size       000002A9 (681)\n-21568 Uncompressed Size     00000559 (1369)\n-2156C Filename Length       0039 (57)\n-2156E Extra Length          0000 (0)\n-21570 Comment Length        0000 (0)\n-21572 Disk Start            0000 (0)\n-21574 Int File Attributes   0000 (0)\n+2172B Compression Method    0008 (8) 'Deflated'\n+2172D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21731 CRC                   887DA686 (2289936006)\n+21735 Compressed Size       000002A9 (681)\n+21739 Uncompressed Size     00000559 (1369)\n+2173D Filename Length       0039 (57)\n+2173F Extra Length          0000 (0)\n+21741 Comment Length        0000 (0)\n+21743 Disk Start            0000 (0)\n+21745 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21576 Ext File Attributes   81A40000 (2175008768)\n+21747 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2157A Local Header Offset   00017D60 (97632)\n-2157E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2174B Local Header Offset   00017EC3 (97987)\n+2174F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2157E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2174F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-215B7 CENTRAL HEADER #116   02014B50 (33639248)\n-215BB Created Zip Spec      14 (20) '2.0'\n-215BC Created OS            03 (3) 'Unix'\n-215BD Extract Zip Spec      14 (20) '2.0'\n-215BE Extract OS            00 (0) 'MS-DOS'\n-215BF General Purpose Flag  0800 (2048)\n+21788 CENTRAL HEADER #116   02014B50 (33639248)\n+2178C Created Zip Spec      14 (20) '2.0'\n+2178D Created OS            03 (3) 'Unix'\n+2178E Extract Zip Spec      14 (20) '2.0'\n+2178F Extract OS            00 (0) 'MS-DOS'\n+21790 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-215C1 Compression Method    0008 (8) 'Deflated'\n-215C3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-215C7 CRC                   A7345C3C (2805226556)\n-215CB Compressed Size       000004AB (1195)\n-215CF Uncompressed Size     00000B51 (2897)\n-215D3 Filename Length       0040 (64)\n-215D5 Extra Length          0000 (0)\n-215D7 Comment Length        0000 (0)\n-215D9 Disk Start            0000 (0)\n-215DB Int File Attributes   0000 (0)\n+21792 Compression Method    0008 (8) 'Deflated'\n+21794 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21798 CRC                   A7345C3C (2805226556)\n+2179C Compressed Size       000004AB (1195)\n+217A0 Uncompressed Size     00000B51 (2897)\n+217A4 Filename Length       0040 (64)\n+217A6 Extra Length          0000 (0)\n+217A8 Comment Length        0000 (0)\n+217AA Disk Start            0000 (0)\n+217AC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-215DD Ext File Attributes   81A40000 (2175008768)\n+217AE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-215E1 Local Header Offset   00018060 (98400)\n-215E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+217B2 Local Header Offset   000181C3 (98755)\n+217B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x215E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x217B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21625 CENTRAL HEADER #117   02014B50 (33639248)\n-21629 Created Zip Spec      14 (20) '2.0'\n-2162A Created OS            03 (3) 'Unix'\n-2162B Extract Zip Spec      14 (20) '2.0'\n-2162C Extract OS            00 (0) 'MS-DOS'\n-2162D General Purpose Flag  0800 (2048)\n+217F6 CENTRAL HEADER #117   02014B50 (33639248)\n+217FA Created Zip Spec      14 (20) '2.0'\n+217FB Created OS            03 (3) 'Unix'\n+217FC Extract Zip Spec      14 (20) '2.0'\n+217FD Extract OS            00 (0) 'MS-DOS'\n+217FE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2162F Compression Method    0008 (8) 'Deflated'\n-21631 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21635 CRC                   C412C0D3 (3289563347)\n-21639 Compressed Size       000002A9 (681)\n-2163D Uncompressed Size     00000559 (1369)\n-21641 Filename Length       0039 (57)\n-21643 Extra Length          0000 (0)\n-21645 Comment Length        0000 (0)\n-21647 Disk Start            0000 (0)\n-21649 Int File Attributes   0000 (0)\n+21800 Compression Method    0008 (8) 'Deflated'\n+21802 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21806 CRC                   C412C0D3 (3289563347)\n+2180A Compressed Size       000002A9 (681)\n+2180E Uncompressed Size     00000559 (1369)\n+21812 Filename Length       0039 (57)\n+21814 Extra Length          0000 (0)\n+21816 Comment Length        0000 (0)\n+21818 Disk Start            0000 (0)\n+2181A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2164B Ext File Attributes   81A40000 (2175008768)\n+2181C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2164F Local Header Offset   00018569 (99689)\n-21653 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21820 Local Header Offset   000186CC (100044)\n+21824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21653: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2168C CENTRAL HEADER #118   02014B50 (33639248)\n-21690 Created Zip Spec      14 (20) '2.0'\n-21691 Created OS            03 (3) 'Unix'\n-21692 Extract Zip Spec      14 (20) '2.0'\n-21693 Extract OS            00 (0) 'MS-DOS'\n-21694 General Purpose Flag  0800 (2048)\n+2185D CENTRAL HEADER #118   02014B50 (33639248)\n+21861 Created Zip Spec      14 (20) '2.0'\n+21862 Created OS            03 (3) 'Unix'\n+21863 Extract Zip Spec      14 (20) '2.0'\n+21864 Extract OS            00 (0) 'MS-DOS'\n+21865 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21696 Compression Method    0008 (8) 'Deflated'\n-21698 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2169C CRC                   7A3E3AF6 (2050898678)\n-216A0 Compressed Size       00000730 (1840)\n-216A4 Uncompressed Size     0000158D (5517)\n-216A8 Filename Length       0040 (64)\n-216AA Extra Length          0000 (0)\n-216AC Comment Length        0000 (0)\n-216AE Disk Start            0000 (0)\n-216B0 Int File Attributes   0000 (0)\n+21867 Compression Method    0008 (8) 'Deflated'\n+21869 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2186D CRC                   7A3E3AF6 (2050898678)\n+21871 Compressed Size       00000730 (1840)\n+21875 Uncompressed Size     0000158D (5517)\n+21879 Filename Length       0040 (64)\n+2187B Extra Length          0000 (0)\n+2187D Comment Length        0000 (0)\n+2187F Disk Start            0000 (0)\n+21881 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-216B2 Ext File Attributes   81A40000 (2175008768)\n+21883 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-216B6 Local Header Offset   00018869 (100457)\n-216BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21887 Local Header Offset   000189CC (100812)\n+2188B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x216BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2188B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-216FA CENTRAL HEADER #119   02014B50 (33639248)\n-216FE Created Zip Spec      14 (20) '2.0'\n-216FF Created OS            03 (3) 'Unix'\n-21700 Extract Zip Spec      14 (20) '2.0'\n-21701 Extract OS            00 (0) 'MS-DOS'\n-21702 General Purpose Flag  0800 (2048)\n+218CB CENTRAL HEADER #119   02014B50 (33639248)\n+218CF Created Zip Spec      14 (20) '2.0'\n+218D0 Created OS            03 (3) 'Unix'\n+218D1 Extract Zip Spec      14 (20) '2.0'\n+218D2 Extract OS            00 (0) 'MS-DOS'\n+218D3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21704 Compression Method    0008 (8) 'Deflated'\n-21706 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2170A CRC                   68A40EAC (1755582124)\n-2170E Compressed Size       000002AA (682)\n-21712 Uncompressed Size     00000559 (1369)\n-21716 Filename Length       0039 (57)\n-21718 Extra Length          0000 (0)\n-2171A Comment Length        0000 (0)\n-2171C Disk Start            0000 (0)\n-2171E Int File Attributes   0000 (0)\n+218D5 Compression Method    0008 (8) 'Deflated'\n+218D7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+218DB CRC                   68A40EAC (1755582124)\n+218DF Compressed Size       000002AA (682)\n+218E3 Uncompressed Size     00000559 (1369)\n+218E7 Filename Length       0039 (57)\n+218E9 Extra Length          0000 (0)\n+218EB Comment Length        0000 (0)\n+218ED Disk Start            0000 (0)\n+218EF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21720 Ext File Attributes   81A40000 (2175008768)\n+218F1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21724 Local Header Offset   00018FF7 (102391)\n-21728 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+218F5 Local Header Offset   0001915A (102746)\n+218F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21728: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x218F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21761 CENTRAL HEADER #120   02014B50 (33639248)\n-21765 Created Zip Spec      14 (20) '2.0'\n-21766 Created OS            03 (3) 'Unix'\n-21767 Extract Zip Spec      14 (20) '2.0'\n-21768 Extract OS            00 (0) 'MS-DOS'\n-21769 General Purpose Flag  0800 (2048)\n+21932 CENTRAL HEADER #120   02014B50 (33639248)\n+21936 Created Zip Spec      14 (20) '2.0'\n+21937 Created OS            03 (3) 'Unix'\n+21938 Extract Zip Spec      14 (20) '2.0'\n+21939 Extract OS            00 (0) 'MS-DOS'\n+2193A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2176B Compression Method    0008 (8) 'Deflated'\n-2176D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21771 CRC                   DEA6E3F0 (3735479280)\n-21775 Compressed Size       000003F1 (1009)\n-21779 Uncompressed Size     00000942 (2370)\n-2177D Filename Length       0040 (64)\n-2177F Extra Length          0000 (0)\n-21781 Comment Length        0000 (0)\n-21783 Disk Start            0000 (0)\n-21785 Int File Attributes   0000 (0)\n+2193C Compression Method    0008 (8) 'Deflated'\n+2193E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21942 CRC                   DEA6E3F0 (3735479280)\n+21946 Compressed Size       000003F1 (1009)\n+2194A Uncompressed Size     00000942 (2370)\n+2194E Filename Length       0040 (64)\n+21950 Extra Length          0000 (0)\n+21952 Comment Length        0000 (0)\n+21954 Disk Start            0000 (0)\n+21956 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21787 Ext File Attributes   81A40000 (2175008768)\n+21958 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2178B Local Header Offset   000192F8 (103160)\n-2178F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2195C Local Header Offset   0001945B (103515)\n+21960 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2178F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21960: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-217CF CENTRAL HEADER #121   02014B50 (33639248)\n-217D3 Created Zip Spec      14 (20) '2.0'\n-217D4 Created OS            03 (3) 'Unix'\n-217D5 Extract Zip Spec      14 (20) '2.0'\n-217D6 Extract OS            00 (0) 'MS-DOS'\n-217D7 General Purpose Flag  0800 (2048)\n+219A0 CENTRAL HEADER #121   02014B50 (33639248)\n+219A4 Created Zip Spec      14 (20) '2.0'\n+219A5 Created OS            03 (3) 'Unix'\n+219A6 Extract Zip Spec      14 (20) '2.0'\n+219A7 Extract OS            00 (0) 'MS-DOS'\n+219A8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-217D9 Compression Method    0008 (8) 'Deflated'\n-217DB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-217DF CRC                   1E103695 (504379029)\n-217E3 Compressed Size       000002A9 (681)\n-217E7 Uncompressed Size     00000555 (1365)\n-217EB Filename Length       0038 (56)\n-217ED Extra Length          0000 (0)\n-217EF Comment Length        0000 (0)\n-217F1 Disk Start            0000 (0)\n-217F3 Int File Attributes   0000 (0)\n+219AA Compression Method    0008 (8) 'Deflated'\n+219AC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+219B0 CRC                   1E103695 (504379029)\n+219B4 Compressed Size       000002A9 (681)\n+219B8 Uncompressed Size     00000555 (1365)\n+219BC Filename Length       0038 (56)\n+219BE Extra Length          0000 (0)\n+219C0 Comment Length        0000 (0)\n+219C2 Disk Start            0000 (0)\n+219C4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-217F5 Ext File Attributes   81A40000 (2175008768)\n+219C6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-217F9 Local Header Offset   00019747 (104263)\n-217FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+219CA Local Header Offset   000198AA (104618)\n+219CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x217FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x219CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21835 CENTRAL HEADER #122   02014B50 (33639248)\n-21839 Created Zip Spec      14 (20) '2.0'\n-2183A Created OS            03 (3) 'Unix'\n-2183B Extract Zip Spec      14 (20) '2.0'\n-2183C Extract OS            00 (0) 'MS-DOS'\n-2183D General Purpose Flag  0800 (2048)\n+21A06 CENTRAL HEADER #122   02014B50 (33639248)\n+21A0A Created Zip Spec      14 (20) '2.0'\n+21A0B Created OS            03 (3) 'Unix'\n+21A0C Extract Zip Spec      14 (20) '2.0'\n+21A0D Extract OS            00 (0) 'MS-DOS'\n+21A0E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2183F Compression Method    0008 (8) 'Deflated'\n-21841 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21845 CRC                   27AC8562 (665617762)\n-21849 Compressed Size       00000730 (1840)\n-2184D Uncompressed Size     000014CB (5323)\n-21851 Filename Length       003F (63)\n-21853 Extra Length          0000 (0)\n-21855 Comment Length        0000 (0)\n-21857 Disk Start            0000 (0)\n-21859 Int File Attributes   0000 (0)\n+21A10 Compression Method    0008 (8) 'Deflated'\n+21A12 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21A16 CRC                   0384CEE3 (59035363)\n+21A1A Compressed Size       0000073B (1851)\n+21A1E Uncompressed Size     0000153C (5436)\n+21A22 Filename Length       003F (63)\n+21A24 Extra Length          0000 (0)\n+21A26 Comment Length        0000 (0)\n+21A28 Disk Start            0000 (0)\n+21A2A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2185B Ext File Attributes   81A40000 (2175008768)\n+21A2C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2185F Local Header Offset   00019A46 (105030)\n-21863 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21A30 Local Header Offset   00019BA9 (105385)\n+21A34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21863: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21A34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-218A2 CENTRAL HEADER #123   02014B50 (33639248)\n-218A6 Created Zip Spec      14 (20) '2.0'\n-218A7 Created OS            03 (3) 'Unix'\n-218A8 Extract Zip Spec      14 (20) '2.0'\n-218A9 Extract OS            00 (0) 'MS-DOS'\n-218AA General Purpose Flag  0800 (2048)\n+21A73 CENTRAL HEADER #123   02014B50 (33639248)\n+21A77 Created Zip Spec      14 (20) '2.0'\n+21A78 Created OS            03 (3) 'Unix'\n+21A79 Extract Zip Spec      14 (20) '2.0'\n+21A7A Extract OS            00 (0) 'MS-DOS'\n+21A7B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-218AC Compression Method    0008 (8) 'Deflated'\n-218AE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-218B2 CRC                   D9486541 (3645400385)\n-218B6 Compressed Size       0000028E (654)\n-218BA Uncompressed Size     0000050C (1292)\n-218BE Filename Length       003A (58)\n-218C0 Extra Length          0000 (0)\n-218C2 Comment Length        0000 (0)\n-218C4 Disk Start            0000 (0)\n-218C6 Int File Attributes   0000 (0)\n+21A7D Compression Method    0008 (8) 'Deflated'\n+21A7F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21A83 CRC                   A4DAB8AE (2765797550)\n+21A87 Compressed Size       00000297 (663)\n+21A8B Uncompressed Size     0000052C (1324)\n+21A8F Filename Length       003A (58)\n+21A91 Extra Length          0000 (0)\n+21A93 Comment Length        0000 (0)\n+21A95 Disk Start            0000 (0)\n+21A97 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-218C8 Ext File Attributes   81A40000 (2175008768)\n+21A99 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-218CC Local Header Offset   0001A1D3 (106963)\n-218D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21A9D Local Header Offset   0001A341 (107329)\n+21AA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x218D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21AA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2190A CENTRAL HEADER #124   02014B50 (33639248)\n-2190E Created Zip Spec      14 (20) '2.0'\n-2190F Created OS            03 (3) 'Unix'\n-21910 Extract Zip Spec      14 (20) '2.0'\n-21911 Extract OS            00 (0) 'MS-DOS'\n-21912 General Purpose Flag  0800 (2048)\n+21ADB CENTRAL HEADER #124   02014B50 (33639248)\n+21ADF Created Zip Spec      14 (20) '2.0'\n+21AE0 Created OS            03 (3) 'Unix'\n+21AE1 Extract Zip Spec      14 (20) '2.0'\n+21AE2 Extract OS            00 (0) 'MS-DOS'\n+21AE3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21914 Compression Method    0008 (8) 'Deflated'\n-21916 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2191A CRC                   011CB6AA (18658986)\n-2191E Compressed Size       000008AF (2223)\n-21922 Uncompressed Size     00001DE1 (7649)\n-21926 Filename Length       0041 (65)\n-21928 Extra Length          0000 (0)\n-2192A Comment Length        0000 (0)\n-2192C Disk Start            0000 (0)\n-2192E Int File Attributes   0000 (0)\n+21AE5 Compression Method    0008 (8) 'Deflated'\n+21AE7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21AEB CRC                   FAE0CB59 (4209036121)\n+21AEF Compressed Size       000008BE (2238)\n+21AF3 Uncompressed Size     00001EA2 (7842)\n+21AF7 Filename Length       0041 (65)\n+21AF9 Extra Length          0000 (0)\n+21AFB Comment Length        0000 (0)\n+21AFD Disk Start            0000 (0)\n+21AFF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21930 Ext File Attributes   81A40000 (2175008768)\n+21B01 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21934 Local Header Offset   0001A4B9 (107705)\n-21938 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21B05 Local Header Offset   0001A630 (108080)\n+21B09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21938: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21B09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21979 CENTRAL HEADER #125   02014B50 (33639248)\n-2197D Created Zip Spec      14 (20) '2.0'\n-2197E Created OS            03 (3) 'Unix'\n-2197F Extract Zip Spec      14 (20) '2.0'\n-21980 Extract OS            00 (0) 'MS-DOS'\n-21981 General Purpose Flag  0800 (2048)\n+21B4A CENTRAL HEADER #125   02014B50 (33639248)\n+21B4E Created Zip Spec      14 (20) '2.0'\n+21B4F Created OS            03 (3) 'Unix'\n+21B50 Extract Zip Spec      14 (20) '2.0'\n+21B51 Extract OS            00 (0) 'MS-DOS'\n+21B52 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21983 Compression Method    0008 (8) 'Deflated'\n-21985 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21989 CRC                   6056B6FB (1616295675)\n-2198D Compressed Size       00000269 (617)\n-21991 Uncompressed Size     00000490 (1168)\n-21995 Filename Length       0043 (67)\n-21997 Extra Length          0000 (0)\n-21999 Comment Length        0000 (0)\n-2199B Disk Start            0000 (0)\n-2199D Int File Attributes   0000 (0)\n+21B54 Compression Method    0008 (8) 'Deflated'\n+21B56 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21B5A CRC                   B9BB0148 (3116040520)\n+21B5E Compressed Size       00000273 (627)\n+21B62 Uncompressed Size     000004AD (1197)\n+21B66 Filename Length       0043 (67)\n+21B68 Extra Length          0000 (0)\n+21B6A Comment Length        0000 (0)\n+21B6C Disk Start            0000 (0)\n+21B6E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2199F Ext File Attributes   81A40000 (2175008768)\n+21B70 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-219A3 Local Header Offset   0001ADC7 (110023)\n-219A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21B74 Local Header Offset   0001AF4D (110413)\n+21B78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x219A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21B78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-219EA CENTRAL HEADER #126   02014B50 (33639248)\n-219EE Created Zip Spec      14 (20) '2.0'\n-219EF Created OS            03 (3) 'Unix'\n-219F0 Extract Zip Spec      14 (20) '2.0'\n-219F1 Extract OS            00 (0) 'MS-DOS'\n-219F2 General Purpose Flag  0800 (2048)\n+21BBB CENTRAL HEADER #126   02014B50 (33639248)\n+21BBF Created Zip Spec      14 (20) '2.0'\n+21BC0 Created OS            03 (3) 'Unix'\n+21BC1 Extract Zip Spec      14 (20) '2.0'\n+21BC2 Extract OS            00 (0) 'MS-DOS'\n+21BC3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-219F4 Compression Method    0008 (8) 'Deflated'\n-219F6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-219FA CRC                   3DFE1DA9 (1040063913)\n-219FE Compressed Size       00000261 (609)\n-21A02 Uncompressed Size     00000463 (1123)\n-21A06 Filename Length       004E (78)\n-21A08 Extra Length          0000 (0)\n-21A0A Comment Length        0000 (0)\n-21A0C Disk Start            0000 (0)\n-21A0E Int File Attributes   0000 (0)\n+21BC5 Compression Method    0008 (8) 'Deflated'\n+21BC7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21BCB CRC                   381C2681 (941368961)\n+21BCF Compressed Size       00000268 (616)\n+21BD3 Uncompressed Size     0000047E (1150)\n+21BD7 Filename Length       004E (78)\n+21BD9 Extra Length          0000 (0)\n+21BDB Comment Length        0000 (0)\n+21BDD Disk Start            0000 (0)\n+21BDF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21A10 Ext File Attributes   81A40000 (2175008768)\n+21BE1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21A14 Local Header Offset   0001B091 (110737)\n-21A18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21BE5 Local Header Offset   0001B221 (111137)\n+21BE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21A18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21BE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21A66 CENTRAL HEADER #127   02014B50 (33639248)\n-21A6A Created Zip Spec      14 (20) '2.0'\n-21A6B Created OS            03 (3) 'Unix'\n-21A6C Extract Zip Spec      14 (20) '2.0'\n-21A6D Extract OS            00 (0) 'MS-DOS'\n-21A6E General Purpose Flag  0800 (2048)\n+21C37 CENTRAL HEADER #127   02014B50 (33639248)\n+21C3B Created Zip Spec      14 (20) '2.0'\n+21C3C Created OS            03 (3) 'Unix'\n+21C3D Extract Zip Spec      14 (20) '2.0'\n+21C3E Extract OS            00 (0) 'MS-DOS'\n+21C3F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21A70 Compression Method    0008 (8) 'Deflated'\n-21A72 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21A76 CRC                   026F661D (40855069)\n-21A7A Compressed Size       000002FD (765)\n-21A7E Uncompressed Size     000006F0 (1776)\n-21A82 Filename Length       004B (75)\n-21A84 Extra Length          0000 (0)\n-21A86 Comment Length        0000 (0)\n-21A88 Disk Start            0000 (0)\n-21A8A Int File Attributes   0000 (0)\n+21C41 Compression Method    0008 (8) 'Deflated'\n+21C43 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21C47 CRC                   21012AB4 (553724596)\n+21C4B Compressed Size       00000308 (776)\n+21C4F Uncompressed Size     00000726 (1830)\n+21C53 Filename Length       004B (75)\n+21C55 Extra Length          0000 (0)\n+21C57 Comment Length        0000 (0)\n+21C59 Disk Start            0000 (0)\n+21C5B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21A8C Ext File Attributes   81A40000 (2175008768)\n+21C5D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21A90 Local Header Offset   0001B35E (111454)\n-21A94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21C61 Local Header Offset   0001B4F5 (111861)\n+21C65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21A94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21C65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21ADF CENTRAL HEADER #128   02014B50 (33639248)\n-21AE3 Created Zip Spec      14 (20) '2.0'\n-21AE4 Created OS            03 (3) 'Unix'\n-21AE5 Extract Zip Spec      14 (20) '2.0'\n-21AE6 Extract OS            00 (0) 'MS-DOS'\n-21AE7 General Purpose Flag  0800 (2048)\n+21CB0 CENTRAL HEADER #128   02014B50 (33639248)\n+21CB4 Created Zip Spec      14 (20) '2.0'\n+21CB5 Created OS            03 (3) 'Unix'\n+21CB6 Extract Zip Spec      14 (20) '2.0'\n+21CB7 Extract OS            00 (0) 'MS-DOS'\n+21CB8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21AE9 Compression Method    0008 (8) 'Deflated'\n-21AEB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21AEF CRC                   8138F7C2 (2167994306)\n-21AF3 Compressed Size       0000049B (1179)\n-21AF7 Uncompressed Size     00000CD0 (3280)\n-21AFB Filename Length       0041 (65)\n-21AFD Extra Length          0000 (0)\n-21AFF Comment Length        0000 (0)\n-21B01 Disk Start            0000 (0)\n-21B03 Int File Attributes   0000 (0)\n+21CBA Compression Method    0008 (8) 'Deflated'\n+21CBC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21CC0 CRC                   06F39E69 (116629097)\n+21CC4 Compressed Size       000004A7 (1191)\n+21CC8 Uncompressed Size     00000D2A (3370)\n+21CCC Filename Length       0041 (65)\n+21CCE Extra Length          0000 (0)\n+21CD0 Comment Length        0000 (0)\n+21CD2 Disk Start            0000 (0)\n+21CD4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21B05 Ext File Attributes   81A40000 (2175008768)\n+21CD6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21B09 Local Header Offset   0001B6C4 (112324)\n-21B0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21CDA Local Header Offset   0001B866 (112742)\n+21CDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21B0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21CDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21B4E CENTRAL HEADER #129   02014B50 (33639248)\n-21B52 Created Zip Spec      14 (20) '2.0'\n-21B53 Created OS            03 (3) 'Unix'\n-21B54 Extract Zip Spec      14 (20) '2.0'\n-21B55 Extract OS            00 (0) 'MS-DOS'\n-21B56 General Purpose Flag  0800 (2048)\n+21D1F CENTRAL HEADER #129   02014B50 (33639248)\n+21D23 Created Zip Spec      14 (20) '2.0'\n+21D24 Created OS            03 (3) 'Unix'\n+21D25 Extract Zip Spec      14 (20) '2.0'\n+21D26 Extract OS            00 (0) 'MS-DOS'\n+21D27 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21B58 Compression Method    0008 (8) 'Deflated'\n-21B5A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21B5E CRC                   1A8FEFCC (445640652)\n-21B62 Compressed Size       00000221 (545)\n-21B66 Uncompressed Size     000003BA (954)\n-21B6A Filename Length       0041 (65)\n-21B6C Extra Length          0000 (0)\n-21B6E Comment Length        0000 (0)\n-21B70 Disk Start            0000 (0)\n-21B72 Int File Attributes   0000 (0)\n+21D29 Compression Method    0008 (8) 'Deflated'\n+21D2B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21D2F CRC                   34F1D732 (888264498)\n+21D33 Compressed Size       00000227 (551)\n+21D37 Uncompressed Size     000003D0 (976)\n+21D3B Filename Length       0041 (65)\n+21D3D Extra Length          0000 (0)\n+21D3F Comment Length        0000 (0)\n+21D41 Disk Start            0000 (0)\n+21D43 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21B74 Ext File Attributes   81A40000 (2175008768)\n+21D45 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21B78 Local Header Offset   0001BBBE (113598)\n-21B7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21D49 Local Header Offset   0001BD6C (114028)\n+21D4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21B7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21D4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21BBD CENTRAL HEADER #130   02014B50 (33639248)\n-21BC1 Created Zip Spec      14 (20) '2.0'\n-21BC2 Created OS            03 (3) 'Unix'\n-21BC3 Extract Zip Spec      14 (20) '2.0'\n-21BC4 Extract OS            00 (0) 'MS-DOS'\n-21BC5 General Purpose Flag  0800 (2048)\n+21D8E CENTRAL HEADER #130   02014B50 (33639248)\n+21D92 Created Zip Spec      14 (20) '2.0'\n+21D93 Created OS            03 (3) 'Unix'\n+21D94 Extract Zip Spec      14 (20) '2.0'\n+21D95 Extract OS            00 (0) 'MS-DOS'\n+21D96 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21BC7 Compression Method    0008 (8) 'Deflated'\n-21BC9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21BCD CRC                   1071481B (275859483)\n-21BD1 Compressed Size       000002B5 (693)\n-21BD5 Uncompressed Size     0000058B (1419)\n-21BD9 Filename Length       0043 (67)\n-21BDB Extra Length          0000 (0)\n-21BDD Comment Length        0000 (0)\n-21BDF Disk Start            0000 (0)\n-21BE1 Int File Attributes   0000 (0)\n+21D98 Compression Method    0008 (8) 'Deflated'\n+21D9A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21D9E CRC                   5C6630BB (1550201019)\n+21DA2 Compressed Size       000002BD (701)\n+21DA6 Uncompressed Size     000005AE (1454)\n+21DAA Filename Length       0043 (67)\n+21DAC Extra Length          0000 (0)\n+21DAE Comment Length        0000 (0)\n+21DB0 Disk Start            0000 (0)\n+21DB2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21BE3 Ext File Attributes   81A40000 (2175008768)\n+21DB4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21BE7 Local Header Offset   0001BE3E (114238)\n-21BEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21DB8 Local Header Offset   0001BFF2 (114674)\n+21DBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21BEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21DBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21C2E CENTRAL HEADER #131   02014B50 (33639248)\n-21C32 Created Zip Spec      14 (20) '2.0'\n-21C33 Created OS            03 (3) 'Unix'\n-21C34 Extract Zip Spec      14 (20) '2.0'\n-21C35 Extract OS            00 (0) 'MS-DOS'\n-21C36 General Purpose Flag  0800 (2048)\n+21DFF CENTRAL HEADER #131   02014B50 (33639248)\n+21E03 Created Zip Spec      14 (20) '2.0'\n+21E04 Created OS            03 (3) 'Unix'\n+21E05 Extract Zip Spec      14 (20) '2.0'\n+21E06 Extract OS            00 (0) 'MS-DOS'\n+21E07 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21C38 Compression Method    0008 (8) 'Deflated'\n-21C3A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21C3E CRC                   E4476BF5 (3829885941)\n-21C42 Compressed Size       00000ACD (2765)\n-21C46 Uncompressed Size     00002BF8 (11256)\n-21C4A Filename Length       004A (74)\n-21C4C Extra Length          0000 (0)\n-21C4E Comment Length        0000 (0)\n-21C50 Disk Start            0000 (0)\n-21C52 Int File Attributes   0000 (0)\n+21E09 Compression Method    0008 (8) 'Deflated'\n+21E0B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21E0F CRC                   CAF28C51 (3404893265)\n+21E13 Compressed Size       00000ADD (2781)\n+21E17 Uncompressed Size     00002CF4 (11508)\n+21E1B Filename Length       004A (74)\n+21E1D Extra Length          0000 (0)\n+21E1F Comment Length        0000 (0)\n+21E21 Disk Start            0000 (0)\n+21E23 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21C54 Ext File Attributes   81A40000 (2175008768)\n+21E25 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21C58 Local Header Offset   0001C154 (115028)\n-21C5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21E29 Local Header Offset   0001C310 (115472)\n+21E2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21C5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21E2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21CA6 CENTRAL HEADER #132   02014B50 (33639248)\n-21CAA Created Zip Spec      14 (20) '2.0'\n-21CAB Created OS            03 (3) 'Unix'\n-21CAC Extract Zip Spec      14 (20) '2.0'\n-21CAD Extract OS            00 (0) 'MS-DOS'\n-21CAE General Purpose Flag  0800 (2048)\n+21E77 CENTRAL HEADER #132   02014B50 (33639248)\n+21E7B Created Zip Spec      14 (20) '2.0'\n+21E7C Created OS            03 (3) 'Unix'\n+21E7D Extract Zip Spec      14 (20) '2.0'\n+21E7E Extract OS            00 (0) 'MS-DOS'\n+21E7F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21CB0 Compression Method    0008 (8) 'Deflated'\n-21CB2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21CB6 CRC                   F23CFA2B (4064082475)\n-21CBA Compressed Size       000005E9 (1513)\n-21CBE Uncompressed Size     000014C8 (5320)\n-21CC2 Filename Length       0041 (65)\n-21CC4 Extra Length          0000 (0)\n-21CC6 Comment Length        0000 (0)\n-21CC8 Disk Start            0000 (0)\n-21CCA Int File Attributes   0000 (0)\n+21E81 Compression Method    0008 (8) 'Deflated'\n+21E83 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21E87 CRC                   36D0D661 (919656033)\n+21E8B Compressed Size       000005F6 (1526)\n+21E8F Uncompressed Size     0000154C (5452)\n+21E93 Filename Length       0041 (65)\n+21E95 Extra Length          0000 (0)\n+21E97 Comment Length        0000 (0)\n+21E99 Disk Start            0000 (0)\n+21E9B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21CCC Ext File Attributes   81A40000 (2175008768)\n+21E9D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21CD0 Local Header Offset   0001CC89 (117897)\n-21CD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21EA1 Local Header Offset   0001CE55 (118357)\n+21EA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21CD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21EA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21D15 CENTRAL HEADER #133   02014B50 (33639248)\n-21D19 Created Zip Spec      14 (20) '2.0'\n-21D1A Created OS            03 (3) 'Unix'\n-21D1B Extract Zip Spec      14 (20) '2.0'\n-21D1C Extract OS            00 (0) 'MS-DOS'\n-21D1D General Purpose Flag  0800 (2048)\n+21EE6 CENTRAL HEADER #133   02014B50 (33639248)\n+21EEA Created Zip Spec      14 (20) '2.0'\n+21EEB Created OS            03 (3) 'Unix'\n+21EEC Extract Zip Spec      14 (20) '2.0'\n+21EED Extract OS            00 (0) 'MS-DOS'\n+21EEE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21D1F Compression Method    0008 (8) 'Deflated'\n-21D21 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21D25 CRC                   A2C265E1 (2730649057)\n-21D29 Compressed Size       0000087E (2174)\n-21D2D Uncompressed Size     00001D45 (7493)\n-21D31 Filename Length       0044 (68)\n-21D33 Extra Length          0000 (0)\n-21D35 Comment Length        0000 (0)\n-21D37 Disk Start            0000 (0)\n-21D39 Int File Attributes   0000 (0)\n+21EF0 Compression Method    0008 (8) 'Deflated'\n+21EF2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21EF6 CRC                   A2C265E1 (2730649057)\n+21EFA Compressed Size       0000087E (2174)\n+21EFE Uncompressed Size     00001D45 (7493)\n+21F02 Filename Length       0044 (68)\n+21F04 Extra Length          0000 (0)\n+21F06 Comment Length        0000 (0)\n+21F08 Disk Start            0000 (0)\n+21F0A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21D3B Ext File Attributes   81A40000 (2175008768)\n+21F0C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21D3F Local Header Offset   0001D2D1 (119505)\n-21D43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21F10 Local Header Offset   0001D4AA (119978)\n+21F14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21D43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21F14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21D87 CENTRAL HEADER #134   02014B50 (33639248)\n-21D8B Created Zip Spec      14 (20) '2.0'\n-21D8C Created OS            03 (3) 'Unix'\n-21D8D Extract Zip Spec      14 (20) '2.0'\n-21D8E Extract OS            00 (0) 'MS-DOS'\n-21D8F General Purpose Flag  0800 (2048)\n+21F58 CENTRAL HEADER #134   02014B50 (33639248)\n+21F5C Created Zip Spec      14 (20) '2.0'\n+21F5D Created OS            03 (3) 'Unix'\n+21F5E Extract Zip Spec      14 (20) '2.0'\n+21F5F Extract OS            00 (0) 'MS-DOS'\n+21F60 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21D91 Compression Method    0008 (8) 'Deflated'\n-21D93 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21D97 CRC                   AEA9AD13 (2930355475)\n-21D9B Compressed Size       000002AA (682)\n-21D9F Uncompressed Size     000005BA (1466)\n-21DA3 Filename Length       0044 (68)\n-21DA5 Extra Length          0000 (0)\n-21DA7 Comment Length        0000 (0)\n-21DA9 Disk Start            0000 (0)\n-21DAB Int File Attributes   0000 (0)\n+21F62 Compression Method    0008 (8) 'Deflated'\n+21F64 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21F68 CRC                   AEA9AD13 (2930355475)\n+21F6C Compressed Size       000002AA (682)\n+21F70 Uncompressed Size     000005BA (1466)\n+21F74 Filename Length       0044 (68)\n+21F76 Extra Length          0000 (0)\n+21F78 Comment Length        0000 (0)\n+21F7A Disk Start            0000 (0)\n+21F7C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21DAD Ext File Attributes   81A40000 (2175008768)\n+21F7E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21DB1 Local Header Offset   0001DBB1 (121777)\n-21DB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21F82 Local Header Offset   0001DD8A (122250)\n+21F86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21DB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21F86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21DF9 CENTRAL HEADER #135   02014B50 (33639248)\n-21DFD Created Zip Spec      14 (20) '2.0'\n-21DFE Created OS            03 (3) 'Unix'\n-21DFF Extract Zip Spec      14 (20) '2.0'\n-21E00 Extract OS            00 (0) 'MS-DOS'\n-21E01 General Purpose Flag  0800 (2048)\n+21FCA CENTRAL HEADER #135   02014B50 (33639248)\n+21FCE Created Zip Spec      14 (20) '2.0'\n+21FCF Created OS            03 (3) 'Unix'\n+21FD0 Extract Zip Spec      14 (20) '2.0'\n+21FD1 Extract OS            00 (0) 'MS-DOS'\n+21FD2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21E03 Compression Method    0008 (8) 'Deflated'\n-21E05 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21E09 CRC                   DD05C4EA (3708142826)\n-21E0D Compressed Size       000000AB (171)\n-21E11 Uncompressed Size     0000028B (651)\n-21E15 Filename Length       003C (60)\n-21E17 Extra Length          0000 (0)\n-21E19 Comment Length        0000 (0)\n-21E1B Disk Start            0000 (0)\n-21E1D Int File Attributes   0000 (0)\n+21FD4 Compression Method    0008 (8) 'Deflated'\n+21FD6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21FDA CRC                   DD05C4EA (3708142826)\n+21FDE Compressed Size       000000AB (171)\n+21FE2 Uncompressed Size     0000028B (651)\n+21FE6 Filename Length       003C (60)\n+21FE8 Extra Length          0000 (0)\n+21FEA Comment Length        0000 (0)\n+21FEC Disk Start            0000 (0)\n+21FEE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21E1F Ext File Attributes   81A40000 (2175008768)\n+21FF0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21E23 Local Header Offset   0001DEBD (122557)\n-21E27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21FF4 Local Header Offset   0001E096 (123030)\n+21FF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21E27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21FF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21E63 CENTRAL HEADER #136   02014B50 (33639248)\n-21E67 Created Zip Spec      14 (20) '2.0'\n-21E68 Created OS            03 (3) 'Unix'\n-21E69 Extract Zip Spec      14 (20) '2.0'\n-21E6A Extract OS            00 (0) 'MS-DOS'\n-21E6B General Purpose Flag  0800 (2048)\n+22034 CENTRAL HEADER #136   02014B50 (33639248)\n+22038 Created Zip Spec      14 (20) '2.0'\n+22039 Created OS            03 (3) 'Unix'\n+2203A Extract Zip Spec      14 (20) '2.0'\n+2203B Extract OS            00 (0) 'MS-DOS'\n+2203C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21E6D Compression Method    0008 (8) 'Deflated'\n-21E6F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21E73 CRC                   AD5A1B17 (2908363543)\n-21E77 Compressed Size       00000057 (87)\n-21E7B Uncompressed Size     000000AA (170)\n-21E7F Filename Length       0048 (72)\n-21E81 Extra Length          0000 (0)\n-21E83 Comment Length        0000 (0)\n-21E85 Disk Start            0000 (0)\n-21E87 Int File Attributes   0000 (0)\n+2203E Compression Method    0008 (8) 'Deflated'\n+22040 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22044 CRC                   AD5A1B17 (2908363543)\n+22048 Compressed Size       00000057 (87)\n+2204C Uncompressed Size     000000AA (170)\n+22050 Filename Length       0048 (72)\n+22052 Extra Length          0000 (0)\n+22054 Comment Length        0000 (0)\n+22056 Disk Start            0000 (0)\n+22058 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21E89 Ext File Attributes   81A40000 (2175008768)\n+2205A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21E8D Local Header Offset   0001DFC2 (122818)\n-21E91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2205E Local Header Offset   0001E19B (123291)\n+22062 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21E91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22062: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21ED9 CENTRAL HEADER #137   02014B50 (33639248)\n-21EDD Created Zip Spec      14 (20) '2.0'\n-21EDE Created OS            03 (3) 'Unix'\n-21EDF Extract Zip Spec      14 (20) '2.0'\n-21EE0 Extract OS            00 (0) 'MS-DOS'\n-21EE1 General Purpose Flag  0800 (2048)\n+220AA CENTRAL HEADER #137   02014B50 (33639248)\n+220AE Created Zip Spec      14 (20) '2.0'\n+220AF Created OS            03 (3) 'Unix'\n+220B0 Extract Zip Spec      14 (20) '2.0'\n+220B1 Extract OS            00 (0) 'MS-DOS'\n+220B2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21EE3 Compression Method    0008 (8) 'Deflated'\n-21EE5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21EE9 CRC                   5933CC8E (1496566926)\n-21EED Compressed Size       00000089 (137)\n-21EF1 Uncompressed Size     00000183 (387)\n-21EF5 Filename Length       0040 (64)\n-21EF7 Extra Length          0000 (0)\n-21EF9 Comment Length        0000 (0)\n-21EFB Disk Start            0000 (0)\n-21EFD Int File Attributes   0000 (0)\n+220B4 Compression Method    0008 (8) 'Deflated'\n+220B6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+220BA CRC                   5933CC8E (1496566926)\n+220BE Compressed Size       00000089 (137)\n+220C2 Uncompressed Size     00000183 (387)\n+220C6 Filename Length       0040 (64)\n+220C8 Extra Length          0000 (0)\n+220CA Comment Length        0000 (0)\n+220CC Disk Start            0000 (0)\n+220CE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21EFF Ext File Attributes   81A40000 (2175008768)\n+220D0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21F03 Local Header Offset   0001E07F (123007)\n-21F07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+220D4 Local Header Offset   0001E258 (123480)\n+220D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21F07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x220D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21F47 CENTRAL HEADER #138   02014B50 (33639248)\n-21F4B Created Zip Spec      14 (20) '2.0'\n-21F4C Created OS            03 (3) 'Unix'\n-21F4D Extract Zip Spec      14 (20) '2.0'\n-21F4E Extract OS            00 (0) 'MS-DOS'\n-21F4F General Purpose Flag  0800 (2048)\n+22118 CENTRAL HEADER #138   02014B50 (33639248)\n+2211C Created Zip Spec      14 (20) '2.0'\n+2211D Created OS            03 (3) 'Unix'\n+2211E Extract Zip Spec      14 (20) '2.0'\n+2211F Extract OS            00 (0) 'MS-DOS'\n+22120 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21F51 Compression Method    0008 (8) 'Deflated'\n-21F53 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21F57 CRC                   F3E800FA (4092068090)\n-21F5B Compressed Size       00000096 (150)\n-21F5F Uncompressed Size     00000277 (631)\n-21F63 Filename Length       003B (59)\n-21F65 Extra Length          0000 (0)\n-21F67 Comment Length        0000 (0)\n-21F69 Disk Start            0000 (0)\n-21F6B Int File Attributes   0000 (0)\n+22122 Compression Method    0008 (8) 'Deflated'\n+22124 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22128 CRC                   F3E800FA (4092068090)\n+2212C Compressed Size       00000096 (150)\n+22130 Uncompressed Size     00000277 (631)\n+22134 Filename Length       003B (59)\n+22136 Extra Length          0000 (0)\n+22138 Comment Length        0000 (0)\n+2213A Disk Start            0000 (0)\n+2213C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21F6D Ext File Attributes   81A40000 (2175008768)\n+2213E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21F71 Local Header Offset   0001E166 (123238)\n-21F75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22142 Local Header Offset   0001E33F (123711)\n+22146 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21F75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22146: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21FB0 CENTRAL HEADER #139   02014B50 (33639248)\n-21FB4 Created Zip Spec      14 (20) '2.0'\n-21FB5 Created OS            03 (3) 'Unix'\n-21FB6 Extract Zip Spec      14 (20) '2.0'\n-21FB7 Extract OS            00 (0) 'MS-DOS'\n-21FB8 General Purpose Flag  0800 (2048)\n+22181 CENTRAL HEADER #139   02014B50 (33639248)\n+22185 Created Zip Spec      14 (20) '2.0'\n+22186 Created OS            03 (3) 'Unix'\n+22187 Extract Zip Spec      14 (20) '2.0'\n+22188 Extract OS            00 (0) 'MS-DOS'\n+22189 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21FBA Compression Method    0008 (8) 'Deflated'\n-21FBC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21FC0 CRC                   8DA26D4C (2376232268)\n-21FC4 Compressed Size       00000086 (134)\n-21FC8 Uncompressed Size     000001AE (430)\n-21FCC Filename Length       0042 (66)\n-21FCE Extra Length          0000 (0)\n-21FD0 Comment Length        0000 (0)\n-21FD2 Disk Start            0000 (0)\n-21FD4 Int File Attributes   0000 (0)\n+2218B Compression Method    0008 (8) 'Deflated'\n+2218D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22191 CRC                   8DA26D4C (2376232268)\n+22195 Compressed Size       00000086 (134)\n+22199 Uncompressed Size     000001AE (430)\n+2219D Filename Length       0042 (66)\n+2219F Extra Length          0000 (0)\n+221A1 Comment Length        0000 (0)\n+221A3 Disk Start            0000 (0)\n+221A5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21FD6 Ext File Attributes   81A40000 (2175008768)\n+221A7 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-21FDA Local Header Offset   0001E255 (123477)\n-21FDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+221AB Local Header Offset   0001E42E (123950)\n+221AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21FDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x221AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22020 CENTRAL HEADER #140   02014B50 (33639248)\n-22024 Created Zip Spec      14 (20) '2.0'\n-22025 Created OS            03 (3) 'Unix'\n-22026 Extract Zip Spec      14 (20) '2.0'\n-22027 Extract OS            00 (0) 'MS-DOS'\n-22028 General Purpose Flag  0800 (2048)\n+221F1 CENTRAL HEADER #140   02014B50 (33639248)\n+221F5 Created Zip Spec      14 (20) '2.0'\n+221F6 Created OS            03 (3) 'Unix'\n+221F7 Extract Zip Spec      14 (20) '2.0'\n+221F8 Extract OS            00 (0) 'MS-DOS'\n+221F9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2202A Compression Method    0008 (8) 'Deflated'\n-2202C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22030 CRC                   AE0B59B2 (2919979442)\n-22034 Compressed Size       00000049 (73)\n-22038 Uncompressed Size     00000053 (83)\n-2203C Filename Length       0058 (88)\n-2203E Extra Length          0000 (0)\n-22040 Comment Length        0000 (0)\n-22042 Disk Start            0000 (0)\n-22044 Int File Attributes   0000 (0)\n+221FB Compression Method    0008 (8) 'Deflated'\n+221FD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22201 CRC                   AE0B59B2 (2919979442)\n+22205 Compressed Size       00000049 (73)\n+22209 Uncompressed Size     00000053 (83)\n+2220D Filename Length       0058 (88)\n+2220F Extra Length          0000 (0)\n+22211 Comment Length        0000 (0)\n+22213 Disk Start            0000 (0)\n+22215 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22046 Ext File Attributes   81A40000 (2175008768)\n+22217 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2204A Local Header Offset   0001E33B (123707)\n-2204E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2221B Local Header Offset   0001E514 (124180)\n+2221F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2204E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2221F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-220A6 CENTRAL HEADER #141   02014B50 (33639248)\n-220AA Created Zip Spec      14 (20) '2.0'\n-220AB Created OS            03 (3) 'Unix'\n-220AC Extract Zip Spec      14 (20) '2.0'\n-220AD Extract OS            00 (0) 'MS-DOS'\n-220AE General Purpose Flag  0800 (2048)\n+22277 CENTRAL HEADER #141   02014B50 (33639248)\n+2227B Created Zip Spec      14 (20) '2.0'\n+2227C Created OS            03 (3) 'Unix'\n+2227D Extract Zip Spec      14 (20) '2.0'\n+2227E Extract OS            00 (0) 'MS-DOS'\n+2227F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-220B0 Compression Method    0008 (8) 'Deflated'\n-220B2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-220B6 CRC                   80BC13A6 (2159809446)\n-220BA Compressed Size       00000058 (88)\n-220BE Uncompressed Size     000000A2 (162)\n-220C2 Filename Length       0053 (83)\n-220C4 Extra Length          0000 (0)\n-220C6 Comment Length        0000 (0)\n-220C8 Disk Start            0000 (0)\n-220CA Int File Attributes   0000 (0)\n+22281 Compression Method    0008 (8) 'Deflated'\n+22283 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22287 CRC                   7F3BA707 (2134615815)\n+2228B Compressed Size       00000059 (89)\n+2228F Uncompressed Size     000000A3 (163)\n+22293 Filename Length       0053 (83)\n+22295 Extra Length          0000 (0)\n+22297 Comment Length        0000 (0)\n+22299 Disk Start            0000 (0)\n+2229B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-220CC Ext File Attributes   81A40000 (2175008768)\n+2229D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-220D0 Local Header Offset   0001E3FA (123898)\n-220D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+222A1 Local Header Offset   0001E5D3 (124371)\n+222A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x220D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x222A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22127 CENTRAL HEADER #142   02014B50 (33639248)\n-2212B Created Zip Spec      14 (20) '2.0'\n-2212C Created OS            03 (3) 'Unix'\n-2212D Extract Zip Spec      14 (20) '2.0'\n-2212E Extract OS            00 (0) 'MS-DOS'\n-2212F General Purpose Flag  0800 (2048)\n+222F8 CENTRAL HEADER #142   02014B50 (33639248)\n+222FC Created Zip Spec      14 (20) '2.0'\n+222FD Created OS            03 (3) 'Unix'\n+222FE Extract Zip Spec      14 (20) '2.0'\n+222FF Extract OS            00 (0) 'MS-DOS'\n+22300 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22131 Compression Method    0008 (8) 'Deflated'\n-22133 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22137 CRC                   3E035C22 (1040407586)\n-2213B Compressed Size       000003BC (956)\n-2213F Uncompressed Size     00000A38 (2616)\n-22143 Filename Length       0035 (53)\n-22145 Extra Length          0000 (0)\n-22147 Comment Length        0000 (0)\n-22149 Disk Start            0000 (0)\n-2214B Int File Attributes   0000 (0)\n+22302 Compression Method    0008 (8) 'Deflated'\n+22304 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22308 CRC                   F526CD58 (4112960856)\n+2230C Compressed Size       000003B3 (947)\n+22310 Uncompressed Size     000009F4 (2548)\n+22314 Filename Length       0035 (53)\n+22316 Extra Length          0000 (0)\n+22318 Comment Length        0000 (0)\n+2231A Disk Start            0000 (0)\n+2231C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2214D Ext File Attributes   81A40000 (2175008768)\n+2231E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-22151 Local Header Offset   0001E4C3 (124099)\n-22155 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22322 Local Header Offset   0001E69D (124573)\n+22326 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22155: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22326: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2218A CENTRAL HEADER #143   02014B50 (33639248)\n-2218E Created Zip Spec      14 (20) '2.0'\n-2218F Created OS            03 (3) 'Unix'\n-22190 Extract Zip Spec      14 (20) '2.0'\n-22191 Extract OS            00 (0) 'MS-DOS'\n-22192 General Purpose Flag  0800 (2048)\n+2235B CENTRAL HEADER #143   02014B50 (33639248)\n+2235F Created Zip Spec      14 (20) '2.0'\n+22360 Created OS            03 (3) 'Unix'\n+22361 Extract Zip Spec      14 (20) '2.0'\n+22362 Extract OS            00 (0) 'MS-DOS'\n+22363 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22194 Compression Method    0008 (8) 'Deflated'\n-22196 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2219A CRC                   78750509 (2020934921)\n-2219E Compressed Size       00000042 (66)\n-221A2 Uncompressed Size     00000044 (68)\n-221A6 Filename Length       003C (60)\n-221A8 Extra Length          0000 (0)\n-221AA Comment Length        0000 (0)\n-221AC Disk Start            0000 (0)\n-221AE Int File Attributes   0000 (0)\n+22365 Compression Method    0008 (8) 'Deflated'\n+22367 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2236B CRC                   78750509 (2020934921)\n+2236F Compressed Size       00000042 (66)\n+22373 Uncompressed Size     00000044 (68)\n+22377 Filename Length       003C (60)\n+22379 Extra Length          0000 (0)\n+2237B Comment Length        0000 (0)\n+2237D Disk Start            0000 (0)\n+2237F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-221B0 Ext File Attributes   81A40000 (2175008768)\n+22381 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-221B4 Local Header Offset   0001E8D2 (125138)\n-221B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22385 Local Header Offset   0001EAA3 (125603)\n+22389 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x221B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22389: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-221F4 END CENTRAL HEADER    06054B50 (101010256)\n-221F8 Number of this disk   0000 (0)\n-221FA Central Dir Disk no   0000 (0)\n-221FC Entries in this disk  008F (143)\n-221FE Total Entries         008F (143)\n-22200 Size of Central Dir   00003886 (14470)\n-22204 Offset to Central Dir 0001E96E (125294)\n-22208 Comment Length        0000 (0)\n+223C5 END CENTRAL HEADER    06054B50 (101010256)\n+223C9 Number of this disk   0000 (0)\n+223CB Central Dir Disk no   0000 (0)\n+223CD Entries in this disk  008F (143)\n+223CF Total Entries         008F (143)\n+223D1 Size of Central Dir   00003886 (14470)\n+223D5 Offset to Central Dir 0001EB3F (125759)\n+223D9 Comment Length        0000 (0)\n #\n # Error Count: 34\n # Warning Count: 320\n #\n # Done\n"}, {"source1": "org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,37 +1,37 @@\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.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * If you want to provide a router implementation based on design of v2.7.0, please extend from this abstract class.\n- * For 2.6.x style router, please implement and use RouterFactory directly.\n- */\n-public abstract class CacheableRouterFactory implements RouterFactory {\n-    private ConcurrentMap<String, Router> routerMap = new ConcurrentHashMap<>();\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        return routerMap.computeIfAbsent(url.getServiceKey(), k -> createRouter(url));\n-    }\n-\n-    protected abstract Router createRouter(URL url);\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.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * If you want to provide a router implementation based on design of v2.7.0, please extend from this abstract class.\r\n+ * For 2.6.x style router, please implement and use RouterFactory directly.\r\n+ */\r\n+public abstract class CacheableRouterFactory implements RouterFactory {\r\n+    private ConcurrentMap<String, Router> routerMap = new ConcurrentHashMap<>();\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        return routerMap.computeIfAbsent(url.getServiceKey(), k -> createRouter(url));\r\n+    }\r\n+\r\n+    protected abstract Router createRouter(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/ClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/ClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,40 +1,40 @@\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.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-/**\n- * This is the final Invoker type referenced by the RPC proxy on Consumer side.\n- * <p>\n- * A ClusterInvoker holds a group of normal invokers, stored in a Directory, mapping to one Registry.\n- * The ClusterInvoker implementation usually provides LB or HA policies, like FailoverClusterInvoker.\n- * <p>\n- * In multi-registry subscription scenario, the final ClusterInvoker will refer to several sub ClusterInvokers, with each\n- * sub ClusterInvoker representing one Registry. Take ZoneAwareClusterInvoker as an example, it is specially customized for\n- * multi-registry use cases: first, pick up one ClusterInvoker, then do LB inside the chose ClusterInvoker.\n- *\n- * @param <T>\n- */\n-public interface ClusterInvoker<T> extends Invoker<T> {\n-    URL getRegistryUrl();\n-\n-    Directory<T> getDirectory();\n-\n-    boolean isDestroyed();\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.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+/**\r\n+ * This is the final Invoker type referenced by the RPC proxy on Consumer side.\r\n+ * <p>\r\n+ * A ClusterInvoker holds a group of normal invokers, stored in a Directory, mapping to one Registry.\r\n+ * The ClusterInvoker implementation usually provides LB or HA policies, like FailoverClusterInvoker.\r\n+ * <p>\r\n+ * In multi-registry subscription scenario, the final ClusterInvoker will refer to several sub ClusterInvokers, with each\r\n+ * sub ClusterInvoker representing one Registry. Take ZoneAwareClusterInvoker as an example, it is specially customized for\r\n+ * multi-registry use cases: first, pick up one ClusterInvoker, then do LB inside the chose ClusterInvoker.\r\n+ *\r\n+ * @param <T>\r\n+ */\r\n+public interface ClusterInvoker<T> extends Invoker<T> {\r\n+    URL getRegistryUrl();\r\n+\r\n+    Directory<T> getDirectory();\r\n+\r\n+    boolean isDestroyed();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/Constants.java", "source2": "org/apache/dubbo/rpc/cluster/Constants.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,102 +1,102 @@\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.rpc.cluster;\n-\n-public interface Constants {\n-\n-    String FAIL_BACK_TASKS_KEY = \"failbacktasks\";\n-\n-    int DEFAULT_FAILBACK_TASKS = 100;\n-\n-    int DEFAULT_FORKS = 2;\n-\n-    String WEIGHT_KEY = \"weight\";\n-\n-    int DEFAULT_WEIGHT = 100;\n-\n-    String MOCK_PROTOCOL = \"mock\";\n-\n-    String FORCE_KEY = \"force\";\n-\n-    /**\n-     * To decide whether to exclude unavailable invoker from the cluster\n-     */\n-    String CLUSTER_AVAILABLE_CHECK_KEY = \"cluster.availablecheck\";\n-\n-    /**\n-     * The default value of cluster.availablecheck\n-     *\n-     * @see #CLUSTER_AVAILABLE_CHECK_KEY\n-     */\n-    boolean DEFAULT_CLUSTER_AVAILABLE_CHECK = true;\n-\n-    /**\n-     * To decide whether to enable sticky strategy for cluster\n-     */\n-    String CLUSTER_STICKY_KEY = \"sticky\";\n-\n-    /**\n-     * The default value of sticky\n-     *\n-     * @see #CLUSTER_STICKY_KEY\n-     */\n-    boolean DEFAULT_CLUSTER_STICKY = false;\n-\n-    String ADDRESS_KEY = \"address\";\n-\n-    /**\n-     * When this attribute appears in invocation's attachment, mock invoker will be used\n-     */\n-    String INVOCATION_NEED_MOCK = \"invocation.need.mock\";\n-\n-    /**\n-     * when ROUTER_KEY's value is set to ROUTER_TYPE_CLEAR, RegistryDirectory will clean all current routers\n-     */\n-    String ROUTER_TYPE_CLEAR = \"clean\";\n-\n-    String DEFAULT_SCRIPT_TYPE_KEY = \"javascript\";\n-\n-    String PRIORITY_KEY = \"priority\";\n-\n-    String RULE_KEY = \"rule\";\n-\n-    String TYPE_KEY = \"type\";\n-\n-    String RUNTIME_KEY = \"runtime\";\n-\n-    String WARMUP_KEY = \"warmup\";\n-\n-    int DEFAULT_WARMUP = 10 * 60 * 1000;\n-\n-    String CONFIG_VERSION_KEY = \"configVersion\";\n-\n-    String OVERRIDE_PROVIDERS_KEY = \"providerAddresses\";\n-\n-\n-    /**\n-     * key for router type, for e.g., \"script\"/\"file\",  corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME\n-     */\n-    String ROUTER_KEY = \"router\";\n-    /**\n-     * The key name for reference URL in register center\n-     */\n-    String REFER_KEY = \"refer\";\n-    /**\n-     * The key name for export URL in register center\n-     */\n-    String EXPORT_KEY = \"export\";\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.rpc.cluster;\r\n+\r\n+public interface Constants {\r\n+\r\n+    String FAIL_BACK_TASKS_KEY = \"failbacktasks\";\r\n+\r\n+    int DEFAULT_FAILBACK_TASKS = 100;\r\n+\r\n+    int DEFAULT_FORKS = 2;\r\n+\r\n+    String WEIGHT_KEY = \"weight\";\r\n+\r\n+    int DEFAULT_WEIGHT = 100;\r\n+\r\n+    String MOCK_PROTOCOL = \"mock\";\r\n+\r\n+    String FORCE_KEY = \"force\";\r\n+\r\n+    /**\r\n+     * To decide whether to exclude unavailable invoker from the cluster\r\n+     */\r\n+    String CLUSTER_AVAILABLE_CHECK_KEY = \"cluster.availablecheck\";\r\n+\r\n+    /**\r\n+     * The default value of cluster.availablecheck\r\n+     *\r\n+     * @see #CLUSTER_AVAILABLE_CHECK_KEY\r\n+     */\r\n+    boolean DEFAULT_CLUSTER_AVAILABLE_CHECK = true;\r\n+\r\n+    /**\r\n+     * To decide whether to enable sticky strategy for cluster\r\n+     */\r\n+    String CLUSTER_STICKY_KEY = \"sticky\";\r\n+\r\n+    /**\r\n+     * The default value of sticky\r\n+     *\r\n+     * @see #CLUSTER_STICKY_KEY\r\n+     */\r\n+    boolean DEFAULT_CLUSTER_STICKY = false;\r\n+\r\n+    String ADDRESS_KEY = \"address\";\r\n+\r\n+    /**\r\n+     * When this attribute appears in invocation's attachment, mock invoker will be used\r\n+     */\r\n+    String INVOCATION_NEED_MOCK = \"invocation.need.mock\";\r\n+\r\n+    /**\r\n+     * when ROUTER_KEY's value is set to ROUTER_TYPE_CLEAR, RegistryDirectory will clean all current routers\r\n+     */\r\n+    String ROUTER_TYPE_CLEAR = \"clean\";\r\n+\r\n+    String DEFAULT_SCRIPT_TYPE_KEY = \"javascript\";\r\n+\r\n+    String PRIORITY_KEY = \"priority\";\r\n+\r\n+    String RULE_KEY = \"rule\";\r\n+\r\n+    String TYPE_KEY = \"type\";\r\n+\r\n+    String RUNTIME_KEY = \"runtime\";\r\n+\r\n+    String WARMUP_KEY = \"warmup\";\r\n+\r\n+    int DEFAULT_WARMUP = 10 * 60 * 1000;\r\n+\r\n+    String CONFIG_VERSION_KEY = \"configVersion\";\r\n+\r\n+    String OVERRIDE_PROVIDERS_KEY = \"providerAddresses\";\r\n+\r\n+\r\n+    /**\r\n+     * key for router type, for e.g., \"script\"/\"file\",  corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME\r\n+     */\r\n+    String ROUTER_KEY = \"router\";\r\n+    /**\r\n+     * The key name for reference URL in register center\r\n+     */\r\n+    String REFER_KEY = \"refer\";\r\n+    /**\r\n+     * The key name for export URL in register center\r\n+     */\r\n+    String EXPORT_KEY = \"export\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/RouterChain.java", "source2": "org/apache/dubbo/rpc/cluster/RouterChain.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,112 +1,112 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-/**\n- * Router chain\n- */\n-public class RouterChain<T> {\n-\n-    // full list of addresses from registry, classified by method name.\n-    private List<Invoker<T>> invokers = Collections.emptyList();\n-\n-    // containing all routers, reconstruct every time 'route://' urls change.\n-    private volatile List<Router> routers = Collections.emptyList();\n-\n-    // Fixed router instances: ConfigConditionRouter, TagRouter, e.g., the rule for each instance may change but the\n-    // instance will never delete or recreate.\n-    private List<Router> builtinRouters = Collections.emptyList();\n-\n-    public static <T> RouterChain<T> buildChain(URL url) {\n-        return new RouterChain<>(url);\n-    }\n-\n-    private RouterChain(URL url) {\n-        List<RouterFactory> extensionFactories = ExtensionLoader.getExtensionLoader(RouterFactory.class)\n-                .getActivateExtension(url, \"router\");\n-\n-        List<Router> routers = extensionFactories.stream()\n-                .map(factory -> factory.getRouter(url))\n-                .collect(Collectors.toList());\n-\n-        initWithRouters(routers);\n-    }\n-\n-    /**\n-     * the resident routers must being initialized before address notification.\n-     * FIXME: this method should not be public\n-     */\n-    public void initWithRouters(List<Router> builtinRouters) {\n-        this.builtinRouters = builtinRouters;\n-        this.routers = new ArrayList<>(builtinRouters);\n-        this.sort();\n-    }\n-\n-    /**\n-     * If we use route:// protocol in version before 2.7.0, each URL will generate a Router instance, so we should\n-     * keep the routers up to date, that is, each time router URLs changes, we should update the routers list, only\n-     * keep the builtinRouters which are available all the time and the latest notified routers which are generated\n-     * from URLs.\n-     *\n-     * @param routers routers from 'router://' rules in 2.6.x or before.\n-     */\n-    public void addRouters(List<Router> routers) {\n-        List<Router> newRouters = new ArrayList<>();\n-        newRouters.addAll(builtinRouters);\n-        newRouters.addAll(routers);\n-        CollectionUtils.sort(newRouters);\n-        this.routers = newRouters;\n-    }\n-\n-    private void sort() {\n-        Collections.sort(routers);\n-    }\n-\n-    /**\n-     *\n-     * @param url\n-     * @param invocation\n-     * @return\n-     */\n-    public List<Invoker<T>> route(URL url, Invocation invocation) {\n-        List<Invoker<T>> finalInvokers = invokers;\n-        for (Router router : routers) {\n-            finalInvokers = router.route(finalInvokers, url, invocation);\n-        }\n-        return finalInvokers;\n-    }\n-\n-    /**\n-     * Notify router chain of the initial addresses from registry at the first time.\n-     * Notify whenever addresses in registry change.\n-     */\n-    public void setInvokers(List<Invoker<T>> invokers) {\n-        this.invokers = (invokers == null ? Collections.emptyList() : invokers);\n-        routers.forEach(router -> router.notify(this.invokers));\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.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * Router chain\r\n+ */\r\n+public class RouterChain<T> {\r\n+\r\n+    // full list of addresses from registry, classified by method name.\r\n+    private List<Invoker<T>> invokers = Collections.emptyList();\r\n+\r\n+    // containing all routers, reconstruct every time 'route://' urls change.\r\n+    private volatile List<Router> routers = Collections.emptyList();\r\n+\r\n+    // Fixed router instances: ConfigConditionRouter, TagRouter, e.g., the rule for each instance may change but the\r\n+    // instance will never delete or recreate.\r\n+    private List<Router> builtinRouters = Collections.emptyList();\r\n+\r\n+    public static <T> RouterChain<T> buildChain(URL url) {\r\n+        return new RouterChain<>(url);\r\n+    }\r\n+\r\n+    private RouterChain(URL url) {\r\n+        List<RouterFactory> extensionFactories = ExtensionLoader.getExtensionLoader(RouterFactory.class)\r\n+                .getActivateExtension(url, \"router\");\r\n+\r\n+        List<Router> routers = extensionFactories.stream()\r\n+                .map(factory -> factory.getRouter(url))\r\n+                .collect(Collectors.toList());\r\n+\r\n+        initWithRouters(routers);\r\n+    }\r\n+\r\n+    /**\r\n+     * the resident routers must being initialized before address notification.\r\n+     * FIXME: this method should not be public\r\n+     */\r\n+    public void initWithRouters(List<Router> builtinRouters) {\r\n+        this.builtinRouters = builtinRouters;\r\n+        this.routers = new ArrayList<>(builtinRouters);\r\n+        this.sort();\r\n+    }\r\n+\r\n+    /**\r\n+     * If we use route:// protocol in version before 2.7.0, each URL will generate a Router instance, so we should\r\n+     * keep the routers up to date, that is, each time router URLs changes, we should update the routers list, only\r\n+     * keep the builtinRouters which are available all the time and the latest notified routers which are generated\r\n+     * from URLs.\r\n+     *\r\n+     * @param routers routers from 'router://' rules in 2.6.x or before.\r\n+     */\r\n+    public void addRouters(List<Router> routers) {\r\n+        List<Router> newRouters = new ArrayList<>();\r\n+        newRouters.addAll(builtinRouters);\r\n+        newRouters.addAll(routers);\r\n+        CollectionUtils.sort(newRouters);\r\n+        this.routers = newRouters;\r\n+    }\r\n+\r\n+    private void sort() {\r\n+        Collections.sort(routers);\r\n+    }\r\n+\r\n+    /**\r\n+     *\r\n+     * @param url\r\n+     * @param invocation\r\n+     * @return\r\n+     */\r\n+    public List<Invoker<T>> route(URL url, Invocation invocation) {\r\n+        List<Invoker<T>> finalInvokers = invokers;\r\n+        for (Router router : routers) {\r\n+            finalInvokers = router.route(finalInvokers, url, invocation);\r\n+        }\r\n+        return finalInvokers;\r\n+    }\r\n+\r\n+    /**\r\n+     * Notify router chain of the initial addresses from registry at the first time.\r\n+     * Notify whenever addresses in registry change.\r\n+     */\r\n+    public void setInvokers(List<Invoker<T>> invokers) {\r\n+        this.invokers = (invokers == null ? Collections.emptyList() : invokers);\r\n+        routers.forEach(router -> router.notify(this.invokers));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java", "source2": "org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,225 +1,225 @@\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.rpc.cluster.configurator.parser;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem;\n-import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig;\n-\n-import com.alibaba.fastjson.JSON;\n-import com.alibaba.fastjson.JSONValidator;\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.rpc.cluster.Constants.OVERRIDE_PROVIDERS_KEY;\n-\n-/**\n- * Config parser\n- */\n-public class ConfigParser {\n-\n-    public static List<URL> parseConfigurators(String rawConfig) throws Exception {\n-        // compatible url JsonArray, such as [ \"override://xxx\", \"override://xxx\" ]\n-        if (isJsonArray(rawConfig)) {\n-            return parseJsonArray(rawConfig);\n-        }\n-\n-        List<URL> urls = new ArrayList<>();\n-        ConfiguratorConfig configuratorConfig = parseObject(rawConfig);\n-\n-        String scope = configuratorConfig.getScope();\n-        List<ConfigItem> items = configuratorConfig.getConfigs();\n-\n-        if (ConfiguratorConfig.SCOPE_APPLICATION.equals(scope)) {\n-            items.forEach(item -> urls.addAll(appItemToUrls(item, configuratorConfig)));\n-        } else {\n-            // service scope by default.\n-            items.forEach(item -> urls.addAll(serviceItemToUrls(item, configuratorConfig)));\n-        }\n-        return urls;\n-    }\n-\n-    private static List<URL> parseJsonArray(String rawConfig) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> list = JSON.parseArray(rawConfig, String.class);\n-        if (!CollectionUtils.isEmpty(list)) {\n-            list.forEach(u -> urls.add(URL.valueOf(u)));\n-        }\n-        return urls;\n-    }\n-\n-    private static <T> T parseObject(String rawConfig) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawConfig);\n-        return (T) PojoUtils.mapToPojo(map, ConfiguratorConfig.class);\n-    }\n-\n-    private static List<URL> serviceItemToUrls(ConfigItem item, ConfiguratorConfig config) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> addresses = parseAddresses(item);\n-\n-        addresses.forEach(addr -> {\n-            StringBuilder urlBuilder = new StringBuilder();\n-            urlBuilder.append(\"override://\").append(addr).append(\"/\");\n-\n-            urlBuilder.append(appendService(config.getKey()));\n-            urlBuilder.append(toParameterString(item));\n-\n-            parseEnabled(item, config, urlBuilder);\n-\n-            urlBuilder.append(\"&category=\").append(DYNAMIC_CONFIGURATORS_CATEGORY);\n-            urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\n-\n-            List<String> apps = item.getApplications();\n-            if (CollectionUtils.isNotEmpty(apps)) {\n-                apps.forEach(app -> urls.add(URL.valueOf(urlBuilder.append(\"&application=\").append(app).toString())));\n-            } else {\n-                urls.add(URL.valueOf(urlBuilder.toString()));\n-            }\n-        });\n-\n-        return urls;\n-    }\n-\n-    private static List<URL> appItemToUrls(ConfigItem item, ConfiguratorConfig config) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> addresses = parseAddresses(item);\n-        for (String addr : addresses) {\n-            StringBuilder urlBuilder = new StringBuilder();\n-            urlBuilder.append(\"override://\").append(addr).append(\"/\");\n-            List<String> services = item.getServices();\n-            if (services == null) {\n-                services = new ArrayList<>();\n-            }\n-            if (services.isEmpty()) {\n-                services.add(\"*\");\n-            }\n-            for (String s : services) {\n-                urlBuilder.append(appendService(s));\n-                urlBuilder.append(toParameterString(item));\n-\n-                urlBuilder.append(\"&application=\").append(config.getKey());\n-\n-                parseEnabled(item, config, urlBuilder);\n-\n-                urlBuilder.append(\"&category=\").append(APP_DYNAMIC_CONFIGURATORS_CATEGORY);\n-                urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\n-\n-                urls.add(URL.valueOf(urlBuilder.toString()));\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    private static String toParameterString(ConfigItem item) {\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(\"category=\");\n-        sb.append(DYNAMIC_CONFIGURATORS_CATEGORY);\n-        if (item.getSide() != null) {\n-            sb.append(\"&side=\");\n-            sb.append(item.getSide());\n-        }\n-        Map<String, String> parameters = item.getParameters();\n-        if (CollectionUtils.isEmptyMap(parameters)) {\n-            throw new IllegalStateException(\"Invalid configurator rule, please specify at least one parameter \" +\n-                    \"you want to change in the rule.\");\n-        }\n-\n-        parameters.forEach((k, v) -> {\n-            sb.append(\"&\");\n-            sb.append(k);\n-            sb.append(\"=\");\n-            sb.append(v);\n-        });\n-\n-        if (CollectionUtils.isNotEmpty(item.getProviderAddresses())) {\n-            sb.append(\"&\");\n-            sb.append(OVERRIDE_PROVIDERS_KEY);\n-            sb.append(\"=\");\n-            sb.append(CollectionUtils.join(item.getProviderAddresses(), \",\"));\n-        }\n-\n-        return sb.toString();\n-    }\n-\n-    private static String appendService(String serviceKey) {\n-        StringBuilder sb = new StringBuilder();\n-        if (StringUtils.isEmpty(serviceKey)) {\n-            throw new IllegalStateException(\"service field in configuration is null.\");\n-        }\n-\n-        String interfaceName = serviceKey;\n-        int i = interfaceName.indexOf('/');\n-        if (i > 0) {\n-            sb.append(\"group=\");\n-            sb.append(interfaceName, 0, i);\n-            sb.append(\"&\");\n-\n-            interfaceName = interfaceName.substring(i + 1);\n-        }\n-        int j = interfaceName.indexOf(':');\n-        if (j > 0) {\n-            sb.append(\"version=\");\n-            sb.append(interfaceName.substring(j + 1));\n-            sb.append(\"&\");\n-            interfaceName = interfaceName.substring(0, j);\n-        }\n-        sb.insert(0, interfaceName + \"?\");\n-\n-        return sb.toString();\n-    }\n-\n-    private static void parseEnabled(ConfigItem item, ConfiguratorConfig config, StringBuilder urlBuilder) {\n-        urlBuilder.append(\"&enabled=\");\n-        if (item.getType() == null || ConfigItem.GENERAL_TYPE.equals(item.getType())) {\n-            urlBuilder.append(config.getEnabled());\n-        } else {\n-            urlBuilder.append(item.getEnabled());\n-        }\n-    }\n-\n-    private static List<String> parseAddresses(ConfigItem item) {\n-        List<String> addresses = item.getAddresses();\n-        if (addresses == null) {\n-            addresses = new ArrayList<>();\n-        }\n-        if (addresses.isEmpty()) {\n-            addresses.add(ANYHOST_VALUE);\n-        }\n-        return addresses;\n-    }\n-\n-    private static boolean isJsonArray(String rawConfig) {\n-        try {\n-            JSONValidator validator = JSONValidator.from(rawConfig);\n-            return validator.validate() && validator.getType() == JSONValidator.Type.Array;\n-        } catch (Exception e) {\n-            // ignore exception and return false\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.configurator.parser;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem;\r\n+import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import com.alibaba.fastjson.JSONValidator;\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.OVERRIDE_PROVIDERS_KEY;\r\n+\r\n+/**\r\n+ * Config parser\r\n+ */\r\n+public class ConfigParser {\r\n+\r\n+    public static List<URL> parseConfigurators(String rawConfig) throws Exception {\r\n+        // compatible url JsonArray, such as [ \"override://xxx\", \"override://xxx\" ]\r\n+        if (isJsonArray(rawConfig)) {\r\n+            return parseJsonArray(rawConfig);\r\n+        }\r\n+\r\n+        List<URL> urls = new ArrayList<>();\r\n+        ConfiguratorConfig configuratorConfig = parseObject(rawConfig);\r\n+\r\n+        String scope = configuratorConfig.getScope();\r\n+        List<ConfigItem> items = configuratorConfig.getConfigs();\r\n+\r\n+        if (ConfiguratorConfig.SCOPE_APPLICATION.equals(scope)) {\r\n+            items.forEach(item -> urls.addAll(appItemToUrls(item, configuratorConfig)));\r\n+        } else {\r\n+            // service scope by default.\r\n+            items.forEach(item -> urls.addAll(serviceItemToUrls(item, configuratorConfig)));\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static List<URL> parseJsonArray(String rawConfig) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> list = JSON.parseArray(rawConfig, String.class);\r\n+        if (!CollectionUtils.isEmpty(list)) {\r\n+            list.forEach(u -> urls.add(URL.valueOf(u)));\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static <T> T parseObject(String rawConfig) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawConfig);\r\n+        return (T) PojoUtils.mapToPojo(map, ConfiguratorConfig.class);\r\n+    }\r\n+\r\n+    private static List<URL> serviceItemToUrls(ConfigItem item, ConfiguratorConfig config) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> addresses = parseAddresses(item);\r\n+\r\n+        addresses.forEach(addr -> {\r\n+            StringBuilder urlBuilder = new StringBuilder();\r\n+            urlBuilder.append(\"override://\").append(addr).append(\"/\");\r\n+\r\n+            urlBuilder.append(appendService(config.getKey()));\r\n+            urlBuilder.append(toParameterString(item));\r\n+\r\n+            parseEnabled(item, config, urlBuilder);\r\n+\r\n+            urlBuilder.append(\"&category=\").append(DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+            urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\r\n+\r\n+            List<String> apps = item.getApplications();\r\n+            if (CollectionUtils.isNotEmpty(apps)) {\r\n+                apps.forEach(app -> urls.add(URL.valueOf(urlBuilder.append(\"&application=\").append(app).toString())));\r\n+            } else {\r\n+                urls.add(URL.valueOf(urlBuilder.toString()));\r\n+            }\r\n+        });\r\n+\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static List<URL> appItemToUrls(ConfigItem item, ConfiguratorConfig config) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> addresses = parseAddresses(item);\r\n+        for (String addr : addresses) {\r\n+            StringBuilder urlBuilder = new StringBuilder();\r\n+            urlBuilder.append(\"override://\").append(addr).append(\"/\");\r\n+            List<String> services = item.getServices();\r\n+            if (services == null) {\r\n+                services = new ArrayList<>();\r\n+            }\r\n+            if (services.isEmpty()) {\r\n+                services.add(\"*\");\r\n+            }\r\n+            for (String s : services) {\r\n+                urlBuilder.append(appendService(s));\r\n+                urlBuilder.append(toParameterString(item));\r\n+\r\n+                urlBuilder.append(\"&application=\").append(config.getKey());\r\n+\r\n+                parseEnabled(item, config, urlBuilder);\r\n+\r\n+                urlBuilder.append(\"&category=\").append(APP_DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+                urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\r\n+\r\n+                urls.add(URL.valueOf(urlBuilder.toString()));\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static String toParameterString(ConfigItem item) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(\"category=\");\r\n+        sb.append(DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+        if (item.getSide() != null) {\r\n+            sb.append(\"&side=\");\r\n+            sb.append(item.getSide());\r\n+        }\r\n+        Map<String, String> parameters = item.getParameters();\r\n+        if (CollectionUtils.isEmptyMap(parameters)) {\r\n+            throw new IllegalStateException(\"Invalid configurator rule, please specify at least one parameter \" +\r\n+                    \"you want to change in the rule.\");\r\n+        }\r\n+\r\n+        parameters.forEach((k, v) -> {\r\n+            sb.append(\"&\");\r\n+            sb.append(k);\r\n+            sb.append(\"=\");\r\n+            sb.append(v);\r\n+        });\r\n+\r\n+        if (CollectionUtils.isNotEmpty(item.getProviderAddresses())) {\r\n+            sb.append(\"&\");\r\n+            sb.append(OVERRIDE_PROVIDERS_KEY);\r\n+            sb.append(\"=\");\r\n+            sb.append(CollectionUtils.join(item.getProviderAddresses(), \",\"));\r\n+        }\r\n+\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private static String appendService(String serviceKey) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        if (StringUtils.isEmpty(serviceKey)) {\r\n+            throw new IllegalStateException(\"service field in configuration is null.\");\r\n+        }\r\n+\r\n+        String interfaceName = serviceKey;\r\n+        int i = interfaceName.indexOf('/');\r\n+        if (i > 0) {\r\n+            sb.append(\"group=\");\r\n+            sb.append(interfaceName, 0, i);\r\n+            sb.append(\"&\");\r\n+\r\n+            interfaceName = interfaceName.substring(i + 1);\r\n+        }\r\n+        int j = interfaceName.indexOf(':');\r\n+        if (j > 0) {\r\n+            sb.append(\"version=\");\r\n+            sb.append(interfaceName.substring(j + 1));\r\n+            sb.append(\"&\");\r\n+            interfaceName = interfaceName.substring(0, j);\r\n+        }\r\n+        sb.insert(0, interfaceName + \"?\");\r\n+\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private static void parseEnabled(ConfigItem item, ConfiguratorConfig config, StringBuilder urlBuilder) {\r\n+        urlBuilder.append(\"&enabled=\");\r\n+        if (item.getType() == null || ConfigItem.GENERAL_TYPE.equals(item.getType())) {\r\n+            urlBuilder.append(config.getEnabled());\r\n+        } else {\r\n+            urlBuilder.append(item.getEnabled());\r\n+        }\r\n+    }\r\n+\r\n+    private static List<String> parseAddresses(ConfigItem item) {\r\n+        List<String> addresses = item.getAddresses();\r\n+        if (addresses == null) {\r\n+            addresses = new ArrayList<>();\r\n+        }\r\n+        if (addresses.isEmpty()) {\r\n+            addresses.add(ANYHOST_VALUE);\r\n+        }\r\n+        return addresses;\r\n+    }\r\n+\r\n+    private static boolean isJsonArray(String rawConfig) {\r\n+        try {\r\n+            JSONValidator validator = JSONValidator.from(rawConfig);\r\n+            return validator.validate() && validator.getType() == JSONValidator.Type.Array;\r\n+        } catch (Exception e) {\r\n+            // ignore exception and return false\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java", "source2": "org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,141 +1,141 @@\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.rpc.cluster.directory;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterChain;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-\n-/**\n- * Abstract implementation of Directory: Invoker list returned from this Directory's list method have been filtered by Routers\n- */\n-public abstract class AbstractDirectory<T> implements Directory<T> {\n-\n-    // logger\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractDirectory.class);\n-\n-    private final URL url;\n-\n-    private volatile boolean destroyed = false;\n-\n-    protected volatile URL consumerUrl;\n-\n-    protected final Map<String, String> queryMap; // Initialization at construction time, assertion not null\n-    protected final String consumedProtocol;\n-\n-    protected RouterChain<T> routerChain;\n-\n-    public AbstractDirectory(URL url) {\n-        this(url, null, false);\n-    }\n-\n-    public AbstractDirectory(URL url, boolean isUrlFromRegistry) {\n-        this(url, null, isUrlFromRegistry);\n-    }\n-\n-    public AbstractDirectory(URL url, RouterChain<T> routerChain, boolean isUrlFromRegistry) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url == null\");\n-        }\n-\n-        queryMap = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\n-        String path = queryMap.get(PATH_KEY);\n-        this.consumedProtocol = this.queryMap.get(PROTOCOL_KEY) == null ? DUBBO : this.queryMap.get(PROTOCOL_KEY);\n-        this.url = url.removeParameter(REFER_KEY).removeParameter(MONITOR_KEY);\n-\n-        URL consumerUrlFrom = this.url.setProtocol(consumedProtocol)\n-                .setPath(path == null ? queryMap.get(INTERFACE_KEY) : path);\n-        if (isUrlFromRegistry) {\n-            // reserve parameters if url is already a consumer url\n-            consumerUrlFrom = consumerUrlFrom.clearParameters();\n-        }\n-        this.consumerUrl = consumerUrlFrom.addParameters(queryMap).removeParameter(MONITOR_KEY);\n-\n-        setRouterChain(routerChain);\n-    }\n-\n-    @Override\n-    public List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        if (destroyed) {\n-            throw new RpcException(\"Directory already destroyed .url: \" + getUrl());\n-        }\n-\n-        return doList(invocation);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public RouterChain<T> getRouterChain() {\n-        return routerChain;\n-    }\n-\n-    public void setRouterChain(RouterChain<T> routerChain) {\n-        this.routerChain = routerChain;\n-    }\n-\n-    protected void addRouters(List<Router> routers) {\n-        routers = routers == null ? Collections.emptyList() : routers;\n-        routerChain.addRouters(routers);\n-    }\n-\n-    public URL getConsumerUrl() {\n-        return consumerUrl;\n-    }\n-\n-    public void setConsumerUrl(URL consumerUrl) {\n-        this.consumerUrl = consumerUrl;\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return destroyed;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        destroyed = true;\n-    }\n-\n-    @Override\n-    public void discordAddresses() {\n-        // do nothing by default\n-    }\n-\n-    protected abstract List<Invoker<T>> doList(Invocation invocation) throws RpcException;\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.rpc.cluster.directory;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterChain;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+\r\n+/**\r\n+ * Abstract implementation of Directory: Invoker list returned from this Directory's list method have been filtered by Routers\r\n+ */\r\n+public abstract class AbstractDirectory<T> implements Directory<T> {\r\n+\r\n+    // logger\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractDirectory.class);\r\n+\r\n+    private final URL url;\r\n+\r\n+    private volatile boolean destroyed = false;\r\n+\r\n+    protected volatile URL consumerUrl;\r\n+\r\n+    protected final Map<String, String> queryMap; // Initialization at construction time, assertion not null\r\n+    protected final String consumedProtocol;\r\n+\r\n+    protected RouterChain<T> routerChain;\r\n+\r\n+    public AbstractDirectory(URL url) {\r\n+        this(url, null, false);\r\n+    }\r\n+\r\n+    public AbstractDirectory(URL url, boolean isUrlFromRegistry) {\r\n+        this(url, null, isUrlFromRegistry);\r\n+    }\r\n+\r\n+    public AbstractDirectory(URL url, RouterChain<T> routerChain, boolean isUrlFromRegistry) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url == null\");\r\n+        }\r\n+\r\n+        queryMap = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\r\n+        String path = queryMap.get(PATH_KEY);\r\n+        this.consumedProtocol = this.queryMap.get(PROTOCOL_KEY) == null ? DUBBO : this.queryMap.get(PROTOCOL_KEY);\r\n+        this.url = url.removeParameter(REFER_KEY).removeParameter(MONITOR_KEY);\r\n+\r\n+        URL consumerUrlFrom = this.url.setProtocol(consumedProtocol)\r\n+                .setPath(path == null ? queryMap.get(INTERFACE_KEY) : path);\r\n+        if (isUrlFromRegistry) {\r\n+            // reserve parameters if url is already a consumer url\r\n+            consumerUrlFrom = consumerUrlFrom.clearParameters();\r\n+        }\r\n+        this.consumerUrl = consumerUrlFrom.addParameters(queryMap).removeParameter(MONITOR_KEY);\r\n+\r\n+        setRouterChain(routerChain);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        if (destroyed) {\r\n+            throw new RpcException(\"Directory already destroyed .url: \" + getUrl());\r\n+        }\r\n+\r\n+        return doList(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public RouterChain<T> getRouterChain() {\r\n+        return routerChain;\r\n+    }\r\n+\r\n+    public void setRouterChain(RouterChain<T> routerChain) {\r\n+        this.routerChain = routerChain;\r\n+    }\r\n+\r\n+    protected void addRouters(List<Router> routers) {\r\n+        routers = routers == null ? Collections.emptyList() : routers;\r\n+        routerChain.addRouters(routers);\r\n+    }\r\n+\r\n+    public URL getConsumerUrl() {\r\n+        return consumerUrl;\r\n+    }\r\n+\r\n+    public void setConsumerUrl(URL consumerUrl) {\r\n+        this.consumerUrl = consumerUrl;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return destroyed;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        destroyed = true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void discordAddresses() {\r\n+        // do nothing by default\r\n+    }\r\n+\r\n+    protected abstract List<Invoker<T>> doList(Invocation invocation) throws RpcException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java", "source2": "org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,40 +1,40 @@\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.rpc.cluster.governance;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-public class DefaultGovernanceRuleRepositoryImpl implements GovernanceRuleRepository {\n-\n-    private DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        dynamicConfiguration.addListener(key, group, listener);\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        dynamicConfiguration.removeListener(key, group, listener);\n-    }\n-\n-    @Override\n-    public String getRule(String key, String group, long timeout) throws IllegalStateException {\n-        return dynamicConfiguration.getConfig(key, group, timeout);\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.rpc.cluster.governance;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+public class DefaultGovernanceRuleRepositoryImpl implements GovernanceRuleRepository {\r\n+\r\n+    private DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        dynamicConfiguration.addListener(key, group, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        dynamicConfiguration.removeListener(key, group, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getRule(String key, String group, long timeout) throws IllegalStateException {\r\n+        return dynamicConfiguration.getConfig(key, group, timeout);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java", "source2": "org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,91 +1,91 @@\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.rpc.cluster.governance;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI(\"default\")\n-public interface GovernanceRuleRepository {\n-\n-    String DEFAULT_GROUP = \"dubbo\";\n-\n-    /**\n-     * {@link #addListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void addListener(String key, ConfigurationListener listener) {\n-        addListener(key, DEFAULT_GROUP, listener);\n-    }\n-\n-\n-    /**\n-     * {@link #removeListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void removeListener(String key, ConfigurationListener listener) {\n-        removeListener(key, DEFAULT_GROUP, listener);\n-    }\n-\n-    /**\n-     * Register a configuration listener for a specified key\n-     * The listener only works for service governance purpose, so the target group would always be the value user\n-     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\n-     * trigger a notification that contains the current value.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void addListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Stops one listener from listening to value changes in the specified key.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void removeListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Get the governance rule mapped to the given key and the given group\n-     *\n-     * @param key   the key to represent a configuration\n-     * @param group the group where the key belongs to\n-     * @return target configuration mapped to the given key and the given group\n-     */\n-    default String getRule(String key, String group) {\n-        return getRule(key, group, -1L);\n-    }\n-\n-    /**\n-     * Get the governance rule mapped to the given key and the given group. If the\n-     * rule fails to return after timeout exceeds, IllegalStateException will be thrown.\n-     *\n-     * @param key     the key to represent a configuration\n-     * @param group   the group where the key belongs to\n-     * @param timeout timeout value for fetching the target config\n-     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\n-     * if timeout exceeds.\n-     */\n-    String getRule(String key, String group, long timeout) throws IllegalStateException;\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.rpc.cluster.governance;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI(\"default\")\r\n+public interface GovernanceRuleRepository {\r\n+\r\n+    String DEFAULT_GROUP = \"dubbo\";\r\n+\r\n+    /**\r\n+     * {@link #addListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void addListener(String key, ConfigurationListener listener) {\r\n+        addListener(key, DEFAULT_GROUP, listener);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * {@link #removeListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void removeListener(String key, ConfigurationListener listener) {\r\n+        removeListener(key, DEFAULT_GROUP, listener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Register a configuration listener for a specified key\r\n+     * The listener only works for service governance purpose, so the target group would always be the value user\r\n+     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\r\n+     * trigger a notification that contains the current value.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void addListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Stops one listener from listening to value changes in the specified key.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void removeListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Get the governance rule mapped to the given key and the given group\r\n+     *\r\n+     * @param key   the key to represent a configuration\r\n+     * @param group the group where the key belongs to\r\n+     * @return target configuration mapped to the given key and the given group\r\n+     */\r\n+    default String getRule(String key, String group) {\r\n+        return getRule(key, group, -1L);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the governance rule mapped to the given key and the given group. If the\r\n+     * rule fails to return after timeout exceeds, IllegalStateException will be thrown.\r\n+     *\r\n+     * @param key     the key to represent a configuration\r\n+     * @param group   the group where the key belongs to\r\n+     * @param timeout timeout value for fetching the target config\r\n+     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\r\n+     * if timeout exceeds.\r\n+     */\r\n+    String getRule(String key, String group, long timeout) throws IllegalStateException;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,56 +1,56 @@\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.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-/**\n- * Different from {@link Filter}, ClusterInterceptor works at the outmost layer, before one specific address/invoker is picked.\n- */\n-@SPI\n-public interface ClusterInterceptor {\n-\n-    void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-    void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-    /**\n-     * Does not need to override this method, override {@link #before(AbstractClusterInvoker, Invocation)}\n-     * and {@link #after(AbstractClusterInvoker, Invocation)}, methods to add your own logic expected to be\n-     * executed before and after invoke.\n-     *\n-     * @param clusterInvoker\n-     * @param invocation\n-     * @return\n-     * @throws RpcException\n-     */\n-    default Result intercept(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) throws RpcException {\n-        return clusterInvoker.invoke(invocation);\n-    }\n-\n-    interface Listener {\n-\n-        void onMessage(Result appResponse, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-        void onError(Throwable t, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\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.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+/**\r\n+ * Different from {@link Filter}, ClusterInterceptor works at the outmost layer, before one specific address/invoker is picked.\r\n+ */\r\n+@SPI\r\n+public interface ClusterInterceptor {\r\n+\r\n+    void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+    void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+    /**\r\n+     * Does not need to override this method, override {@link #before(AbstractClusterInvoker, Invocation)}\r\n+     * and {@link #after(AbstractClusterInvoker, Invocation)}, methods to add your own logic expected to be\r\n+     * executed before and after invoke.\r\n+     *\r\n+     * @param clusterInvoker\r\n+     * @param invocation\r\n+     * @return\r\n+     * @throws RpcException\r\n+     */\r\n+    default Result intercept(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) throws RpcException {\r\n+        return clusterInvoker.invoke(invocation);\r\n+    }\r\n+\r\n+    interface Listener {\r\n+\r\n+        void onMessage(Result appResponse, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+        void onError(Throwable t, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,54 +1,54 @@\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.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-@Activate\n-public class ConsumerContextClusterInterceptor implements ClusterInterceptor, ClusterInterceptor.Listener {\n-\n-    @Override\n-    public void before(AbstractClusterInvoker<?> invoker, Invocation invocation) {\n-        RpcContext context = RpcContext.getContext();\n-        context.setInvocation(invocation).setLocalAddress(NetUtils.getLocalHost(), 0);\n-        if (invocation instanceof RpcInvocation) {\n-            ((RpcInvocation) invocation).setInvoker(invoker);\n-        }\n-        RpcContext.removeServerContext();\n-    }\n-\n-    @Override\n-    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\n-        RpcContext.removeContext(true);\n-    }\n-\n-    @Override\n-    public void onMessage(Result appResponse, AbstractClusterInvoker<?> invoker, Invocation invocation) {\n-        RpcContext.getServerContext().setObjectAttachments(appResponse.getObjectAttachments());\n-    }\n-\n-    @Override\n-    public void onError(Throwable t, AbstractClusterInvoker<?> invoker, Invocation invocation) {\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.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+@Activate\r\n+public class ConsumerContextClusterInterceptor implements ClusterInterceptor, ClusterInterceptor.Listener {\r\n+\r\n+    @Override\r\n+    public void before(AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setInvocation(invocation).setLocalAddress(NetUtils.getLocalHost(), 0);\r\n+        if (invocation instanceof RpcInvocation) {\r\n+            ((RpcInvocation) invocation).setInvoker(invoker);\r\n+        }\r\n+        RpcContext.removeServerContext();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+        RpcContext.removeContext(true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onMessage(Result appResponse, AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+        RpcContext.getServerContext().setObjectAttachments(appResponse.getObjectAttachments());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onError(Throwable t, AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,62 +1,62 @@\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.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.ZoneDetector;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\n-\n-/**\n- * Determines the zone information of current request.\n- *\n- * active only when url has key 'cluster=zone-aware'\n- */\n-@Activate(value = \"cluster:zone-aware\")\n-public class ZoneAwareClusterInterceptor implements ClusterInterceptor {\n-\n-    @Override\n-    public void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\n-        RpcContext rpcContext = RpcContext.getContext();\n-        String zone = (String) rpcContext.getAttachment(REGISTRY_ZONE);\n-        String force = (String) rpcContext.getAttachment(REGISTRY_ZONE_FORCE);\n-        ExtensionLoader<ZoneDetector> loader = ExtensionLoader.getExtensionLoader(ZoneDetector.class);\n-        if (StringUtils.isEmpty(zone) && loader.hasExtension(\"default\")) {\n-            ZoneDetector detector = loader.getExtension(\"default\");\n-            zone = detector.getZoneOfCurrentRequest(invocation);\n-            force = detector.isZoneForcingEnabled(invocation, zone);\n-        }\n-\n-        if (StringUtils.isNotEmpty(zone)) {\n-            invocation.setAttachment(REGISTRY_ZONE, zone);\n-        }\n-        if (StringUtils.isNotEmpty(force)) {\n-            invocation.setAttachment(REGISTRY_ZONE_FORCE, force);\n-        }\n-    }\n-\n-    @Override\n-    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\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.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.ZoneDetector;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\r\n+\r\n+/**\r\n+ * Determines the zone information of current request.\r\n+ *\r\n+ * active only when url has key 'cluster=zone-aware'\r\n+ */\r\n+@Activate(value = \"cluster:zone-aware\")\r\n+public class ZoneAwareClusterInterceptor implements ClusterInterceptor {\r\n+\r\n+    @Override\r\n+    public void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+        RpcContext rpcContext = RpcContext.getContext();\r\n+        String zone = (String) rpcContext.getAttachment(REGISTRY_ZONE);\r\n+        String force = (String) rpcContext.getAttachment(REGISTRY_ZONE_FORCE);\r\n+        ExtensionLoader<ZoneDetector> loader = ExtensionLoader.getExtensionLoader(ZoneDetector.class);\r\n+        if (StringUtils.isEmpty(zone) && loader.hasExtension(\"default\")) {\r\n+            ZoneDetector detector = loader.getExtension(\"default\");\r\n+            zone = detector.getZoneOfCurrentRequest(invocation);\r\n+            force = detector.isZoneForcingEnabled(invocation, zone);\r\n+        }\r\n+\r\n+        if (StringUtils.isNotEmpty(zone)) {\r\n+            invocation.setAttachment(REGISTRY_ZONE, zone);\r\n+        }\r\n+        if (StringUtils.isNotEmpty(force)) {\r\n+            invocation.setAttachment(REGISTRY_ZONE_FORCE, force);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java", "source2": "org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,80 +1,80 @@\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.rpc.cluster.loadbalance;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.List;\n-import java.util.concurrent.ThreadLocalRandom;\n-\n-/**\n- * This class select one provider from multiple providers randomly.\n- * You can define weights for each provider:\n- * If the weights are all the same then it will use random.nextInt(number of invokers).\n- * If the weights are different then it will use random.nextInt(w1 + w2 + ... + wn)\n- * Note that if the performance of the machine is better than others, you can set a larger weight.\n- * If the performance is not so good, you can set a smaller weight.\n- */\n-public class RandomLoadBalance extends AbstractLoadBalance {\n-\n-    public static final String NAME = \"random\";\n-\n-    /**\n-     * Select one invoker between a list using a random criteria\n-     * @param invokers List of possible invokers\n-     * @param url URL\n-     * @param invocation Invocation\n-     * @param <T>\n-     * @return The selected invoker\n-     */\n-    @Override\n-    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        // Number of invokers\n-        int length = invokers.size();\n-        // Every invoker has the same weight?\n-        boolean sameWeight = true;\n-        // the maxWeight of every invokers, the minWeight = 0 or the maxWeight of the last invoker\n-        int[] weights = new int[length];\n-        // The sum of weights\n-        int totalWeight = 0;\n-        for (int i = 0; i < length; i++) {\n-            int weight = getWeight(invokers.get(i), invocation);\n-            // Sum\n-            totalWeight += weight;\n-            // save for later use\n-            weights[i] = totalWeight;\n-            if (sameWeight && totalWeight != weight * (i + 1)) {\n-                sameWeight = false;\n-            }\n-        }\n-        if (totalWeight > 0 && !sameWeight) {\n-            // If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on totalWeight.\n-            int offset = ThreadLocalRandom.current().nextInt(totalWeight);\n-            // Return a invoker based on the random value.\n-            for (int i = 0; i < length; i++) {\n-                if (offset < weights[i]) {\n-                    return invokers.get(i);\n-                }\n-            }\n-        }\n-        // If all invokers have the same weight value or totalWeight=0, return evenly.\n-        return invokers.get(ThreadLocalRandom.current().nextInt(length));\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.rpc.cluster.loadbalance;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+\r\n+/**\r\n+ * This class select one provider from multiple providers randomly.\r\n+ * You can define weights for each provider:\r\n+ * If the weights are all the same then it will use random.nextInt(number of invokers).\r\n+ * If the weights are different then it will use random.nextInt(w1 + w2 + ... + wn)\r\n+ * Note that if the performance of the machine is better than others, you can set a larger weight.\r\n+ * If the performance is not so good, you can set a smaller weight.\r\n+ */\r\n+public class RandomLoadBalance extends AbstractLoadBalance {\r\n+\r\n+    public static final String NAME = \"random\";\r\n+\r\n+    /**\r\n+     * Select one invoker between a list using a random criteria\r\n+     * @param invokers List of possible invokers\r\n+     * @param url URL\r\n+     * @param invocation Invocation\r\n+     * @param <T>\r\n+     * @return The selected invoker\r\n+     */\r\n+    @Override\r\n+    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        // Number of invokers\r\n+        int length = invokers.size();\r\n+        // Every invoker has the same weight?\r\n+        boolean sameWeight = true;\r\n+        // the maxWeight of every invokers, the minWeight = 0 or the maxWeight of the last invoker\r\n+        int[] weights = new int[length];\r\n+        // The sum of weights\r\n+        int totalWeight = 0;\r\n+        for (int i = 0; i < length; i++) {\r\n+            int weight = getWeight(invokers.get(i), invocation);\r\n+            // Sum\r\n+            totalWeight += weight;\r\n+            // save for later use\r\n+            weights[i] = totalWeight;\r\n+            if (sameWeight && totalWeight != weight * (i + 1)) {\r\n+                sameWeight = false;\r\n+            }\r\n+        }\r\n+        if (totalWeight > 0 && !sameWeight) {\r\n+            // If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on totalWeight.\r\n+            int offset = ThreadLocalRandom.current().nextInt(totalWeight);\r\n+            // Return a invoker based on the random value.\r\n+            for (int i = 0; i < length; i++) {\r\n+                if (offset < weights[i]) {\r\n+                    return invokers.get(i);\r\n+                }\r\n+            }\r\n+        }\r\n+        // If all invokers have the same weight value or totalWeight=0, return evenly.\r\n+        return invokers.get(ThreadLocalRandom.current().nextInt(length));\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java", "source2": "org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,100 +1,100 @@\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.rpc.cluster.loadbalance;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcStatus;\n-\n-import java.util.List;\n-import java.util.concurrent.ThreadLocalRandom;\n-\n-/**\n- * ShortestResponseLoadBalance\n- * </p>\n- * Filter the number of invokers with the shortest response time of success calls and count the weights and quantities of these invokers.\n- * If there is only one invoker, use the invoker directly;\n- * if there are multiple invokers and the weights are not the same, then random according to the total weight;\n- * if there are multiple invokers and the same weight, then randomly called.\n- */\n-public class ShortestResponseLoadBalance extends AbstractLoadBalance {\n-\n-    public static final String NAME = \"shortestresponse\";\n-\n-    @Override\n-    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        // Number of invokers\n-        int length = invokers.size();\n-        // Estimated shortest response time of all invokers\n-        long shortestResponse = Long.MAX_VALUE;\n-        // The number of invokers having the same estimated shortest response time\n-        int shortestCount = 0;\n-        // The index of invokers having the same estimated shortest response time\n-        int[] shortestIndexes = new int[length];\n-        // the weight of every invokers\n-        int[] weights = new int[length];\n-        // The sum of the warmup weights of all the shortest response  invokers\n-        int totalWeight = 0;\n-        // The weight of the first shortest response invokers\n-        int firstWeight = 0;\n-        // Every shortest response invoker has the same weight value?\n-        boolean sameWeight = true;\n-\n-        // Filter out all the shortest response invokers\n-        for (int i = 0; i < length; i++) {\n-            Invoker<T> invoker = invokers.get(i);\n-            RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), invocation.getMethodName());\n-            // Calculate the estimated response time from the product of active connections and succeeded average elapsed time.\n-            long succeededAverageElapsed = rpcStatus.getSucceededAverageElapsed();\n-            int active = rpcStatus.getActive();\n-            long estimateResponse = succeededAverageElapsed * active;\n-            int afterWarmup = getWeight(invoker, invocation);\n-            weights[i] = afterWarmup;\n-            // Same as LeastActiveLoadBalance\n-            if (estimateResponse < shortestResponse) {\n-                shortestResponse = estimateResponse;\n-                shortestCount = 1;\n-                shortestIndexes[0] = i;\n-                totalWeight = afterWarmup;\n-                firstWeight = afterWarmup;\n-                sameWeight = true;\n-            } else if (estimateResponse == shortestResponse) {\n-                shortestIndexes[shortestCount++] = i;\n-                totalWeight += afterWarmup;\n-                if (sameWeight && i > 0\n-                        && afterWarmup != firstWeight) {\n-                    sameWeight = false;\n-                }\n-            }\n-        }\n-        if (shortestCount == 1) {\n-            return invokers.get(shortestIndexes[0]);\n-        }\n-        if (!sameWeight && totalWeight > 0) {\n-            int offsetWeight = ThreadLocalRandom.current().nextInt(totalWeight);\n-            for (int i = 0; i < shortestCount; i++) {\n-                int shortestIndex = shortestIndexes[i];\n-                offsetWeight -= weights[shortestIndex];\n-                if (offsetWeight < 0) {\n-                    return invokers.get(shortestIndex);\n-                }\n-            }\n-        }\n-        return invokers.get(shortestIndexes[ThreadLocalRandom.current().nextInt(shortestCount)]);\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.rpc.cluster.loadbalance;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcStatus;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+\r\n+/**\r\n+ * ShortestResponseLoadBalance\r\n+ * </p>\r\n+ * Filter the number of invokers with the shortest response time of success calls and count the weights and quantities of these invokers.\r\n+ * If there is only one invoker, use the invoker directly;\r\n+ * if there are multiple invokers and the weights are not the same, then random according to the total weight;\r\n+ * if there are multiple invokers and the same weight, then randomly called.\r\n+ */\r\n+public class ShortestResponseLoadBalance extends AbstractLoadBalance {\r\n+\r\n+    public static final String NAME = \"shortestresponse\";\r\n+\r\n+    @Override\r\n+    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        // Number of invokers\r\n+        int length = invokers.size();\r\n+        // Estimated shortest response time of all invokers\r\n+        long shortestResponse = Long.MAX_VALUE;\r\n+        // The number of invokers having the same estimated shortest response time\r\n+        int shortestCount = 0;\r\n+        // The index of invokers having the same estimated shortest response time\r\n+        int[] shortestIndexes = new int[length];\r\n+        // the weight of every invokers\r\n+        int[] weights = new int[length];\r\n+        // The sum of the warmup weights of all the shortest response  invokers\r\n+        int totalWeight = 0;\r\n+        // The weight of the first shortest response invokers\r\n+        int firstWeight = 0;\r\n+        // Every shortest response invoker has the same weight value?\r\n+        boolean sameWeight = true;\r\n+\r\n+        // Filter out all the shortest response invokers\r\n+        for (int i = 0; i < length; i++) {\r\n+            Invoker<T> invoker = invokers.get(i);\r\n+            RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), invocation.getMethodName());\r\n+            // Calculate the estimated response time from the product of active connections and succeeded average elapsed time.\r\n+            long succeededAverageElapsed = rpcStatus.getSucceededAverageElapsed();\r\n+            int active = rpcStatus.getActive();\r\n+            long estimateResponse = succeededAverageElapsed * active;\r\n+            int afterWarmup = getWeight(invoker, invocation);\r\n+            weights[i] = afterWarmup;\r\n+            // Same as LeastActiveLoadBalance\r\n+            if (estimateResponse < shortestResponse) {\r\n+                shortestResponse = estimateResponse;\r\n+                shortestCount = 1;\r\n+                shortestIndexes[0] = i;\r\n+                totalWeight = afterWarmup;\r\n+                firstWeight = afterWarmup;\r\n+                sameWeight = true;\r\n+            } else if (estimateResponse == shortestResponse) {\r\n+                shortestIndexes[shortestCount++] = i;\r\n+                totalWeight += afterWarmup;\r\n+                if (sameWeight && i > 0\r\n+                        && afterWarmup != firstWeight) {\r\n+                    sameWeight = false;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (shortestCount == 1) {\r\n+            return invokers.get(shortestIndexes[0]);\r\n+        }\r\n+        if (!sameWeight && totalWeight > 0) {\r\n+            int offsetWeight = ThreadLocalRandom.current().nextInt(totalWeight);\r\n+            for (int i = 0; i < shortestCount; i++) {\r\n+                int shortestIndex = shortestIndexes[i];\r\n+                offsetWeight -= weights[shortestIndex];\r\n+                if (offsetWeight < 0) {\r\n+                    return invokers.get(shortestIndex);\r\n+                }\r\n+            }\r\n+        }\r\n+        return invokers.get(shortestIndexes[ThreadLocalRandom.current().nextInt(shortestCount)]);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,37 +1,37 @@\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-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class DoubleArrayMerger implements Merger<double[]> {\n-\n-    @Override\n-    public double[] merge(double[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new double[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToDouble(Arrays::stream)\n-                .toArray();\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+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class DoubleArrayMerger implements Merger<double[]> {\r\n+\r\n+    @Override\r\n+    public double[] merge(double[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new double[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToDouble(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,38 +1,38 @@\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-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class IntArrayMerger implements Merger<int[]> {\n-\n-    @Override\n-    public int[] merge(int[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new int[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToInt(Arrays::stream)\n-                .toArray();\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+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class IntArrayMerger implements Merger<int[]> {\r\n+\r\n+    @Override\r\n+    public int[] merge(int[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new int[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToInt(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/ListMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/ListMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,43 +1,43 @@\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-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Objects;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-\n-public class ListMerger implements Merger<List<?>> {\n-\n-    @Override\n-    public List<Object> merge(List<?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptyList();\n-        }\n-        return Stream.of(items).filter(Objects::nonNull)\n-                .flatMap(Collection::stream)\n-                .collect(Collectors.toList());\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+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class ListMerger implements Merger<List<?>> {\r\n+\r\n+    @Override\r\n+    public List<Object> merge(List<?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return Stream.of(items).filter(Objects::nonNull)\r\n+                .flatMap(Collection::stream)\r\n+                .collect(Collectors.toList());\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,37 +1,37 @@\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-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class LongArrayMerger implements Merger<long[]> {\n-\n-    @Override\n-    public long[] merge(long[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new long[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToLong(Arrays::stream)\n-                .toArray();\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+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class LongArrayMerger implements Merger<long[]> {\r\n+\r\n+    @Override\r\n+    public long[] merge(long[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new long[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToLong(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/MapMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/MapMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,40 +1,40 @@\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.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.stream.Stream;\n-\n-public class MapMerger implements Merger<Map<?, ?>> {\n-\n-    @Override\n-    public Map<?, ?> merge(Map<?, ?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptyMap();\n-        }\n-        Map<Object, Object> result = new HashMap<Object, Object>();\n-        Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);\n-        return result;\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.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class MapMerger implements Merger<Map<?, ?>> {\r\n+\r\n+    @Override\r\n+    public Map<?, ?> merge(Map<?, ?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+        Map<Object, Object> result = new HashMap<Object, Object>();\r\n+        Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);\r\n+        return result;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/MergerFactory.java", "source2": "org/apache/dubbo/rpc/cluster/merger/MergerFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,76 +1,76 @@\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-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class MergerFactory {\n-\n-    private static final ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE =\n-            new ConcurrentHashMap<Class<?>, Merger<?>>();\n-\n-    /**\n-     * Find the merger according to the returnType class, the merger will\n-     * merge an array of returnType into one\n-     *\n-     * @param returnType the merger will return this type\n-     * @return the merger which merges an array of returnType into one, return null if not exist\n-     * @throws IllegalArgumentException if returnType is null\n-     */\n-    public static <T> Merger<T> getMerger(Class<T> returnType) {\n-        if (returnType == null) {\n-            throw new IllegalArgumentException(\"returnType is null\");\n-        }\n-\n-        Merger result;\n-        if (returnType.isArray()) {\n-            Class type = returnType.getComponentType();\n-            result = MERGER_CACHE.get(type);\n-            if (result == null) {\n-                loadMergers();\n-                result = MERGER_CACHE.get(type);\n-            }\n-            if (result == null && !type.isPrimitive()) {\n-                result = ArrayMerger.INSTANCE;\n-            }\n-        } else {\n-            result = MERGER_CACHE.get(returnType);\n-            if (result == null) {\n-                loadMergers();\n-                result = MERGER_CACHE.get(returnType);\n-            }\n-        }\n-        return result;\n-    }\n-\n-    static void loadMergers() {\n-        Set<String> names = ExtensionLoader.getExtensionLoader(Merger.class)\n-                .getSupportedExtensions();\n-        for (String name : names) {\n-            Merger m = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(name);\n-            MERGER_CACHE.putIfAbsent(ReflectUtils.getGenericClass(m.getClass()), m);\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+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class MergerFactory {\r\n+\r\n+    private static final ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE =\r\n+            new ConcurrentHashMap<Class<?>, Merger<?>>();\r\n+\r\n+    /**\r\n+     * Find the merger according to the returnType class, the merger will\r\n+     * merge an array of returnType into one\r\n+     *\r\n+     * @param returnType the merger will return this type\r\n+     * @return the merger which merges an array of returnType into one, return null if not exist\r\n+     * @throws IllegalArgumentException if returnType is null\r\n+     */\r\n+    public static <T> Merger<T> getMerger(Class<T> returnType) {\r\n+        if (returnType == null) {\r\n+            throw new IllegalArgumentException(\"returnType is null\");\r\n+        }\r\n+\r\n+        Merger result;\r\n+        if (returnType.isArray()) {\r\n+            Class type = returnType.getComponentType();\r\n+            result = MERGER_CACHE.get(type);\r\n+            if (result == null) {\r\n+                loadMergers();\r\n+                result = MERGER_CACHE.get(type);\r\n+            }\r\n+            if (result == null && !type.isPrimitive()) {\r\n+                result = ArrayMerger.INSTANCE;\r\n+            }\r\n+        } else {\r\n+            result = MERGER_CACHE.get(returnType);\r\n+            if (result == null) {\r\n+                loadMergers();\r\n+                result = MERGER_CACHE.get(returnType);\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    static void loadMergers() {\r\n+        Set<String> names = ExtensionLoader.getExtensionLoader(Merger.class)\r\n+                .getSupportedExtensions();\r\n+        for (String name : names) {\r\n+            Merger m = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(name);\r\n+            MERGER_CACHE.putIfAbsent(ReflectUtils.getGenericClass(m.getClass()), m);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/SetMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/SetMerger.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,39 +1,39 @@\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.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.stream.Stream;\n-\n-public class SetMerger implements Merger<Set<?>> {\n-\n-    @Override\n-    public Set<Object> merge(Set<?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptySet();\n-        }\n-        Set<Object> result = new HashSet<Object>();\n-        Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);\n-        return result;\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.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class SetMerger implements Merger<Set<?>> {\r\n+\r\n+    @Override\r\n+    public Set<Object> merge(Set<?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptySet();\r\n+        }\r\n+        Set<Object> result = new HashSet<Object>();\r\n+        Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);\r\n+        return result;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/AbstractRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/AbstractRouter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,71 +1,71 @@\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.rpc.cluster.router;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\n-\n-public abstract class AbstractRouter implements Router {\n-    protected int priority = DEFAULT_PRIORITY;\n-    protected boolean force = false;\n-    protected URL url;\n-\n-    protected GovernanceRuleRepository ruleRepository;\n-\n-    public AbstractRouter(URL url) {\n-        this.ruleRepository = ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension();\n-        this.url = url;\n-    }\n-\n-    public AbstractRouter() {\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public void setUrl(URL url) {\n-        this.url = url;\n-    }\n-\n-    @Override\n-    public boolean isRuntime() {\n-        return true;\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        return force;\n-    }\n-\n-    public void setForce(boolean force) {\n-        this.force = force;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return priority;\n-    }\n-\n-    public void setPriority(int priority) {\n-        this.priority = priority;\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.rpc.cluster.router;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\r\n+\r\n+public abstract class AbstractRouter implements Router {\r\n+    protected int priority = DEFAULT_PRIORITY;\r\n+    protected boolean force = false;\r\n+    protected URL url;\r\n+\r\n+    protected GovernanceRuleRepository ruleRepository;\r\n+\r\n+    public AbstractRouter(URL url) {\r\n+        this.ruleRepository = ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension();\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public AbstractRouter() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public void setUrl(URL url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isRuntime() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        return force;\r\n+    }\r\n+\r\n+    public void setForce(boolean force) {\r\n+        this.force = force;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return priority;\r\n+    }\r\n+\r\n+    public void setPriority(int priority) {\r\n+        this.priority = priority;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,36 +1,36 @@\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.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-\n-/**\n- * Application level router, \"application.condition-router\"\n- */\n-public class AppRouter extends ListenableRouter {\n-    public static final String NAME = \"APP_ROUTER\";\n-    /**\n-     * AppRouter should after ServiceRouter\n-     */\n-    private static final int APP_ROUTER_DEFAULT_PRIORITY = 150;\n-\n-    public AppRouter(URL url) {\n-        super(url, url.getParameter(CommonConstants.APPLICATION_KEY));\n-        this.priority = APP_ROUTER_DEFAULT_PRIORITY;\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.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+\r\n+/**\r\n+ * Application level router, \"application.condition-router\"\r\n+ */\r\n+public class AppRouter extends ListenableRouter {\r\n+    public static final String NAME = \"APP_ROUTER\";\r\n+    /**\r\n+     * AppRouter should after ServiceRouter\r\n+     */\r\n+    private static final int APP_ROUTER_DEFAULT_PRIORITY = 150;\r\n+\r\n+    public AppRouter(URL url) {\r\n+        super(url, url.getParameter(CommonConstants.APPLICATION_KEY));\r\n+        this.priority = APP_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,49 +1,49 @@\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.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterFactory;\n-\n-/**\n- * Application level router factory\n- */\n-@Activate(order = 200)\n-public class AppRouterFactory implements RouterFactory {\n-    public static final String NAME = \"app\";\n-\n-    private volatile Router router;\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        if (router != null) {\n-            return router;\n-        }\n-        synchronized (this) {\n-            if (router == null) {\n-                router = createRouter(url);\n-            }\n-        }\n-        return router;\n-    }\n-\n-    private Router createRouter(URL url) {\n-        return new AppRouter(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.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterFactory;\r\n+\r\n+/**\r\n+ * Application level router factory\r\n+ */\r\n+@Activate(order = 200)\r\n+public class AppRouterFactory implements RouterFactory {\r\n+    public static final String NAME = \"app\";\r\n+\r\n+    private volatile Router router;\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        if (router != null) {\r\n+            return router;\r\n+        }\r\n+        synchronized (this) {\r\n+            if (router == null) {\r\n+                router = createRouter(url);\r\n+            }\r\n+        }\r\n+        return router;\r\n+    }\r\n+\r\n+    private Router createRouter(URL url) {\r\n+        return new AppRouter(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,127 +1,127 @@\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.rpc.cluster.router.condition.config;\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.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-import org.apache.dubbo.rpc.cluster.router.condition.ConditionRouter;\n-import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRouterRule;\n-import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRuleParser;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-/**\n- * Abstract router which listens to dynamic configuration\n- */\n-public abstract class ListenableRouter extends AbstractRouter implements ConfigurationListener {\n-    public static final String NAME = \"LISTENABLE_ROUTER\";\n-    private static final String RULE_SUFFIX = \".condition-router\";\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ListenableRouter.class);\n-    private ConditionRouterRule routerRule;\n-    private List<ConditionRouter> conditionRouters = Collections.emptyList();\n-\n-    public ListenableRouter(URL url, String ruleKey) {\n-        super(url);\n-        this.force = false;\n-        this.init(ruleKey);\n-    }\n-\n-    @Override\n-    public synchronized void process(ConfigChangedEvent event) {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Notification of condition rule, change type is: \" + event.getChangeType() +\n-                    \", raw rule is:\\n \" + event.getContent());\n-        }\n-\n-        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\n-            routerRule = null;\n-            conditionRouters = Collections.emptyList();\n-        } else {\n-            try {\n-                routerRule = ConditionRuleParser.parse(event.getContent());\n-                generateConditions(routerRule);\n-            } catch (Exception e) {\n-                logger.error(\"Failed to parse the raw condition rule and it will not take effect, please check \" +\n-                        \"if the condition rule matches with the template, the raw rule is:\\n \" + event.getContent(), e);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) {\n-            return invokers;\n-        }\n-\n-        // We will check enabled status inside each router.\n-        for (Router router : conditionRouters) {\n-            invokers = router.route(invokers, url, invocation);\n-        }\n-\n-        return invokers;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return priority;\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        return (routerRule != null && routerRule.isForce());\n-    }\n-\n-    private boolean isRuleRuntime() {\n-        return routerRule != null && routerRule.isValid() && routerRule.isRuntime();\n-    }\n-\n-    private void generateConditions(ConditionRouterRule rule) {\n-        if (rule != null && rule.isValid()) {\n-            this.conditionRouters = rule.getConditions()\n-                    .stream()\n-                    .map(condition -> new ConditionRouter(condition, rule.isForce(), rule.isEnabled()))\n-                    .collect(Collectors.toList());\n-        }\n-    }\n-\n-    private synchronized void init(String ruleKey) {\n-        if (StringUtils.isEmpty(ruleKey)) {\n-            return;\n-        }\n-        String routerKey = ruleKey + RULE_SUFFIX;\n-        ruleRepository.addListener(routerKey, this);\n-        String rule = ruleRepository.getRule(routerKey, DynamicConfiguration.DEFAULT_GROUP);\n-        if (StringUtils.isNotEmpty(rule)) {\n-            this.process(new ConfigChangedEvent(routerKey, DynamicConfiguration.DEFAULT_GROUP, rule));\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.rpc.cluster.router.condition.config;\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.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.ConditionRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRouterRule;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRuleParser;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * Abstract router which listens to dynamic configuration\r\n+ */\r\n+public abstract class ListenableRouter extends AbstractRouter implements ConfigurationListener {\r\n+    public static final String NAME = \"LISTENABLE_ROUTER\";\r\n+    private static final String RULE_SUFFIX = \".condition-router\";\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ListenableRouter.class);\r\n+    private ConditionRouterRule routerRule;\r\n+    private List<ConditionRouter> conditionRouters = Collections.emptyList();\r\n+\r\n+    public ListenableRouter(URL url, String ruleKey) {\r\n+        super(url);\r\n+        this.force = false;\r\n+        this.init(ruleKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void process(ConfigChangedEvent event) {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Notification of condition rule, change type is: \" + event.getChangeType() +\r\n+                    \", raw rule is:\\n \" + event.getContent());\r\n+        }\r\n+\r\n+        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\r\n+            routerRule = null;\r\n+            conditionRouters = Collections.emptyList();\r\n+        } else {\r\n+            try {\r\n+                routerRule = ConditionRuleParser.parse(event.getContent());\r\n+                generateConditions(routerRule);\r\n+            } catch (Exception e) {\r\n+                logger.error(\"Failed to parse the raw condition rule and it will not take effect, please check \" +\r\n+                        \"if the condition rule matches with the template, the raw rule is:\\n \" + event.getContent(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        // We will check enabled status inside each router.\r\n+        for (Router router : conditionRouters) {\r\n+            invokers = router.route(invokers, url, invocation);\r\n+        }\r\n+\r\n+        return invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return priority;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        return (routerRule != null && routerRule.isForce());\r\n+    }\r\n+\r\n+    private boolean isRuleRuntime() {\r\n+        return routerRule != null && routerRule.isValid() && routerRule.isRuntime();\r\n+    }\r\n+\r\n+    private void generateConditions(ConditionRouterRule rule) {\r\n+        if (rule != null && rule.isValid()) {\r\n+            this.conditionRouters = rule.getConditions()\r\n+                    .stream()\r\n+                    .map(condition -> new ConditionRouter(condition, rule.isForce(), rule.isEnabled()))\r\n+                    .collect(Collectors.toList());\r\n+        }\r\n+    }\r\n+\r\n+    private synchronized void init(String ruleKey) {\r\n+        if (StringUtils.isEmpty(ruleKey)) {\r\n+            return;\r\n+        }\r\n+        String routerKey = ruleKey + RULE_SUFFIX;\r\n+        ruleRepository.addListener(routerKey, this);\r\n+        String rule = ruleRepository.getRule(routerKey, DynamicConfiguration.DEFAULT_GROUP);\r\n+        if (StringUtils.isNotEmpty(rule)) {\r\n+            this.process(new ConfigChangedEvent(routerKey, DynamicConfiguration.DEFAULT_GROUP, rule));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,36 +1,36 @@\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.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- * Service level router, \"server-unique-name.condition-router\"\n- */\n-public class ServiceRouter extends ListenableRouter {\n-    public static final String NAME = \"SERVICE_ROUTER\";\n-    /**\n-     * ServiceRouter should before AppRouter\n-     */\n-    private static final int SERVICE_ROUTER_DEFAULT_PRIORITY = 140;\n-\n-    public ServiceRouter(URL url) {\n-        super(url, DynamicConfiguration.getRuleKey(url));\n-        this.priority = SERVICE_ROUTER_DEFAULT_PRIORITY;\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.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ * Service level router, \"server-unique-name.condition-router\"\r\n+ */\r\n+public class ServiceRouter extends ListenableRouter {\r\n+    public static final String NAME = \"SERVICE_ROUTER\";\r\n+    /**\r\n+     * ServiceRouter should before AppRouter\r\n+     */\r\n+    private static final int SERVICE_ROUTER_DEFAULT_PRIORITY = 140;\r\n+\r\n+    public ServiceRouter(URL url) {\r\n+        super(url, DynamicConfiguration.getRuleKey(url));\r\n+        this.priority = SERVICE_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,37 +1,37 @@\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.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-\n-/**\n- * Service level router factory\n- */\n-@Activate(order = 300)\n-public class ServiceRouterFactory extends CacheableRouterFactory {\n-\n-    public static final String NAME = \"service\";\n-\n-    @Override\n-    protected Router createRouter(URL url) {\n-        return new ServiceRouter(url);\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.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+\r\n+/**\r\n+ * Service level router factory\r\n+ */\r\n+@Activate(order = 300)\r\n+public class ServiceRouterFactory extends CacheableRouterFactory {\r\n+\r\n+    public static final String NAME = \"service\";\r\n+\r\n+    @Override\r\n+    protected Router createRouter(URL url) {\r\n+        return new ServiceRouter(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,55 +1,55 @@\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.rpc.cluster.router.condition.config.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.Map;\n-\n-/**\n- * %YAML1.2\n- *\n- * scope: application\n- * runtime: true\n- * force: false\n- * conditions:\n- *   - >\n- *     method!=sayHello =>\n- *   - >\n- *     ip=127.0.0.1\n- *     =>\n- *     1.1.1.1\n- */\n-public class ConditionRuleParser {\n-\n-    public static ConditionRouterRule parse(String rawRule) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawRule);\n-        ConditionRouterRule rule = PojoUtils.mapToPojo(map, ConditionRouterRule.class);\n-        rule.setRawRule(rawRule);\n-        if (CollectionUtils.isEmpty(rule.getConditions())) {\n-            rule.setValid(false);\n-        }\n-\n-        return rule;\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.rpc.cluster.router.condition.config.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * %YAML1.2\r\n+ *\r\n+ * scope: application\r\n+ * runtime: true\r\n+ * force: false\r\n+ * conditions:\r\n+ *   - >\r\n+ *     method!=sayHello =>\r\n+ *   - >\r\n+ *     ip=127.0.0.1\r\n+ *     =>\r\n+ *     1.1.1.1\r\n+ */\r\n+public class ConditionRuleParser {\r\n+\r\n+    public static ConditionRouterRule parse(String rawRule) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawRule);\r\n+        ConditionRouterRule rule = PojoUtils.mapToPojo(map, ConditionRouterRule.class);\r\n+        rule.setRawRule(rawRule);\r\n+        if (CollectionUtils.isEmpty(rule.getConditions())) {\r\n+            rule.setValid(false);\r\n+        }\r\n+\r\n+        return rule;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,76 +1,76 @@\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.rpc.cluster.router.file;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.utils.IOUtils;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterFactory;\n-import org.apache.dubbo.rpc.cluster.router.script.ScriptRouterFactory;\n-\n-import java.io.File;\n-import java.io.FileReader;\n-import java.io.IOException;\n-\n-import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.RUNTIME_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.TYPE_KEY;\n-\n-public class FileRouterFactory implements RouterFactory {\n-\n-    public static final String NAME = \"file\";\n-\n-    private RouterFactory routerFactory;\n-\n-    public void setRouterFactory(RouterFactory routerFactory) {\n-        this.routerFactory = routerFactory;\n-    }\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        try {\n-            // Transform File URL into Script Route URL, and Load\n-            // file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content>\n-            String protocol = url.getParameter(ROUTER_KEY, ScriptRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script'\n-            String type = null; // Use file suffix to config script type, e.g., js, groovy ...\n-            String path = url.getPath();\n-            if (path != null) {\n-                int i = path.lastIndexOf('.');\n-                if (i > 0) {\n-                    type = path.substring(i + 1);\n-                }\n-            }\n-            String rule = IOUtils.read(new FileReader(new File(url.getAbsolutePath())));\n-\n-            // FIXME: this code looks useless\n-            boolean runtime = url.getParameter(RUNTIME_KEY, false);\n-            URL script = URLBuilder.from(url)\n-                    .setProtocol(protocol)\n-                    .addParameter(TYPE_KEY, type)\n-                    .addParameter(RUNTIME_KEY, runtime)\n-                    .addParameterAndEncoded(RULE_KEY, rule)\n-                    .build();\n-\n-            return routerFactory.getRouter(script);\n-        } catch (IOException e) {\n-            throw new IllegalStateException(e.getMessage(), e);\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.rpc.cluster.router.file;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.utils.IOUtils;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.router.script.ScriptRouterFactory;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileReader;\r\n+import java.io.IOException;\r\n+\r\n+import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.RUNTIME_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.TYPE_KEY;\r\n+\r\n+public class FileRouterFactory implements RouterFactory {\r\n+\r\n+    public static final String NAME = \"file\";\r\n+\r\n+    private RouterFactory routerFactory;\r\n+\r\n+    public void setRouterFactory(RouterFactory routerFactory) {\r\n+        this.routerFactory = routerFactory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        try {\r\n+            // Transform File URL into Script Route URL, and Load\r\n+            // file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content>\r\n+            String protocol = url.getParameter(ROUTER_KEY, ScriptRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script'\r\n+            String type = null; // Use file suffix to config script type, e.g., js, groovy ...\r\n+            String path = url.getPath();\r\n+            if (path != null) {\r\n+                int i = path.lastIndexOf('.');\r\n+                if (i > 0) {\r\n+                    type = path.substring(i + 1);\r\n+                }\r\n+            }\r\n+            String rule = IOUtils.read(new FileReader(new File(url.getAbsolutePath())));\r\n+\r\n+            // FIXME: this code looks useless\r\n+            boolean runtime = url.getParameter(RUNTIME_KEY, false);\r\n+            URL script = URLBuilder.from(url)\r\n+                    .setProtocol(protocol)\r\n+                    .addParameter(TYPE_KEY, type)\r\n+                    .addParameter(RUNTIME_KEY, runtime)\r\n+                    .addParameterAndEncoded(RULE_KEY, rule)\r\n+                    .build();\r\n+\r\n+            return routerFactory.getRouter(script);\r\n+        } catch (IOException e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java", "source2": "org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,103 +1,103 @@\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.rpc.cluster.router.mock;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-import static org.apache.dubbo.rpc.cluster.Constants.INVOCATION_NEED_MOCK;\n-import static org.apache.dubbo.rpc.cluster.Constants.MOCK_PROTOCOL;\n-\n-/**\n- * A specific Router designed to realize mock feature.\n- * If a request is configured to use mock, then this router guarantees that only the invokers with protocol MOCK appear in final the invoker list, all other invokers will be excluded.\n- */\n-public class MockInvokersSelector extends AbstractRouter {\n-\n-    public static final String NAME = \"MOCK_ROUTER\";\n-    private static final int MOCK_INVOKERS_DEFAULT_PRIORITY = -100;\n-\n-    public MockInvokersSelector() {\n-        this.priority = MOCK_INVOKERS_DEFAULT_PRIORITY;\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,\n-                                      URL url, final Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return invokers;\n-        }\n-\n-        if (invocation.getObjectAttachments() == null) {\n-            return getNormalInvokers(invokers);\n-        } else {\n-            String value = (String) invocation.getObjectAttachments().get(INVOCATION_NEED_MOCK);\n-            if (value == null) {\n-                return getNormalInvokers(invokers);\n-            } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\n-                return getMockedInvokers(invokers);\n-            }\n-        }\n-        return invokers;\n-    }\n-\n-    private <T> List<Invoker<T>> getMockedInvokers(final List<Invoker<T>> invokers) {\n-        if (!hasMockProviders(invokers)) {\n-            return null;\n-        }\n-        List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(1);\n-        for (Invoker<T> invoker : invokers) {\n-            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                sInvokers.add(invoker);\n-            }\n-        }\n-        return sInvokers;\n-    }\n-\n-    private <T> List<Invoker<T>> getNormalInvokers(final List<Invoker<T>> invokers) {\n-        if (!hasMockProviders(invokers)) {\n-            return invokers;\n-        } else {\n-            List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(invokers.size());\n-            for (Invoker<T> invoker : invokers) {\n-                if (!invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                    sInvokers.add(invoker);\n-                }\n-            }\n-            return sInvokers;\n-        }\n-    }\n-\n-    private <T> boolean hasMockProviders(final List<Invoker<T>> invokers) {\n-        boolean hasMockProvider = false;\n-        for (Invoker<T> invoker : invokers) {\n-            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                hasMockProvider = true;\n-                break;\n-            }\n-        }\n-        return hasMockProvider;\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.rpc.cluster.router.mock;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.rpc.cluster.Constants.INVOCATION_NEED_MOCK;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.MOCK_PROTOCOL;\r\n+\r\n+/**\r\n+ * A specific Router designed to realize mock feature.\r\n+ * If a request is configured to use mock, then this router guarantees that only the invokers with protocol MOCK appear in final the invoker list, all other invokers will be excluded.\r\n+ */\r\n+public class MockInvokersSelector extends AbstractRouter {\r\n+\r\n+    public static final String NAME = \"MOCK_ROUTER\";\r\n+    private static final int MOCK_INVOKERS_DEFAULT_PRIORITY = -100;\r\n+\r\n+    public MockInvokersSelector() {\r\n+        this.priority = MOCK_INVOKERS_DEFAULT_PRIORITY;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,\r\n+                                      URL url, final Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        if (invocation.getObjectAttachments() == null) {\r\n+            return getNormalInvokers(invokers);\r\n+        } else {\r\n+            String value = (String) invocation.getObjectAttachments().get(INVOCATION_NEED_MOCK);\r\n+            if (value == null) {\r\n+                return getNormalInvokers(invokers);\r\n+            } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\r\n+                return getMockedInvokers(invokers);\r\n+            }\r\n+        }\r\n+        return invokers;\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> getMockedInvokers(final List<Invoker<T>> invokers) {\r\n+        if (!hasMockProviders(invokers)) {\r\n+            return null;\r\n+        }\r\n+        List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(1);\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                sInvokers.add(invoker);\r\n+            }\r\n+        }\r\n+        return sInvokers;\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> getNormalInvokers(final List<Invoker<T>> invokers) {\r\n+        if (!hasMockProviders(invokers)) {\r\n+            return invokers;\r\n+        } else {\r\n+            List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(invokers.size());\r\n+            for (Invoker<T> invoker : invokers) {\r\n+                if (!invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                    sInvokers.add(invoker);\r\n+                }\r\n+            }\r\n+            return sInvokers;\r\n+        }\r\n+    }\r\n+\r\n+    private <T> boolean hasMockProviders(final List<Invoker<T>> invokers) {\r\n+        boolean hasMockProvider = false;\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                hasMockProvider = true;\r\n+                break;\r\n+            }\r\n+        }\r\n+        return hasMockProvider;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,264 +1,264 @@\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.rpc.cluster.router.tag;\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.constants.CommonConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-import org.apache.dubbo.rpc.cluster.router.tag.model.TagRouterRule;\n-import org.apache.dubbo.rpc.cluster.router.tag.model.TagRuleParser;\n-\n-import java.util.List;\n-import java.util.function.Predicate;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\n-import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\n-\n-/**\n- * TagRouter, \"application.tag-router\"\n- */\n-public class TagRouter extends AbstractRouter implements ConfigurationListener {\n-    public static final String NAME = \"TAG_ROUTER\";\n-    private static final int TAG_ROUTER_DEFAULT_PRIORITY = 100;\n-    private static final Logger logger = LoggerFactory.getLogger(TagRouter.class);\n-    private static final String RULE_SUFFIX = \".tag-router\";\n-\n-    private TagRouterRule tagRouterRule;\n-    private String application;\n-\n-    public TagRouter(URL url) {\n-        super(url);\n-        this.priority = TAG_ROUTER_DEFAULT_PRIORITY;\n-    }\n-\n-    @Override\n-    public synchronized void process(ConfigChangedEvent event) {\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(\"Notification of tag rule, change type is: \" + event.getChangeType() + \", raw rule is:\\n \" +\n-                    event.getContent());\n-        }\n-\n-        try {\n-            if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\n-                this.tagRouterRule = null;\n-            } else {\n-                this.tagRouterRule = TagRuleParser.parse(event.getContent());\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Failed to parse the raw tag router rule and it will not take effect, please check if the \" +\n-                    \"rule matches with the template, the raw rule is:\\n \", e);\n-        }\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return invokers;\n-        }\n-\n-        // since the rule can be changed by config center, we should copy one to use.\n-        final TagRouterRule tagRouterRuleCopy = tagRouterRule;\n-        if (tagRouterRuleCopy == null || !tagRouterRuleCopy.isValid() || !tagRouterRuleCopy.isEnabled()) {\n-            return filterUsingStaticTag(invokers, url, invocation);\n-        }\n-\n-        List<Invoker<T>> result = invokers;\n-        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\n-                invocation.getAttachment(TAG_KEY);\n-\n-        // if we are requesting for a Provider with a specific tag\n-        if (StringUtils.isNotEmpty(tag)) {\n-            List<String> addresses = tagRouterRuleCopy.getTagnameToAddresses().get(tag);\n-            // filter by dynamic tag group first\n-            if (CollectionUtils.isNotEmpty(addresses)) {\n-                result = filterInvoker(invokers, invoker -> addressMatches(invoker.getUrl(), addresses));\n-                // if result is not null OR it's null but force=true, return result directly\n-                if (CollectionUtils.isNotEmpty(result) || tagRouterRuleCopy.isForce()) {\n-                    return result;\n-                }\n-            } else {\n-                // dynamic tag group doesn't have any item about the requested app OR it's null after filtered by\n-                // dynamic tag group but force=false. check static tag\n-                result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-            // If there's no tagged providers that can match the current tagged request. force.tag is set by default\n-            // to false, which means it will invoke any providers without a tag unless it's explicitly disallowed.\n-            if (CollectionUtils.isNotEmpty(result) || isForceUseTag(invocation)) {\n-                return result;\n-            }\n-            // FAILOVER: return all Providers without any tags.\n-            else {\n-                List<Invoker<T>> tmp = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(),\n-                        tagRouterRuleCopy.getAddresses()));\n-                return filterInvoker(tmp, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-        } else {\n-            // List<String> addresses = tagRouterRule.filter(providerApp);\n-            // return all addresses in dynamic tag group.\n-            List<String> addresses = tagRouterRuleCopy.getAddresses();\n-            if (CollectionUtils.isNotEmpty(addresses)) {\n-                result = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(), addresses));\n-                // 1. all addresses are in dynamic tag group, return empty list.\n-                if (CollectionUtils.isEmpty(result)) {\n-                    return result;\n-                }\n-                // 2. if there are some addresses that are not in any dynamic tag group, continue to filter using the\n-                // static tag group.\n-            }\n-            return filterInvoker(result, invoker -> {\n-                String localTag = invoker.getUrl().getParameter(TAG_KEY);\n-                return StringUtils.isEmpty(localTag) || !tagRouterRuleCopy.getTagNames().contains(localTag);\n-            });\n-        }\n-    }\n-\n-    /**\n-     * If there's no dynamic tag rule being set, use static tag in URL.\n-     * <p>\n-     * A typical scenario is a Consumer using version 2.7.x calls Providers using version 2.6.x or lower,\n-     * the Consumer should always respect the tag in provider URL regardless of whether a dynamic tag rule has been set to it or not.\n-     * <p>\n-     * TODO, to guarantee consistent behavior of interoperability between 2.6- and 2.7+, this method should has the same logic with the TagRouter in 2.6.x.\n-     *\n-     * @param invokers\n-     * @param url\n-     * @param invocation\n-     * @param <T>\n-     * @return\n-     */\n-    private <T> List<Invoker<T>> filterUsingStaticTag(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        List<Invoker<T>> result;\n-        // Dynamic param\n-        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\n-                invocation.getAttachment(TAG_KEY);\n-        // Tag request\n-        if (!StringUtils.isEmpty(tag)) {\n-            result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\n-            if (CollectionUtils.isEmpty(result) && !isForceUseTag(invocation)) {\n-                result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-        } else {\n-            result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isRuntime() {\n-        return tagRouterRule != null && tagRouterRule.isRuntime();\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        // FIXME\n-        return tagRouterRule != null && tagRouterRule.isForce();\n-    }\n-\n-    private boolean isForceUseTag(Invocation invocation) {\n-        return Boolean.parseBoolean(invocation.getAttachment(FORCE_USE_TAG, url.getParameter(FORCE_USE_TAG, \"false\")));\n-    }\n-\n-    private <T> List<Invoker<T>> filterInvoker(List<Invoker<T>> invokers, Predicate<Invoker<T>> predicate) {\n-        if (invokers.stream().allMatch(predicate)) {\n-            return invokers;\n-        }\n-\n-        return invokers.stream()\n-                .filter(predicate)\n-                .collect(Collectors.toList());\n-    }\n-\n-    private boolean addressMatches(URL url, List<String> addresses) {\n-        return addresses != null && checkAddressMatch(addresses, url.getHost(), url.getPort());\n-    }\n-\n-    private boolean addressNotMatches(URL url, List<String> addresses) {\n-        return addresses == null || !checkAddressMatch(addresses, url.getHost(), url.getPort());\n-    }\n-\n-    private boolean checkAddressMatch(List<String> addresses, String host, int port) {\n-        for (String address : addresses) {\n-            try {\n-                if (NetUtils.matchIpExpression(address, host, port)) {\n-                    return true;\n-                }\n-                if ((ANYHOST_VALUE + \":\" + port).equals(address)) {\n-                    return true;\n-                }\n-            } catch (Exception e) {\n-                logger.error(\"The format of ip address is invalid in tag route. Address :\" + address, e);\n-            }\n-        }\n-        return false;\n-    }\n-\n-    public void setApplication(String app) {\n-        this.application = app;\n-    }\n-\n-    @Override\n-    public <T> void notify(List<Invoker<T>> invokers) {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return;\n-        }\n-\n-        Invoker<T> invoker = invokers.get(0);\n-        URL url = invoker.getUrl();\n-        String providerApplication = url.getParameter(CommonConstants.REMOTE_APPLICATION_KEY);\n-\n-        if (StringUtils.isEmpty(providerApplication)) {\n-            logger.error(\"TagRouter must getConfig from or subscribe to a specific application, but the application \" +\n-                    \"in this TagRouter is not specified.\");\n-            return;\n-        }\n-\n-        synchronized (this) {\n-            if (!providerApplication.equals(application)) {\n-                if (!StringUtils.isEmpty(application)) {\n-                    ruleRepository.removeListener(application + RULE_SUFFIX, this);\n-                }\n-                String key = providerApplication + RULE_SUFFIX;\n-                ruleRepository.addListener(key, this);\n-                application = providerApplication;\n-                String rawRule = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\n-                if (StringUtils.isNotEmpty(rawRule)) {\n-                    this.process(new ConfigChangedEvent(key, DynamicConfiguration.DEFAULT_GROUP, rawRule));\n-                }\n-            }\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.rpc.cluster.router.tag;\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.constants.CommonConstants;\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.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.tag.model.TagRouterRule;\r\n+import org.apache.dubbo.rpc.cluster.router.tag.model.TagRuleParser;\r\n+\r\n+import java.util.List;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\r\n+\r\n+/**\r\n+ * TagRouter, \"application.tag-router\"\r\n+ */\r\n+public class TagRouter extends AbstractRouter implements ConfigurationListener {\r\n+    public static final String NAME = \"TAG_ROUTER\";\r\n+    private static final int TAG_ROUTER_DEFAULT_PRIORITY = 100;\r\n+    private static final Logger logger = LoggerFactory.getLogger(TagRouter.class);\r\n+    private static final String RULE_SUFFIX = \".tag-router\";\r\n+\r\n+    private TagRouterRule tagRouterRule;\r\n+    private String application;\r\n+\r\n+    public TagRouter(URL url) {\r\n+        super(url);\r\n+        this.priority = TAG_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void process(ConfigChangedEvent event) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(\"Notification of tag rule, change type is: \" + event.getChangeType() + \", raw rule is:\\n \" +\r\n+                    event.getContent());\r\n+        }\r\n+\r\n+        try {\r\n+            if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\r\n+                this.tagRouterRule = null;\r\n+            } else {\r\n+                this.tagRouterRule = TagRuleParser.parse(event.getContent());\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Failed to parse the raw tag router rule and it will not take effect, please check if the \" +\r\n+                    \"rule matches with the template, the raw rule is:\\n \", e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        // since the rule can be changed by config center, we should copy one to use.\r\n+        final TagRouterRule tagRouterRuleCopy = tagRouterRule;\r\n+        if (tagRouterRuleCopy == null || !tagRouterRuleCopy.isValid() || !tagRouterRuleCopy.isEnabled()) {\r\n+            return filterUsingStaticTag(invokers, url, invocation);\r\n+        }\r\n+\r\n+        List<Invoker<T>> result = invokers;\r\n+        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\r\n+                invocation.getAttachment(TAG_KEY);\r\n+\r\n+        // if we are requesting for a Provider with a specific tag\r\n+        if (StringUtils.isNotEmpty(tag)) {\r\n+            List<String> addresses = tagRouterRuleCopy.getTagnameToAddresses().get(tag);\r\n+            // filter by dynamic tag group first\r\n+            if (CollectionUtils.isNotEmpty(addresses)) {\r\n+                result = filterInvoker(invokers, invoker -> addressMatches(invoker.getUrl(), addresses));\r\n+                // if result is not null OR it's null but force=true, return result directly\r\n+                if (CollectionUtils.isNotEmpty(result) || tagRouterRuleCopy.isForce()) {\r\n+                    return result;\r\n+                }\r\n+            } else {\r\n+                // dynamic tag group doesn't have any item about the requested app OR it's null after filtered by\r\n+                // dynamic tag group but force=false. check static tag\r\n+                result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+            // If there's no tagged providers that can match the current tagged request. force.tag is set by default\r\n+            // to false, which means it will invoke any providers without a tag unless it's explicitly disallowed.\r\n+            if (CollectionUtils.isNotEmpty(result) || isForceUseTag(invocation)) {\r\n+                return result;\r\n+            }\r\n+            // FAILOVER: return all Providers without any tags.\r\n+            else {\r\n+                List<Invoker<T>> tmp = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(),\r\n+                        tagRouterRuleCopy.getAddresses()));\r\n+                return filterInvoker(tmp, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+        } else {\r\n+            // List<String> addresses = tagRouterRule.filter(providerApp);\r\n+            // return all addresses in dynamic tag group.\r\n+            List<String> addresses = tagRouterRuleCopy.getAddresses();\r\n+            if (CollectionUtils.isNotEmpty(addresses)) {\r\n+                result = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(), addresses));\r\n+                // 1. all addresses are in dynamic tag group, return empty list.\r\n+                if (CollectionUtils.isEmpty(result)) {\r\n+                    return result;\r\n+                }\r\n+                // 2. if there are some addresses that are not in any dynamic tag group, continue to filter using the\r\n+                // static tag group.\r\n+            }\r\n+            return filterInvoker(result, invoker -> {\r\n+                String localTag = invoker.getUrl().getParameter(TAG_KEY);\r\n+                return StringUtils.isEmpty(localTag) || !tagRouterRuleCopy.getTagNames().contains(localTag);\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * If there's no dynamic tag rule being set, use static tag in URL.\r\n+     * <p>\r\n+     * A typical scenario is a Consumer using version 2.7.x calls Providers using version 2.6.x or lower,\r\n+     * the Consumer should always respect the tag in provider URL regardless of whether a dynamic tag rule has been set to it or not.\r\n+     * <p>\r\n+     * TODO, to guarantee consistent behavior of interoperability between 2.6- and 2.7+, this method should has the same logic with the TagRouter in 2.6.x.\r\n+     *\r\n+     * @param invokers\r\n+     * @param url\r\n+     * @param invocation\r\n+     * @param <T>\r\n+     * @return\r\n+     */\r\n+    private <T> List<Invoker<T>> filterUsingStaticTag(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        List<Invoker<T>> result;\r\n+        // Dynamic param\r\n+        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\r\n+                invocation.getAttachment(TAG_KEY);\r\n+        // Tag request\r\n+        if (!StringUtils.isEmpty(tag)) {\r\n+            result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            if (CollectionUtils.isEmpty(result) && !isForceUseTag(invocation)) {\r\n+                result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+        } else {\r\n+            result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isRuntime() {\r\n+        return tagRouterRule != null && tagRouterRule.isRuntime();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        // FIXME\r\n+        return tagRouterRule != null && tagRouterRule.isForce();\r\n+    }\r\n+\r\n+    private boolean isForceUseTag(Invocation invocation) {\r\n+        return Boolean.parseBoolean(invocation.getAttachment(FORCE_USE_TAG, url.getParameter(FORCE_USE_TAG, \"false\")));\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> filterInvoker(List<Invoker<T>> invokers, Predicate<Invoker<T>> predicate) {\r\n+        if (invokers.stream().allMatch(predicate)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        return invokers.stream()\r\n+                .filter(predicate)\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    private boolean addressMatches(URL url, List<String> addresses) {\r\n+        return addresses != null && checkAddressMatch(addresses, url.getHost(), url.getPort());\r\n+    }\r\n+\r\n+    private boolean addressNotMatches(URL url, List<String> addresses) {\r\n+        return addresses == null || !checkAddressMatch(addresses, url.getHost(), url.getPort());\r\n+    }\r\n+\r\n+    private boolean checkAddressMatch(List<String> addresses, String host, int port) {\r\n+        for (String address : addresses) {\r\n+            try {\r\n+                if (NetUtils.matchIpExpression(address, host, port)) {\r\n+                    return true;\r\n+                }\r\n+                if ((ANYHOST_VALUE + \":\" + port).equals(address)) {\r\n+                    return true;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                logger.error(\"The format of ip address is invalid in tag route. Address :\" + address, e);\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public void setApplication(String app) {\r\n+        this.application = app;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> void notify(List<Invoker<T>> invokers) {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return;\r\n+        }\r\n+\r\n+        Invoker<T> invoker = invokers.get(0);\r\n+        URL url = invoker.getUrl();\r\n+        String providerApplication = url.getParameter(CommonConstants.REMOTE_APPLICATION_KEY);\r\n+\r\n+        if (StringUtils.isEmpty(providerApplication)) {\r\n+            logger.error(\"TagRouter must getConfig from or subscribe to a specific application, but the application \" +\r\n+                    \"in this TagRouter is not specified.\");\r\n+            return;\r\n+        }\r\n+\r\n+        synchronized (this) {\r\n+            if (!providerApplication.equals(application)) {\r\n+                if (!StringUtils.isEmpty(application)) {\r\n+                    ruleRepository.removeListener(application + RULE_SUFFIX, this);\r\n+                }\r\n+                String key = providerApplication + RULE_SUFFIX;\r\n+                ruleRepository.addListener(key, this);\r\n+                application = providerApplication;\r\n+                String rawRule = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\r\n+                if (StringUtils.isNotEmpty(rawRule)) {\r\n+                    this.process(new ConfigChangedEvent(key, DynamicConfiguration.DEFAULT_GROUP, rawRule));\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,36 +1,36 @@\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.rpc.cluster.router.tag;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-\n-/**\n- * Tag router factory\n- */\n-@Activate(order = 100)\n-public class TagRouterFactory extends CacheableRouterFactory {\n-\n-    public static final String NAME = \"tag\";\n-\n-    @Override\n-    protected Router createRouter(URL url) {\n-        return new TagRouter(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.rpc.cluster.router.tag;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+\r\n+/**\r\n+ * Tag router factory\r\n+ */\r\n+@Activate(order = 100)\r\n+public class TagRouterFactory extends CacheableRouterFactory {\r\n+\r\n+    public static final String NAME = \"tag\";\r\n+\r\n+    @Override\r\n+    protected Router createRouter(URL url) {\r\n+        return new TagRouter(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,90 +1,90 @@\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.rpc.cluster.router.tag.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouterRule;\n-\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-/**\n- * %YAML1.2\n- * ---\n- * force: true\n- * runtime: false\n- * enabled: true\n- * priority: 1\n- * key: demo-provider\n- * tags:\n- * - name: tag1\n- * addresses: [ip1, ip2]\n- * - name: tag2\n- * addresses: [ip3, ip4]\n- * ...\n- */\n-public class TagRouterRule extends AbstractRouterRule {\n-    private List<Tag> tags;\n-\n-    private Map<String, List<String>> addressToTagnames = new HashMap<>();\n-    private Map<String, List<String>> tagnameToAddresses = new HashMap<>();\n-\n-    public void init() {\n-        if (!isValid()) {\n-            return;\n-        }\n-\n-        tags.stream().filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses())).forEach(tag -> {\n-            tagnameToAddresses.put(tag.getName(), tag.getAddresses());\n-            tag.getAddresses().forEach(addr -> {\n-                List<String> tagNames = addressToTagnames.computeIfAbsent(addr, k -> new ArrayList<>());\n-                tagNames.add(tag.getName());\n-            });\n-        });\n-    }\n-\n-    public List<String> getAddresses() {\n-        return tags.stream()\n-                .filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses()))\n-                .flatMap(tag -> tag.getAddresses().stream())\n-                .collect(Collectors.toList());\n-    }\n-\n-    public List<String> getTagNames() {\n-        return tags.stream().map(Tag::getName).collect(Collectors.toList());\n-    }\n-\n-    public Map<String, List<String>> getAddressToTagnames() {\n-        return addressToTagnames;\n-    }\n-\n-\n-    public Map<String, List<String>> getTagnameToAddresses() {\n-        return tagnameToAddresses;\n-    }\n-\n-    public List<Tag> getTags() {\n-        return tags;\n-    }\n-\n-    public void setTags(List<Tag> tags) {\n-        this.tags = tags;\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.rpc.cluster.router.tag.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouterRule;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * %YAML1.2\r\n+ * ---\r\n+ * force: true\r\n+ * runtime: false\r\n+ * enabled: true\r\n+ * priority: 1\r\n+ * key: demo-provider\r\n+ * tags:\r\n+ * - name: tag1\r\n+ * addresses: [ip1, ip2]\r\n+ * - name: tag2\r\n+ * addresses: [ip3, ip4]\r\n+ * ...\r\n+ */\r\n+public class TagRouterRule extends AbstractRouterRule {\r\n+    private List<Tag> tags;\r\n+\r\n+    private Map<String, List<String>> addressToTagnames = new HashMap<>();\r\n+    private Map<String, List<String>> tagnameToAddresses = new HashMap<>();\r\n+\r\n+    public void init() {\r\n+        if (!isValid()) {\r\n+            return;\r\n+        }\r\n+\r\n+        tags.stream().filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses())).forEach(tag -> {\r\n+            tagnameToAddresses.put(tag.getName(), tag.getAddresses());\r\n+            tag.getAddresses().forEach(addr -> {\r\n+                List<String> tagNames = addressToTagnames.computeIfAbsent(addr, k -> new ArrayList<>());\r\n+                tagNames.add(tag.getName());\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    public List<String> getAddresses() {\r\n+        return tags.stream()\r\n+                .filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses()))\r\n+                .flatMap(tag -> tag.getAddresses().stream())\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public List<String> getTagNames() {\r\n+        return tags.stream().map(Tag::getName).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public Map<String, List<String>> getAddressToTagnames() {\r\n+        return addressToTagnames;\r\n+    }\r\n+\r\n+\r\n+    public Map<String, List<String>> getTagnameToAddresses() {\r\n+        return tagnameToAddresses;\r\n+    }\r\n+\r\n+    public List<Tag> getTags() {\r\n+        return tags;\r\n+    }\r\n+\r\n+    public void setTags(List<Tag> tags) {\r\n+        this.tags = tags;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,44 +1,44 @@\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.rpc.cluster.router.tag.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.Map;\n-\n-/**\n- *\n- */\n-public class TagRuleParser {\n-\n-    public static TagRouterRule parse(String rawRule) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawRule);\n-        TagRouterRule rule = PojoUtils.mapToPojo(map, TagRouterRule.class);\n-        rule.setRawRule(rawRule);\n-        if (CollectionUtils.isEmpty(rule.getTags())) {\n-            rule.setValid(false);\n-        }\n-\n-        rule.init();\n-        return rule;\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.rpc.cluster.router.tag.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class TagRuleParser {\r\n+\r\n+    public static TagRouterRule parse(String rawRule) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawRule);\r\n+        TagRouterRule rule = PojoUtils.mapToPojo(map, TagRouterRule.class);\r\n+        rule.setRawRule(rawRule);\r\n+        if (CollectionUtils.isEmpty(rule.getTags())) {\r\n+            rule.setValid(false);\r\n+        }\r\n+\r\n+        rule.init();\r\n+        return rule;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,319 +1,319 @@\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.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_AVAILABLE_CHECK_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_STICKY;\n-\n-/**\n- * AbstractClusterInvoker\n- */\n-public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractClusterInvoker.class);\n-\n-    protected Directory<T> directory;\n-\n-    protected boolean availablecheck;\n-\n-    private AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    private volatile Invoker<T> stickyInvoker = null;\n-\n-    public AbstractClusterInvoker() {\n-    }\n-\n-    public AbstractClusterInvoker(Directory<T> directory) {\n-        this(directory, directory.getUrl());\n-    }\n-\n-    public AbstractClusterInvoker(Directory<T> directory, URL url) {\n-        if (directory == null) {\n-            throw new IllegalArgumentException(\"service directory == null\");\n-        }\n-\n-        this.directory = directory;\n-        //sticky: invoker.isAvailable() should always be checked before using when availablecheck is true.\n-        this.availablecheck = url.getParameter(CLUSTER_AVAILABLE_CHECK_KEY, DEFAULT_CLUSTER_AVAILABLE_CHECK);\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return directory.getInterface();\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return directory.getConsumerUrl();\n-    }\n-\n-    public URL getRegistryUrl() {\n-        return directory.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        Invoker<T> invoker = stickyInvoker;\n-        if (invoker != null) {\n-            return invoker.isAvailable();\n-        }\n-        return directory.isAvailable();\n-    }\n-\n-    public Directory<T> getDirectory() {\n-        return directory;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (destroyed.compareAndSet(false, true)) {\n-            directory.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return destroyed.get();\n-    }\n-\n-    /**\n-     * Select a invoker using loadbalance policy.</br>\n-     * a) Firstly, select an invoker using loadbalance. If this invoker is in previously selected list, or,\n-     * if this invoker is unavailable, then continue step b (reselect), otherwise return the first selected invoker</br>\n-     * <p>\n-     * b) Reselection, the validation rule for reselection: selected > available. This rule guarantees that\n-     * the selected invoker has the minimum chance to be one in the previously selected list, and also\n-     * guarantees this invoker is available.\n-     *\n-     * @param loadbalance load balance policy\n-     * @param invocation  invocation\n-     * @param invokers    invoker candidates\n-     * @param selected    exclude selected invokers or not\n-     * @return the invoker which will final to do invoke.\n-     * @throws RpcException exception\n-     */\n-    protected Invoker<T> select(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\n-\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return null;\n-        }\n-        String methodName = invocation == null ? StringUtils.EMPTY_STRING : invocation.getMethodName();\n-\n-        boolean sticky = invokers.get(0).getUrl()\n-                .getMethodParameter(methodName, CLUSTER_STICKY_KEY, DEFAULT_CLUSTER_STICKY);\n-\n-        //ignore overloaded method\n-        if (stickyInvoker != null && !invokers.contains(stickyInvoker)) {\n-            stickyInvoker = null;\n-        }\n-        //ignore concurrency problem\n-        if (sticky && stickyInvoker != null && (selected == null || !selected.contains(stickyInvoker))) {\n-            if (availablecheck && stickyInvoker.isAvailable()) {\n-                return stickyInvoker;\n-            }\n-        }\n-\n-        Invoker<T> invoker = doSelect(loadbalance, invocation, invokers, selected);\n-\n-        if (sticky) {\n-            stickyInvoker = invoker;\n-        }\n-        return invoker;\n-    }\n-\n-    private Invoker<T> doSelect(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\n-\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return null;\n-        }\n-        if (invokers.size() == 1) {\n-            return invokers.get(0);\n-        }\n-        Invoker<T> invoker = loadbalance.select(invokers, getUrl(), invocation);\n-\n-        //If the `invoker` is in the  `selected` or invoker is unavailable && availablecheck is true, reselect.\n-        if ((selected != null && selected.contains(invoker))\n-                || (!invoker.isAvailable() && getUrl() != null && availablecheck)) {\n-            try {\n-                Invoker<T> rInvoker = reselect(loadbalance, invocation, invokers, selected, availablecheck);\n-                if (rInvoker != null) {\n-                    invoker = rInvoker;\n-                } else {\n-                    //Check the index of current selected invoker, if it's not the last one, choose the one at index+1.\n-                    int index = invokers.indexOf(invoker);\n-                    try {\n-                        //Avoid collision\n-                        invoker = invokers.get((index + 1) % invokers.size());\n-                    } catch (Exception e) {\n-                        logger.warn(e.getMessage() + \" may because invokers list dynamic change, ignore.\", e);\n-                    }\n-                }\n-            } catch (Throwable t) {\n-                logger.error(\"cluster reselect fail reason is :\" + t.getMessage() + \" if can not solve, you can set cluster.availablecheck=false in url\", t);\n-            }\n-        }\n-        return invoker;\n-    }\n-\n-    /**\n-     * Reselect, use invokers not in `selected` first, if all invokers are in `selected`,\n-     * just pick an available one using loadbalance policy.\n-     *\n-     * @param loadbalance    load balance policy\n-     * @param invocation     invocation\n-     * @param invokers       invoker candidates\n-     * @param selected       exclude selected invokers or not\n-     * @param availablecheck check invoker available if true\n-     * @return the reselect result to do invoke\n-     * @throws RpcException exception\n-     */\n-    private Invoker<T> reselect(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected, boolean availablecheck) throws RpcException {\n-\n-        //Allocating one in advance, this list is certain to be used.\n-        List<Invoker<T>> reselectInvokers = new ArrayList<>(\n-                invokers.size() > 1 ? (invokers.size() - 1) : invokers.size());\n-\n-        // First, try picking a invoker not in `selected`.\n-        for (Invoker<T> invoker : invokers) {\n-            if (availablecheck && !invoker.isAvailable()) {\n-                continue;\n-            }\n-\n-            if (selected == null || !selected.contains(invoker)) {\n-                reselectInvokers.add(invoker);\n-            }\n-        }\n-\n-        if (!reselectInvokers.isEmpty()) {\n-            return loadbalance.select(reselectInvokers, getUrl(), invocation);\n-        }\n-\n-        // Just pick an available invoker using loadbalance policy\n-        if (selected != null) {\n-            for (Invoker<T> invoker : selected) {\n-                if ((invoker.isAvailable()) // available first\n-                        && !reselectInvokers.contains(invoker)) {\n-                    reselectInvokers.add(invoker);\n-                }\n-            }\n-        }\n-        if (!reselectInvokers.isEmpty()) {\n-            return loadbalance.select(reselectInvokers, getUrl(), invocation);\n-        }\n-\n-        return null;\n-    }\n-\n-    @Override\n-    public Result invoke(final Invocation invocation) throws RpcException {\n-        checkWhetherDestroyed();\n-\n-        // binding attachments into invocation.\n-        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\n-        if (contextAttachments != null && contextAttachments.size() != 0) {\n-            ((RpcInvocation) invocation).addObjectAttachments(contextAttachments);\n-        }\n-\n-        List<Invoker<T>> invokers = list(invocation);\n-        LoadBalance loadbalance = initLoadBalance(invokers, invocation);\n-        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\n-        return doInvoke(invocation, invokers, loadbalance);\n-    }\n-\n-    protected void checkWhetherDestroyed() {\n-        if (destroyed.get()) {\n-            throw new RpcException(\"Rpc cluster invoker for \" + getInterface() + \" on consumer \" + NetUtils.getLocalHost()\n-                    + \" use dubbo version \" + Version.getVersion()\n-                    + \" is now destroyed! Can not invoke any more.\");\n-        }\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getInterface() + \" -> \" + getUrl().toString();\n-    }\n-\n-    protected void checkInvokers(List<Invoker<T>> invokers, Invocation invocation) {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            throw new RpcException(RpcException.NO_INVOKER_AVAILABLE_AFTER_FILTER, \"Failed to invoke the method \"\n-                    + invocation.getMethodName() + \" in the service \" + getInterface().getName()\n-                    + \". No provider available for the service \" + directory.getConsumerUrl().getServiceKey()\n-                    + \" from registry \" + directory.getUrl().getAddress()\n-                    + \" on the consumer \" + NetUtils.getLocalHost()\n-                    + \" using the dubbo version \" + Version.getVersion()\n-                    + \". Please check if the providers have been started and registered.\");\n-        }\n-    }\n-\n-    protected abstract Result doInvoke(Invocation invocation, List<Invoker<T>> invokers,\n-                                       LoadBalance loadbalance) throws RpcException;\n-\n-    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        return directory.list(invocation);\n-    }\n-\n-    /**\n-     * Init LoadBalance.\n-     * <p>\n-     * if invokers is not empty, init from the first invoke's url and invocation\n-     * if invokes is empty, init a default LoadBalance(RandomLoadBalance)\n-     * </p>\n-     *\n-     * @param invokers   invokers\n-     * @param invocation invocation\n-     * @return LoadBalance instance. if not need init, return null.\n-     */\n-    protected LoadBalance initLoadBalance(List<Invoker<T>> invokers, Invocation invocation) {\n-        if (CollectionUtils.isNotEmpty(invokers)) {\n-            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()\n-                    .getMethodParameter(RpcUtils.getMethodName(invocation), LOADBALANCE_KEY, DEFAULT_LOADBALANCE));\n-        } else {\n-            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(DEFAULT_LOADBALANCE);\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.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\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.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_AVAILABLE_CHECK_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_STICKY;\r\n+\r\n+/**\r\n+ * AbstractClusterInvoker\r\n+ */\r\n+public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractClusterInvoker.class);\r\n+\r\n+    protected Directory<T> directory;\r\n+\r\n+    protected boolean availablecheck;\r\n+\r\n+    private AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    private volatile Invoker<T> stickyInvoker = null;\r\n+\r\n+    public AbstractClusterInvoker() {\r\n+    }\r\n+\r\n+    public AbstractClusterInvoker(Directory<T> directory) {\r\n+        this(directory, directory.getUrl());\r\n+    }\r\n+\r\n+    public AbstractClusterInvoker(Directory<T> directory, URL url) {\r\n+        if (directory == null) {\r\n+            throw new IllegalArgumentException(\"service directory == null\");\r\n+        }\r\n+\r\n+        this.directory = directory;\r\n+        //sticky: invoker.isAvailable() should always be checked before using when availablecheck is true.\r\n+        this.availablecheck = url.getParameter(CLUSTER_AVAILABLE_CHECK_KEY, DEFAULT_CLUSTER_AVAILABLE_CHECK);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return directory.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return directory.getConsumerUrl();\r\n+    }\r\n+\r\n+    public URL getRegistryUrl() {\r\n+        return directory.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        Invoker<T> invoker = stickyInvoker;\r\n+        if (invoker != null) {\r\n+            return invoker.isAvailable();\r\n+        }\r\n+        return directory.isAvailable();\r\n+    }\r\n+\r\n+    public Directory<T> getDirectory() {\r\n+        return directory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (destroyed.compareAndSet(false, true)) {\r\n+            directory.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return destroyed.get();\r\n+    }\r\n+\r\n+    /**\r\n+     * Select a invoker using loadbalance policy.</br>\r\n+     * a) Firstly, select an invoker using loadbalance. If this invoker is in previously selected list, or,\r\n+     * if this invoker is unavailable, then continue step b (reselect), otherwise return the first selected invoker</br>\r\n+     * <p>\r\n+     * b) Reselection, the validation rule for reselection: selected > available. This rule guarantees that\r\n+     * the selected invoker has the minimum chance to be one in the previously selected list, and also\r\n+     * guarantees this invoker is available.\r\n+     *\r\n+     * @param loadbalance load balance policy\r\n+     * @param invocation  invocation\r\n+     * @param invokers    invoker candidates\r\n+     * @param selected    exclude selected invokers or not\r\n+     * @return the invoker which will final to do invoke.\r\n+     * @throws RpcException exception\r\n+     */\r\n+    protected Invoker<T> select(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\r\n+\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return null;\r\n+        }\r\n+        String methodName = invocation == null ? StringUtils.EMPTY_STRING : invocation.getMethodName();\r\n+\r\n+        boolean sticky = invokers.get(0).getUrl()\r\n+                .getMethodParameter(methodName, CLUSTER_STICKY_KEY, DEFAULT_CLUSTER_STICKY);\r\n+\r\n+        //ignore overloaded method\r\n+        if (stickyInvoker != null && !invokers.contains(stickyInvoker)) {\r\n+            stickyInvoker = null;\r\n+        }\r\n+        //ignore concurrency problem\r\n+        if (sticky && stickyInvoker != null && (selected == null || !selected.contains(stickyInvoker))) {\r\n+            if (availablecheck && stickyInvoker.isAvailable()) {\r\n+                return stickyInvoker;\r\n+            }\r\n+        }\r\n+\r\n+        Invoker<T> invoker = doSelect(loadbalance, invocation, invokers, selected);\r\n+\r\n+        if (sticky) {\r\n+            stickyInvoker = invoker;\r\n+        }\r\n+        return invoker;\r\n+    }\r\n+\r\n+    private Invoker<T> doSelect(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\r\n+\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return null;\r\n+        }\r\n+        if (invokers.size() == 1) {\r\n+            return invokers.get(0);\r\n+        }\r\n+        Invoker<T> invoker = loadbalance.select(invokers, getUrl(), invocation);\r\n+\r\n+        //If the `invoker` is in the  `selected` or invoker is unavailable && availablecheck is true, reselect.\r\n+        if ((selected != null && selected.contains(invoker))\r\n+                || (!invoker.isAvailable() && getUrl() != null && availablecheck)) {\r\n+            try {\r\n+                Invoker<T> rInvoker = reselect(loadbalance, invocation, invokers, selected, availablecheck);\r\n+                if (rInvoker != null) {\r\n+                    invoker = rInvoker;\r\n+                } else {\r\n+                    //Check the index of current selected invoker, if it's not the last one, choose the one at index+1.\r\n+                    int index = invokers.indexOf(invoker);\r\n+                    try {\r\n+                        //Avoid collision\r\n+                        invoker = invokers.get((index + 1) % invokers.size());\r\n+                    } catch (Exception e) {\r\n+                        logger.warn(e.getMessage() + \" may because invokers list dynamic change, ignore.\", e);\r\n+                    }\r\n+                }\r\n+            } catch (Throwable t) {\r\n+                logger.error(\"cluster reselect fail reason is :\" + t.getMessage() + \" if can not solve, you can set cluster.availablecheck=false in url\", t);\r\n+            }\r\n+        }\r\n+        return invoker;\r\n+    }\r\n+\r\n+    /**\r\n+     * Reselect, use invokers not in `selected` first, if all invokers are in `selected`,\r\n+     * just pick an available one using loadbalance policy.\r\n+     *\r\n+     * @param loadbalance    load balance policy\r\n+     * @param invocation     invocation\r\n+     * @param invokers       invoker candidates\r\n+     * @param selected       exclude selected invokers or not\r\n+     * @param availablecheck check invoker available if true\r\n+     * @return the reselect result to do invoke\r\n+     * @throws RpcException exception\r\n+     */\r\n+    private Invoker<T> reselect(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected, boolean availablecheck) throws RpcException {\r\n+\r\n+        //Allocating one in advance, this list is certain to be used.\r\n+        List<Invoker<T>> reselectInvokers = new ArrayList<>(\r\n+                invokers.size() > 1 ? (invokers.size() - 1) : invokers.size());\r\n+\r\n+        // First, try picking a invoker not in `selected`.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (availablecheck && !invoker.isAvailable()) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (selected == null || !selected.contains(invoker)) {\r\n+                reselectInvokers.add(invoker);\r\n+            }\r\n+        }\r\n+\r\n+        if (!reselectInvokers.isEmpty()) {\r\n+            return loadbalance.select(reselectInvokers, getUrl(), invocation);\r\n+        }\r\n+\r\n+        // Just pick an available invoker using loadbalance policy\r\n+        if (selected != null) {\r\n+            for (Invoker<T> invoker : selected) {\r\n+                if ((invoker.isAvailable()) // available first\r\n+                        && !reselectInvokers.contains(invoker)) {\r\n+                    reselectInvokers.add(invoker);\r\n+                }\r\n+            }\r\n+        }\r\n+        if (!reselectInvokers.isEmpty()) {\r\n+            return loadbalance.select(reselectInvokers, getUrl(), invocation);\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(final Invocation invocation) throws RpcException {\r\n+        checkWhetherDestroyed();\r\n+\r\n+        // binding attachments into invocation.\r\n+        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\r\n+        if (contextAttachments != null && contextAttachments.size() != 0) {\r\n+            ((RpcInvocation) invocation).addObjectAttachments(contextAttachments);\r\n+        }\r\n+\r\n+        List<Invoker<T>> invokers = list(invocation);\r\n+        LoadBalance loadbalance = initLoadBalance(invokers, invocation);\r\n+        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\r\n+        return doInvoke(invocation, invokers, loadbalance);\r\n+    }\r\n+\r\n+    protected void checkWhetherDestroyed() {\r\n+        if (destroyed.get()) {\r\n+            throw new RpcException(\"Rpc cluster invoker for \" + getInterface() + \" on consumer \" + NetUtils.getLocalHost()\r\n+                    + \" use dubbo version \" + Version.getVersion()\r\n+                    + \" is now destroyed! Can not invoke any more.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getInterface() + \" -> \" + getUrl().toString();\r\n+    }\r\n+\r\n+    protected void checkInvokers(List<Invoker<T>> invokers, Invocation invocation) {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            throw new RpcException(RpcException.NO_INVOKER_AVAILABLE_AFTER_FILTER, \"Failed to invoke the method \"\r\n+                    + invocation.getMethodName() + \" in the service \" + getInterface().getName()\r\n+                    + \". No provider available for the service \" + directory.getConsumerUrl().getServiceKey()\r\n+                    + \" from registry \" + directory.getUrl().getAddress()\r\n+                    + \" on the consumer \" + NetUtils.getLocalHost()\r\n+                    + \" using the dubbo version \" + Version.getVersion()\r\n+                    + \". Please check if the providers have been started and registered.\");\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract Result doInvoke(Invocation invocation, List<Invoker<T>> invokers,\r\n+                                       LoadBalance loadbalance) throws RpcException;\r\n+\r\n+    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        return directory.list(invocation);\r\n+    }\r\n+\r\n+    /**\r\n+     * Init LoadBalance.\r\n+     * <p>\r\n+     * if invokers is not empty, init from the first invoke's url and invocation\r\n+     * if invokes is empty, init a default LoadBalance(RandomLoadBalance)\r\n+     * </p>\r\n+     *\r\n+     * @param invokers   invokers\r\n+     * @param invocation invocation\r\n+     * @return LoadBalance instance. if not need init, return null.\r\n+     */\r\n+    protected LoadBalance initLoadBalance(List<Invoker<T>> invokers, Invocation invocation) {\r\n+        if (CollectionUtils.isNotEmpty(invokers)) {\r\n+            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()\r\n+                    .getMethodParameter(RpcUtils.getMethodName(invocation), LOADBALANCE_KEY, DEFAULT_LOADBALANCE));\r\n+        } else {\r\n+            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(DEFAULT_LOADBALANCE);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,113 +1,113 @@\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.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.concurrent.BlockingQueue;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.FORKS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_FORKS;\n-\n-/**\n- * NOTICE! This implementation does not work well with async call.\n- *\n- * Invoke a specific number of invokers concurrently, usually used for demanding real-time operations, but need to waste more service resources.\n- *\n- * <a href=\"http://en.wikipedia.org/wiki/Fork_(topology)\">Fork</a>\n- */\n-public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    /**\n-     * Use {@link NamedInternalThreadFactory} to produce {@link org.apache.dubbo.common.threadlocal.InternalThread}\n-     * which with the use of {@link org.apache.dubbo.common.threadlocal.InternalThreadLocal} in {@link RpcContext}.\n-     */\n-    private final ExecutorService executor = Executors.newCachedThreadPool(\n-            new NamedInternalThreadFactory(\"forking-cluster-timer\", true));\n-\n-    public ForkingClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        try {\n-            checkInvokers(invokers, invocation);\n-            final List<Invoker<T>> selected;\n-            final int forks = getUrl().getParameter(FORKS_KEY, DEFAULT_FORKS);\n-            final int timeout = getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-            if (forks <= 0 || forks >= invokers.size()) {\n-                selected = invokers;\n-            } else {\n-                selected = new ArrayList<>(forks);\n-                while (selected.size() < forks) {\n-                    Invoker<T> invoker = select(loadbalance, invocation, invokers, selected);\n-                    if (!selected.contains(invoker)) {\n-                        //Avoid add the same invoker several times.\n-                        selected.add(invoker);\n-                    }\n-                }\n-            }\n-            RpcContext.getContext().setInvokers((List) selected);\n-            final AtomicInteger count = new AtomicInteger();\n-            final BlockingQueue<Object> ref = new LinkedBlockingQueue<>();\n-            for (final Invoker<T> invoker : selected) {\n-                executor.execute(() -> {\n-                    try {\n-                        Result result = invoker.invoke(invocation);\n-                        ref.offer(result);\n-                    } catch (Throwable e) {\n-                        int value = count.incrementAndGet();\n-                        if (value >= selected.size()) {\n-                            ref.offer(e);\n-                        }\n-                    }\n-                });\n-            }\n-            try {\n-                Object ret = ref.poll(timeout, TimeUnit.MILLISECONDS);\n-                if (ret instanceof Throwable) {\n-                    Throwable e = (Throwable) ret;\n-                    throw new RpcException(e instanceof RpcException ? ((RpcException) e).getCode() : 0, \"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e.getCause() != null ? e.getCause() : e);\n-                }\n-                return (Result) ret;\n-            } catch (InterruptedException e) {\n-                throw new RpcException(\"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e);\n-            }\n-        } finally {\n-            // clear attachments which is binding to current thread.\n-            RpcContext.getContext().clearAttachments();\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.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.concurrent.BlockingQueue;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.FORKS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_FORKS;\r\n+\r\n+/**\r\n+ * NOTICE! This implementation does not work well with async call.\r\n+ *\r\n+ * Invoke a specific number of invokers concurrently, usually used for demanding real-time operations, but need to waste more service resources.\r\n+ *\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Fork_(topology)\">Fork</a>\r\n+ */\r\n+public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    /**\r\n+     * Use {@link NamedInternalThreadFactory} to produce {@link org.apache.dubbo.common.threadlocal.InternalThread}\r\n+     * which with the use of {@link org.apache.dubbo.common.threadlocal.InternalThreadLocal} in {@link RpcContext}.\r\n+     */\r\n+    private final ExecutorService executor = Executors.newCachedThreadPool(\r\n+            new NamedInternalThreadFactory(\"forking-cluster-timer\", true));\r\n+\r\n+    public ForkingClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        try {\r\n+            checkInvokers(invokers, invocation);\r\n+            final List<Invoker<T>> selected;\r\n+            final int forks = getUrl().getParameter(FORKS_KEY, DEFAULT_FORKS);\r\n+            final int timeout = getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+            if (forks <= 0 || forks >= invokers.size()) {\r\n+                selected = invokers;\r\n+            } else {\r\n+                selected = new ArrayList<>(forks);\r\n+                while (selected.size() < forks) {\r\n+                    Invoker<T> invoker = select(loadbalance, invocation, invokers, selected);\r\n+                    if (!selected.contains(invoker)) {\r\n+                        //Avoid add the same invoker several times.\r\n+                        selected.add(invoker);\r\n+                    }\r\n+                }\r\n+            }\r\n+            RpcContext.getContext().setInvokers((List) selected);\r\n+            final AtomicInteger count = new AtomicInteger();\r\n+            final BlockingQueue<Object> ref = new LinkedBlockingQueue<>();\r\n+            for (final Invoker<T> invoker : selected) {\r\n+                executor.execute(() -> {\r\n+                    try {\r\n+                        Result result = invoker.invoke(invocation);\r\n+                        ref.offer(result);\r\n+                    } catch (Throwable e) {\r\n+                        int value = count.incrementAndGet();\r\n+                        if (value >= selected.size()) {\r\n+                            ref.offer(e);\r\n+                        }\r\n+                    }\r\n+                });\r\n+            }\r\n+            try {\r\n+                Object ret = ref.poll(timeout, TimeUnit.MILLISECONDS);\r\n+                if (ret instanceof Throwable) {\r\n+                    Throwable e = (Throwable) ret;\r\n+                    throw new RpcException(e instanceof RpcException ? ((RpcException) e).getCode() : 0, \"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e.getCause() != null ? e.getCause() : e);\r\n+                }\r\n+                return (Result) ret;\r\n+            } catch (InterruptedException e) {\r\n+                throw new RpcException(\"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e);\r\n+            }\r\n+        } finally {\r\n+            // clear attachments which is binding to current thread.\r\n+            RpcContext.getContext().clearAttachments();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/MergeableCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/MergeableCluster.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,32 +1,32 @@\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.rpc.cluster.support;\n-\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\n-\n-public class MergeableCluster extends AbstractCluster {\n-\n-    public static final String NAME = \"mergeable\";\n-\n-    @Override\n-    public <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\n-        return new MergeableClusterInvoker<T>(directory);\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.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\r\n+\r\n+public class MergeableCluster extends AbstractCluster {\r\n+\r\n+    public static final String NAME = \"mergeable\";\r\n+\r\n+    @Override\r\n+    public <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\r\n+        return new MergeableClusterInvoker<T>(directory);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,193 +1,193 @@\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.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-import org.apache.dubbo.rpc.cluster.merger.MergerFactory;\n-\n-import java.lang.reflect.Array;\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\n-import static org.apache.dubbo.rpc.Constants.MERGER_KEY;\n-\n-/**\n- * @param <T>\n- */\n-@SuppressWarnings(\"unchecked\")\n-public class MergeableClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    private static final Logger log = LoggerFactory.getLogger(MergeableClusterInvoker.class);\n-\n-    public MergeableClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        checkInvokers(invokers, invocation);\n-        String merger = getUrl().getMethodParameter(invocation.getMethodName(), MERGER_KEY);\n-        if (ConfigUtils.isEmpty(merger)) { // If a method doesn't have a merger, only invoke one Group\n-            for (final Invoker<T> invoker : invokers) {\n-                if (invoker.isAvailable()) {\n-                    try {\n-                        return invoker.invoke(invocation);\n-                    } catch (RpcException e) {\n-                        if (e.isNoInvokerAvailableAfterFilter()) {\n-                            log.debug(\"No available provider for service\" + getUrl().getServiceKey() + \" on group \" + invoker.getUrl().getParameter(GROUP_KEY) + \", will continue to try another group.\");\n-                        } else {\n-                            throw e;\n-                        }\n-                    }\n-                }\n-            }\n-            return invokers.iterator().next().invoke(invocation);\n-        }\n-\n-        Class<?> returnType;\n-        try {\n-            returnType = getInterface().getMethod(\n-                    invocation.getMethodName(), invocation.getParameterTypes()).getReturnType();\n-        } catch (NoSuchMethodException e) {\n-            returnType = null;\n-        }\n-\n-        Map<String, Result> results = new HashMap<>();\n-        for (final Invoker<T> invoker : invokers) {\n-            RpcInvocation subInvocation = new RpcInvocation(invocation, invoker);\n-            subInvocation.setAttachment(ASYNC_KEY, \"true\");\n-            results.put(invoker.getUrl().getServiceKey(), invoker.invoke(subInvocation));\n-        }\n-\n-        Object result = null;\n-\n-        List<Result> resultList = new ArrayList<Result>(results.size());\n-\n-        for (Map.Entry<String, Result> entry : results.entrySet()) {\n-            Result asyncResult = entry.getValue();\n-            try {\n-                Result r = asyncResult.get();\n-                if (r.hasException()) {\n-                    log.error(\"Invoke \" + getGroupDescFromServiceKey(entry.getKey()) +\n-                                    \" failed: \" + r.getException().getMessage(),\n-                            r.getException());\n-                } else {\n-                    resultList.add(r);\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(\"Failed to invoke service \" + entry.getKey() + \": \" + e.getMessage(), e);\n-            }\n-        }\n-\n-        if (resultList.isEmpty()) {\n-            return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-        } else if (resultList.size() == 1) {\n-            return AsyncRpcResult.newDefaultAsyncResult(resultList.get(0).getValue(), invocation);\n-        }\n-\n-        if (returnType == void.class) {\n-            return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-        }\n-\n-        if (merger.startsWith(\".\")) {\n-            merger = merger.substring(1);\n-            Method method;\n-            try {\n-                method = returnType.getMethod(merger, returnType);\n-            } catch (NoSuchMethodException e) {\n-                throw new RpcException(\"Can not merge result because missing method [ \" + merger + \" ] in class [ \" +\n-                        returnType.getName() + \" ]\");\n-            }\n-            ReflectUtils.makeAccessible(method);\n-            result = resultList.remove(0).getValue();\n-            try {\n-                if (method.getReturnType() != void.class\n-                        && method.getReturnType().isAssignableFrom(result.getClass())) {\n-                    for (Result r : resultList) {\n-                        result = method.invoke(result, r.getValue());\n-                    }\n-                } else {\n-                    for (Result r : resultList) {\n-                        method.invoke(result, r.getValue());\n-                    }\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(\"Can not merge result: \" + e.getMessage(), e);\n-            }\n-        } else {\n-            Merger resultMerger;\n-            if (ConfigUtils.isDefault(merger)) {\n-                resultMerger = MergerFactory.getMerger(returnType);\n-            } else {\n-                resultMerger = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(merger);\n-            }\n-            if (resultMerger != null) {\n-                List<Object> rets = new ArrayList<Object>(resultList.size());\n-                for (Result r : resultList) {\n-                    rets.add(r.getValue());\n-                }\n-                result = resultMerger.merge(\n-                        rets.toArray((Object[]) Array.newInstance(returnType, 0)));\n-            } else {\n-                throw new RpcException(\"There is no merger to merge result.\");\n-            }\n-        }\n-        return AsyncRpcResult.newDefaultAsyncResult(result, invocation);\n-    }\n-\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return directory.getInterface();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return directory.isAvailable();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        directory.destroy();\n-    }\n-\n-    private String getGroupDescFromServiceKey(String key) {\n-        int index = key.indexOf(\"/\");\n-        if (index > 0) {\n-            return \"group [ \" + key.substring(0, index) + \" ]\";\n-        }\n-        return key;\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.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\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.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+import org.apache.dubbo.rpc.cluster.merger.MergerFactory;\r\n+\r\n+import java.lang.reflect.Array;\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.MERGER_KEY;\r\n+\r\n+/**\r\n+ * @param <T>\r\n+ */\r\n+@SuppressWarnings(\"unchecked\")\r\n+public class MergeableClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(MergeableClusterInvoker.class);\r\n+\r\n+    public MergeableClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        checkInvokers(invokers, invocation);\r\n+        String merger = getUrl().getMethodParameter(invocation.getMethodName(), MERGER_KEY);\r\n+        if (ConfigUtils.isEmpty(merger)) { // If a method doesn't have a merger, only invoke one Group\r\n+            for (final Invoker<T> invoker : invokers) {\r\n+                if (invoker.isAvailable()) {\r\n+                    try {\r\n+                        return invoker.invoke(invocation);\r\n+                    } catch (RpcException e) {\r\n+                        if (e.isNoInvokerAvailableAfterFilter()) {\r\n+                            log.debug(\"No available provider for service\" + getUrl().getServiceKey() + \" on group \" + invoker.getUrl().getParameter(GROUP_KEY) + \", will continue to try another group.\");\r\n+                        } else {\r\n+                            throw e;\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return invokers.iterator().next().invoke(invocation);\r\n+        }\r\n+\r\n+        Class<?> returnType;\r\n+        try {\r\n+            returnType = getInterface().getMethod(\r\n+                    invocation.getMethodName(), invocation.getParameterTypes()).getReturnType();\r\n+        } catch (NoSuchMethodException e) {\r\n+            returnType = null;\r\n+        }\r\n+\r\n+        Map<String, Result> results = new HashMap<>();\r\n+        for (final Invoker<T> invoker : invokers) {\r\n+            RpcInvocation subInvocation = new RpcInvocation(invocation, invoker);\r\n+            subInvocation.setAttachment(ASYNC_KEY, \"true\");\r\n+            results.put(invoker.getUrl().getServiceKey(), invoker.invoke(subInvocation));\r\n+        }\r\n+\r\n+        Object result = null;\r\n+\r\n+        List<Result> resultList = new ArrayList<Result>(results.size());\r\n+\r\n+        for (Map.Entry<String, Result> entry : results.entrySet()) {\r\n+            Result asyncResult = entry.getValue();\r\n+            try {\r\n+                Result r = asyncResult.get();\r\n+                if (r.hasException()) {\r\n+                    log.error(\"Invoke \" + getGroupDescFromServiceKey(entry.getKey()) +\r\n+                                    \" failed: \" + r.getException().getMessage(),\r\n+                            r.getException());\r\n+                } else {\r\n+                    resultList.add(r);\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(\"Failed to invoke service \" + entry.getKey() + \": \" + e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        if (resultList.isEmpty()) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+        } else if (resultList.size() == 1) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(resultList.get(0).getValue(), invocation);\r\n+        }\r\n+\r\n+        if (returnType == void.class) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+        }\r\n+\r\n+        if (merger.startsWith(\".\")) {\r\n+            merger = merger.substring(1);\r\n+            Method method;\r\n+            try {\r\n+                method = returnType.getMethod(merger, returnType);\r\n+            } catch (NoSuchMethodException e) {\r\n+                throw new RpcException(\"Can not merge result because missing method [ \" + merger + \" ] in class [ \" +\r\n+                        returnType.getName() + \" ]\");\r\n+            }\r\n+            ReflectUtils.makeAccessible(method);\r\n+            result = resultList.remove(0).getValue();\r\n+            try {\r\n+                if (method.getReturnType() != void.class\r\n+                        && method.getReturnType().isAssignableFrom(result.getClass())) {\r\n+                    for (Result r : resultList) {\r\n+                        result = method.invoke(result, r.getValue());\r\n+                    }\r\n+                } else {\r\n+                    for (Result r : resultList) {\r\n+                        method.invoke(result, r.getValue());\r\n+                    }\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(\"Can not merge result: \" + e.getMessage(), e);\r\n+            }\r\n+        } else {\r\n+            Merger resultMerger;\r\n+            if (ConfigUtils.isDefault(merger)) {\r\n+                resultMerger = MergerFactory.getMerger(returnType);\r\n+            } else {\r\n+                resultMerger = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(merger);\r\n+            }\r\n+            if (resultMerger != null) {\r\n+                List<Object> rets = new ArrayList<Object>(resultList.size());\r\n+                for (Result r : resultList) {\r\n+                    rets.add(r.getValue());\r\n+                }\r\n+                result = resultMerger.merge(\r\n+                        rets.toArray((Object[]) Array.newInstance(returnType, 0)));\r\n+            } else {\r\n+                throw new RpcException(\"There is no merger to merge result.\");\r\n+            }\r\n+        }\r\n+        return AsyncRpcResult.newDefaultAsyncResult(result, invocation);\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return directory.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return directory.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        directory.destroy();\r\n+    }\r\n+\r\n+    private String getGroupDescFromServiceKey(String key) {\r\n+        int index = key.indexOf(\"/\");\r\n+        if (index > 0) {\r\n+            return \"group [ \" + key.substring(0, index) + \" ]\";\r\n+        }\r\n+        return key;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java", "source2": "org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,29 +1,29 @@\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.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Map;\n-\n-@SPI\n-public interface ProviderURLMergeProcessor {\n-    URL mergeProviderUrl(URL providerUrl, Map<String, String> localParametersMap);\n-\n-    boolean accept(URL providerUrl, Map<String, String> localParametersMap);\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.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Map;\r\n+\r\n+@SPI\r\n+public interface ProviderURLMergeProcessor {\r\n+    URL mergeProviderUrl(URL providerUrl, Map<String, String> localParametersMap);\r\n+\r\n+    boolean accept(URL providerUrl, Map<String, String> localParametersMap);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,28 +1,28 @@\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.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.List;\n-\n-@SPI\n-public interface MigrationClusterComparator {\n-\n-    <T> boolean shouldMigrate(List<Invoker<T>>  interfaceInvokers, List<Invoker<T>>  serviceInvokers);\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.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.List;\r\n+\r\n+@SPI\r\n+public interface MigrationClusterComparator {\r\n+\r\n+    <T> boolean shouldMigrate(List<Invoker<T>>  interfaceInvokers, List<Invoker<T>>  serviceInvokers);\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,54 +1,54 @@\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.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-public interface MigrationClusterInvoker<T> extends ClusterInvoker<T> {\n-\n-    boolean isServiceInvoker();\n-\n-    MigrationRule getMigrationRule();\n-\n-    void setMigrationRule(MigrationRule rule);\n-\n-    void destroyServiceDiscoveryInvoker(ClusterInvoker<?> invoker);\n-\n-    void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> invoker);\n-\n-    void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker);\n-\n-    void refreshServiceDiscoveryInvoker();\n-\n-    void refreshInterfaceInvoker();\n-\n-    void destroyInterfaceInvoker(ClusterInvoker<T> invoker);\n-\n-    boolean isMigrationMultiRegistry();\n-\n-    void migrateToServiceDiscoveryInvoker(boolean forceMigrate);\n-\n-    void reRefer(URL newSubscribeUrl);\n-\n-    void fallbackToInterfaceInvoker();\n-\n-    AtomicBoolean invokersChanged();\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.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+public interface MigrationClusterInvoker<T> extends ClusterInvoker<T> {\r\n+\r\n+    boolean isServiceInvoker();\r\n+\r\n+    MigrationRule getMigrationRule();\r\n+\r\n+    void setMigrationRule(MigrationRule rule);\r\n+\r\n+    void destroyServiceDiscoveryInvoker(ClusterInvoker<?> invoker);\r\n+\r\n+    void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> invoker);\r\n+\r\n+    void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker);\r\n+\r\n+    void refreshServiceDiscoveryInvoker();\r\n+\r\n+    void refreshInterfaceInvoker();\r\n+\r\n+    void destroyInterfaceInvoker(ClusterInvoker<T> invoker);\r\n+\r\n+    boolean isMigrationMultiRegistry();\r\n+\r\n+    void migrateToServiceDiscoveryInvoker(boolean forceMigrate);\r\n+\r\n+    void reRefer(URL newSubscribeUrl);\r\n+\r\n+    void fallbackToInterfaceInvoker();\r\n+\r\n+    AtomicBoolean invokersChanged();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,90 +1,90 @@\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.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.Constructor;\n-\n-import java.util.Optional;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\n-\n-public class MigrationRule {\n-    private static final String DUBBO_SERVICEDISCOVERY_MIGRATION_KEY = \"dubbo.application.service-discovery.migration\";\n-    public static final String DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP = \"MIGRATION\";\n-    public static final String RULE_KEY = ApplicationModel.getName() + \".migration\";\n-\n-    private static DynamicConfiguration configuration = null;\n-\n-    static {\n-        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\n-        optional.ifPresent(dynamicConfiguration -> configuration = dynamicConfiguration);\n-    }\n-\n-    private String key;\n-    private MigrationStep step = MigrationStep.FORCE_INTERFACE;\n-\n-    public String getKey() {\n-        return key;\n-    }\n-\n-    public void setKey(String key) {\n-        this.key = key;\n-    }\n-\n-    public MigrationStep getStep() {\n-        return step;\n-    }\n-\n-    public void setStep(MigrationStep step) {\n-        this.step = step;\n-    }\n-\n-    public static MigrationRule parse(String rawRule) {\n-        if (null == configuration) {\n-            return getMigrationRule(null);\n-        }\n-\n-        if (StringUtils.isBlank(rawRule) || INIT.equals(rawRule)) {\n-            String step = (String)configuration.getInternalProperty(DUBBO_SERVICEDISCOVERY_MIGRATION_KEY);\n-            return getMigrationRule(step);\n-\n-        }\n-\n-        Constructor constructor = new Constructor(MigrationRule.class);\n-        Yaml yaml = new Yaml(constructor);\n-        return yaml.load(rawRule);\n-    }\n-\n-    public static MigrationRule queryRule() {\n-        if (null == configuration) {\n-            return getMigrationRule(null);\n-        }\n-\n-        String rawRule = configuration.getConfig(MigrationRule.RULE_KEY, DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\n-        return parse(rawRule);\n-    }\n-\n-    private  static MigrationRule getMigrationRule(String step) {\n-        MigrationRule rule = new MigrationRule();\n-        rule.setStep(Enum.valueOf(MigrationStep.class, StringUtils.isBlank(step) ? MigrationStep.APPLICATION_FIRST.name() : step));\n-        return rule;\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.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.Constructor;\r\n+\r\n+import java.util.Optional;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\r\n+\r\n+public class MigrationRule {\r\n+    private static final String DUBBO_SERVICEDISCOVERY_MIGRATION_KEY = \"dubbo.application.service-discovery.migration\";\r\n+    public static final String DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP = \"MIGRATION\";\r\n+    public static final String RULE_KEY = ApplicationModel.getName() + \".migration\";\r\n+\r\n+    private static DynamicConfiguration configuration = null;\r\n+\r\n+    static {\r\n+        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\r\n+        optional.ifPresent(dynamicConfiguration -> configuration = dynamicConfiguration);\r\n+    }\r\n+\r\n+    private String key;\r\n+    private MigrationStep step = MigrationStep.FORCE_INTERFACE;\r\n+\r\n+    public String getKey() {\r\n+        return key;\r\n+    }\r\n+\r\n+    public void setKey(String key) {\r\n+        this.key = key;\r\n+    }\r\n+\r\n+    public MigrationStep getStep() {\r\n+        return step;\r\n+    }\r\n+\r\n+    public void setStep(MigrationStep step) {\r\n+        this.step = step;\r\n+    }\r\n+\r\n+    public static MigrationRule parse(String rawRule) {\r\n+        if (null == configuration) {\r\n+            return getMigrationRule(null);\r\n+        }\r\n+\r\n+        if (StringUtils.isBlank(rawRule) || INIT.equals(rawRule)) {\r\n+            String step = (String)configuration.getInternalProperty(DUBBO_SERVICEDISCOVERY_MIGRATION_KEY);\r\n+            return getMigrationRule(step);\r\n+\r\n+        }\r\n+\r\n+        Constructor constructor = new Constructor(MigrationRule.class);\r\n+        Yaml yaml = new Yaml(constructor);\r\n+        return yaml.load(rawRule);\r\n+    }\r\n+\r\n+    public static MigrationRule queryRule() {\r\n+        if (null == configuration) {\r\n+            return getMigrationRule(null);\r\n+        }\r\n+\r\n+        String rawRule = configuration.getConfig(MigrationRule.RULE_KEY, DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\r\n+        return parse(rawRule);\r\n+    }\r\n+\r\n+    private  static MigrationRule getMigrationRule(String step) {\r\n+        MigrationRule rule = new MigrationRule();\r\n+        rule.setStep(Enum.valueOf(MigrationStep.class, StringUtils.isBlank(step) ? MigrationStep.APPLICATION_FIRST.name() : step));\r\n+        return rule;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,23 +1,23 @@\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.rpc.cluster.support.migration;\n-\n-public enum MigrationStep {\n-    FORCE_INTERFACE,\n-    APPLICATION_FIRST,\n-    FORCE_APPLICATION\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.rpc.cluster.support.migration;\r\n+\r\n+public enum MigrationStep {\r\n+    FORCE_INTERFACE,\r\n+    APPLICATION_FIRST,\r\n+    FORCE_APPLICATION\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,36 +1,36 @@\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.rpc.cluster.support.registry;\n-\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\n-\n-/**\n- * See {@link ZoneAwareClusterInvoker}\n- */\n-public class ZoneAwareCluster extends AbstractCluster {\n-\n-    public final static String NAME = \"zone-aware\";\n-\n-    @Override\n-    protected <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\n-        return new ZoneAwareClusterInvoker<T>(directory);\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.rpc.cluster.support.registry;\r\n+\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\r\n+\r\n+/**\r\n+ * See {@link ZoneAwareClusterInvoker}\r\n+ */\r\n+public class ZoneAwareCluster extends AbstractCluster {\r\n+\r\n+    public final static String NAME = \"zone-aware\";\r\n+\r\n+    @Override\r\n+    protected <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\r\n+        return new ZoneAwareClusterInvoker<T>(directory);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,253 +1,253 @@\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.rpc.cluster.support.registry;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterComparator;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PREFERRED_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.LOADBALANCE_AMONG_REGISTRIES;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.ZONE_KEY;\n-\n-/**\n- * When there're more than one registry for subscription.\n- * <p>\n- * This extension provides a strategy to decide how to distribute traffics among them:\n- * 1. registry marked as 'preferred=true' has the highest priority.\n- * 2. check the zone the current request belongs, pick the registry that has the same zone first.\n- * 3. Evenly balance traffic between all registries based on each registry's weight.\n- * 4. Pick anyone that's available.\n- */\n-public class ZoneAwareClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ZoneAwareClusterInvoker.class);\n-\n-    private static final String PREFER_REGISTRY_KEY = REGISTRY_KEY + \".\" + PREFERRED_KEY;\n-\n-    private static final String PREFER_REGISTRY_WITH_ZONE_KEY = REGISTRY_KEY + \".\" + ZONE_KEY;\n-\n-    private final LoadBalance loadBalanceAmongRegistries = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(LOADBALANCE_AMONG_REGISTRIES);\n-\n-    public ZoneAwareClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        // First, pick the invoker (XXXClusterInvoker) that comes from the local registry, distinguish by a 'preferred' key.\n-        for (Invoker<T> invoker : invokers) {\n-            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-            if (clusterInvoker.isAvailable() && clusterInvoker.getRegistryUrl()\n-                    .getParameter(PREFER_REGISTRY_KEY, false)) {\n-                return clusterInvoker.invoke(invocation);\n-            }\n-        }\n-\n-        // providers in the registry with the same zone\n-        String zone = invocation.getAttachment(REGISTRY_ZONE);\n-        if (StringUtils.isNotEmpty(zone)) {\n-            for (Invoker<T> invoker : invokers) {\n-                ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-                if (clusterInvoker.isAvailable() && zone.equals(clusterInvoker.getRegistryUrl().getParameter(PREFER_REGISTRY_WITH_ZONE_KEY))) {\n-                    return clusterInvoker.invoke(invocation);\n-                }\n-            }\n-            String force = invocation.getAttachment(REGISTRY_ZONE_FORCE);\n-            if (StringUtils.isNotEmpty(force) && \"true\".equalsIgnoreCase(force)) {\n-                throw new IllegalStateException(\"No registry instance in zone or no available providers in the registry, zone: \"\n-                        + zone\n-                        + \", registries: \" + invokers.stream().map(invoker -> ((MockClusterInvoker<T>) invoker).getRegistryUrl().toString()).collect(Collectors.joining(\",\")));\n-            }\n-        }\n-\n-\n-        // load balance among all registries, with registry weight count in.\n-        Invoker<T> balancedInvoker = select(loadBalanceAmongRegistries, invocation, invokers, null);\n-        if (balancedInvoker.isAvailable()) {\n-            return balancedInvoker.invoke(invocation);\n-        }\n-\n-        // If none of the invokers has a preferred signal or is picked by the loadbalancer, pick the first one available.\n-        for (Invoker<T> invoker : invokers) {\n-            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-            if (clusterInvoker.isAvailable()) {\n-                return clusterInvoker.invoke(invocation);\n-            }\n-        }\n-\n-        //if none available,just pick one\n-        return invokers.get(0).invoke(invocation);\n-    }\n-\n-    @Override\n-    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        List<Invoker<T>> invokers = super.list(invocation);\n-\n-        if (null == invokers || invokers.size() < 2) {\n-            return invokers;\n-        }\n-\n-        List<Invoker<T>> interfaceInvokers = new ArrayList<>();\n-        List<Invoker<T>> serviceInvokers = new ArrayList<>();\n-        boolean addressChanged = false;\n-        for (Invoker<T> invoker : invokers) {\n-            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\n-            if (migrationClusterInvoker.isServiceInvoker()) {\n-                serviceInvokers.add(invoker);\n-            } else {\n-                interfaceInvokers.add(invoker);\n-            }\n-\n-            if (migrationClusterInvoker.invokersChanged().compareAndSet(true, false)) {\n-                addressChanged = true;\n-            }\n-        }\n-\n-        if (serviceInvokers.isEmpty() || interfaceInvokers.isEmpty()) {\n-            return invokers;\n-        }\n-\n-        MigrationRule rule = null;\n-        for (Invoker<T> invoker : serviceInvokers) {\n-            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\n-\n-            if (rule == null) {\n-                rule = migrationClusterInvoker.getMigrationRule();\n-                continue;\n-            }\n-\n-            // inconsistency rule\n-            if (!rule.equals(migrationClusterInvoker.getMigrationRule())) {\n-                rule = MigrationRule.queryRule();\n-                break;\n-            }\n-        }\n-\n-        MigrationStep step = rule.getStep();\n-\n-        switch (step) {\n-            case FORCE_INTERFACE:\n-                clusterRefresh(addressChanged, interfaceInvokers);\n-                clusterDestroy(addressChanged, serviceInvokers, true);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is FORCE_INTERFACE\");\n-                }\n-                return interfaceInvokers;\n-\n-            case APPLICATION_FIRST:\n-                clusterRefresh(addressChanged, serviceInvokers);\n-                clusterRefresh(addressChanged, interfaceInvokers);\n-\n-                boolean serviceAvailable = !serviceInvokers.isEmpty();\n-                if (serviceAvailable) {\n-                    if (shouldMigrate(addressChanged, serviceInvokers, interfaceInvokers)) {\n-                        if (logger.isDebugEnabled()) {\n-                            logger.debug(\"step is APPLICATION_FIRST shouldMigrate true get serviceInvokers\");\n-                        }\n-                        return serviceInvokers;\n-                    }\n-                }\n-\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is APPLICATION_FIRST \" + (serviceInvokers.isEmpty() ? \"serviceInvokers is empty\" : \"shouldMigrate false\") + \" get interfaceInvokers\");\n-                }\n-\n-                return interfaceInvokers;\n-\n-            case FORCE_APPLICATION:\n-                clusterRefresh(addressChanged, serviceInvokers);\n-                clusterDestroy(addressChanged, interfaceInvokers, true);\n-\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is FORCE_APPLICATION\");\n-                }\n-\n-                return serviceInvokers;\n-        }\n-\n-        throw new UnsupportedOperationException(rule.getStep().name());\n-    }\n-\n-\n-    private boolean shouldMigrate(boolean addressChanged, List<Invoker<T>> serviceInvokers, List<Invoker<T>> interfaceInvokers) {\n-        Set<MigrationClusterComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationClusterComparator.class).getSupportedExtensionInstances();\n-        if (detectors != null && !detectors.isEmpty()) {\n-            return detectors.stream().allMatch(s -> s.shouldMigrate(interfaceInvokers, serviceInvokers));\n-        }\n-\n-        // check application level provider available.\n-        List<Invoker<T>> availableServiceInvokers = serviceInvokers.stream().filter(s -> s.isAvailable()).collect(Collectors.toList());\n-        return !availableServiceInvokers.isEmpty();\n-    }\n-\n-    private void clusterDestroy(boolean addressChanged, List<Invoker<T>> invokers, boolean destroySub) {\n-        if (addressChanged) {\n-            invokers.forEach(s -> {\n-                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\n-                if (invoker.isServiceInvoker()) {\n-                    invoker.discardServiceDiscoveryInvokerAddress(invoker);\n-                    if (destroySub) {\n-                        invoker.destroyServiceDiscoveryInvoker(invoker);\n-                    }\n-                } else {\n-                    invoker.discardInterfaceInvokerAddress(invoker);\n-                    if (destroySub) {\n-                        invoker.destroyInterfaceInvoker(invoker);\n-                    }\n-                }\n-            });\n-        }\n-    }\n-\n-    private void clusterRefresh(boolean addressChanged, List<Invoker<T>> invokers) {\n-        if (addressChanged) {\n-            invokers.forEach(s -> {\n-                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\n-                if (invoker.isServiceInvoker()) {\n-                    invoker.refreshServiceDiscoveryInvoker();\n-                } else {\n-                    invoker.refreshInterfaceInvoker();\n-                }\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.rpc.cluster.support.registry;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterComparator;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PREFERRED_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.LOADBALANCE_AMONG_REGISTRIES;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.ZONE_KEY;\r\n+\r\n+/**\r\n+ * When there're more than one registry for subscription.\r\n+ * <p>\r\n+ * This extension provides a strategy to decide how to distribute traffics among them:\r\n+ * 1. registry marked as 'preferred=true' has the highest priority.\r\n+ * 2. check the zone the current request belongs, pick the registry that has the same zone first.\r\n+ * 3. Evenly balance traffic between all registries based on each registry's weight.\r\n+ * 4. Pick anyone that's available.\r\n+ */\r\n+public class ZoneAwareClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ZoneAwareClusterInvoker.class);\r\n+\r\n+    private static final String PREFER_REGISTRY_KEY = REGISTRY_KEY + \".\" + PREFERRED_KEY;\r\n+\r\n+    private static final String PREFER_REGISTRY_WITH_ZONE_KEY = REGISTRY_KEY + \".\" + ZONE_KEY;\r\n+\r\n+    private final LoadBalance loadBalanceAmongRegistries = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(LOADBALANCE_AMONG_REGISTRIES);\r\n+\r\n+    public ZoneAwareClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        // First, pick the invoker (XXXClusterInvoker) that comes from the local registry, distinguish by a 'preferred' key.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+            if (clusterInvoker.isAvailable() && clusterInvoker.getRegistryUrl()\r\n+                    .getParameter(PREFER_REGISTRY_KEY, false)) {\r\n+                return clusterInvoker.invoke(invocation);\r\n+            }\r\n+        }\r\n+\r\n+        // providers in the registry with the same zone\r\n+        String zone = invocation.getAttachment(REGISTRY_ZONE);\r\n+        if (StringUtils.isNotEmpty(zone)) {\r\n+            for (Invoker<T> invoker : invokers) {\r\n+                ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+                if (clusterInvoker.isAvailable() && zone.equals(clusterInvoker.getRegistryUrl().getParameter(PREFER_REGISTRY_WITH_ZONE_KEY))) {\r\n+                    return clusterInvoker.invoke(invocation);\r\n+                }\r\n+            }\r\n+            String force = invocation.getAttachment(REGISTRY_ZONE_FORCE);\r\n+            if (StringUtils.isNotEmpty(force) && \"true\".equalsIgnoreCase(force)) {\r\n+                throw new IllegalStateException(\"No registry instance in zone or no available providers in the registry, zone: \"\r\n+                        + zone\r\n+                        + \", registries: \" + invokers.stream().map(invoker -> ((MockClusterInvoker<T>) invoker).getRegistryUrl().toString()).collect(Collectors.joining(\",\")));\r\n+            }\r\n+        }\r\n+\r\n+\r\n+        // load balance among all registries, with registry weight count in.\r\n+        Invoker<T> balancedInvoker = select(loadBalanceAmongRegistries, invocation, invokers, null);\r\n+        if (balancedInvoker.isAvailable()) {\r\n+            return balancedInvoker.invoke(invocation);\r\n+        }\r\n+\r\n+        // If none of the invokers has a preferred signal or is picked by the loadbalancer, pick the first one available.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+            if (clusterInvoker.isAvailable()) {\r\n+                return clusterInvoker.invoke(invocation);\r\n+            }\r\n+        }\r\n+\r\n+        //if none available,just pick one\r\n+        return invokers.get(0).invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        List<Invoker<T>> invokers = super.list(invocation);\r\n+\r\n+        if (null == invokers || invokers.size() < 2) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        List<Invoker<T>> interfaceInvokers = new ArrayList<>();\r\n+        List<Invoker<T>> serviceInvokers = new ArrayList<>();\r\n+        boolean addressChanged = false;\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\r\n+            if (migrationClusterInvoker.isServiceInvoker()) {\r\n+                serviceInvokers.add(invoker);\r\n+            } else {\r\n+                interfaceInvokers.add(invoker);\r\n+            }\r\n+\r\n+            if (migrationClusterInvoker.invokersChanged().compareAndSet(true, false)) {\r\n+                addressChanged = true;\r\n+            }\r\n+        }\r\n+\r\n+        if (serviceInvokers.isEmpty() || interfaceInvokers.isEmpty()) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        MigrationRule rule = null;\r\n+        for (Invoker<T> invoker : serviceInvokers) {\r\n+            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\r\n+\r\n+            if (rule == null) {\r\n+                rule = migrationClusterInvoker.getMigrationRule();\r\n+                continue;\r\n+            }\r\n+\r\n+            // inconsistency rule\r\n+            if (!rule.equals(migrationClusterInvoker.getMigrationRule())) {\r\n+                rule = MigrationRule.queryRule();\r\n+                break;\r\n+            }\r\n+        }\r\n+\r\n+        MigrationStep step = rule.getStep();\r\n+\r\n+        switch (step) {\r\n+            case FORCE_INTERFACE:\r\n+                clusterRefresh(addressChanged, interfaceInvokers);\r\n+                clusterDestroy(addressChanged, serviceInvokers, true);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is FORCE_INTERFACE\");\r\n+                }\r\n+                return interfaceInvokers;\r\n+\r\n+            case APPLICATION_FIRST:\r\n+                clusterRefresh(addressChanged, serviceInvokers);\r\n+                clusterRefresh(addressChanged, interfaceInvokers);\r\n+\r\n+                boolean serviceAvailable = !serviceInvokers.isEmpty();\r\n+                if (serviceAvailable) {\r\n+                    if (shouldMigrate(addressChanged, serviceInvokers, interfaceInvokers)) {\r\n+                        if (logger.isDebugEnabled()) {\r\n+                            logger.debug(\"step is APPLICATION_FIRST shouldMigrate true get serviceInvokers\");\r\n+                        }\r\n+                        return serviceInvokers;\r\n+                    }\r\n+                }\r\n+\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is APPLICATION_FIRST \" + (serviceInvokers.isEmpty() ? \"serviceInvokers is empty\" : \"shouldMigrate false\") + \" get interfaceInvokers\");\r\n+                }\r\n+\r\n+                return interfaceInvokers;\r\n+\r\n+            case FORCE_APPLICATION:\r\n+                clusterRefresh(addressChanged, serviceInvokers);\r\n+                clusterDestroy(addressChanged, interfaceInvokers, true);\r\n+\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is FORCE_APPLICATION\");\r\n+                }\r\n+\r\n+                return serviceInvokers;\r\n+        }\r\n+\r\n+        throw new UnsupportedOperationException(rule.getStep().name());\r\n+    }\r\n+\r\n+\r\n+    private boolean shouldMigrate(boolean addressChanged, List<Invoker<T>> serviceInvokers, List<Invoker<T>> interfaceInvokers) {\r\n+        Set<MigrationClusterComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationClusterComparator.class).getSupportedExtensionInstances();\r\n+        if (detectors != null && !detectors.isEmpty()) {\r\n+            return detectors.stream().allMatch(s -> s.shouldMigrate(interfaceInvokers, serviceInvokers));\r\n+        }\r\n+\r\n+        // check application level provider available.\r\n+        List<Invoker<T>> availableServiceInvokers = serviceInvokers.stream().filter(s -> s.isAvailable()).collect(Collectors.toList());\r\n+        return !availableServiceInvokers.isEmpty();\r\n+    }\r\n+\r\n+    private void clusterDestroy(boolean addressChanged, List<Invoker<T>> invokers, boolean destroySub) {\r\n+        if (addressChanged) {\r\n+            invokers.forEach(s -> {\r\n+                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\r\n+                if (invoker.isServiceInvoker()) {\r\n+                    invoker.discardServiceDiscoveryInvokerAddress(invoker);\r\n+                    if (destroySub) {\r\n+                        invoker.destroyServiceDiscoveryInvoker(invoker);\r\n+                    }\r\n+                } else {\r\n+                    invoker.discardInterfaceInvokerAddress(invoker);\r\n+                    if (destroySub) {\r\n+                        invoker.destroyInterfaceInvoker(invoker);\r\n+                    }\r\n+                }\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    private void clusterRefresh(boolean addressChanged, List<Invoker<T>> invokers) {\r\n+        if (addressChanged) {\r\n+            invokers.forEach(s -> {\r\n+                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\r\n+                if (invoker.isServiceInvoker()) {\r\n+                    invoker.refreshServiceDiscoveryInvoker();\r\n+                } else {\r\n+                    invoker.refreshInterfaceInvoker();\r\n+                }\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,132 +1,132 @@\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.rpc.cluster.support.wrapper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_INTERCEPTOR_KEY;\n-\n-public abstract class AbstractCluster implements Cluster {\n-\n-    private <T> Invoker<T> buildClusterInterceptors(AbstractClusterInvoker<T> clusterInvoker, String key) {\n-        AbstractClusterInvoker<T> last = clusterInvoker;\n-        List<ClusterInterceptor> interceptors = ExtensionLoader.getExtensionLoader(ClusterInterceptor.class).getActivateExtension(clusterInvoker.getUrl(), key);\n-\n-        if (!interceptors.isEmpty()) {\n-            for (int i = interceptors.size() - 1; i >= 0; i--) {\n-                final ClusterInterceptor interceptor = interceptors.get(i);\n-                final AbstractClusterInvoker<T> next = last;\n-                last = new InterceptorInvokerNode<>(clusterInvoker, interceptor, next);\n-            }\n-        }\n-        return last;\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> join(Directory<T> directory) throws RpcException {\n-        return buildClusterInterceptors(doJoin(directory), directory.getUrl().getParameter(REFERENCE_INTERCEPTOR_KEY));\n-    }\n-\n-    protected abstract <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException;\n-\n-    protected class InterceptorInvokerNode<T> extends AbstractClusterInvoker<T> {\n-\n-        private AbstractClusterInvoker<T> clusterInvoker;\n-        private ClusterInterceptor interceptor;\n-        private AbstractClusterInvoker<T> next;\n-\n-        public InterceptorInvokerNode(AbstractClusterInvoker<T> clusterInvoker,\n-                                      ClusterInterceptor interceptor,\n-                                      AbstractClusterInvoker<T> next) {\n-            this.clusterInvoker = clusterInvoker;\n-            this.interceptor = interceptor;\n-            this.next = next;\n-        }\n-\n-        @Override\n-        public Class<T> getInterface() {\n-            return clusterInvoker.getInterface();\n-        }\n-\n-        @Override\n-        public URL getUrl() {\n-            return clusterInvoker.getUrl();\n-        }\n-\n-        @Override\n-        public boolean isAvailable() {\n-            return clusterInvoker.isAvailable();\n-        }\n-\n-        @Override\n-        public Result invoke(Invocation invocation) throws RpcException {\n-            Result asyncResult;\n-            try {\n-                interceptor.before(next, invocation);\n-                asyncResult = interceptor.intercept(next, invocation);\n-            } catch (Exception e) {\n-                // onError callback\n-                if (interceptor instanceof ClusterInterceptor.Listener) {\n-                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\n-                    listener.onError(e, clusterInvoker, invocation);\n-                }\n-                throw e;\n-            } finally {\n-                interceptor.after(next, invocation);\n-            }\n-            return asyncResult.whenCompleteWithContext((r, t) -> {\n-                // onResponse callback\n-                if (interceptor instanceof ClusterInterceptor.Listener) {\n-                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\n-                    if (t == null) {\n-                        listener.onMessage(r, clusterInvoker, invocation);\n-                    } else {\n-                        listener.onError(t, clusterInvoker, invocation);\n-                    }\n-                }\n-            });\n-        }\n-\n-        @Override\n-        public void destroy() {\n-            clusterInvoker.destroy();\n-        }\n-\n-        @Override\n-        public String toString() {\n-            return clusterInvoker.toString();\n-        }\n-\n-        @Override\n-        protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-            // The only purpose is to build an interceptor chain, so the cluster related logic doesn't matter.\n-            return null;\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.rpc.cluster.support.wrapper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_INTERCEPTOR_KEY;\r\n+\r\n+public abstract class AbstractCluster implements Cluster {\r\n+\r\n+    private <T> Invoker<T> buildClusterInterceptors(AbstractClusterInvoker<T> clusterInvoker, String key) {\r\n+        AbstractClusterInvoker<T> last = clusterInvoker;\r\n+        List<ClusterInterceptor> interceptors = ExtensionLoader.getExtensionLoader(ClusterInterceptor.class).getActivateExtension(clusterInvoker.getUrl(), key);\r\n+\r\n+        if (!interceptors.isEmpty()) {\r\n+            for (int i = interceptors.size() - 1; i >= 0; i--) {\r\n+                final ClusterInterceptor interceptor = interceptors.get(i);\r\n+                final AbstractClusterInvoker<T> next = last;\r\n+                last = new InterceptorInvokerNode<>(clusterInvoker, interceptor, next);\r\n+            }\r\n+        }\r\n+        return last;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> join(Directory<T> directory) throws RpcException {\r\n+        return buildClusterInterceptors(doJoin(directory), directory.getUrl().getParameter(REFERENCE_INTERCEPTOR_KEY));\r\n+    }\r\n+\r\n+    protected abstract <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException;\r\n+\r\n+    protected class InterceptorInvokerNode<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+        private AbstractClusterInvoker<T> clusterInvoker;\r\n+        private ClusterInterceptor interceptor;\r\n+        private AbstractClusterInvoker<T> next;\r\n+\r\n+        public InterceptorInvokerNode(AbstractClusterInvoker<T> clusterInvoker,\r\n+                                      ClusterInterceptor interceptor,\r\n+                                      AbstractClusterInvoker<T> next) {\r\n+            this.clusterInvoker = clusterInvoker;\r\n+            this.interceptor = interceptor;\r\n+            this.next = next;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Class<T> getInterface() {\r\n+            return clusterInvoker.getInterface();\r\n+        }\r\n+\r\n+        @Override\r\n+        public URL getUrl() {\r\n+            return clusterInvoker.getUrl();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isAvailable() {\r\n+            return clusterInvoker.isAvailable();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Result invoke(Invocation invocation) throws RpcException {\r\n+            Result asyncResult;\r\n+            try {\r\n+                interceptor.before(next, invocation);\r\n+                asyncResult = interceptor.intercept(next, invocation);\r\n+            } catch (Exception e) {\r\n+                // onError callback\r\n+                if (interceptor instanceof ClusterInterceptor.Listener) {\r\n+                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\r\n+                    listener.onError(e, clusterInvoker, invocation);\r\n+                }\r\n+                throw e;\r\n+            } finally {\r\n+                interceptor.after(next, invocation);\r\n+            }\r\n+            return asyncResult.whenCompleteWithContext((r, t) -> {\r\n+                // onResponse callback\r\n+                if (interceptor instanceof ClusterInterceptor.Listener) {\r\n+                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\r\n+                    if (t == null) {\r\n+                        listener.onMessage(r, clusterInvoker, invocation);\r\n+                    } else {\r\n+                        listener.onError(t, clusterInvoker, invocation);\r\n+                    }\r\n+                }\r\n+            });\r\n+        }\r\n+\r\n+        @Override\r\n+        public void destroy() {\r\n+            clusterInvoker.destroy();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return clusterInvoker.toString();\r\n+        }\r\n+\r\n+        @Override\r\n+        protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+            // The only purpose is to build an interceptor chain, so the cluster related logic doesn't matter.\r\n+            return null;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor", "source2": "META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-context=org.apache.dubbo.rpc.cluster.interceptor.ConsumerContextClusterInterceptor\n+context=org.apache.dubbo.rpc.cluster.interceptor.ConsumerContextClusterInterceptor\r\n zone-aware=org.apache.dubbo.rpc.cluster.interceptor.ZoneAwareClusterInterceptor\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-cluster/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,164 +1,160 @@\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 2d70 6172 656e 743c 2f61 7274 6966  bo-parent</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n-00000510: 6c75 7374 6572 3c2f 6172 7469 6661 6374  luster</artifact\n-00000520: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000530: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000540: 0d0a 2020 3c6e 616d 653e 247b 7072 6f6a  ..  <name>${proj\n-00000550: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n-00000560: 2f6e 616d 653e 0d0a 2020 3c64 6573 6372  /name>..  <descr\n-00000570: 6970 7469 6f6e 3e54 6865 2063 6c75 7374  iption>The clust\n-00000580: 6572 206d 6f64 756c 6520 6f66 2064 7562  er module of dub\n-00000590: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005a0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005b0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005c0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <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 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000600: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000610: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000620: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000630: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000640: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000650: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000660: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000670: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000680: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-00000690: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006a0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006b0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006c0: 3c2f 7072 6f70 6572 7469 6573 3e0d 0a20  </properties>.. \n-000006d0: 203c 6465 7065 6e64 656e 6369 6573 3e0d   <dependencies>.\n-000006e0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000006f0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000700: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000710: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000720: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000730: 6475 6262 6f2d 7270 632d 6170 693c 2f61  dubbo-rpc-api</a\n-00000740: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000750: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000760: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000770: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000780: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000790: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-000007a0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-000007b0: 7049 643e 6f72 672e 7961 6d6c 3c2f 6772  pId>org.yaml</gr\n-000007c0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000007d0: 7274 6966 6163 7449 643e 736e 616b 6579  rtifactId>snakey\n-000007e0: 616d 6c3c 2f61 7274 6966 6163 7449 643e  aml</artifactId>\n-000007f0: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000800: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-00000810: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000820: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000830: 2e63 7572 6174 6f72 3c2f 6772 6f75 7049  .curator</groupI\n-00000840: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000850: 6163 7449 643e 6375 7261 746f 722d 6672  actId>curator-fr\n-00000860: 616d 6577 6f72 6b3c 2f61 7274 6966 6163  amework</artifac\n-00000870: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-00000880: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000890: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000008a0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000008b0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000008c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000008d0: 7a6f 6f6b 6565 7065 723c 2f67 726f 7570  zookeeper</group\n-000008e0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008f0: 6661 6374 4964 3e7a 6f6f 6b65 6570 6572  factId>zookeeper\n-00000900: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000910: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000920: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000930: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000940: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000950: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000960: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000970: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000980: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000990: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n-000009a0: 6865 7373 6961 6e32 3c2f 6172 7469 6661  hessian2</artifa\n-000009b0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-000009c0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-000009d0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-000009e0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 2020  /version>..     \n-000009f0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-00000a00: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-00000a10: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-00000a20: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-00000a30: 6f6a 6563 743e 0d0a                      oject>..\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 2d70 6172  factId>dubbo-par\n+00000480: 656e 743c 2f61 7274 6966 6163 7449 643e  ent</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d63 6c75 7374 6572 3c2f 6172  ubbo-cluster</ar\n+00000500: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000510: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000520: 7369 6f6e 3e0a 2020 3c6e 616d 653e 247b  sion>.  <name>${\n+00000530: 7072 6f6a 6563 742e 6172 7469 6661 6374  project.artifact\n+00000540: 4964 7d3c 2f6e 616d 653e 0a20 203c 6465  Id}</name>.  <de\n+00000550: 7363 7269 7074 696f 6e3e 5468 6520 636c  scription>The cl\n+00000560: 7573 7465 7220 6d6f 6475 6c65 206f 6620  uster module of \n+00000570: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000580: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+00000590: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005a0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005b0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005c0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005d0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005e0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+000005f0: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000600: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000610: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000620: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000630: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000640: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000650: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000660: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000670: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+00000680: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+00000690: 6570 6c6f 793e 0a20 203c 2f70 726f 7065  eploy>.  </prope\n+000006a0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+000006b0: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+000006c0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000006d0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000006e0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000006f0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000700: 6374 4964 3e64 7562 626f 2d72 7063 2d61  ctId>dubbo-rpc-a\n+00000710: 7069 3c2f 6172 7469 6661 6374 4964 3e0a  pi</artifactId>.\n+00000720: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000730: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n+00000740: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n+00000750: 6e3e 0a20 2020 203c 2f64 6570 656e 6465  n>.    </depende\n+00000760: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+00000770: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+00000780: 7570 4964 3e6f 7267 2e79 616d 6c3c 2f67  upId>org.yaml</g\n+00000790: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000007a0: 7274 6966 6163 7449 643e 736e 616b 6579  rtifactId>snakey\n+000007b0: 616d 6c3c 2f61 7274 6966 6163 7449 643e  aml</artifactId>\n+000007c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000007d0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000007e0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000007f0: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n+00000800: 7261 746f 723c 2f67 726f 7570 4964 3e0a  rator</groupId>.\n+00000810: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000820: 643e 6375 7261 746f 722d 6672 616d 6577  d>curator-framew\n+00000830: 6f72 6b3c 2f61 7274 6966 6163 7449 643e  ork</artifactId>\n+00000840: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n+00000850: 7374 3c2f 7363 6f70 653e 0a20 2020 203c  st</scope>.    <\n+00000860: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000870: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000880: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000890: 2e61 7061 6368 652e 7a6f 6f6b 6565 7065  .apache.zookeepe\n+000008a0: 723c 2f67 726f 7570 4964 3e0a 2020 2020  r</groupId>.    \n+000008b0: 2020 3c61 7274 6966 6163 7449 643e 7a6f    <artifactId>zo\n+000008c0: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n+000008d0: 7449 643e 0a20 2020 2020 203c 7363 6f70  tId>.      <scop\n+000008e0: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+000008f0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000900: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000910: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000920: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000930: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000940: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000950: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000960: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n+00000970: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000980: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000990: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+000009a0: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+000009b0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+000009c0: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+000009d0: 6465 6e63 793e 0a20 203c 2f64 6570 656e  dency>.  </depen\n+000009e0: 6465 6e63 6965 733e 0a3c 2f70 726f 6a65  dencies>.</proje\n+000009f0: 6374 3e0a                                ct>.\n"}]}
