{"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: 146371 bytes, number of entries: 135\n+Zip file size: 146762 bytes, number of entries: 135\n -rw-r--r--  2.0 unx       64 b- defN 20-Apr-01 08:04 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/remoting/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/\n@@ -27,111 +27,111 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/\n -rw-r--r--  2.0 unx     2318 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      175 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     1850 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Channel.java\n+-rw-r--r--  2.0 unx     1923 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Channel.java\n -rw-r--r--  2.0 unx     2121 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/ChannelHandler.java\n -rw-r--r--  2.0 unx     1419 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Client.java\n--rw-r--r--  2.0 unx     1844 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Codec.java\n--rw-r--r--  2.0 unx     1372 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Codec2.java\n--rw-r--r--  2.0 unx     3707 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Constants.java\n+-rw-r--r--  2.0 unx     1905 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Codec.java\n+-rw-r--r--  2.0 unx     1412 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Codec2.java\n+-rw-r--r--  2.0 unx     3844 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Constants.java\n -rw-r--r--  2.0 unx      940 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Decodeable.java\n--rw-r--r--  2.0 unx     1528 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Dispatcher.java\n+-rw-r--r--  2.0 unx     1569 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Dispatcher.java\n -rw-r--r--  2.0 unx     2109 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Endpoint.java\n -rw-r--r--  2.0 unx     2408 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/ExecutionException.java\n--rw-r--r--  2.0 unx     1555 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/IdleSensible.java\n--rw-r--r--  2.0 unx     3222 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/RemotingException.java\n--rw-r--r--  2.0 unx     1705 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/RemotingServer.java\n--rw-r--r--  2.0 unx     1929 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/TimeoutException.java\n--rw-r--r--  2.0 unx     2068 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Transporter.java\n+-rw-r--r--  2.0 unx     1589 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/IdleSensible.java\n+-rw-r--r--  2.0 unx     3305 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/RemotingException.java\n+-rw-r--r--  2.0 unx     1763 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/RemotingServer.java\n+-rw-r--r--  2.0 unx     1985 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/TimeoutException.java\n+-rw-r--r--  2.0 unx     2126 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Transporter.java\n -rw-r--r--  2.0 unx     3097 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/Transporters.java\n--rw-r--r--  2.0 unx     9220 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java\n+-rw-r--r--  2.0 unx     9561 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java\n -rw-r--r--  2.0 unx     7858 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java\n--rw-r--r--  2.0 unx    43632 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBuffer.java\n+-rw-r--r--  2.0 unx    44583 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBuffer.java\n -rw-r--r--  2.0 unx     1110 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBufferFactory.java\n -rw-r--r--  2.0 unx     3155 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBufferInputStream.java\n -rw-r--r--  2.0 unx     1893 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBufferOutputStream.java\n--rw-r--r--  2.0 unx     4770 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBuffers.java\n+-rw-r--r--  2.0 unx     4926 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/ChannelBuffers.java\n -rw-r--r--  2.0 unx     2629 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/DirectChannelBufferFactory.java\n -rw-r--r--  2.0 unx     5608 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/DynamicChannelBuffer.java\n -rw-r--r--  2.0 unx     6575 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/HeapChannelBuffer.java\n -rw-r--r--  2.0 unx     1913 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/buffer/HeapChannelBufferFactory.java\n -rw-r--r--  2.0 unx     2468 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/ExchangeChannel.java\n -rw-r--r--  2.0 unx     1050 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/ExchangeClient.java\n -rw-r--r--  2.0 unx     1465 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/ExchangeHandler.java\n -rw-r--r--  2.0 unx     1416 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/ExchangeServer.java\n -rw-r--r--  2.0 unx     1970 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/Exchanger.java\n -rw-r--r--  2.0 unx     4957 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/Exchangers.java\n--rw-r--r--  2.0 unx     3675 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/Request.java\n+-rw-r--r--  2.0 unx     3820 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/Request.java\n -rw-r--r--  2.0 unx     4036 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/Response.java\n -rw-r--r--  2.0 unx    20719 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java\n--rw-r--r--  2.0 unx    11499 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/DefaultFuture.java\n+-rw-r--r--  2.0 unx    11800 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/DefaultFuture.java\n -rw-r--r--  2.0 unx     1467 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java\n -rw-r--r--  2.0 unx     4453 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java\n -rw-r--r--  2.0 unx     3541 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/ExchangeServerDelegate.java\n -rw-r--r--  2.0 unx     2486 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/MultiMessage.java\n -rw-r--r--  2.0 unx     1302 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/Replier.java\n -rw-r--r--  2.0 unx     2730 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/ReplierDispatcher.java\n--rw-r--r--  2.0 unx     2878 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java\n+-rw-r--r--  2.0 unx     2975 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java\n -rw-r--r--  2.0 unx     2192 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/CloseTimerTask.java\n -rw-r--r--  2.0 unx     8570 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java\n -rw-r--r--  2.0 unx     7803 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java\n -rw-r--r--  2.0 unx     9342 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java\n -rw-r--r--  2.0 unx     9442 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java\n -rw-r--r--  2.0 unx     1947 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeaderExchanger.java\n--rw-r--r--  2.0 unx     4466 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java\n--rw-r--r--  2.0 unx     2607 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java\n+-rw-r--r--  2.0 unx     4582 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java\n+-rw-r--r--  2.0 unx     2671 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java\n -rw-r--r--  2.0 unx     2768 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/exchange/support/header/ReconnectTimerTask.java\n -rw-r--r--  2.0 unx     1247 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/TelnetHandler.java\n -rw-r--r--  2.0 unx    11885 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java\n -rw-r--r--  2.0 unx     1304 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/Help.java\n -rw-r--r--  2.0 unx     4046 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java\n -rw-r--r--  2.0 unx     5789 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/TelnetUtils.java\n -rw-r--r--  2.0 unx     1848 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java\n -rw-r--r--  2.0 unx     1409 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java\n -rw-r--r--  2.0 unx     3664 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java\n--rw-r--r--  2.0 unx     4221 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java\n+-rw-r--r--  2.0 unx     4316 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java\n -rw-r--r--  2.0 unx     4624 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java\n -rw-r--r--  2.0 unx     1901 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractChannel.java\n -rw-r--r--  2.0 unx     2320 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java\n--rw-r--r--  2.0 unx    11864 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractClient.java\n--rw-r--r--  2.0 unx     3990 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractCodec.java\n--rw-r--r--  2.0 unx     4120 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractEndpoint.java\n+-rw-r--r--  2.0 unx    12207 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractClient.java\n+-rw-r--r--  2.0 unx     4097 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractCodec.java\n+-rw-r--r--  2.0 unx     4235 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractEndpoint.java\n -rw-r--r--  2.0 unx     4184 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractPeer.java\n--rw-r--r--  2.0 unx     7171 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractServer.java\n+-rw-r--r--  2.0 unx     7363 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/AbstractServer.java\n -rw-r--r--  2.0 unx     3227 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ChannelDelegate.java\n -rw-r--r--  2.0 unx     1642 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ChannelHandlerAdapter.java\n -rw-r--r--  2.0 unx     1021 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ChannelHandlerDelegate.java\n -rw-r--r--  2.0 unx     3967 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ChannelHandlerDispatcher.java\n -rw-r--r--  2.0 unx     3566 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ClientDelegate.java\n--rw-r--r--  2.0 unx     7642 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/CodecSupport.java\n--rw-r--r--  2.0 unx     2505 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/DecodeHandler.java\n+-rw-r--r--  2.0 unx     7823 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/CodecSupport.java\n+-rw-r--r--  2.0 unx     2574 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/DecodeHandler.java\n -rw-r--r--  2.0 unx     1129 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ExceedPayloadLimitException.java\n -rw-r--r--  2.0 unx     1717 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/MultiMessageHandler.java\n -rw-r--r--  2.0 unx     3141 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/ServerDelegate.java\n -rw-r--r--  2.0 unx     2379 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/codec/CodecAdapter.java\n -rw-r--r--  2.0 unx     3422 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/codec/TransportCodec.java\n -rw-r--r--  2.0 unx     4613 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java\n -rw-r--r--  2.0 unx     1987 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/ChannelHandlers.java\n--rw-r--r--  2.0 unx     5306 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java\n--rw-r--r--  2.0 unx     3608 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java\n+-rw-r--r--  2.0 unx     5455 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java\n+-rw-r--r--  2.0 unx     3689 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java\n -rw-r--r--  2.0 unx     1313 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java\n--rw-r--r--  2.0 unx     5329 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java\n+-rw-r--r--  2.0 unx     5438 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java\n -rw-r--r--  2.0 unx     1361 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java\n--rw-r--r--  2.0 unx     2227 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java\n--rw-r--r--  2.0 unx     1278 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java\n--rw-r--r--  2.0 unx     3147 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java\n+-rw-r--r--  2.0 unx     2278 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java\n+-rw-r--r--  2.0 unx     1313 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java\n+-rw-r--r--  2.0 unx     3212 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java\n -rw-r--r--  2.0 unx     1365 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java\n--rw-r--r--  2.0 unx     2320 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java\n+-rw-r--r--  2.0 unx     2372 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java\n -rw-r--r--  2.0 unx     1350 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java\n--rw-r--r--  2.0 unx     1800 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/utils/PayloadDropper.java\n--rw-r--r--  2.0 unx     1550 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/utils/UrlUtils.java\n+-rw-r--r--  2.0 unx     1848 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/utils/PayloadDropper.java\n+-rw-r--r--  2.0 unx     1587 b- defN 20-Apr-01 08:04 org/apache/dubbo/remoting/utils/UrlUtils.java\n -rw-r--r--  2.0 unx      190 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.remoting.Codec2\n -rw-r--r--  2.0 unx      419 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.remoting.Dispatcher\n -rw-r--r--  2.0 unx       72 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.remoting.exchange.Exchanger\n -rw-r--r--  2.0 unx      367 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler\n--rw-r--r--  2.0 unx     2385 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml\n+-rw-r--r--  2.0 unx     2326 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml\n -rw-r--r--  2.0 unx       73 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.properties\n-135 files, 409406 bytes uncompressed, 121501 bytes compressed:  70.3%\n+135 files, 413888 bytes uncompressed, 121892 bytes compressed:  70.5%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -587,6127 +587,6127 @@\n 01ACF Extract Zip Spec      14 (20) '2.0'\n 01AD0 Extract OS            00 (0) 'MS-DOS'\n 01AD1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n 01AD3 Compression Method    0008 (8) 'Deflated'\n 01AD5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-01AD9 CRC                   1FBA8398 (532317080)\n-01ADD Compressed Size       00000305 (773)\n-01AE1 Uncompressed Size     0000073A (1850)\n+01AD9 CRC                   040E3AFC (68041468)\n+01ADD Compressed Size       00000310 (784)\n+01AE1 Uncompressed Size     00000783 (1923)\n 01AE5 Filename Length       0026 (38)\n 01AE7 Extra Length          0000 (0)\n 01AE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x1AE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 01B0F PAYLOAD\n \n-01E14 LOCAL HEADER #34      04034B50 (67324752)\n-01E18 Extract Zip Spec      14 (20) '2.0'\n-01E19 Extract OS            00 (0) 'MS-DOS'\n-01E1A General Purpose Flag  0800 (2048)\n+01E1F LOCAL HEADER #34      04034B50 (67324752)\n+01E23 Extract Zip Spec      14 (20) '2.0'\n+01E24 Extract OS            00 (0) 'MS-DOS'\n+01E25 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-01E1C Compression Method    0008 (8) 'Deflated'\n-01E1E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-01E22 CRC                   1A6C5333 (443306803)\n-01E26 Compressed Size       000002F8 (760)\n-01E2A Uncompressed Size     00000849 (2121)\n-01E2E Filename Length       002D (45)\n-01E30 Extra Length          0000 (0)\n-01E32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+01E27 Compression Method    0008 (8) 'Deflated'\n+01E29 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+01E2D CRC                   1A6C5333 (443306803)\n+01E31 Compressed Size       000002F8 (760)\n+01E35 Uncompressed Size     00000849 (2121)\n+01E39 Filename Length       002D (45)\n+01E3B Extra Length          0000 (0)\n+01E3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-01E5F PAYLOAD\n+01E6A PAYLOAD\n \n-02157 LOCAL HEADER #35      04034B50 (67324752)\n-0215B Extract Zip Spec      14 (20) '2.0'\n-0215C Extract OS            00 (0) 'MS-DOS'\n-0215D General Purpose Flag  0800 (2048)\n+02162 LOCAL HEADER #35      04034B50 (67324752)\n+02166 Extract Zip Spec      14 (20) '2.0'\n+02167 Extract OS            00 (0) 'MS-DOS'\n+02168 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0215F Compression Method    0008 (8) 'Deflated'\n-02161 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-02165 CRC                   107C6EE6 (276590310)\n-02169 Compressed Size       000002ED (749)\n-0216D Uncompressed Size     0000058B (1419)\n-02171 Filename Length       0025 (37)\n-02173 Extra Length          0000 (0)\n-02175 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0216A Compression Method    0008 (8) 'Deflated'\n+0216C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02170 CRC                   107C6EE6 (276590310)\n+02174 Compressed Size       000002ED (749)\n+02178 Uncompressed Size     0000058B (1419)\n+0217C Filename Length       0025 (37)\n+0217E Extra Length          0000 (0)\n+02180 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2175: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2180: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0219A PAYLOAD\n+021A5 PAYLOAD\n \n-02487 LOCAL HEADER #36      04034B50 (67324752)\n-0248B Extract Zip Spec      14 (20) '2.0'\n-0248C Extract OS            00 (0) 'MS-DOS'\n-0248D General Purpose Flag  0800 (2048)\n+02492 LOCAL HEADER #36      04034B50 (67324752)\n+02496 Extract Zip Spec      14 (20) '2.0'\n+02497 Extract OS            00 (0) 'MS-DOS'\n+02498 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0248F Compression Method    0008 (8) 'Deflated'\n-02491 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-02495 CRC                   201747E5 (538396645)\n-02499 Compressed Size       00000334 (820)\n-0249D Uncompressed Size     00000734 (1844)\n-024A1 Filename Length       0024 (36)\n-024A3 Extra Length          0000 (0)\n-024A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0249A Compression Method    0008 (8) 'Deflated'\n+0249C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+024A0 CRC                   9EA8C701 (2661861121)\n+024A4 Compressed Size       0000033F (831)\n+024A8 Uncompressed Size     00000771 (1905)\n+024AC Filename Length       0024 (36)\n+024AE Extra Length          0000 (0)\n+024B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x24B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-024C9 PAYLOAD\n+024D4 PAYLOAD\n \n-027FD LOCAL HEADER #37      04034B50 (67324752)\n-02801 Extract Zip Spec      14 (20) '2.0'\n-02802 Extract OS            00 (0) 'MS-DOS'\n-02803 General Purpose Flag  0800 (2048)\n+02813 LOCAL HEADER #37      04034B50 (67324752)\n+02817 Extract Zip Spec      14 (20) '2.0'\n+02818 Extract OS            00 (0) 'MS-DOS'\n+02819 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02805 Compression Method    0008 (8) 'Deflated'\n-02807 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0280B CRC                   B08F3D84 (2962177412)\n-0280F Compressed Size       000002AF (687)\n-02813 Uncompressed Size     0000055C (1372)\n-02817 Filename Length       0025 (37)\n-02819 Extra Length          0000 (0)\n-0281B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0281B Compression Method    0008 (8) 'Deflated'\n+0281D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02821 CRC                   2D139396 (756257686)\n+02825 Compressed Size       000002B7 (695)\n+02829 Uncompressed Size     00000584 (1412)\n+0282D Filename Length       0025 (37)\n+0282F Extra Length          0000 (0)\n+02831 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x281B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2831: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02840 PAYLOAD\n+02856 PAYLOAD\n \n-02AEF LOCAL HEADER #38      04034B50 (67324752)\n-02AF3 Extract Zip Spec      14 (20) '2.0'\n-02AF4 Extract OS            00 (0) 'MS-DOS'\n-02AF5 General Purpose Flag  0800 (2048)\n+02B0D LOCAL HEADER #38      04034B50 (67324752)\n+02B11 Extract Zip Spec      14 (20) '2.0'\n+02B12 Extract OS            00 (0) 'MS-DOS'\n+02B13 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02AF7 Compression Method    0008 (8) 'Deflated'\n-02AF9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-02AFD CRC                   AB401562 (2873103714)\n-02B01 Compressed Size       000005A5 (1445)\n-02B05 Uncompressed Size     00000E7B (3707)\n-02B09 Filename Length       0028 (40)\n-02B0B Extra Length          0000 (0)\n-02B0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+02B15 Compression Method    0008 (8) 'Deflated'\n+02B17 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+02B1B CRC                   CEFC9AFA (3472661242)\n+02B1F Compressed Size       000005B2 (1458)\n+02B23 Uncompressed Size     00000F04 (3844)\n+02B27 Filename Length       0028 (40)\n+02B29 Extra Length          0000 (0)\n+02B2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02B35 PAYLOAD\n+02B53 PAYLOAD\n \n-030DA LOCAL HEADER #39      04034B50 (67324752)\n-030DE Extract Zip Spec      14 (20) '2.0'\n-030DF Extract OS            00 (0) 'MS-DOS'\n-030E0 General Purpose Flag  0800 (2048)\n+03105 LOCAL HEADER #39      04034B50 (67324752)\n+03109 Extract Zip Spec      14 (20) '2.0'\n+0310A Extract OS            00 (0) 'MS-DOS'\n+0310B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-030E2 Compression Method    0008 (8) 'Deflated'\n-030E4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-030E8 CRC                   D7F89917 (3623393559)\n-030EC Compressed Size       00000210 (528)\n-030F0 Uncompressed Size     000003AC (940)\n-030F4 Filename Length       0029 (41)\n-030F6 Extra Length          0000 (0)\n-030F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0310D Compression Method    0008 (8) 'Deflated'\n+0310F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+03113 CRC                   D7F89917 (3623393559)\n+03117 Compressed Size       00000210 (528)\n+0311B Uncompressed Size     000003AC (940)\n+0311F Filename Length       0029 (41)\n+03121 Extra Length          0000 (0)\n+03123 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x30F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3123: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03121 PAYLOAD\n+0314C PAYLOAD\n \n-03331 LOCAL HEADER #40      04034B50 (67324752)\n-03335 Extract Zip Spec      14 (20) '2.0'\n-03336 Extract OS            00 (0) 'MS-DOS'\n-03337 General Purpose Flag  0800 (2048)\n+0335C LOCAL HEADER #40      04034B50 (67324752)\n+03360 Extract Zip Spec      14 (20) '2.0'\n+03361 Extract OS            00 (0) 'MS-DOS'\n+03362 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03339 Compression Method    0008 (8) 'Deflated'\n-0333B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0333F CRC                   277ABF59 (662355801)\n-03343 Compressed Size       00000309 (777)\n-03347 Uncompressed Size     000005F8 (1528)\n-0334B Filename Length       0029 (41)\n-0334D Extra Length          0000 (0)\n-0334F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03364 Compression Method    0008 (8) 'Deflated'\n+03366 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0336A CRC                   4A25E4BC (1243997372)\n+0336E Compressed Size       00000311 (785)\n+03372 Uncompressed Size     00000621 (1569)\n+03376 Filename Length       0029 (41)\n+03378 Extra Length          0000 (0)\n+0337A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x334F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x337A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03378 PAYLOAD\n+033A3 PAYLOAD\n \n-03681 LOCAL HEADER #41      04034B50 (67324752)\n-03685 Extract Zip Spec      14 (20) '2.0'\n-03686 Extract OS            00 (0) 'MS-DOS'\n-03687 General Purpose Flag  0800 (2048)\n+036B4 LOCAL HEADER #41      04034B50 (67324752)\n+036B8 Extract Zip Spec      14 (20) '2.0'\n+036B9 Extract OS            00 (0) 'MS-DOS'\n+036BA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03689 Compression Method    0008 (8) 'Deflated'\n-0368B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0368F CRC                   D97FD102 (3649032450)\n-03693 Compressed Size       00000344 (836)\n-03697 Uncompressed Size     0000083D (2109)\n-0369B Filename Length       0027 (39)\n-0369D Extra Length          0000 (0)\n-0369F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+036BC Compression Method    0008 (8) 'Deflated'\n+036BE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+036C2 CRC                   D97FD102 (3649032450)\n+036C6 Compressed Size       00000344 (836)\n+036CA Uncompressed Size     0000083D (2109)\n+036CE Filename Length       0027 (39)\n+036D0 Extra Length          0000 (0)\n+036D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x369F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x36D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-036C6 PAYLOAD\n+036F9 PAYLOAD\n \n-03A0A LOCAL HEADER #42      04034B50 (67324752)\n-03A0E Extract Zip Spec      14 (20) '2.0'\n-03A0F Extract OS            00 (0) 'MS-DOS'\n-03A10 General Purpose Flag  0800 (2048)\n+03A3D LOCAL HEADER #42      04034B50 (67324752)\n+03A41 Extract Zip Spec      14 (20) '2.0'\n+03A42 Extract OS            00 (0) 'MS-DOS'\n+03A43 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03A12 Compression Method    0008 (8) 'Deflated'\n-03A14 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-03A18 CRC                   6CA638E1 (1822832865)\n-03A1C Compressed Size       0000030F (783)\n-03A20 Uncompressed Size     00000968 (2408)\n-03A24 Filename Length       0031 (49)\n-03A26 Extra Length          0000 (0)\n-03A28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03A45 Compression Method    0008 (8) 'Deflated'\n+03A47 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+03A4B CRC                   6CA638E1 (1822832865)\n+03A4F Compressed Size       0000030F (783)\n+03A53 Uncompressed Size     00000968 (2408)\n+03A57 Filename Length       0031 (49)\n+03A59 Extra Length          0000 (0)\n+03A5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3A28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3A5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03A59 PAYLOAD\n+03A8C PAYLOAD\n \n-03D68 LOCAL HEADER #43      04034B50 (67324752)\n-03D6C Extract Zip Spec      14 (20) '2.0'\n-03D6D Extract OS            00 (0) 'MS-DOS'\n-03D6E General Purpose Flag  0800 (2048)\n+03D9B LOCAL HEADER #43      04034B50 (67324752)\n+03D9F Extract Zip Spec      14 (20) '2.0'\n+03DA0 Extract OS            00 (0) 'MS-DOS'\n+03DA1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-03D70 Compression Method    0008 (8) 'Deflated'\n-03D72 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-03D76 CRC                   A6AFF543 (2796549443)\n-03D7A Compressed Size       000002E1 (737)\n-03D7E Uncompressed Size     00000613 (1555)\n-03D82 Filename Length       002B (43)\n-03D84 Extra Length          0000 (0)\n-03D86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03DA3 Compression Method    0008 (8) 'Deflated'\n+03DA5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+03DA9 CRC                   31AD4BD9 (833440729)\n+03DAD Compressed Size       000002EC (748)\n+03DB1 Uncompressed Size     00000635 (1589)\n+03DB5 Filename Length       002B (43)\n+03DB7 Extra Length          0000 (0)\n+03DB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3D86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x3DB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03DB1 PAYLOAD\n+03DE4 PAYLOAD\n \n-04092 LOCAL HEADER #44      04034B50 (67324752)\n-04096 Extract Zip Spec      14 (20) '2.0'\n-04097 Extract OS            00 (0) 'MS-DOS'\n-04098 General Purpose Flag  0800 (2048)\n+040D0 LOCAL HEADER #44      04034B50 (67324752)\n+040D4 Extract Zip Spec      14 (20) '2.0'\n+040D5 Extract OS            00 (0) 'MS-DOS'\n+040D6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0409A Compression Method    0008 (8) 'Deflated'\n-0409C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-040A0 CRC                   F7D73BF2 (4158077938)\n-040A4 Compressed Size       000003B7 (951)\n-040A8 Uncompressed Size     00000C96 (3222)\n-040AC Filename Length       0030 (48)\n-040AE Extra Length          0000 (0)\n-040B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+040D8 Compression Method    0008 (8) 'Deflated'\n+040DA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+040DE CRC                   8BF38561 (2347992417)\n+040E2 Compressed Size       000003C4 (964)\n+040E6 Uncompressed Size     00000CE9 (3305)\n+040EA Filename Length       0030 (48)\n+040EC Extra Length          0000 (0)\n+040EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x40B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x40EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-040E0 PAYLOAD\n+0411E PAYLOAD\n \n-04497 LOCAL HEADER #45      04034B50 (67324752)\n-0449B Extract Zip Spec      14 (20) '2.0'\n-0449C Extract OS            00 (0) 'MS-DOS'\n-0449D General Purpose Flag  0800 (2048)\n+044E2 LOCAL HEADER #45      04034B50 (67324752)\n+044E6 Extract Zip Spec      14 (20) '2.0'\n+044E7 Extract OS            00 (0) 'MS-DOS'\n+044E8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0449F Compression Method    0008 (8) 'Deflated'\n-044A1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-044A5 CRC                   D7FFC616 (3623863830)\n-044A9 Compressed Size       00000340 (832)\n-044AD Uncompressed Size     000006A9 (1705)\n-044B1 Filename Length       002D (45)\n-044B3 Extra Length          0000 (0)\n-044B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+044EA Compression Method    0008 (8) 'Deflated'\n+044EC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+044F0 CRC                   38EB0C43 (954928195)\n+044F4 Compressed Size       0000034E (846)\n+044F8 Uncompressed Size     000006E3 (1763)\n+044FC Filename Length       002D (45)\n+044FE Extra Length          0000 (0)\n+04500 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x44B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4500: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-044E2 PAYLOAD\n+0452D PAYLOAD\n \n-04822 LOCAL HEADER #46      04034B50 (67324752)\n-04826 Extract Zip Spec      14 (20) '2.0'\n-04827 Extract OS            00 (0) 'MS-DOS'\n-04828 General Purpose Flag  0800 (2048)\n+0487B LOCAL HEADER #46      04034B50 (67324752)\n+0487F Extract Zip Spec      14 (20) '2.0'\n+04880 Extract OS            00 (0) 'MS-DOS'\n+04881 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0482A Compression Method    0008 (8) 'Deflated'\n-0482C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04830 CRC                   272E47E6 (657344486)\n-04834 Compressed Size       0000034C (844)\n-04838 Uncompressed Size     00000789 (1929)\n-0483C Filename Length       002F (47)\n-0483E Extra Length          0000 (0)\n-04840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04883 Compression Method    0008 (8) 'Deflated'\n+04885 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04889 CRC                   D0646959 (3496241497)\n+0488D Compressed Size       00000358 (856)\n+04891 Uncompressed Size     000007C1 (1985)\n+04895 Filename Length       002F (47)\n+04897 Extra Length          0000 (0)\n+04899 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4899: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0486F PAYLOAD\n+048C8 PAYLOAD\n \n-04BBB LOCAL HEADER #47      04034B50 (67324752)\n-04BBF Extract Zip Spec      14 (20) '2.0'\n-04BC0 Extract OS            00 (0) 'MS-DOS'\n-04BC1 General Purpose Flag  0800 (2048)\n+04C20 LOCAL HEADER #47      04034B50 (67324752)\n+04C24 Extract Zip Spec      14 (20) '2.0'\n+04C25 Extract OS            00 (0) 'MS-DOS'\n+04C26 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04BC3 Compression Method    0008 (8) 'Deflated'\n-04BC5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04BC9 CRC                   684E4E1B (1749962267)\n-04BCD Compressed Size       00000351 (849)\n-04BD1 Uncompressed Size     00000814 (2068)\n-04BD5 Filename Length       002A (42)\n-04BD7 Extra Length          0000 (0)\n-04BD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04C28 Compression Method    0008 (8) 'Deflated'\n+04C2A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04C2E CRC                   4475FC12 (1148582930)\n+04C32 Compressed Size       0000035B (859)\n+04C36 Uncompressed Size     0000084E (2126)\n+04C3A Filename Length       002A (42)\n+04C3C Extra Length          0000 (0)\n+04C3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4BD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4C3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04C03 PAYLOAD\n+04C68 PAYLOAD\n \n-04F54 LOCAL HEADER #48      04034B50 (67324752)\n-04F58 Extract Zip Spec      14 (20) '2.0'\n-04F59 Extract OS            00 (0) 'MS-DOS'\n-04F5A General Purpose Flag  0800 (2048)\n+04FC3 LOCAL HEADER #48      04034B50 (67324752)\n+04FC7 Extract Zip Spec      14 (20) '2.0'\n+04FC8 Extract OS            00 (0) 'MS-DOS'\n+04FC9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04F5C Compression Method    0008 (8) 'Deflated'\n-04F5E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-04F62 CRC                   65BE8BD8 (1706986456)\n-04F66 Compressed Size       000003B8 (952)\n-04F6A Uncompressed Size     00000C19 (3097)\n-04F6E Filename Length       002B (43)\n-04F70 Extra Length          0000 (0)\n-04F72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04FCB Compression Method    0008 (8) 'Deflated'\n+04FCD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+04FD1 CRC                   65BE8BD8 (1706986456)\n+04FD5 Compressed Size       000003B8 (952)\n+04FD9 Uncompressed Size     00000C19 (3097)\n+04FDD Filename Length       002B (43)\n+04FDF Extra Length          0000 (0)\n+04FE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4F72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4FE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04F9D PAYLOAD\n+0500C PAYLOAD\n \n-05355 LOCAL HEADER #49      04034B50 (67324752)\n-05359 Extract Zip Spec      14 (20) '2.0'\n-0535A Extract OS            00 (0) 'MS-DOS'\n-0535B General Purpose Flag  0800 (2048)\n+053C4 LOCAL HEADER #49      04034B50 (67324752)\n+053C8 Extract Zip Spec      14 (20) '2.0'\n+053C9 Extract OS            00 (0) 'MS-DOS'\n+053CA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0535D Compression Method    0008 (8) 'Deflated'\n-0535F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-05363 CRC                   68852581 (1753556353)\n-05367 Compressed Size       000006C2 (1730)\n-0536B Uncompressed Size     00002404 (9220)\n-0536F Filename Length       003B (59)\n-05371 Extra Length          0000 (0)\n-05373 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+053CC Compression Method    0008 (8) 'Deflated'\n+053CE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+053D2 CRC                   33E8796E (870873454)\n+053D6 Compressed Size       000006CE (1742)\n+053DA Uncompressed Size     00002559 (9561)\n+053DE Filename Length       003B (59)\n+053E0 Extra Length          0000 (0)\n+053E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5373: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x53E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-053AE PAYLOAD\n+0541D PAYLOAD\n \n-05A70 LOCAL HEADER #50      04034B50 (67324752)\n-05A74 Extract Zip Spec      14 (20) '2.0'\n-05A75 Extract OS            00 (0) 'MS-DOS'\n-05A76 General Purpose Flag  0800 (2048)\n+05AEB LOCAL HEADER #50      04034B50 (67324752)\n+05AEF Extract Zip Spec      14 (20) '2.0'\n+05AF0 Extract OS            00 (0) 'MS-DOS'\n+05AF1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-05A78 Compression Method    0008 (8) 'Deflated'\n-05A7A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-05A7E CRC                   AD83DA8F (2911099535)\n-05A82 Compressed Size       000006AB (1707)\n-05A86 Uncompressed Size     00001EB2 (7858)\n-05A8A Filename Length       0043 (67)\n-05A8C Extra Length          0000 (0)\n-05A8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05AF3 Compression Method    0008 (8) 'Deflated'\n+05AF5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+05AF9 CRC                   AD83DA8F (2911099535)\n+05AFD Compressed Size       000006AB (1707)\n+05B01 Uncompressed Size     00001EB2 (7858)\n+05B05 Filename Length       0043 (67)\n+05B07 Extra Length          0000 (0)\n+05B09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5A8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x5B09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05AD1 PAYLOAD\n+05B4C PAYLOAD\n \n-0617C LOCAL HEADER #51      04034B50 (67324752)\n-06180 Extract Zip Spec      14 (20) '2.0'\n-06181 Extract OS            00 (0) 'MS-DOS'\n-06182 General Purpose Flag  0800 (2048)\n+061F7 LOCAL HEADER #51      04034B50 (67324752)\n+061FB Extract Zip Spec      14 (20) '2.0'\n+061FC Extract OS            00 (0) 'MS-DOS'\n+061FD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-06184 Compression Method    0008 (8) 'Deflated'\n-06186 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0618A CRC                   2E56D9DD (777443805)\n-0618E Compressed Size       0000196A (6506)\n-06192 Uncompressed Size     0000AA70 (43632)\n-06196 Filename Length       0033 (51)\n-06198 Extra Length          0000 (0)\n-0619A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+061FF Compression Method    0008 (8) 'Deflated'\n+06201 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+06205 CRC                   14F45D67 (351559015)\n+06209 Compressed Size       0000198E (6542)\n+0620D Uncompressed Size     0000AE27 (44583)\n+06211 Filename Length       0033 (51)\n+06213 Extra Length          0000 (0)\n+06215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x619A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-061CD PAYLOAD\n+06248 PAYLOAD\n \n-07B37 LOCAL HEADER #52      04034B50 (67324752)\n-07B3B Extract Zip Spec      14 (20) '2.0'\n-07B3C Extract OS            00 (0) 'MS-DOS'\n-07B3D General Purpose Flag  0800 (2048)\n+07BD6 LOCAL HEADER #52      04034B50 (67324752)\n+07BDA Extract Zip Spec      14 (20) '2.0'\n+07BDB Extract OS            00 (0) 'MS-DOS'\n+07BDC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-07B3F Compression Method    0008 (8) 'Deflated'\n-07B41 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-07B45 CRC                   6A53E0FE (1783881982)\n-07B49 Compressed Size       0000024F (591)\n-07B4D Uncompressed Size     00000456 (1110)\n-07B51 Filename Length       003A (58)\n-07B53 Extra Length          0000 (0)\n-07B55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07BDE Compression Method    0008 (8) 'Deflated'\n+07BE0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+07BE4 CRC                   6A53E0FE (1783881982)\n+07BE8 Compressed Size       0000024F (591)\n+07BEC Uncompressed Size     00000456 (1110)\n+07BF0 Filename Length       003A (58)\n+07BF2 Extra Length          0000 (0)\n+07BF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7B55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7BF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07B8F PAYLOAD\n+07C2E PAYLOAD\n \n-07DDE LOCAL HEADER #53      04034B50 (67324752)\n-07DE2 Extract Zip Spec      14 (20) '2.0'\n-07DE3 Extract OS            00 (0) 'MS-DOS'\n-07DE4 General Purpose Flag  0800 (2048)\n+07E7D LOCAL HEADER #53      04034B50 (67324752)\n+07E81 Extract Zip Spec      14 (20) '2.0'\n+07E82 Extract OS            00 (0) 'MS-DOS'\n+07E83 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-07DE6 Compression Method    0008 (8) 'Deflated'\n-07DE8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-07DEC CRC                   4997E6D6 (1234691798)\n-07DF0 Compressed Size       00000429 (1065)\n-07DF4 Uncompressed Size     00000C53 (3155)\n-07DF8 Filename Length       003E (62)\n-07DFA Extra Length          0000 (0)\n-07DFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07E85 Compression Method    0008 (8) 'Deflated'\n+07E87 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+07E8B CRC                   4997E6D6 (1234691798)\n+07E8F Compressed Size       00000429 (1065)\n+07E93 Uncompressed Size     00000C53 (3155)\n+07E97 Filename Length       003E (62)\n+07E99 Extra Length          0000 (0)\n+07E9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7DFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7E9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07E3A PAYLOAD\n+07ED9 PAYLOAD\n \n-08263 LOCAL HEADER #54      04034B50 (67324752)\n-08267 Extract Zip Spec      14 (20) '2.0'\n-08268 Extract OS            00 (0) 'MS-DOS'\n-08269 General Purpose Flag  0800 (2048)\n+08302 LOCAL HEADER #54      04034B50 (67324752)\n+08306 Extract Zip Spec      14 (20) '2.0'\n+08307 Extract OS            00 (0) 'MS-DOS'\n+08308 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0826B Compression Method    0008 (8) 'Deflated'\n-0826D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08271 CRC                   996F8C6F (2574224495)\n-08275 Compressed Size       00000307 (775)\n-08279 Uncompressed Size     00000765 (1893)\n-0827D Filename Length       003F (63)\n-0827F Extra Length          0000 (0)\n-08281 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0830A Compression Method    0008 (8) 'Deflated'\n+0830C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08310 CRC                   996F8C6F (2574224495)\n+08314 Compressed Size       00000307 (775)\n+08318 Uncompressed Size     00000765 (1893)\n+0831C Filename Length       003F (63)\n+0831E Extra Length          0000 (0)\n+08320 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8281: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8320: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-082C0 PAYLOAD\n+0835F PAYLOAD\n \n-085C7 LOCAL HEADER #55      04034B50 (67324752)\n-085CB Extract Zip Spec      14 (20) '2.0'\n-085CC Extract OS            00 (0) 'MS-DOS'\n-085CD General Purpose Flag  0800 (2048)\n+08666 LOCAL HEADER #55      04034B50 (67324752)\n+0866A Extract Zip Spec      14 (20) '2.0'\n+0866B Extract OS            00 (0) 'MS-DOS'\n+0866C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-085CF Compression Method    0008 (8) 'Deflated'\n-085D1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-085D5 CRC                   F6247952 (4129585490)\n-085D9 Compressed Size       0000052D (1325)\n-085DD Uncompressed Size     000012A2 (4770)\n-085E1 Filename Length       0034 (52)\n-085E3 Extra Length          0000 (0)\n-085E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0866E Compression Method    0008 (8) 'Deflated'\n+08670 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08674 CRC                   C2B309D7 (3266513367)\n+08678 Compressed Size       00000537 (1335)\n+0867C Uncompressed Size     0000133E (4926)\n+08680 Filename Length       0034 (52)\n+08682 Extra Length          0000 (0)\n+08684 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x85E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8684: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08619 PAYLOAD\n+086B8 PAYLOAD\n \n-08B46 LOCAL HEADER #56      04034B50 (67324752)\n-08B4A Extract Zip Spec      14 (20) '2.0'\n-08B4B Extract OS            00 (0) 'MS-DOS'\n-08B4C General Purpose Flag  0800 (2048)\n+08BEF LOCAL HEADER #56      04034B50 (67324752)\n+08BF3 Extract Zip Spec      14 (20) '2.0'\n+08BF4 Extract OS            00 (0) 'MS-DOS'\n+08BF5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08B4E Compression Method    0008 (8) 'Deflated'\n-08B50 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08B54 CRC                   9D245ED3 (2636406483)\n-08B58 Compressed Size       000003C0 (960)\n-08B5C Uncompressed Size     00000A45 (2629)\n-08B60 Filename Length       0040 (64)\n-08B62 Extra Length          0000 (0)\n-08B64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+08BF7 Compression Method    0008 (8) 'Deflated'\n+08BF9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+08BFD CRC                   9D245ED3 (2636406483)\n+08C01 Compressed Size       000003C0 (960)\n+08C05 Uncompressed Size     00000A45 (2629)\n+08C09 Filename Length       0040 (64)\n+08C0B Extra Length          0000 (0)\n+08C0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8B64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8C0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08BA4 PAYLOAD\n+08C4D PAYLOAD\n \n-08F64 LOCAL HEADER #57      04034B50 (67324752)\n-08F68 Extract Zip Spec      14 (20) '2.0'\n-08F69 Extract OS            00 (0) 'MS-DOS'\n-08F6A General Purpose Flag  0800 (2048)\n+0900D LOCAL HEADER #57      04034B50 (67324752)\n+09011 Extract Zip Spec      14 (20) '2.0'\n+09012 Extract OS            00 (0) 'MS-DOS'\n+09013 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08F6C Compression Method    0008 (8) 'Deflated'\n-08F6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-08F72 CRC                   5ED5B140 (1591062848)\n-08F76 Compressed Size       00000551 (1361)\n-08F7A Uncompressed Size     000015E8 (5608)\n-08F7E Filename Length       003A (58)\n-08F80 Extra Length          0000 (0)\n-08F82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09015 Compression Method    0008 (8) 'Deflated'\n+09017 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0901B CRC                   5ED5B140 (1591062848)\n+0901F Compressed Size       00000551 (1361)\n+09023 Uncompressed Size     000015E8 (5608)\n+09027 Filename Length       003A (58)\n+09029 Extra Length          0000 (0)\n+0902B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8F82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x902B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08FBC PAYLOAD\n+09065 PAYLOAD\n \n-0950D LOCAL HEADER #58      04034B50 (67324752)\n-09511 Extract Zip Spec      14 (20) '2.0'\n-09512 Extract OS            00 (0) 'MS-DOS'\n-09513 General Purpose Flag  0800 (2048)\n+095B6 LOCAL HEADER #58      04034B50 (67324752)\n+095BA Extract Zip Spec      14 (20) '2.0'\n+095BB Extract OS            00 (0) 'MS-DOS'\n+095BC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09515 Compression Method    0008 (8) 'Deflated'\n-09517 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0951B CRC                   CC038CDE (3422784734)\n-0951F Compressed Size       0000065F (1631)\n-09523 Uncompressed Size     000019AF (6575)\n-09527 Filename Length       0037 (55)\n-09529 Extra Length          0000 (0)\n-0952B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+095BE Compression Method    0008 (8) 'Deflated'\n+095C0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+095C4 CRC                   CC038CDE (3422784734)\n+095C8 Compressed Size       0000065F (1631)\n+095CC Uncompressed Size     000019AF (6575)\n+095D0 Filename Length       0037 (55)\n+095D2 Extra Length          0000 (0)\n+095D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x952B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x95D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09562 PAYLOAD\n+0960B PAYLOAD\n \n-09BC1 LOCAL HEADER #59      04034B50 (67324752)\n-09BC5 Extract Zip Spec      14 (20) '2.0'\n-09BC6 Extract OS            00 (0) 'MS-DOS'\n-09BC7 General Purpose Flag  0800 (2048)\n+09C6A LOCAL HEADER #59      04034B50 (67324752)\n+09C6E Extract Zip Spec      14 (20) '2.0'\n+09C6F Extract OS            00 (0) 'MS-DOS'\n+09C70 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09BC9 Compression Method    0008 (8) 'Deflated'\n-09BCB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-09BCF CRC                   80349D10 (2150931728)\n-09BD3 Compressed Size       00000314 (788)\n-09BD7 Uncompressed Size     00000779 (1913)\n-09BDB Filename Length       003E (62)\n-09BDD Extra Length          0000 (0)\n-09BDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09C72 Compression Method    0008 (8) 'Deflated'\n+09C74 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+09C78 CRC                   80349D10 (2150931728)\n+09C7C Compressed Size       00000314 (788)\n+09C80 Uncompressed Size     00000779 (1913)\n+09C84 Filename Length       003E (62)\n+09C86 Extra Length          0000 (0)\n+09C88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x9BDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x9C88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09C1D PAYLOAD\n+09CC6 PAYLOAD\n \n-09F31 LOCAL HEADER #60      04034B50 (67324752)\n-09F35 Extract Zip Spec      14 (20) '2.0'\n-09F36 Extract OS            00 (0) 'MS-DOS'\n-09F37 General Purpose Flag  0800 (2048)\n+09FDA LOCAL HEADER #60      04034B50 (67324752)\n+09FDE Extract Zip Spec      14 (20) '2.0'\n+09FDF Extract OS            00 (0) 'MS-DOS'\n+09FE0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09F39 Compression Method    0008 (8) 'Deflated'\n-09F3B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-09F3F CRC                   D599DEAA (3583631018)\n-09F43 Compressed Size       00000332 (818)\n-09F47 Uncompressed Size     000009A4 (2468)\n-09F4B Filename Length       0037 (55)\n-09F4D Extra Length          0000 (0)\n-09F4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09FE2 Compression Method    0008 (8) 'Deflated'\n+09FE4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+09FE8 CRC                   D599DEAA (3583631018)\n+09FEC Compressed Size       00000332 (818)\n+09FF0 Uncompressed Size     000009A4 (2468)\n+09FF4 Filename Length       0037 (55)\n+09FF6 Extra Length          0000 (0)\n+09FF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x9F4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x9FF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09F86 PAYLOAD\n+0A02F PAYLOAD\n \n-0A2B8 LOCAL HEADER #61      04034B50 (67324752)\n-0A2BC Extract Zip Spec      14 (20) '2.0'\n-0A2BD Extract OS            00 (0) 'MS-DOS'\n-0A2BE General Purpose Flag  0800 (2048)\n+0A361 LOCAL HEADER #61      04034B50 (67324752)\n+0A365 Extract Zip Spec      14 (20) '2.0'\n+0A366 Extract OS            00 (0) 'MS-DOS'\n+0A367 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A2C0 Compression Method    0008 (8) 'Deflated'\n-0A2C2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0A2C6 CRC                   E165CDFB (3781545467)\n-0A2CA Compressed Size       0000023B (571)\n-0A2CE Uncompressed Size     0000041A (1050)\n-0A2D2 Filename Length       0036 (54)\n-0A2D4 Extra Length          0000 (0)\n-0A2D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A369 Compression Method    0008 (8) 'Deflated'\n+0A36B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0A36F CRC                   E165CDFB (3781545467)\n+0A373 Compressed Size       0000023B (571)\n+0A377 Uncompressed Size     0000041A (1050)\n+0A37B Filename Length       0036 (54)\n+0A37D Extra Length          0000 (0)\n+0A37F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA2D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA37F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A30C PAYLOAD\n+0A3B5 PAYLOAD\n \n-0A547 LOCAL HEADER #62      04034B50 (67324752)\n-0A54B Extract Zip Spec      14 (20) '2.0'\n-0A54C Extract OS            00 (0) 'MS-DOS'\n-0A54D General Purpose Flag  0800 (2048)\n+0A5F0 LOCAL HEADER #62      04034B50 (67324752)\n+0A5F4 Extract Zip Spec      14 (20) '2.0'\n+0A5F5 Extract OS            00 (0) 'MS-DOS'\n+0A5F6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A54F Compression Method    0008 (8) 'Deflated'\n-0A551 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0A555 CRC                   72699C54 (1919523924)\n-0A559 Compressed Size       000002C2 (706)\n-0A55D Uncompressed Size     000005B9 (1465)\n-0A561 Filename Length       0037 (55)\n-0A563 Extra Length          0000 (0)\n-0A565 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A5F8 Compression Method    0008 (8) 'Deflated'\n+0A5FA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0A5FE CRC                   72699C54 (1919523924)\n+0A602 Compressed Size       000002C2 (706)\n+0A606 Uncompressed Size     000005B9 (1465)\n+0A60A Filename Length       0037 (55)\n+0A60C Extra Length          0000 (0)\n+0A60E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA565: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA60E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A59C PAYLOAD\n+0A645 PAYLOAD\n \n-0A85E LOCAL HEADER #63      04034B50 (67324752)\n-0A862 Extract Zip Spec      14 (20) '2.0'\n-0A863 Extract OS            00 (0) 'MS-DOS'\n-0A864 General Purpose Flag  0800 (2048)\n+0A907 LOCAL HEADER #63      04034B50 (67324752)\n+0A90B Extract Zip Spec      14 (20) '2.0'\n+0A90C Extract OS            00 (0) 'MS-DOS'\n+0A90D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A866 Compression Method    0008 (8) 'Deflated'\n-0A868 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0A86C CRC                   330FACB0 (856665264)\n-0A870 Compressed Size       000002A4 (676)\n-0A874 Uncompressed Size     00000588 (1416)\n-0A878 Filename Length       0036 (54)\n-0A87A Extra Length          0000 (0)\n-0A87C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A90F Compression Method    0008 (8) 'Deflated'\n+0A911 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0A915 CRC                   330FACB0 (856665264)\n+0A919 Compressed Size       000002A4 (676)\n+0A91D Uncompressed Size     00000588 (1416)\n+0A921 Filename Length       0036 (54)\n+0A923 Extra Length          0000 (0)\n+0A925 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA87C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA925: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A8B2 PAYLOAD\n+0A95B PAYLOAD\n \n-0AB56 LOCAL HEADER #64      04034B50 (67324752)\n-0AB5A Extract Zip Spec      14 (20) '2.0'\n-0AB5B Extract OS            00 (0) 'MS-DOS'\n-0AB5C General Purpose Flag  0800 (2048)\n+0ABFF LOCAL HEADER #64      04034B50 (67324752)\n+0AC03 Extract Zip Spec      14 (20) '2.0'\n+0AC04 Extract OS            00 (0) 'MS-DOS'\n+0AC05 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0AB5E Compression Method    0008 (8) 'Deflated'\n-0AB60 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0AB64 CRC                   D85DA328 (3630015272)\n-0AB68 Compressed Size       0000033E (830)\n-0AB6C Uncompressed Size     000007B2 (1970)\n-0AB70 Filename Length       0031 (49)\n-0AB72 Extra Length          0000 (0)\n-0AB74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0AC07 Compression Method    0008 (8) 'Deflated'\n+0AC09 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0AC0D CRC                   D85DA328 (3630015272)\n+0AC11 Compressed Size       0000033E (830)\n+0AC15 Uncompressed Size     000007B2 (1970)\n+0AC19 Filename Length       0031 (49)\n+0AC1B Extra Length          0000 (0)\n+0AC1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xAB74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xAC1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0ABA5 PAYLOAD\n+0AC4E PAYLOAD\n \n-0AEE3 LOCAL HEADER #65      04034B50 (67324752)\n-0AEE7 Extract Zip Spec      14 (20) '2.0'\n-0AEE8 Extract OS            00 (0) 'MS-DOS'\n-0AEE9 General Purpose Flag  0800 (2048)\n+0AF8C LOCAL HEADER #65      04034B50 (67324752)\n+0AF90 Extract Zip Spec      14 (20) '2.0'\n+0AF91 Extract OS            00 (0) 'MS-DOS'\n+0AF92 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0AEEB Compression Method    0008 (8) 'Deflated'\n-0AEED Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0AEF1 CRC                   B04E2D51 (2957913425)\n-0AEF5 Compressed Size       00000461 (1121)\n-0AEF9 Uncompressed Size     0000135D (4957)\n-0AEFD Filename Length       0032 (50)\n-0AEFF Extra Length          0000 (0)\n-0AF01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0AF94 Compression Method    0008 (8) 'Deflated'\n+0AF96 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0AF9A CRC                   B04E2D51 (2957913425)\n+0AF9E Compressed Size       00000461 (1121)\n+0AFA2 Uncompressed Size     0000135D (4957)\n+0AFA6 Filename Length       0032 (50)\n+0AFA8 Extra Length          0000 (0)\n+0AFAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xAF01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xAFAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0AF33 PAYLOAD\n+0AFDC PAYLOAD\n \n-0B394 LOCAL HEADER #66      04034B50 (67324752)\n-0B398 Extract Zip Spec      14 (20) '2.0'\n-0B399 Extract OS            00 (0) 'MS-DOS'\n-0B39A General Purpose Flag  0800 (2048)\n+0B43D LOCAL HEADER #66      04034B50 (67324752)\n+0B441 Extract Zip Spec      14 (20) '2.0'\n+0B442 Extract OS            00 (0) 'MS-DOS'\n+0B443 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0B39C Compression Method    0008 (8) 'Deflated'\n-0B39E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0B3A2 CRC                   8CC675B8 (2361816504)\n-0B3A6 Compressed Size       00000513 (1299)\n-0B3AA Uncompressed Size     00000E5B (3675)\n-0B3AE Filename Length       002F (47)\n-0B3B0 Extra Length          0000 (0)\n-0B3B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0B445 Compression Method    0008 (8) 'Deflated'\n+0B447 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0B44B CRC                   D366AAB0 (3546720944)\n+0B44F Compressed Size       0000051E (1310)\n+0B453 Uncompressed Size     00000EEC (3820)\n+0B457 Filename Length       002F (47)\n+0B459 Extra Length          0000 (0)\n+0B45B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xB3B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xB45B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0B3E1 PAYLOAD\n+0B48A PAYLOAD\n \n-0B8F4 LOCAL HEADER #67      04034B50 (67324752)\n-0B8F8 Extract Zip Spec      14 (20) '2.0'\n-0B8F9 Extract OS            00 (0) 'MS-DOS'\n-0B8FA General Purpose Flag  0800 (2048)\n+0B9A8 LOCAL HEADER #67      04034B50 (67324752)\n+0B9AC Extract Zip Spec      14 (20) '2.0'\n+0B9AD Extract OS            00 (0) 'MS-DOS'\n+0B9AE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0B8FC Compression Method    0008 (8) 'Deflated'\n-0B8FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0B902 CRC                   FF46E79C (4282836892)\n-0B906 Compressed Size       0000051B (1307)\n-0B90A Uncompressed Size     00000FC4 (4036)\n-0B90E Filename Length       0030 (48)\n-0B910 Extra Length          0000 (0)\n-0B912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0B9B0 Compression Method    0008 (8) 'Deflated'\n+0B9B2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0B9B6 CRC                   FF46E79C (4282836892)\n+0B9BA Compressed Size       0000051B (1307)\n+0B9BE Uncompressed Size     00000FC4 (4036)\n+0B9C2 Filename Length       0030 (48)\n+0B9C4 Extra Length          0000 (0)\n+0B9C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xB912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xB9C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0B942 PAYLOAD\n+0B9F6 PAYLOAD\n \n-0BE5D LOCAL HEADER #68      04034B50 (67324752)\n-0BE61 Extract Zip Spec      14 (20) '2.0'\n-0BE62 Extract OS            00 (0) 'MS-DOS'\n-0BE63 General Purpose Flag  0800 (2048)\n+0BF11 LOCAL HEADER #68      04034B50 (67324752)\n+0BF15 Extract Zip Spec      14 (20) '2.0'\n+0BF16 Extract OS            00 (0) 'MS-DOS'\n+0BF17 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0BE65 Compression Method    0008 (8) 'Deflated'\n-0BE67 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0BE6B CRC                   6E137A75 (1846770293)\n-0BE6F Compressed Size       00001044 (4164)\n-0BE73 Uncompressed Size     000050EF (20719)\n-0BE77 Filename Length       003B (59)\n-0BE79 Extra Length          0000 (0)\n-0BE7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0BF19 Compression Method    0008 (8) 'Deflated'\n+0BF1B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0BF1F CRC                   6E137A75 (1846770293)\n+0BF23 Compressed Size       00001044 (4164)\n+0BF27 Uncompressed Size     000050EF (20719)\n+0BF2B Filename Length       003B (59)\n+0BF2D Extra Length          0000 (0)\n+0BF2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xBE7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xBF2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0BEB6 PAYLOAD\n+0BF6A PAYLOAD\n \n-0CEFA LOCAL HEADER #69      04034B50 (67324752)\n-0CEFE Extract Zip Spec      14 (20) '2.0'\n-0CEFF Extract OS            00 (0) 'MS-DOS'\n-0CF00 General Purpose Flag  0800 (2048)\n+0CFAE LOCAL HEADER #69      04034B50 (67324752)\n+0CFB2 Extract Zip Spec      14 (20) '2.0'\n+0CFB3 Extract OS            00 (0) 'MS-DOS'\n+0CFB4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0CF02 Compression Method    0008 (8) 'Deflated'\n-0CF04 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0CF08 CRC                   71D1D17D (1909576061)\n-0CF0C Compressed Size       00000C33 (3123)\n-0CF10 Uncompressed Size     00002CEB (11499)\n-0CF14 Filename Length       003D (61)\n-0CF16 Extra Length          0000 (0)\n-0CF18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0CFB6 Compression Method    0008 (8) 'Deflated'\n+0CFB8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0CFBC CRC                   38A27EA4 (950173348)\n+0CFC0 Compressed Size       00000C4B (3147)\n+0CFC4 Uncompressed Size     00002E18 (11800)\n+0CFC8 Filename Length       003D (61)\n+0CFCA Extra Length          0000 (0)\n+0CFCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xCF18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xCFCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0CF55 PAYLOAD\n+0D009 PAYLOAD\n \n-0DB88 LOCAL HEADER #70      04034B50 (67324752)\n-0DB8C Extract Zip Spec      14 (20) '2.0'\n-0DB8D Extract OS            00 (0) 'MS-DOS'\n-0DB8E General Purpose Flag  0800 (2048)\n+0DC54 LOCAL HEADER #70      04034B50 (67324752)\n+0DC58 Extract Zip Spec      14 (20) '2.0'\n+0DC59 Extract OS            00 (0) 'MS-DOS'\n+0DC5A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0DB90 Compression Method    0008 (8) 'Deflated'\n-0DB92 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0DB96 CRC                   8AF6C6B7 (2331428535)\n-0DB9A Compressed Size       000002B3 (691)\n-0DB9E Uncompressed Size     000005BB (1467)\n-0DBA2 Filename Length       0046 (70)\n-0DBA4 Extra Length          0000 (0)\n-0DBA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0DC5C Compression Method    0008 (8) 'Deflated'\n+0DC5E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0DC62 CRC                   8AF6C6B7 (2331428535)\n+0DC66 Compressed Size       000002B3 (691)\n+0DC6A Uncompressed Size     000005BB (1467)\n+0DC6E Filename Length       0046 (70)\n+0DC70 Extra Length          0000 (0)\n+0DC72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDBA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xDC72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0DBEC PAYLOAD\n+0DCB8 PAYLOAD\n \n-0DE9F LOCAL HEADER #71      04034B50 (67324752)\n-0DEA3 Extract Zip Spec      14 (20) '2.0'\n-0DEA4 Extract OS            00 (0) 'MS-DOS'\n-0DEA5 General Purpose Flag  0800 (2048)\n+0DF6B LOCAL HEADER #71      04034B50 (67324752)\n+0DF6F Extract Zip Spec      14 (20) '2.0'\n+0DF70 Extract OS            00 (0) 'MS-DOS'\n+0DF71 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0DEA7 Compression Method    0008 (8) 'Deflated'\n-0DEA9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0DEAD CRC                   2C68D340 (745067328)\n-0DEB1 Compressed Size       0000043C (1084)\n-0DEB5 Uncompressed Size     00001165 (4453)\n-0DEB9 Filename Length       0049 (73)\n-0DEBB Extra Length          0000 (0)\n-0DEBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0DF73 Compression Method    0008 (8) 'Deflated'\n+0DF75 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0DF79 CRC                   2C68D340 (745067328)\n+0DF7D Compressed Size       0000043C (1084)\n+0DF81 Uncompressed Size     00001165 (4453)\n+0DF85 Filename Length       0049 (73)\n+0DF87 Extra Length          0000 (0)\n+0DF89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDEBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xDF89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0DF06 PAYLOAD\n+0DFD2 PAYLOAD\n \n-0E342 LOCAL HEADER #72      04034B50 (67324752)\n-0E346 Extract Zip Spec      14 (20) '2.0'\n-0E347 Extract OS            00 (0) 'MS-DOS'\n-0E348 General Purpose Flag  0800 (2048)\n+0E40E LOCAL HEADER #72      04034B50 (67324752)\n+0E412 Extract Zip Spec      14 (20) '2.0'\n+0E413 Extract OS            00 (0) 'MS-DOS'\n+0E414 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E34A Compression Method    0008 (8) 'Deflated'\n-0E34C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0E350 CRC                   C14E1F5D (3243122525)\n-0E354 Compressed Size       000003EC (1004)\n-0E358 Uncompressed Size     00000DD5 (3541)\n-0E35C Filename Length       0046 (70)\n-0E35E Extra Length          0000 (0)\n-0E360 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0E416 Compression Method    0008 (8) 'Deflated'\n+0E418 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0E41C CRC                   C14E1F5D (3243122525)\n+0E420 Compressed Size       000003EC (1004)\n+0E424 Uncompressed Size     00000DD5 (3541)\n+0E428 Filename Length       0046 (70)\n+0E42A Extra Length          0000 (0)\n+0E42C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE360: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE42C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E3A6 PAYLOAD\n+0E472 PAYLOAD\n \n-0E792 LOCAL HEADER #73      04034B50 (67324752)\n-0E796 Extract Zip Spec      14 (20) '2.0'\n-0E797 Extract OS            00 (0) 'MS-DOS'\n-0E798 General Purpose Flag  0800 (2048)\n+0E85E LOCAL HEADER #73      04034B50 (67324752)\n+0E862 Extract Zip Spec      14 (20) '2.0'\n+0E863 Extract OS            00 (0) 'MS-DOS'\n+0E864 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E79A Compression Method    0008 (8) 'Deflated'\n-0E79C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0E7A0 CRC                   0593378C (93534092)\n-0E7A4 Compressed Size       0000037E (894)\n-0E7A8 Uncompressed Size     000009B6 (2486)\n-0E7AC Filename Length       003C (60)\n-0E7AE Extra Length          0000 (0)\n-0E7B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0E866 Compression Method    0008 (8) 'Deflated'\n+0E868 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0E86C CRC                   0593378C (93534092)\n+0E870 Compressed Size       0000037E (894)\n+0E874 Uncompressed Size     000009B6 (2486)\n+0E878 Filename Length       003C (60)\n+0E87A Extra Length          0000 (0)\n+0E87C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE7B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE87C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E7EC PAYLOAD\n+0E8B8 PAYLOAD\n \n-0EB6A LOCAL HEADER #74      04034B50 (67324752)\n-0EB6E Extract Zip Spec      14 (20) '2.0'\n-0EB6F Extract OS            00 (0) 'MS-DOS'\n-0EB70 General Purpose Flag  0800 (2048)\n+0EC36 LOCAL HEADER #74      04034B50 (67324752)\n+0EC3A Extract Zip Spec      14 (20) '2.0'\n+0EC3B Extract OS            00 (0) 'MS-DOS'\n+0EC3C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0EB72 Compression Method    0008 (8) 'Deflated'\n-0EB74 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0EB78 CRC                   B40DC99A (3020802458)\n-0EB7C Compressed Size       0000028D (653)\n-0EB80 Uncompressed Size     00000516 (1302)\n-0EB84 Filename Length       0037 (55)\n-0EB86 Extra Length          0000 (0)\n-0EB88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0EC3E Compression Method    0008 (8) 'Deflated'\n+0EC40 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0EC44 CRC                   B40DC99A (3020802458)\n+0EC48 Compressed Size       0000028D (653)\n+0EC4C Uncompressed Size     00000516 (1302)\n+0EC50 Filename Length       0037 (55)\n+0EC52 Extra Length          0000 (0)\n+0EC54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xEB88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xEC54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0EBBF PAYLOAD\n+0EC8B PAYLOAD\n \n-0EE4C LOCAL HEADER #75      04034B50 (67324752)\n-0EE50 Extract Zip Spec      14 (20) '2.0'\n-0EE51 Extract OS            00 (0) 'MS-DOS'\n-0EE52 General Purpose Flag  0800 (2048)\n+0EF18 LOCAL HEADER #75      04034B50 (67324752)\n+0EF1C Extract Zip Spec      14 (20) '2.0'\n+0EF1D Extract OS            00 (0) 'MS-DOS'\n+0EF1E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0EE54 Compression Method    0008 (8) 'Deflated'\n-0EE56 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0EE5A CRC                   27689F2C (661167916)\n-0EE5E Compressed Size       0000041D (1053)\n-0EE62 Uncompressed Size     00000AAA (2730)\n-0EE66 Filename Length       0041 (65)\n-0EE68 Extra Length          0000 (0)\n-0EE6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0EF20 Compression Method    0008 (8) 'Deflated'\n+0EF22 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0EF26 CRC                   27689F2C (661167916)\n+0EF2A Compressed Size       0000041D (1053)\n+0EF2E Uncompressed Size     00000AAA (2730)\n+0EF32 Filename Length       0041 (65)\n+0EF34 Extra Length          0000 (0)\n+0EF36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xEE6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xEF36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0EEAB PAYLOAD\n+0EF77 PAYLOAD\n \n-0F2C8 LOCAL HEADER #76      04034B50 (67324752)\n-0F2CC Extract Zip Spec      14 (20) '2.0'\n-0F2CD Extract OS            00 (0) 'MS-DOS'\n-0F2CE General Purpose Flag  0800 (2048)\n+0F394 LOCAL HEADER #76      04034B50 (67324752)\n+0F398 Extract Zip Spec      14 (20) '2.0'\n+0F399 Extract OS            00 (0) 'MS-DOS'\n+0F39A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0F2D0 Compression Method    0008 (8) 'Deflated'\n-0F2D2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0F2D6 CRC                   3CE2D276 (1021497974)\n-0F2DA Compressed Size       00000445 (1093)\n-0F2DE Uncompressed Size     00000B3E (2878)\n-0F2E2 Filename Length       0048 (72)\n-0F2E4 Extra Length          0000 (0)\n-0F2E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0F39C Compression Method    0008 (8) 'Deflated'\n+0F39E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0F3A2 CRC                   E73F3737 (3879679799)\n+0F3A6 Compressed Size       0000044D (1101)\n+0F3AA Uncompressed Size     00000B9F (2975)\n+0F3AE Filename Length       0048 (72)\n+0F3B0 Extra Length          0000 (0)\n+0F3B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xF2E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xF3B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0F32E PAYLOAD\n+0F3FA PAYLOAD\n \n-0F773 LOCAL HEADER #77      04034B50 (67324752)\n-0F777 Extract Zip Spec      14 (20) '2.0'\n-0F778 Extract OS            00 (0) 'MS-DOS'\n-0F779 General Purpose Flag  0800 (2048)\n+0F847 LOCAL HEADER #77      04034B50 (67324752)\n+0F84B Extract Zip Spec      14 (20) '2.0'\n+0F84C Extract OS            00 (0) 'MS-DOS'\n+0F84D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0F77B Compression Method    0008 (8) 'Deflated'\n-0F77D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0F781 CRC                   BC922CD8 (3163696344)\n-0F785 Compressed Size       000003AE (942)\n-0F789 Uncompressed Size     00000890 (2192)\n-0F78D Filename Length       0045 (69)\n-0F78F Extra Length          0000 (0)\n-0F791 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0F84F Compression Method    0008 (8) 'Deflated'\n+0F851 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0F855 CRC                   BC922CD8 (3163696344)\n+0F859 Compressed Size       000003AE (942)\n+0F85D Uncompressed Size     00000890 (2192)\n+0F861 Filename Length       0045 (69)\n+0F863 Extra Length          0000 (0)\n+0F865 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xF791: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xF865: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0F7D6 PAYLOAD\n+0F8AA PAYLOAD\n \n-0FB84 LOCAL HEADER #78      04034B50 (67324752)\n-0FB88 Extract Zip Spec      14 (20) '2.0'\n-0FB89 Extract OS            00 (0) 'MS-DOS'\n-0FB8A General Purpose Flag  0800 (2048)\n+0FC58 LOCAL HEADER #78      04034B50 (67324752)\n+0FC5C Extract Zip Spec      14 (20) '2.0'\n+0FC5D Extract OS            00 (0) 'MS-DOS'\n+0FC5E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0FB8C Compression Method    0008 (8) 'Deflated'\n-0FB8E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-0FB92 CRC                   B13FDACC (2973752012)\n-0FB96 Compressed Size       0000081E (2078)\n-0FB9A Uncompressed Size     0000217A (8570)\n-0FB9E Filename Length       004C (76)\n-0FBA0 Extra Length          0000 (0)\n-0FBA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0FC60 Compression Method    0008 (8) 'Deflated'\n+0FC62 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+0FC66 CRC                   B13FDACC (2973752012)\n+0FC6A Compressed Size       0000081E (2078)\n+0FC6E Uncompressed Size     0000217A (8570)\n+0FC72 Filename Length       004C (76)\n+0FC74 Extra Length          0000 (0)\n+0FC76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xFBA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xFC76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0FBEE PAYLOAD\n+0FCC2 PAYLOAD\n \n-1040C LOCAL HEADER #79      04034B50 (67324752)\n-10410 Extract Zip Spec      14 (20) '2.0'\n-10411 Extract OS            00 (0) 'MS-DOS'\n-10412 General Purpose Flag  0800 (2048)\n+104E0 LOCAL HEADER #79      04034B50 (67324752)\n+104E4 Extract Zip Spec      14 (20) '2.0'\n+104E5 Extract OS            00 (0) 'MS-DOS'\n+104E6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10414 Compression Method    0008 (8) 'Deflated'\n-10416 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1041A CRC                   2FB42746 (800335686)\n-1041E Compressed Size       000007B7 (1975)\n-10422 Uncompressed Size     00001E7B (7803)\n-10426 Filename Length       004B (75)\n-10428 Extra Length          0000 (0)\n-1042A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+104E8 Compression Method    0008 (8) 'Deflated'\n+104EA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+104EE CRC                   2FB42746 (800335686)\n+104F2 Compressed Size       000007B7 (1975)\n+104F6 Uncompressed Size     00001E7B (7803)\n+104FA Filename Length       004B (75)\n+104FC Extra Length          0000 (0)\n+104FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1042A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x104FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10475 PAYLOAD\n+10549 PAYLOAD\n \n-10C2C LOCAL HEADER #80      04034B50 (67324752)\n-10C30 Extract Zip Spec      14 (20) '2.0'\n-10C31 Extract OS            00 (0) 'MS-DOS'\n-10C32 General Purpose Flag  0800 (2048)\n+10D00 LOCAL HEADER #80      04034B50 (67324752)\n+10D04 Extract Zip Spec      14 (20) '2.0'\n+10D05 Extract OS            00 (0) 'MS-DOS'\n+10D06 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10C34 Compression Method    0008 (8) 'Deflated'\n-10C36 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-10C3A CRC                   C01CAB2E (3223104302)\n-10C3E Compressed Size       000008DD (2269)\n-10C42 Uncompressed Size     0000247E (9342)\n-10C46 Filename Length       004C (76)\n-10C48 Extra Length          0000 (0)\n-10C4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10D08 Compression Method    0008 (8) 'Deflated'\n+10D0A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+10D0E CRC                   C01CAB2E (3223104302)\n+10D12 Compressed Size       000008DD (2269)\n+10D16 Uncompressed Size     0000247E (9342)\n+10D1A Filename Length       004C (76)\n+10D1C Extra Length          0000 (0)\n+10D1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10C4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10D1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10C96 PAYLOAD\n+10D6A PAYLOAD\n \n-11573 LOCAL HEADER #81      04034B50 (67324752)\n-11577 Extract Zip Spec      14 (20) '2.0'\n-11578 Extract OS            00 (0) 'MS-DOS'\n-11579 General Purpose Flag  0800 (2048)\n+11647 LOCAL HEADER #81      04034B50 (67324752)\n+1164B Extract Zip Spec      14 (20) '2.0'\n+1164C Extract OS            00 (0) 'MS-DOS'\n+1164D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1157B Compression Method    0008 (8) 'Deflated'\n-1157D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-11581 CRC                   6C372682 (1815553666)\n-11585 Compressed Size       000009AA (2474)\n-11589 Uncompressed Size     000024E2 (9442)\n-1158D Filename Length       004B (75)\n-1158F Extra Length          0000 (0)\n-11591 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1164F Compression Method    0008 (8) 'Deflated'\n+11651 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+11655 CRC                   6C372682 (1815553666)\n+11659 Compressed Size       000009AA (2474)\n+1165D Uncompressed Size     000024E2 (9442)\n+11661 Filename Length       004B (75)\n+11663 Extra Length          0000 (0)\n+11665 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11591: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11665: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-115DC PAYLOAD\n+116B0 PAYLOAD\n \n-11F86 LOCAL HEADER #82      04034B50 (67324752)\n-11F8A Extract Zip Spec      14 (20) '2.0'\n-11F8B Extract OS            00 (0) 'MS-DOS'\n-11F8C General Purpose Flag  0800 (2048)\n+1205A LOCAL HEADER #82      04034B50 (67324752)\n+1205E Extract Zip Spec      14 (20) '2.0'\n+1205F Extract OS            00 (0) 'MS-DOS'\n+12060 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11F8E Compression Method    0008 (8) 'Deflated'\n-11F90 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-11F94 CRC                   7F591FA6 (2136547238)\n-11F98 Compressed Size       000002F6 (758)\n-11F9C Uncompressed Size     0000079B (1947)\n-11FA0 Filename Length       0046 (70)\n-11FA2 Extra Length          0000 (0)\n-11FA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12062 Compression Method    0008 (8) 'Deflated'\n+12064 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+12068 CRC                   7F591FA6 (2136547238)\n+1206C Compressed Size       000002F6 (758)\n+12070 Uncompressed Size     0000079B (1947)\n+12074 Filename Length       0046 (70)\n+12076 Extra Length          0000 (0)\n+12078 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11FA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x12078: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-11FEA PAYLOAD\n+120BE PAYLOAD\n \n-122E0 LOCAL HEADER #83      04034B50 (67324752)\n-122E4 Extract Zip Spec      14 (20) '2.0'\n-122E5 Extract OS            00 (0) 'MS-DOS'\n-122E6 General Purpose Flag  0800 (2048)\n+123B4 LOCAL HEADER #83      04034B50 (67324752)\n+123B8 Extract Zip Spec      14 (20) '2.0'\n+123B9 Extract OS            00 (0) 'MS-DOS'\n+123BA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-122E8 Compression Method    0008 (8) 'Deflated'\n-122EA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-122EE CRC                   229A16D5 (580523733)\n-122F2 Compressed Size       0000054B (1355)\n-122F6 Uncompressed Size     00001172 (4466)\n-122FA Filename Length       0047 (71)\n-122FC Extra Length          0000 (0)\n-122FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+123BC Compression Method    0008 (8) 'Deflated'\n+123BE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+123C2 CRC                   BBC269CA (3150080458)\n+123C6 Compressed Size       00000553 (1363)\n+123CA Uncompressed Size     000011E6 (4582)\n+123CE Filename Length       0047 (71)\n+123D0 Extra Length          0000 (0)\n+123D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x122FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x123D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-12345 PAYLOAD\n+12419 PAYLOAD\n \n-12890 LOCAL HEADER #84      04034B50 (67324752)\n-12894 Extract Zip Spec      14 (20) '2.0'\n-12895 Extract OS            00 (0) 'MS-DOS'\n-12896 General Purpose Flag  0800 (2048)\n+1296C LOCAL HEADER #84      04034B50 (67324752)\n+12970 Extract Zip Spec      14 (20) '2.0'\n+12971 Extract OS            00 (0) 'MS-DOS'\n+12972 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12898 Compression Method    0008 (8) 'Deflated'\n-1289A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1289E CRC                   6C52AC25 (1817357349)\n-128A2 Compressed Size       0000041F (1055)\n-128A6 Uncompressed Size     00000A2F (2607)\n-128AA Filename Length       0049 (73)\n-128AC Extra Length          0000 (0)\n-128AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12974 Compression Method    0008 (8) 'Deflated'\n+12976 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1297A CRC                   CCFFACEF (3439308015)\n+1297E Compressed Size       00000428 (1064)\n+12982 Uncompressed Size     00000A6F (2671)\n+12986 Filename Length       0049 (73)\n+12988 Extra Length          0000 (0)\n+1298A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x128AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1298A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-128F7 PAYLOAD\n+129D3 PAYLOAD\n \n-12D16 LOCAL HEADER #85      04034B50 (67324752)\n-12D1A Extract Zip Spec      14 (20) '2.0'\n-12D1B Extract OS            00 (0) 'MS-DOS'\n-12D1C General Purpose Flag  0800 (2048)\n+12DFB LOCAL HEADER #85      04034B50 (67324752)\n+12DFF Extract Zip Spec      14 (20) '2.0'\n+12E00 Extract OS            00 (0) 'MS-DOS'\n+12E01 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12D1E Compression Method    0008 (8) 'Deflated'\n-12D20 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-12D24 CRC                   39DE0130 (970850608)\n-12D28 Compressed Size       00000430 (1072)\n-12D2C Uncompressed Size     00000AD0 (2768)\n-12D30 Filename Length       0049 (73)\n-12D32 Extra Length          0000 (0)\n-12D34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12E03 Compression Method    0008 (8) 'Deflated'\n+12E05 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+12E09 CRC                   39DE0130 (970850608)\n+12E0D Compressed Size       00000430 (1072)\n+12E11 Uncompressed Size     00000AD0 (2768)\n+12E15 Filename Length       0049 (73)\n+12E17 Extra Length          0000 (0)\n+12E19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x12D34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x12E19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-12D7D PAYLOAD\n+12E62 PAYLOAD\n \n-131AD LOCAL HEADER #86      04034B50 (67324752)\n-131B1 Extract Zip Spec      14 (20) '2.0'\n-131B2 Extract OS            00 (0) 'MS-DOS'\n-131B3 General Purpose Flag  0800 (2048)\n+13292 LOCAL HEADER #86      04034B50 (67324752)\n+13296 Extract Zip Spec      14 (20) '2.0'\n+13297 Extract OS            00 (0) 'MS-DOS'\n+13298 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-131B5 Compression Method    0008 (8) 'Deflated'\n-131B7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-131BB CRC                   1A03F22E (436466222)\n-131BF Compressed Size       0000026F (623)\n-131C3 Uncompressed Size     000004DF (1247)\n-131C7 Filename Length       0033 (51)\n-131C9 Extra Length          0000 (0)\n-131CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1329A Compression Method    0008 (8) 'Deflated'\n+1329C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+132A0 CRC                   1A03F22E (436466222)\n+132A4 Compressed Size       0000026F (623)\n+132A8 Uncompressed Size     000004DF (1247)\n+132AC Filename Length       0033 (51)\n+132AE Extra Length          0000 (0)\n+132B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x131CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x132B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-131FE PAYLOAD\n+132E3 PAYLOAD\n \n-1346D LOCAL HEADER #87      04034B50 (67324752)\n-13471 Extract Zip Spec      14 (20) '2.0'\n-13472 Extract OS            00 (0) 'MS-DOS'\n-13473 General Purpose Flag  0800 (2048)\n+13552 LOCAL HEADER #87      04034B50 (67324752)\n+13556 Extract Zip Spec      14 (20) '2.0'\n+13557 Extract OS            00 (0) 'MS-DOS'\n+13558 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-13475 Compression Method    0008 (8) 'Deflated'\n-13477 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1347B CRC                   DBE899CA (3689454026)\n-1347F Compressed Size       00000B09 (2825)\n-13483 Uncompressed Size     00002E6D (11885)\n-13487 Filename Length       0037 (55)\n-13489 Extra Length          0000 (0)\n-1348B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1355A Compression Method    0008 (8) 'Deflated'\n+1355C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+13560 CRC                   DBE899CA (3689454026)\n+13564 Compressed Size       00000B09 (2825)\n+13568 Uncompressed Size     00002E6D (11885)\n+1356C Filename Length       0037 (55)\n+1356E Extra Length          0000 (0)\n+13570 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1348B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x13570: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-134C2 PAYLOAD\n+135A7 PAYLOAD\n \n-13FCB LOCAL HEADER #88      04034B50 (67324752)\n-13FCF Extract Zip Spec      14 (20) '2.0'\n-13FD0 Extract OS            00 (0) 'MS-DOS'\n-13FD1 General Purpose Flag  0800 (2048)\n+140B0 LOCAL HEADER #88      04034B50 (67324752)\n+140B4 Extract Zip Spec      14 (20) '2.0'\n+140B5 Extract OS            00 (0) 'MS-DOS'\n+140B6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-13FD3 Compression Method    0008 (8) 'Deflated'\n-13FD5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-13FD9 CRC                   91FB3CEA (2449161450)\n-13FDD Compressed Size       0000028B (651)\n-13FE1 Uncompressed Size     00000518 (1304)\n-13FE5 Filename Length       0032 (50)\n-13FE7 Extra Length          0000 (0)\n-13FE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+140B8 Compression Method    0008 (8) 'Deflated'\n+140BA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+140BE CRC                   91FB3CEA (2449161450)\n+140C2 Compressed Size       0000028B (651)\n+140C6 Uncompressed Size     00000518 (1304)\n+140CA Filename Length       0032 (50)\n+140CC Extra Length          0000 (0)\n+140CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x13FE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x140CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1401B PAYLOAD\n+14100 PAYLOAD\n \n-142A6 LOCAL HEADER #89      04034B50 (67324752)\n-142AA Extract Zip Spec      14 (20) '2.0'\n-142AB Extract OS            00 (0) 'MS-DOS'\n-142AC General Purpose Flag  0800 (2048)\n+1438B LOCAL HEADER #89      04034B50 (67324752)\n+1438F Extract Zip Spec      14 (20) '2.0'\n+14390 Extract OS            00 (0) 'MS-DOS'\n+14391 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-142AE Compression Method    0008 (8) 'Deflated'\n-142B0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-142B4 CRC                   492B287D (1227565181)\n-142B8 Compressed Size       0000052C (1324)\n-142BC Uncompressed Size     00000FCE (4046)\n-142C0 Filename Length       0042 (66)\n-142C2 Extra Length          0000 (0)\n-142C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14393 Compression Method    0008 (8) 'Deflated'\n+14395 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14399 CRC                   492B287D (1227565181)\n+1439D Compressed Size       0000052C (1324)\n+143A1 Uncompressed Size     00000FCE (4046)\n+143A5 Filename Length       0042 (66)\n+143A7 Extra Length          0000 (0)\n+143A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x142C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x143A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14306 PAYLOAD\n+143EB PAYLOAD\n \n-14832 LOCAL HEADER #90      04034B50 (67324752)\n-14836 Extract Zip Spec      14 (20) '2.0'\n-14837 Extract OS            00 (0) 'MS-DOS'\n-14838 General Purpose Flag  0800 (2048)\n+14917 LOCAL HEADER #90      04034B50 (67324752)\n+1491B Extract Zip Spec      14 (20) '2.0'\n+1491C Extract OS            00 (0) 'MS-DOS'\n+1491D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1483A Compression Method    0008 (8) 'Deflated'\n-1483C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14840 CRC                   EB3BD2B9 (3946566329)\n-14844 Compressed Size       00000530 (1328)\n-14848 Uncompressed Size     0000169D (5789)\n-1484C Filename Length       0039 (57)\n-1484E Extra Length          0000 (0)\n-14850 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1491F Compression Method    0008 (8) 'Deflated'\n+14921 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14925 CRC                   EB3BD2B9 (3946566329)\n+14929 Compressed Size       00000530 (1328)\n+1492D Uncompressed Size     0000169D (5789)\n+14931 Filename Length       0039 (57)\n+14933 Extra Length          0000 (0)\n+14935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14850: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14889 PAYLOAD\n+1496E PAYLOAD\n \n-14DB9 LOCAL HEADER #91      04034B50 (67324752)\n-14DBD Extract Zip Spec      14 (20) '2.0'\n-14DBE Extract OS            00 (0) 'MS-DOS'\n-14DBF General Purpose Flag  0800 (2048)\n+14E9E LOCAL HEADER #91      04034B50 (67324752)\n+14EA2 Extract Zip Spec      14 (20) '2.0'\n+14EA3 Extract OS            00 (0) 'MS-DOS'\n+14EA4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14DC1 Compression Method    0008 (8) 'Deflated'\n-14DC3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-14DC7 CRC                   74498D23 (1950977315)\n-14DCB Compressed Size       0000034E (846)\n-14DCF Uncompressed Size     00000738 (1848)\n-14DD3 Filename Length       0048 (72)\n-14DD5 Extra Length          0000 (0)\n-14DD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14EA6 Compression Method    0008 (8) 'Deflated'\n+14EA8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+14EAC CRC                   74498D23 (1950977315)\n+14EB0 Compressed Size       0000034E (846)\n+14EB4 Uncompressed Size     00000738 (1848)\n+14EB8 Filename Length       0048 (72)\n+14EBA Extra Length          0000 (0)\n+14EBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14DD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14EBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14E1F PAYLOAD\n+14F04 PAYLOAD\n \n-1516D LOCAL HEADER #92      04034B50 (67324752)\n-15171 Extract Zip Spec      14 (20) '2.0'\n-15172 Extract OS            00 (0) 'MS-DOS'\n-15173 General Purpose Flag  0800 (2048)\n+15252 LOCAL HEADER #92      04034B50 (67324752)\n+15256 Extract Zip Spec      14 (20) '2.0'\n+15257 Extract OS            00 (0) 'MS-DOS'\n+15258 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15175 Compression Method    0008 (8) 'Deflated'\n-15177 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1517B CRC                   C2DA4C0E (3269086222)\n-1517F Compressed Size       000002B1 (689)\n-15183 Uncompressed Size     00000581 (1409)\n-15187 Filename Length       0047 (71)\n-15189 Extra Length          0000 (0)\n-1518B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1525A Compression Method    0008 (8) 'Deflated'\n+1525C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+15260 CRC                   C2DA4C0E (3269086222)\n+15264 Compressed Size       000002B1 (689)\n+15268 Uncompressed Size     00000581 (1409)\n+1526C Filename Length       0047 (71)\n+1526E Extra Length          0000 (0)\n+15270 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1518B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15270: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-151D2 PAYLOAD\n+152B7 PAYLOAD\n \n-15483 LOCAL HEADER #93      04034B50 (67324752)\n-15487 Extract Zip Spec      14 (20) '2.0'\n-15488 Extract OS            00 (0) 'MS-DOS'\n-15489 General Purpose Flag  0800 (2048)\n+15568 LOCAL HEADER #93      04034B50 (67324752)\n+1556C Extract Zip Spec      14 (20) '2.0'\n+1556D Extract OS            00 (0) 'MS-DOS'\n+1556E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1548B Compression Method    0008 (8) 'Deflated'\n-1548D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-15491 CRC                   A166D974 (2707872116)\n-15495 Compressed Size       000004DD (1245)\n-15499 Uncompressed Size     00000E50 (3664)\n-1549D Filename Length       0047 (71)\n-1549F Extra Length          0000 (0)\n-154A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15570 Compression Method    0008 (8) 'Deflated'\n+15572 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+15576 CRC                   A166D974 (2707872116)\n+1557A Compressed Size       000004DD (1245)\n+1557E Uncompressed Size     00000E50 (3664)\n+15582 Filename Length       0047 (71)\n+15584 Extra Length          0000 (0)\n+15586 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x154A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15586: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-154E8 PAYLOAD\n+155CD PAYLOAD\n \n-159C5 LOCAL HEADER #94      04034B50 (67324752)\n-159C9 Extract Zip Spec      14 (20) '2.0'\n-159CA Extract OS            00 (0) 'MS-DOS'\n-159CB General Purpose Flag  0800 (2048)\n+15AAA LOCAL HEADER #94      04034B50 (67324752)\n+15AAE Extract Zip Spec      14 (20) '2.0'\n+15AAF Extract OS            00 (0) 'MS-DOS'\n+15AB0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-159CD Compression Method    0008 (8) 'Deflated'\n-159CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-159D3 CRC                   F227F3D5 (4062704597)\n-159D7 Compressed Size       000005DA (1498)\n-159DB Uncompressed Size     0000107D (4221)\n-159DF Filename Length       0046 (70)\n-159E1 Extra Length          0000 (0)\n-159E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15AB2 Compression Method    0008 (8) 'Deflated'\n+15AB4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+15AB8 CRC                   07F19A54 (133274196)\n+15ABC Compressed Size       000005E6 (1510)\n+15AC0 Uncompressed Size     000010DC (4316)\n+15AC4 Filename Length       0046 (70)\n+15AC6 Extra Length          0000 (0)\n+15AC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x159E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15AC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-15A29 PAYLOAD\n+15B0E PAYLOAD\n \n-16003 LOCAL HEADER #95      04034B50 (67324752)\n-16007 Extract Zip Spec      14 (20) '2.0'\n-16008 Extract OS            00 (0) 'MS-DOS'\n-16009 General Purpose Flag  0800 (2048)\n+160F4 LOCAL HEADER #95      04034B50 (67324752)\n+160F8 Extract Zip Spec      14 (20) '2.0'\n+160F9 Extract OS            00 (0) 'MS-DOS'\n+160FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1600B Compression Method    0008 (8) 'Deflated'\n-1600D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16011 CRC                   F5209683 (4112553603)\n-16015 Compressed Size       0000058D (1421)\n-16019 Uncompressed Size     00001210 (4624)\n-1601D Filename Length       0049 (73)\n-1601F Extra Length          0000 (0)\n-16021 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+160FC Compression Method    0008 (8) 'Deflated'\n+160FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+16102 CRC                   F5209683 (4112553603)\n+16106 Compressed Size       0000058D (1421)\n+1610A Uncompressed Size     00001210 (4624)\n+1610E Filename Length       0049 (73)\n+16110 Extra Length          0000 (0)\n+16112 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16021: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16112: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1606A PAYLOAD\n+1615B PAYLOAD\n \n-165F7 LOCAL HEADER #96      04034B50 (67324752)\n-165FB Extract Zip Spec      14 (20) '2.0'\n-165FC Extract OS            00 (0) 'MS-DOS'\n-165FD General Purpose Flag  0800 (2048)\n+166E8 LOCAL HEADER #96      04034B50 (67324752)\n+166EC Extract Zip Spec      14 (20) '2.0'\n+166ED Extract OS            00 (0) 'MS-DOS'\n+166EE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-165FF Compression Method    0008 (8) 'Deflated'\n-16601 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16605 CRC                   A7E27376 (2816635766)\n-16609 Compressed Size       00000352 (850)\n-1660D Uncompressed Size     0000076D (1901)\n-16611 Filename Length       0038 (56)\n-16613 Extra Length          0000 (0)\n-16615 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+166F0 Compression Method    0008 (8) 'Deflated'\n+166F2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+166F6 CRC                   A7E27376 (2816635766)\n+166FA Compressed Size       00000352 (850)\n+166FE Uncompressed Size     0000076D (1901)\n+16702 Filename Length       0038 (56)\n+16704 Extra Length          0000 (0)\n+16706 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16615: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16706: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1664D PAYLOAD\n+1673E PAYLOAD\n \n-1699F LOCAL HEADER #97      04034B50 (67324752)\n-169A3 Extract Zip Spec      14 (20) '2.0'\n-169A4 Extract OS            00 (0) 'MS-DOS'\n-169A5 General Purpose Flag  0800 (2048)\n+16A90 LOCAL HEADER #97      04034B50 (67324752)\n+16A94 Extract Zip Spec      14 (20) '2.0'\n+16A95 Extract OS            00 (0) 'MS-DOS'\n+16A96 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-169A7 Compression Method    0008 (8) 'Deflated'\n-169A9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-169AD CRC                   28520740 (676464448)\n-169B1 Compressed Size       0000032C (812)\n-169B5 Uncompressed Size     00000910 (2320)\n-169B9 Filename Length       0047 (71)\n-169BB Extra Length          0000 (0)\n-169BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16A98 Compression Method    0008 (8) 'Deflated'\n+16A9A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+16A9E CRC                   28520740 (676464448)\n+16AA2 Compressed Size       0000032C (812)\n+16AA6 Uncompressed Size     00000910 (2320)\n+16AAA Filename Length       0047 (71)\n+16AAC Extra Length          0000 (0)\n+16AAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x169BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16AAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-16A04 PAYLOAD\n+16AF5 PAYLOAD\n \n-16D30 LOCAL HEADER #98      04034B50 (67324752)\n-16D34 Extract Zip Spec      14 (20) '2.0'\n-16D35 Extract OS            00 (0) 'MS-DOS'\n-16D36 General Purpose Flag  0800 (2048)\n+16E21 LOCAL HEADER #98      04034B50 (67324752)\n+16E25 Extract Zip Spec      14 (20) '2.0'\n+16E26 Extract OS            00 (0) 'MS-DOS'\n+16E27 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-16D38 Compression Method    0008 (8) 'Deflated'\n-16D3A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-16D3E CRC                   C60919F1 (3322485233)\n-16D42 Compressed Size       00000991 (2449)\n-16D46 Uncompressed Size     00002E58 (11864)\n-16D4A Filename Length       0037 (55)\n-16D4C Extra Length          0000 (0)\n-16D4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16E29 Compression Method    0008 (8) 'Deflated'\n+16E2B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+16E2F CRC                   B8E0F8E9 (3101751529)\n+16E33 Compressed Size       000009A0 (2464)\n+16E37 Uncompressed Size     00002FAF (12207)\n+16E3B Filename Length       0037 (55)\n+16E3D Extra Length          0000 (0)\n+16E3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16D4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16E3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-16D85 PAYLOAD\n+16E76 PAYLOAD\n \n-17716 LOCAL HEADER #99      04034B50 (67324752)\n-1771A Extract Zip Spec      14 (20) '2.0'\n-1771B Extract OS            00 (0) 'MS-DOS'\n-1771C General Purpose Flag  0800 (2048)\n+17816 LOCAL HEADER #99      04034B50 (67324752)\n+1781A Extract Zip Spec      14 (20) '2.0'\n+1781B Extract OS            00 (0) 'MS-DOS'\n+1781C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1771E Compression Method    0008 (8) 'Deflated'\n-17720 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-17724 CRC                   C68A09E8 (3330935272)\n-17728 Compressed Size       00000525 (1317)\n-1772C Uncompressed Size     00000F96 (3990)\n-17730 Filename Length       0036 (54)\n-17732 Extra Length          0000 (0)\n-17734 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1781E Compression Method    0008 (8) 'Deflated'\n+17820 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+17824 CRC                   191CDF67 (421322599)\n+17828 Compressed Size       0000052E (1326)\n+1782C Uncompressed Size     00001001 (4097)\n+17830 Filename Length       0036 (54)\n+17832 Extra Length          0000 (0)\n+17834 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17734: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17834: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1776A PAYLOAD\n+1786A PAYLOAD\n \n-17C8F LOCAL HEADER #100     04034B50 (67324752)\n-17C93 Extract Zip Spec      14 (20) '2.0'\n-17C94 Extract OS            00 (0) 'MS-DOS'\n-17C95 General Purpose Flag  0800 (2048)\n+17D98 LOCAL HEADER #100     04034B50 (67324752)\n+17D9C Extract Zip Spec      14 (20) '2.0'\n+17D9D Extract OS            00 (0) 'MS-DOS'\n+17D9E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17C97 Compression Method    0008 (8) 'Deflated'\n-17C99 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-17C9D CRC                   AE59B827 (2925115431)\n-17CA1 Compressed Size       00000500 (1280)\n-17CA5 Uncompressed Size     00001018 (4120)\n-17CA9 Filename Length       0039 (57)\n-17CAB Extra Length          0000 (0)\n-17CAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17DA0 Compression Method    0008 (8) 'Deflated'\n+17DA2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+17DA6 CRC                   D94EDD2B (3645824299)\n+17DAA Compressed Size       0000050B (1291)\n+17DAE Uncompressed Size     0000108B (4235)\n+17DB2 Filename Length       0039 (57)\n+17DB4 Extra Length          0000 (0)\n+17DB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17CAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17DB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-17CE6 PAYLOAD\n+17DEF PAYLOAD\n \n-181E6 LOCAL HEADER #101     04034B50 (67324752)\n-181EA Extract Zip Spec      14 (20) '2.0'\n-181EB Extract OS            00 (0) 'MS-DOS'\n-181EC General Purpose Flag  0800 (2048)\n+182FA LOCAL HEADER #101     04034B50 (67324752)\n+182FE Extract Zip Spec      14 (20) '2.0'\n+182FF Extract OS            00 (0) 'MS-DOS'\n+18300 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-181EE Compression Method    0008 (8) 'Deflated'\n-181F0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-181F4 CRC                   C397571B (3281475355)\n-181F8 Compressed Size       000004CB (1227)\n-181FC Uncompressed Size     00001058 (4184)\n-18200 Filename Length       0035 (53)\n-18202 Extra Length          0000 (0)\n-18204 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18302 Compression Method    0008 (8) 'Deflated'\n+18304 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+18308 CRC                   C397571B (3281475355)\n+1830C Compressed Size       000004CB (1227)\n+18310 Uncompressed Size     00001058 (4184)\n+18314 Filename Length       0035 (53)\n+18316 Extra Length          0000 (0)\n+18318 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18204: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18318: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18239 PAYLOAD\n+1834D PAYLOAD\n \n-18704 LOCAL HEADER #102     04034B50 (67324752)\n-18708 Extract Zip Spec      14 (20) '2.0'\n-18709 Extract OS            00 (0) 'MS-DOS'\n-1870A General Purpose Flag  0800 (2048)\n+18818 LOCAL HEADER #102     04034B50 (67324752)\n+1881C Extract Zip Spec      14 (20) '2.0'\n+1881D Extract OS            00 (0) 'MS-DOS'\n+1881E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1870C Compression Method    0008 (8) 'Deflated'\n-1870E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-18712 CRC                   F1D2C098 (4057120920)\n-18716 Compressed Size       000007F0 (2032)\n-1871A Uncompressed Size     00001C03 (7171)\n-1871E Filename Length       0037 (55)\n-18720 Extra Length          0000 (0)\n-18722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18820 Compression Method    0008 (8) 'Deflated'\n+18822 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+18826 CRC                   9B1DD286 (2602422918)\n+1882A Compressed Size       00000800 (2048)\n+1882E Uncompressed Size     00001CC3 (7363)\n+18832 Filename Length       0037 (55)\n+18834 Extra Length          0000 (0)\n+18836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18759 PAYLOAD\n+1886D PAYLOAD\n \n-18F49 LOCAL HEADER #103     04034B50 (67324752)\n-18F4D Extract Zip Spec      14 (20) '2.0'\n-18F4E Extract OS            00 (0) 'MS-DOS'\n-18F4F General Purpose Flag  0800 (2048)\n+1906D LOCAL HEADER #103     04034B50 (67324752)\n+19071 Extract Zip Spec      14 (20) '2.0'\n+19072 Extract OS            00 (0) 'MS-DOS'\n+19073 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18F51 Compression Method    0008 (8) 'Deflated'\n-18F53 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-18F57 CRC                   8ED687AA (2396424106)\n-18F5B Compressed Size       000003B2 (946)\n-18F5F Uncompressed Size     00000C9B (3227)\n-18F63 Filename Length       0038 (56)\n-18F65 Extra Length          0000 (0)\n-18F67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19075 Compression Method    0008 (8) 'Deflated'\n+19077 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1907B CRC                   8ED687AA (2396424106)\n+1907F Compressed Size       000003B2 (946)\n+19083 Uncompressed Size     00000C9B (3227)\n+19087 Filename Length       0038 (56)\n+19089 Extra Length          0000 (0)\n+1908B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18F67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1908B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18F9F PAYLOAD\n+190C3 PAYLOAD\n \n-19351 LOCAL HEADER #104     04034B50 (67324752)\n-19355 Extract Zip Spec      14 (20) '2.0'\n-19356 Extract OS            00 (0) 'MS-DOS'\n-19357 General Purpose Flag  0800 (2048)\n+19475 LOCAL HEADER #104     04034B50 (67324752)\n+19479 Extract Zip Spec      14 (20) '2.0'\n+1947A Extract OS            00 (0) 'MS-DOS'\n+1947B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19359 Compression Method    0008 (8) 'Deflated'\n-1935B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1935F CRC                   3E4334ED (1044591853)\n-19363 Compressed Size       0000028A (650)\n-19367 Uncompressed Size     0000066A (1642)\n-1936B Filename Length       003E (62)\n-1936D Extra Length          0000 (0)\n-1936F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1947D Compression Method    0008 (8) 'Deflated'\n+1947F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19483 CRC                   3E4334ED (1044591853)\n+19487 Compressed Size       0000028A (650)\n+1948B Uncompressed Size     0000066A (1642)\n+1948F Filename Length       003E (62)\n+19491 Extra Length          0000 (0)\n+19493 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1936F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19493: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-193AD PAYLOAD\n+194D1 PAYLOAD\n \n-19637 LOCAL HEADER #105     04034B50 (67324752)\n-1963B Extract Zip Spec      14 (20) '2.0'\n-1963C Extract OS            00 (0) 'MS-DOS'\n-1963D General Purpose Flag  0800 (2048)\n+1975B LOCAL HEADER #105     04034B50 (67324752)\n+1975F Extract Zip Spec      14 (20) '2.0'\n+19760 Extract OS            00 (0) 'MS-DOS'\n+19761 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1963F Compression Method    0008 (8) 'Deflated'\n-19641 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19645 CRC                   1F076089 (520577161)\n-19649 Compressed Size       00000227 (551)\n-1964D Uncompressed Size     000003FD (1021)\n-19651 Filename Length       003F (63)\n-19653 Extra Length          0000 (0)\n-19655 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19763 Compression Method    0008 (8) 'Deflated'\n+19765 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19769 CRC                   1F076089 (520577161)\n+1976D Compressed Size       00000227 (551)\n+19771 Uncompressed Size     000003FD (1021)\n+19775 Filename Length       003F (63)\n+19777 Extra Length          0000 (0)\n+19779 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19655: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19779: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19694 PAYLOAD\n+197B8 PAYLOAD\n \n-198BB LOCAL HEADER #106     04034B50 (67324752)\n-198BF Extract Zip Spec      14 (20) '2.0'\n-198C0 Extract OS            00 (0) 'MS-DOS'\n-198C1 General Purpose Flag  0800 (2048)\n+199DF LOCAL HEADER #106     04034B50 (67324752)\n+199E3 Extract Zip Spec      14 (20) '2.0'\n+199E4 Extract OS            00 (0) 'MS-DOS'\n+199E5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-198C3 Compression Method    0008 (8) 'Deflated'\n-198C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-198C9 CRC                   63B69239 (1672909369)\n-198CD Compressed Size       00000408 (1032)\n-198D1 Uncompressed Size     00000F7F (3967)\n-198D5 Filename Length       0041 (65)\n-198D7 Extra Length          0000 (0)\n-198D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+199E7 Compression Method    0008 (8) 'Deflated'\n+199E9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+199ED CRC                   63B69239 (1672909369)\n+199F1 Compressed Size       00000408 (1032)\n+199F5 Uncompressed Size     00000F7F (3967)\n+199F9 Filename Length       0041 (65)\n+199FB Extra Length          0000 (0)\n+199FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x198D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x199FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1991A PAYLOAD\n+19A3E PAYLOAD\n \n-19D22 LOCAL HEADER #107     04034B50 (67324752)\n-19D26 Extract Zip Spec      14 (20) '2.0'\n-19D27 Extract OS            00 (0) 'MS-DOS'\n-19D28 General Purpose Flag  0800 (2048)\n+19E46 LOCAL HEADER #107     04034B50 (67324752)\n+19E4A Extract Zip Spec      14 (20) '2.0'\n+19E4B Extract OS            00 (0) 'MS-DOS'\n+19E4C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19D2A Compression Method    0008 (8) 'Deflated'\n-19D2C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-19D30 CRC                   DB6423CF (3680773071)\n-19D34 Compressed Size       00000405 (1029)\n-19D38 Uncompressed Size     00000DEE (3566)\n-19D3C Filename Length       0037 (55)\n-19D3E Extra Length          0000 (0)\n-19D40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19E4E Compression Method    0008 (8) 'Deflated'\n+19E50 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+19E54 CRC                   DB6423CF (3680773071)\n+19E58 Compressed Size       00000405 (1029)\n+19E5C Uncompressed Size     00000DEE (3566)\n+19E60 Filename Length       0037 (55)\n+19E62 Extra Length          0000 (0)\n+19E64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19D40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19E64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19D77 PAYLOAD\n+19E9B PAYLOAD\n \n-1A17C LOCAL HEADER #108     04034B50 (67324752)\n-1A180 Extract Zip Spec      14 (20) '2.0'\n-1A181 Extract OS            00 (0) 'MS-DOS'\n-1A182 General Purpose Flag  0800 (2048)\n+1A2A0 LOCAL HEADER #108     04034B50 (67324752)\n+1A2A4 Extract Zip Spec      14 (20) '2.0'\n+1A2A5 Extract OS            00 (0) 'MS-DOS'\n+1A2A6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1A184 Compression Method    0008 (8) 'Deflated'\n-1A186 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1A18A CRC                   B4E5D367 (3034960743)\n-1A18E Compressed Size       0000091D (2333)\n-1A192 Uncompressed Size     00001DDA (7642)\n-1A196 Filename Length       0035 (53)\n-1A198 Extra Length          0000 (0)\n-1A19A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1A2A8 Compression Method    0008 (8) 'Deflated'\n+1A2AA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1A2AE CRC                   79B32E36 (2041785910)\n+1A2B2 Compressed Size       00000928 (2344)\n+1A2B6 Uncompressed Size     00001E8F (7823)\n+1A2BA Filename Length       0035 (53)\n+1A2BC Extra Length          0000 (0)\n+1A2BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1A19A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A2BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A1CF PAYLOAD\n+1A2F3 PAYLOAD\n \n-1AAEC LOCAL HEADER #109     04034B50 (67324752)\n-1AAF0 Extract Zip Spec      14 (20) '2.0'\n-1AAF1 Extract OS            00 (0) 'MS-DOS'\n-1AAF2 General Purpose Flag  0800 (2048)\n+1AC1B LOCAL HEADER #109     04034B50 (67324752)\n+1AC1F Extract Zip Spec      14 (20) '2.0'\n+1AC20 Extract OS            00 (0) 'MS-DOS'\n+1AC21 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1AAF4 Compression Method    0008 (8) 'Deflated'\n-1AAF6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1AAFA CRC                   602945D5 (1613317589)\n-1AAFE Compressed Size       000003BA (954)\n-1AB02 Uncompressed Size     000009C9 (2505)\n-1AB06 Filename Length       0036 (54)\n-1AB08 Extra Length          0000 (0)\n-1AB0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1AC23 Compression Method    0008 (8) 'Deflated'\n+1AC25 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1AC29 CRC                   5F8B1DE8 (1602952680)\n+1AC2D Compressed Size       000003C5 (965)\n+1AC31 Uncompressed Size     00000A0E (2574)\n+1AC35 Filename Length       0036 (54)\n+1AC37 Extra Length          0000 (0)\n+1AC39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1AB0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1AC39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1AB40 PAYLOAD\n+1AC6F PAYLOAD\n \n-1AEFA LOCAL HEADER #110     04034B50 (67324752)\n-1AEFE Extract Zip Spec      14 (20) '2.0'\n-1AEFF Extract OS            00 (0) 'MS-DOS'\n-1AF00 General Purpose Flag  0800 (2048)\n+1B034 LOCAL HEADER #110     04034B50 (67324752)\n+1B038 Extract Zip Spec      14 (20) '2.0'\n+1B039 Extract OS            00 (0) 'MS-DOS'\n+1B03A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1AF02 Compression Method    0008 (8) 'Deflated'\n-1AF04 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1AF08 CRC                   D9BD9D3A (3653082426)\n-1AF0C Compressed Size       00000278 (632)\n-1AF10 Uncompressed Size     00000469 (1129)\n-1AF14 Filename Length       0044 (68)\n-1AF16 Extra Length          0000 (0)\n-1AF18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B03C Compression Method    0008 (8) 'Deflated'\n+1B03E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B042 CRC                   D9BD9D3A (3653082426)\n+1B046 Compressed Size       00000278 (632)\n+1B04A Uncompressed Size     00000469 (1129)\n+1B04E Filename Length       0044 (68)\n+1B050 Extra Length          0000 (0)\n+1B052 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1AF18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B052: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1AF5C PAYLOAD\n+1B096 PAYLOAD\n \n-1B1D4 LOCAL HEADER #111     04034B50 (67324752)\n-1B1D8 Extract Zip Spec      14 (20) '2.0'\n-1B1D9 Extract OS            00 (0) 'MS-DOS'\n-1B1DA General Purpose Flag  0800 (2048)\n+1B30E LOCAL HEADER #111     04034B50 (67324752)\n+1B312 Extract Zip Spec      14 (20) '2.0'\n+1B313 Extract OS            00 (0) 'MS-DOS'\n+1B314 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B1DC Compression Method    0008 (8) 'Deflated'\n-1B1DE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B1E2 CRC                   78792D26 (2021207334)\n-1B1E6 Compressed Size       000002FE (766)\n-1B1EA Uncompressed Size     000006B5 (1717)\n-1B1EE Filename Length       003C (60)\n-1B1F0 Extra Length          0000 (0)\n-1B1F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B316 Compression Method    0008 (8) 'Deflated'\n+1B318 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B31C CRC                   78792D26 (2021207334)\n+1B320 Compressed Size       000002FE (766)\n+1B324 Uncompressed Size     000006B5 (1717)\n+1B328 Filename Length       003C (60)\n+1B32A Extra Length          0000 (0)\n+1B32C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B1F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B32C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B22E PAYLOAD\n+1B368 PAYLOAD\n \n-1B52C LOCAL HEADER #112     04034B50 (67324752)\n-1B530 Extract Zip Spec      14 (20) '2.0'\n-1B531 Extract OS            00 (0) 'MS-DOS'\n-1B532 General Purpose Flag  0800 (2048)\n+1B666 LOCAL HEADER #112     04034B50 (67324752)\n+1B66A Extract Zip Spec      14 (20) '2.0'\n+1B66B Extract OS            00 (0) 'MS-DOS'\n+1B66C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B534 Compression Method    0008 (8) 'Deflated'\n-1B536 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B53A CRC                   A9090E7C (2835943036)\n-1B53E Compressed Size       000003C5 (965)\n-1B542 Uncompressed Size     00000C45 (3141)\n-1B546 Filename Length       0037 (55)\n-1B548 Extra Length          0000 (0)\n-1B54A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B66E Compression Method    0008 (8) 'Deflated'\n+1B670 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1B674 CRC                   A9090E7C (2835943036)\n+1B678 Compressed Size       000003C5 (965)\n+1B67C Uncompressed Size     00000C45 (3141)\n+1B680 Filename Length       0037 (55)\n+1B682 Extra Length          0000 (0)\n+1B684 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B54A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B684: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B581 PAYLOAD\n+1B6BB PAYLOAD\n \n-1B946 LOCAL HEADER #113     04034B50 (67324752)\n-1B94A Extract Zip Spec      14 (20) '2.0'\n-1B94B Extract OS            00 (0) 'MS-DOS'\n-1B94C General Purpose Flag  0800 (2048)\n+1BA80 LOCAL HEADER #113     04034B50 (67324752)\n+1BA84 Extract Zip Spec      14 (20) '2.0'\n+1BA85 Extract OS            00 (0) 'MS-DOS'\n+1BA86 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B94E Compression Method    0008 (8) 'Deflated'\n-1B950 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1B954 CRC                   101D85B9 (270370233)\n-1B958 Compressed Size       000003B3 (947)\n-1B95C Uncompressed Size     0000094B (2379)\n-1B960 Filename Length       003B (59)\n-1B962 Extra Length          0000 (0)\n-1B964 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BA88 Compression Method    0008 (8) 'Deflated'\n+1BA8A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1BA8E CRC                   101D85B9 (270370233)\n+1BA92 Compressed Size       000003B3 (947)\n+1BA96 Uncompressed Size     0000094B (2379)\n+1BA9A Filename Length       003B (59)\n+1BA9C Extra Length          0000 (0)\n+1BA9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B964: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1BA9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B99F PAYLOAD\n+1BAD9 PAYLOAD\n \n-1BD52 LOCAL HEADER #114     04034B50 (67324752)\n-1BD56 Extract Zip Spec      14 (20) '2.0'\n-1BD57 Extract OS            00 (0) 'MS-DOS'\n-1BD58 General Purpose Flag  0800 (2048)\n+1BE8C LOCAL HEADER #114     04034B50 (67324752)\n+1BE90 Extract Zip Spec      14 (20) '2.0'\n+1BE91 Extract OS            00 (0) 'MS-DOS'\n+1BE92 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1BD5A Compression Method    0008 (8) 'Deflated'\n-1BD5C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1BD60 CRC                   7EE6D15A (2129056090)\n-1BD64 Compressed Size       00000452 (1106)\n-1BD68 Uncompressed Size     00000D5E (3422)\n-1BD6C Filename Length       003D (61)\n-1BD6E Extra Length          0000 (0)\n-1BD70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BE94 Compression Method    0008 (8) 'Deflated'\n+1BE96 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1BE9A CRC                   7EE6D15A (2129056090)\n+1BE9E Compressed Size       00000452 (1106)\n+1BEA2 Uncompressed Size     00000D5E (3422)\n+1BEA6 Filename Length       003D (61)\n+1BEA8 Extra Length          0000 (0)\n+1BEAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1BD70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1BEAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1BDAD PAYLOAD\n+1BEE7 PAYLOAD\n \n-1C1FF LOCAL HEADER #115     04034B50 (67324752)\n-1C203 Extract Zip Spec      14 (20) '2.0'\n-1C204 Extract OS            00 (0) 'MS-DOS'\n-1C205 General Purpose Flag  0800 (2048)\n+1C339 LOCAL HEADER #115     04034B50 (67324752)\n+1C33D Extract Zip Spec      14 (20) '2.0'\n+1C33E Extract OS            00 (0) 'MS-DOS'\n+1C33F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C207 Compression Method    0008 (8) 'Deflated'\n-1C209 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1C20D CRC                   A053D891 (2689849489)\n-1C211 Compressed Size       00000471 (1137)\n-1C215 Uncompressed Size     00001205 (4613)\n-1C219 Filename Length       0048 (72)\n-1C21B Extra Length          0000 (0)\n-1C21D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C341 Compression Method    0008 (8) 'Deflated'\n+1C343 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1C347 CRC                   A053D891 (2689849489)\n+1C34B Compressed Size       00000471 (1137)\n+1C34F Uncompressed Size     00001205 (4613)\n+1C353 Filename Length       0048 (72)\n+1C355 Extra Length          0000 (0)\n+1C357 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C21D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C357: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C265 PAYLOAD\n+1C39F PAYLOAD\n \n-1C6D6 LOCAL HEADER #116     04034B50 (67324752)\n-1C6DA Extract Zip Spec      14 (20) '2.0'\n-1C6DB Extract OS            00 (0) 'MS-DOS'\n-1C6DC General Purpose Flag  0800 (2048)\n+1C810 LOCAL HEADER #116     04034B50 (67324752)\n+1C814 Extract Zip Spec      14 (20) '2.0'\n+1C815 Extract OS            00 (0) 'MS-DOS'\n+1C816 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C6DE Compression Method    0008 (8) 'Deflated'\n-1C6E0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1C6E4 CRC                   F077FE2F (4034395695)\n-1C6E8 Compressed Size       0000031E (798)\n-1C6EC Uncompressed Size     000007C3 (1987)\n-1C6F0 Filename Length       0043 (67)\n-1C6F2 Extra Length          0000 (0)\n-1C6F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C818 Compression Method    0008 (8) 'Deflated'\n+1C81A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1C81E CRC                   F077FE2F (4034395695)\n+1C822 Compressed Size       0000031E (798)\n+1C826 Uncompressed Size     000007C3 (1987)\n+1C82A Filename Length       0043 (67)\n+1C82C Extra Length          0000 (0)\n+1C82E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C6F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C82E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C737 PAYLOAD\n+1C871 PAYLOAD\n \n-1CA55 LOCAL HEADER #117     04034B50 (67324752)\n-1CA59 Extract Zip Spec      14 (20) '2.0'\n-1CA5A Extract OS            00 (0) 'MS-DOS'\n-1CA5B General Purpose Flag  0800 (2048)\n+1CB8F LOCAL HEADER #117     04034B50 (67324752)\n+1CB93 Extract Zip Spec      14 (20) '2.0'\n+1CB94 Extract OS            00 (0) 'MS-DOS'\n+1CB95 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1CA5D Compression Method    0008 (8) 'Deflated'\n-1CA5F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1CA63 CRC                   F135EAA5 (4046842533)\n-1CA67 Compressed Size       0000068C (1676)\n-1CA6B Uncompressed Size     000014BA (5306)\n-1CA6F Filename Length       0049 (73)\n-1CA71 Extra Length          0000 (0)\n-1CA73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1CB97 Compression Method    0008 (8) 'Deflated'\n+1CB99 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1CB9D CRC                   1DD7EFDF (500690911)\n+1CBA1 Compressed Size       0000069C (1692)\n+1CBA5 Uncompressed Size     0000154F (5455)\n+1CBA9 Filename Length       0049 (73)\n+1CBAB Extra Length          0000 (0)\n+1CBAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1CA73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1CBAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1CABC PAYLOAD\n+1CBF6 PAYLOAD\n \n-1D148 LOCAL HEADER #118     04034B50 (67324752)\n-1D14C Extract Zip Spec      14 (20) '2.0'\n-1D14D Extract OS            00 (0) 'MS-DOS'\n-1D14E General Purpose Flag  0800 (2048)\n+1D292 LOCAL HEADER #118     04034B50 (67324752)\n+1D296 Extract Zip Spec      14 (20) '2.0'\n+1D297 Extract OS            00 (0) 'MS-DOS'\n+1D298 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1D150 Compression Method    0008 (8) 'Deflated'\n-1D152 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1D156 CRC                   32EFA1AA (854565290)\n-1D15A Compressed Size       00000406 (1030)\n-1D15E Uncompressed Size     00000E18 (3608)\n-1D162 Filename Length       0049 (73)\n-1D164 Extra Length          0000 (0)\n-1D166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D29A Compression Method    0008 (8) 'Deflated'\n+1D29C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1D2A0 CRC                   1909E1F3 (420078067)\n+1D2A4 Compressed Size       0000040F (1039)\n+1D2A8 Uncompressed Size     00000E69 (3689)\n+1D2AC Filename Length       0049 (73)\n+1D2AE Extra Length          0000 (0)\n+1D2B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1D2B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1D1AF PAYLOAD\n+1D2F9 PAYLOAD\n \n-1D5B5 LOCAL HEADER #119     04034B50 (67324752)\n-1D5B9 Extract Zip Spec      14 (20) '2.0'\n-1D5BA Extract OS            00 (0) 'MS-DOS'\n-1D5BB General Purpose Flag  0800 (2048)\n+1D708 LOCAL HEADER #119     04034B50 (67324752)\n+1D70C Extract Zip Spec      14 (20) '2.0'\n+1D70D Extract OS            00 (0) 'MS-DOS'\n+1D70E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1D5BD Compression Method    0008 (8) 'Deflated'\n-1D5BF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1D5C3 CRC                   40313D69 (1076968809)\n-1D5C7 Compressed Size       0000029A (666)\n-1D5CB Uncompressed Size     00000521 (1313)\n-1D5CF Filename Length       0045 (69)\n-1D5D1 Extra Length          0000 (0)\n-1D5D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D710 Compression Method    0008 (8) 'Deflated'\n+1D712 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1D716 CRC                   40313D69 (1076968809)\n+1D71A Compressed Size       0000029A (666)\n+1D71E Uncompressed Size     00000521 (1313)\n+1D722 Filename Length       0045 (69)\n+1D724 Extra Length          0000 (0)\n+1D726 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D5D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1D726: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1D618 PAYLOAD\n+1D76B PAYLOAD\n \n-1D8B2 LOCAL HEADER #120     04034B50 (67324752)\n-1D8B6 Extract Zip Spec      14 (20) '2.0'\n-1D8B7 Extract OS            00 (0) 'MS-DOS'\n-1D8B8 General Purpose Flag  0800 (2048)\n+1DA05 LOCAL HEADER #120     04034B50 (67324752)\n+1DA09 Extract Zip Spec      14 (20) '2.0'\n+1DA0A Extract OS            00 (0) 'MS-DOS'\n+1DA0B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1D8BA Compression Method    0008 (8) 'Deflated'\n-1D8BC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1D8C0 CRC                   956AD47E (2506806398)\n-1D8C4 Compressed Size       00000605 (1541)\n-1D8C8 Uncompressed Size     000014D1 (5329)\n-1D8CC Filename Length       005E (94)\n-1D8CE Extra Length          0000 (0)\n-1D8D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1DA0D Compression Method    0008 (8) 'Deflated'\n+1DA0F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1DA13 CRC                   7D6D8264 (2104328804)\n+1DA17 Compressed Size       0000060E (1550)\n+1DA1B Uncompressed Size     0000153E (5438)\n+1DA1F Filename Length       005E (94)\n+1DA21 Extra Length          0000 (0)\n+1DA23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D8D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1DA23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1D92E PAYLOAD\n+1DA81 PAYLOAD\n \n-1DF33 LOCAL HEADER #121     04034B50 (67324752)\n-1DF37 Extract Zip Spec      14 (20) '2.0'\n-1DF38 Extract OS            00 (0) 'MS-DOS'\n-1DF39 General Purpose Flag  0800 (2048)\n+1E08F LOCAL HEADER #121     04034B50 (67324752)\n+1E093 Extract Zip Spec      14 (20) '2.0'\n+1E094 Extract OS            00 (0) 'MS-DOS'\n+1E095 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1DF3B Compression Method    0008 (8) 'Deflated'\n-1DF3D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1DF41 CRC                   5474BB92 (1416936338)\n-1DF45 Compressed Size       0000029F (671)\n-1DF49 Uncompressed Size     00000551 (1361)\n-1DF4D Filename Length       005A (90)\n-1DF4F Extra Length          0000 (0)\n-1DF51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E097 Compression Method    0008 (8) 'Deflated'\n+1E099 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E09D CRC                   5474BB92 (1416936338)\n+1E0A1 Compressed Size       0000029F (671)\n+1E0A5 Uncompressed Size     00000551 (1361)\n+1E0A9 Filename Length       005A (90)\n+1E0AB Extra Length          0000 (0)\n+1E0AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1DF51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E0AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1DFAB PAYLOAD\n+1E107 PAYLOAD\n \n-1E24A LOCAL HEADER #122     04034B50 (67324752)\n-1E24E Extract Zip Spec      14 (20) '2.0'\n-1E24F Extract OS            00 (0) 'MS-DOS'\n-1E250 General Purpose Flag  0800 (2048)\n+1E3A6 LOCAL HEADER #122     04034B50 (67324752)\n+1E3AA Extract Zip Spec      14 (20) '2.0'\n+1E3AB Extract OS            00 (0) 'MS-DOS'\n+1E3AC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E252 Compression Method    0008 (8) 'Deflated'\n-1E254 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E258 CRC                   F2C441AD (4072948141)\n-1E25C Compressed Size       00000383 (899)\n-1E260 Uncompressed Size     000008B3 (2227)\n-1E264 Filename Length       004F (79)\n-1E266 Extra Length          0000 (0)\n-1E268 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E3AE Compression Method    0008 (8) 'Deflated'\n+1E3B0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E3B4 CRC                   F9C89211 (4190671377)\n+1E3B8 Compressed Size       00000389 (905)\n+1E3BC Uncompressed Size     000008E6 (2278)\n+1E3C0 Filename Length       004F (79)\n+1E3C2 Extra Length          0000 (0)\n+1E3C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E268: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E3C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E2B7 PAYLOAD\n+1E413 PAYLOAD\n \n-1E63A LOCAL HEADER #123     04034B50 (67324752)\n-1E63E Extract Zip Spec      14 (20) '2.0'\n-1E63F Extract OS            00 (0) 'MS-DOS'\n-1E640 General Purpose Flag  0800 (2048)\n+1E79C LOCAL HEADER #123     04034B50 (67324752)\n+1E7A0 Extract Zip Spec      14 (20) '2.0'\n+1E7A1 Extract OS            00 (0) 'MS-DOS'\n+1E7A2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E642 Compression Method    0008 (8) 'Deflated'\n-1E644 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E648 CRC                   E0C2D2A3 (3770864291)\n-1E64C Compressed Size       00000285 (645)\n-1E650 Uncompressed Size     000004FE (1278)\n-1E654 Filename Length       004B (75)\n-1E656 Extra Length          0000 (0)\n-1E658 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1E7A4 Compression Method    0008 (8) 'Deflated'\n+1E7A6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1E7AA CRC                   66FEA41B (1727964187)\n+1E7AE Compressed Size       0000028E (654)\n+1E7B2 Uncompressed Size     00000521 (1313)\n+1E7B6 Filename Length       004B (75)\n+1E7B8 Extra Length          0000 (0)\n+1E7BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E658: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1E7BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E6A3 PAYLOAD\n+1E805 PAYLOAD\n \n-1E928 LOCAL HEADER #124     04034B50 (67324752)\n-1E92C Extract Zip Spec      14 (20) '2.0'\n-1E92D Extract OS            00 (0) 'MS-DOS'\n-1E92E General Purpose Flag  0800 (2048)\n+1EA93 LOCAL HEADER #124     04034B50 (67324752)\n+1EA97 Extract Zip Spec      14 (20) '2.0'\n+1EA98 Extract OS            00 (0) 'MS-DOS'\n+1EA99 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E930 Compression Method    0008 (8) 'Deflated'\n-1E932 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1E936 CRC                   9D8FBCBD (2643442877)\n-1E93A Compressed Size       000004CD (1229)\n-1E93E Uncompressed Size     00000C4B (3147)\n-1E942 Filename Length       0055 (85)\n-1E944 Extra Length          0000 (0)\n-1E946 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EA9B Compression Method    0008 (8) 'Deflated'\n+1EA9D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EAA1 CRC                   E83FE9D5 (3896502741)\n+1EAA5 Compressed Size       000004D6 (1238)\n+1EAA9 Uncompressed Size     00000C8C (3212)\n+1EAAD Filename Length       0055 (85)\n+1EAAF Extra Length          0000 (0)\n+1EAB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E946: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EAB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1E99B PAYLOAD\n+1EB06 PAYLOAD\n \n-1EE68 LOCAL HEADER #125     04034B50 (67324752)\n-1EE6C Extract Zip Spec      14 (20) '2.0'\n-1EE6D Extract OS            00 (0) 'MS-DOS'\n-1EE6E General Purpose Flag  0800 (2048)\n+1EFDC LOCAL HEADER #125     04034B50 (67324752)\n+1EFE0 Extract Zip Spec      14 (20) '2.0'\n+1EFE1 Extract OS            00 (0) 'MS-DOS'\n+1EFE2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1EE70 Compression Method    0008 (8) 'Deflated'\n-1EE72 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1EE76 CRC                   DF933BA4 (3750968228)\n-1EE7A Compressed Size       000002AA (682)\n-1EE7E Uncompressed Size     00000555 (1365)\n-1EE82 Filename Length       0051 (81)\n-1EE84 Extra Length          0000 (0)\n-1EE86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1EFE4 Compression Method    0008 (8) 'Deflated'\n+1EFE6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1EFEA CRC                   DF933BA4 (3750968228)\n+1EFEE Compressed Size       000002AA (682)\n+1EFF2 Uncompressed Size     00000555 (1365)\n+1EFF6 Filename Length       0051 (81)\n+1EFF8 Extra Length          0000 (0)\n+1EFFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EE86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1EFFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1EED7 PAYLOAD\n+1F04B PAYLOAD\n \n-1F181 LOCAL HEADER #126     04034B50 (67324752)\n-1F185 Extract Zip Spec      14 (20) '2.0'\n-1F186 Extract OS            00 (0) 'MS-DOS'\n-1F187 General Purpose Flag  0800 (2048)\n+1F2F5 LOCAL HEADER #126     04034B50 (67324752)\n+1F2F9 Extract Zip Spec      14 (20) '2.0'\n+1F2FA Extract OS            00 (0) 'MS-DOS'\n+1F2FB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F189 Compression Method    0008 (8) 'Deflated'\n-1F18B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F18F CRC                   5CADB8BA (1554888890)\n-1F193 Compressed Size       0000039E (926)\n-1F197 Uncompressed Size     00000910 (2320)\n-1F19B Filename Length       0055 (85)\n-1F19D Extra Length          0000 (0)\n-1F19F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F2FD Compression Method    0008 (8) 'Deflated'\n+1F2FF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F303 CRC                   9032EA6A (2419255914)\n+1F307 Compressed Size       000003A7 (935)\n+1F30B Uncompressed Size     00000944 (2372)\n+1F30F Filename Length       0055 (85)\n+1F311 Extra Length          0000 (0)\n+1F313 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F19F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F313: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1F1F4 PAYLOAD\n+1F368 PAYLOAD\n \n-1F592 LOCAL HEADER #127     04034B50 (67324752)\n-1F596 Extract Zip Spec      14 (20) '2.0'\n-1F597 Extract OS            00 (0) 'MS-DOS'\n-1F598 General Purpose Flag  0800 (2048)\n+1F70F LOCAL HEADER #127     04034B50 (67324752)\n+1F713 Extract Zip Spec      14 (20) '2.0'\n+1F714 Extract OS            00 (0) 'MS-DOS'\n+1F715 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F59A Compression Method    0008 (8) 'Deflated'\n-1F59C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F5A0 CRC                   897FB906 (2306849030)\n-1F5A4 Compressed Size       000002A3 (675)\n-1F5A8 Uncompressed Size     00000546 (1350)\n-1F5AC Filename Length       0051 (81)\n-1F5AE Extra Length          0000 (0)\n-1F5B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F717 Compression Method    0008 (8) 'Deflated'\n+1F719 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F71D CRC                   897FB906 (2306849030)\n+1F721 Compressed Size       000002A3 (675)\n+1F725 Uncompressed Size     00000546 (1350)\n+1F729 Filename Length       0051 (81)\n+1F72B Extra Length          0000 (0)\n+1F72D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F5B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F72D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1F601 PAYLOAD\n+1F77E PAYLOAD\n \n-1F8A4 LOCAL HEADER #128     04034B50 (67324752)\n-1F8A8 Extract Zip Spec      14 (20) '2.0'\n-1F8A9 Extract OS            00 (0) 'MS-DOS'\n-1F8AA General Purpose Flag  0800 (2048)\n+1FA21 LOCAL HEADER #128     04034B50 (67324752)\n+1FA25 Extract Zip Spec      14 (20) '2.0'\n+1FA26 Extract OS            00 (0) 'MS-DOS'\n+1FA27 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1F8AC Compression Method    0008 (8) 'Deflated'\n-1F8AE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F8B2 CRC                   6365E73A (1667622714)\n-1F8B6 Compressed Size       00000326 (806)\n-1F8BA Uncompressed Size     00000708 (1800)\n-1F8BE Filename Length       0033 (51)\n-1F8C0 Extra Length          0000 (0)\n-1F8C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FA29 Compression Method    0008 (8) 'Deflated'\n+1FA2B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FA2F CRC                   C50A75E6 (3305797094)\n+1FA33 Compressed Size       0000032E (814)\n+1FA37 Uncompressed Size     00000738 (1848)\n+1FA3B Filename Length       0033 (51)\n+1FA3D Extra Length          0000 (0)\n+1FA3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F8C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FA3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1F8F5 PAYLOAD\n+1FA72 PAYLOAD\n \n-1FC1B LOCAL HEADER #129     04034B50 (67324752)\n-1FC1F Extract Zip Spec      14 (20) '2.0'\n-1FC20 Extract OS            00 (0) 'MS-DOS'\n-1FC21 General Purpose Flag  0800 (2048)\n+1FDA0 LOCAL HEADER #129     04034B50 (67324752)\n+1FDA4 Extract Zip Spec      14 (20) '2.0'\n+1FDA5 Extract OS            00 (0) 'MS-DOS'\n+1FDA6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FC23 Compression Method    0008 (8) 'Deflated'\n-1FC25 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FC29 CRC                   BFAE288D (3215861901)\n-1FC2D Compressed Size       000002FE (766)\n-1FC31 Uncompressed Size     0000060E (1550)\n-1FC35 Filename Length       002D (45)\n-1FC37 Extra Length          0000 (0)\n-1FC39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FDA8 Compression Method    0008 (8) 'Deflated'\n+1FDAA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1FDAE CRC                   7B898F0A (2072612618)\n+1FDB2 Compressed Size       00000307 (775)\n+1FDB6 Uncompressed Size     00000633 (1587)\n+1FDBA Filename Length       002D (45)\n+1FDBC Extra Length          0000 (0)\n+1FDBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FC39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FDBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1FC66 PAYLOAD\n+1FDEB PAYLOAD\n \n-1FF64 LOCAL HEADER #130     04034B50 (67324752)\n-1FF68 Extract Zip Spec      14 (20) '2.0'\n-1FF69 Extract OS            00 (0) 'MS-DOS'\n-1FF6A General Purpose Flag  0800 (2048)\n+200F2 LOCAL HEADER #130     04034B50 (67324752)\n+200F6 Extract Zip Spec      14 (20) '2.0'\n+200F7 Extract OS            00 (0) 'MS-DOS'\n+200F8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FF6C Compression Method    0008 (8) 'Deflated'\n-1FF6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1FF72 CRC                   7822E272 (2015552114)\n-1FF76 Compressed Size       00000057 (87)\n-1FF7A Uncompressed Size     000000BE (190)\n-1FF7E Filename Length       0038 (56)\n-1FF80 Extra Length          0000 (0)\n-1FF82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+200FA Compression Method    0008 (8) 'Deflated'\n+200FC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20100 CRC                   7822E272 (2015552114)\n+20104 Compressed Size       00000057 (87)\n+20108 Uncompressed Size     000000BE (190)\n+2010C Filename Length       0038 (56)\n+2010E Extra Length          0000 (0)\n+20110 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FF82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20110: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1FFBA PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+20148 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-20011 LOCAL HEADER #131     04034B50 (67324752)\n-20015 Extract Zip Spec      14 (20) '2.0'\n-20016 Extract OS            00 (0) 'MS-DOS'\n-20017 General Purpose Flag  0800 (2048)\n+2019F LOCAL HEADER #131     04034B50 (67324752)\n+201A3 Extract Zip Spec      14 (20) '2.0'\n+201A4 Extract OS            00 (0) 'MS-DOS'\n+201A5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20019 Compression Method    0008 (8) 'Deflated'\n-2001B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2001F CRC                   F57FED56 (4118801750)\n-20023 Compressed Size       00000085 (133)\n-20027 Uncompressed Size     000001A3 (419)\n-2002B Filename Length       003C (60)\n-2002D Extra Length          0000 (0)\n-2002F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+201A7 Compression Method    0008 (8) 'Deflated'\n+201A9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+201AD CRC                   F57FED56 (4118801750)\n+201B1 Compressed Size       00000085 (133)\n+201B5 Uncompressed Size     000001A3 (419)\n+201B9 Filename Length       003C (60)\n+201BB Extra Length          0000 (0)\n+201BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2002F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x201BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2006B PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+201F9 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-200F0 LOCAL HEADER #132     04034B50 (67324752)\n-200F4 Extract Zip Spec      14 (20) '2.0'\n-200F5 Extract OS            00 (0) 'MS-DOS'\n-200F6 General Purpose Flag  0800 (2048)\n+2027E LOCAL HEADER #132     04034B50 (67324752)\n+20282 Extract Zip Spec      14 (20) '2.0'\n+20283 Extract OS            00 (0) 'MS-DOS'\n+20284 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-200F8 Compression Method    0008 (8) 'Deflated'\n-200FA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-200FE CRC                   ACEF17E5 (2901350373)\n-20102 Compressed Size       0000003E (62)\n-20106 Uncompressed Size     00000048 (72)\n-2010A Filename Length       0044 (68)\n-2010C Extra Length          0000 (0)\n-2010E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20286 Compression Method    0008 (8) 'Deflated'\n+20288 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2028C CRC                   ACEF17E5 (2901350373)\n+20290 Compressed Size       0000003E (62)\n+20294 Uncompressed Size     00000048 (72)\n+20298 Filename Length       0044 (68)\n+2029A Extra Length          0000 (0)\n+2029C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2010E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2029C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-20152 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+202E0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-20190 LOCAL HEADER #133     04034B50 (67324752)\n-20194 Extract Zip Spec      14 (20) '2.0'\n-20195 Extract OS            00 (0) 'MS-DOS'\n-20196 General Purpose Flag  0800 (2048)\n+2031E LOCAL HEADER #133     04034B50 (67324752)\n+20322 Extract Zip Spec      14 (20) '2.0'\n+20323 Extract OS            00 (0) 'MS-DOS'\n+20324 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20198 Compression Method    0008 (8) 'Deflated'\n-2019A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2019E CRC                   0D658C42 (224758850)\n-201A2 Compressed Size       00000070 (112)\n-201A6 Uncompressed Size     0000016F (367)\n-201AA Filename Length       0046 (70)\n-201AC Extra Length          0000 (0)\n-201AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20326 Compression Method    0008 (8) 'Deflated'\n+20328 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2032C CRC                   0D658C42 (224758850)\n+20330 Compressed Size       00000070 (112)\n+20334 Uncompressed Size     0000016F (367)\n+20338 Filename Length       0046 (70)\n+2033A Extra Length          0000 (0)\n+2033C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x201AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2033C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-201F4 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+20382 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-20264 LOCAL HEADER #134     04034B50 (67324752)\n-20268 Extract Zip Spec      14 (20) '2.0'\n-20269 Extract OS            00 (0) 'MS-DOS'\n-2026A General Purpose Flag  0800 (2048)\n+203F2 LOCAL HEADER #134     04034B50 (67324752)\n+203F6 Extract Zip Spec      14 (20) '2.0'\n+203F7 Extract OS            00 (0) 'MS-DOS'\n+203F8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2026C Compression Method    0008 (8) 'Deflated'\n-2026E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20272 CRC                   2EBB8418 (784040984)\n-20276 Compressed Size       0000038B (907)\n-2027A Uncompressed Size     00000951 (2385)\n-2027E Filename Length       003A (58)\n-20280 Extra Length          0000 (0)\n-20282 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+203FA Compression Method    0008 (8) 'Deflated'\n+203FC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20400 CRC                   412C4DB4 (1093422516)\n+20404 Compressed Size       00000384 (900)\n+20408 Uncompressed Size     00000916 (2326)\n+2040C Filename Length       003A (58)\n+2040E Extra Length          0000 (0)\n+20410 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20282: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20410: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-202BC PAYLOAD\n+2044A PAYLOAD\n \n-20647 LOCAL HEADER #135     04034B50 (67324752)\n-2064B Extract Zip Spec      14 (20) '2.0'\n-2064C Extract OS            00 (0) 'MS-DOS'\n-2064D General Purpose Flag  0800 (2048)\n+207CE LOCAL HEADER #135     04034B50 (67324752)\n+207D2 Extract Zip Spec      14 (20) '2.0'\n+207D3 Extract OS            00 (0) 'MS-DOS'\n+207D4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2064F Compression Method    0008 (8) 'Deflated'\n-20651 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20655 CRC                   86CFF4B4 (2261775540)\n-20659 Compressed Size       00000047 (71)\n-2065D Uncompressed Size     00000049 (73)\n-20661 Filename Length       0041 (65)\n-20663 Extra Length          0000 (0)\n-20665 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+207D6 Compression Method    0008 (8) 'Deflated'\n+207D8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+207DC CRC                   86CFF4B4 (2261775540)\n+207E0 Compressed Size       00000047 (71)\n+207E4 Uncompressed Size     00000049 (73)\n+207E8 Filename Length       0041 (65)\n+207EA Extra Length          0000 (0)\n+207EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20665: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x207EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-206A6 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+2082D PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-206ED CENTRAL HEADER #1     02014B50 (33639248)\n-206F1 Created Zip Spec      14 (20) '2.0'\n-206F2 Created OS            03 (3) 'Unix'\n-206F3 Extract Zip Spec      14 (20) '2.0'\n-206F4 Extract OS            00 (0) 'MS-DOS'\n-206F5 General Purpose Flag  0800 (2048)\n+20874 CENTRAL HEADER #1     02014B50 (33639248)\n+20878 Created Zip Spec      14 (20) '2.0'\n+20879 Created OS            03 (3) 'Unix'\n+2087A Extract Zip Spec      14 (20) '2.0'\n+2087B Extract OS            00 (0) 'MS-DOS'\n+2087C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-206F7 Compression Method    0008 (8) 'Deflated'\n-206F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-206FD CRC                   A689EB18 (2794056472)\n-20701 Compressed Size       00000042 (66)\n-20705 Uncompressed Size     00000040 (64)\n-20709 Filename Length       0014 (20)\n-2070B Extra Length          0000 (0)\n-2070D Comment Length        0000 (0)\n-2070F Disk Start            0000 (0)\n-20711 Int File Attributes   0000 (0)\n+2087E Compression Method    0008 (8) 'Deflated'\n+20880 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20884 CRC                   A689EB18 (2794056472)\n+20888 Compressed Size       00000042 (66)\n+2088C Uncompressed Size     00000040 (64)\n+20890 Filename Length       0014 (20)\n+20892 Extra Length          0000 (0)\n+20894 Comment Length        0000 (0)\n+20896 Disk Start            0000 (0)\n+20898 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20713 Ext File Attributes   81A40000 (2175008768)\n+2089A 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-20717 Local Header Offset   00000000 (0)\n-2071B Filename              'XXXXXXXXXXXXXXXXXXXX'\n+2089E Local Header Offset   00000000 (0)\n+208A2 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2071B: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x208A2: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2072F CENTRAL HEADER #2     02014B50 (33639248)\n-20733 Created Zip Spec      14 (20) '2.0'\n-20734 Created OS            03 (3) 'Unix'\n-20735 Extract Zip Spec      0A (10) '1.0'\n-20736 Extract OS            00 (0) 'MS-DOS'\n-20737 General Purpose Flag  0800 (2048)\n+208B6 CENTRAL HEADER #2     02014B50 (33639248)\n+208BA Created Zip Spec      14 (20) '2.0'\n+208BB Created OS            03 (3) 'Unix'\n+208BC Extract Zip Spec      0A (10) '1.0'\n+208BD Extract OS            00 (0) 'MS-DOS'\n+208BE General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-20739 Compression Method    0000 (0) 'Stored'\n-2073B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2073F CRC                   00000000 (0)\n-20743 Compressed Size       00000000 (0)\n-20747 Uncompressed Size     00000000 (0)\n-2074B Filename Length       0009 (9)\n-2074D Extra Length          0000 (0)\n-2074F Comment Length        0000 (0)\n-20751 Disk Start            0000 (0)\n-20753 Int File Attributes   0000 (0)\n+208C0 Compression Method    0000 (0) 'Stored'\n+208C2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+208C6 CRC                   00000000 (0)\n+208CA Compressed Size       00000000 (0)\n+208CE Uncompressed Size     00000000 (0)\n+208D2 Filename Length       0009 (9)\n+208D4 Extra Length          0000 (0)\n+208D6 Comment Length        0000 (0)\n+208D8 Disk Start            0000 (0)\n+208DA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20755 Ext File Attributes   41ED0010 (1106051088)\n+208DC 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-20759 Local Header Offset   00000074 (116)\n-2075D Filename              'XXXXXXXXX'\n+208E0 Local Header Offset   00000074 (116)\n+208E4 Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x2075D: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x208E4: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2075D: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x208E4: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20735: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x208BC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-20766 CENTRAL HEADER #3     02014B50 (33639248)\n-2076A Created Zip Spec      14 (20) '2.0'\n-2076B Created OS            03 (3) 'Unix'\n-2076C Extract Zip Spec      0A (10) '1.0'\n-2076D Extract OS            00 (0) 'MS-DOS'\n-2076E General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20770 Compression Method    0000 (0) 'Stored'\n-20772 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20776 CRC                   00000000 (0)\n-2077A Compressed Size       00000000 (0)\n-2077E Uncompressed Size     00000000 (0)\n-20782 Filename Length       0004 (4)\n-20784 Extra Length          0000 (0)\n-20786 Comment Length        0000 (0)\n-20788 Disk Start            0000 (0)\n-2078A Int File Attributes   0000 (0)\n+208ED CENTRAL HEADER #3     02014B50 (33639248)\n+208F1 Created Zip Spec      14 (20) '2.0'\n+208F2 Created OS            03 (3) 'Unix'\n+208F3 Extract Zip Spec      0A (10) '1.0'\n+208F4 Extract OS            00 (0) 'MS-DOS'\n+208F5 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+208F7 Compression Method    0000 (0) 'Stored'\n+208F9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+208FD CRC                   00000000 (0)\n+20901 Compressed Size       00000000 (0)\n+20905 Uncompressed Size     00000000 (0)\n+20909 Filename Length       0004 (4)\n+2090B Extra Length          0000 (0)\n+2090D Comment Length        0000 (0)\n+2090F Disk Start            0000 (0)\n+20911 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2078C Ext File Attributes   41ED0010 (1106051088)\n+20913 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-20790 Local Header Offset   0000009B (155)\n-20794 Filename              'XXXX'\n+20917 Local Header Offset   0000009B (155)\n+2091B Filename              'XXXX'\n #\n-# WARNING: Offset 0x20794: Filename 'XXXX'\n+# WARNING: Offset 0x2091B: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20794: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x2091B: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2076C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x208F3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-20798 CENTRAL HEADER #4     02014B50 (33639248)\n-2079C Created Zip Spec      14 (20) '2.0'\n-2079D Created OS            03 (3) 'Unix'\n-2079E Extract Zip Spec      0A (10) '1.0'\n-2079F Extract OS            00 (0) 'MS-DOS'\n-207A0 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-207A2 Compression Method    0000 (0) 'Stored'\n-207A4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-207A8 CRC                   00000000 (0)\n-207AC Compressed Size       00000000 (0)\n-207B0 Uncompressed Size     00000000 (0)\n-207B4 Filename Length       000B (11)\n-207B6 Extra Length          0000 (0)\n-207B8 Comment Length        0000 (0)\n-207BA Disk Start            0000 (0)\n-207BC Int File Attributes   0000 (0)\n+2091F CENTRAL HEADER #4     02014B50 (33639248)\n+20923 Created Zip Spec      14 (20) '2.0'\n+20924 Created OS            03 (3) 'Unix'\n+20925 Extract Zip Spec      0A (10) '1.0'\n+20926 Extract OS            00 (0) 'MS-DOS'\n+20927 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20929 Compression Method    0000 (0) 'Stored'\n+2092B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2092F CRC                   00000000 (0)\n+20933 Compressed Size       00000000 (0)\n+20937 Uncompressed Size     00000000 (0)\n+2093B Filename Length       000B (11)\n+2093D Extra Length          0000 (0)\n+2093F Comment Length        0000 (0)\n+20941 Disk Start            0000 (0)\n+20943 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-207BE Ext File Attributes   41ED0010 (1106051088)\n+20945 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-207C2 Local Header Offset   000000BD (189)\n-207C6 Filename              'XXXXXXXXXXX'\n+20949 Local Header Offset   000000BD (189)\n+2094D Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x207C6: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x2094D: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x207C6: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2094D: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2079E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x20925: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-207D1 CENTRAL HEADER #5     02014B50 (33639248)\n-207D5 Created Zip Spec      14 (20) '2.0'\n-207D6 Created OS            03 (3) 'Unix'\n-207D7 Extract Zip Spec      0A (10) '1.0'\n-207D8 Extract OS            00 (0) 'MS-DOS'\n-207D9 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-207DB Compression Method    0000 (0) 'Stored'\n-207DD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-207E1 CRC                   00000000 (0)\n-207E5 Compressed Size       00000000 (0)\n-207E9 Uncompressed Size     00000000 (0)\n-207ED Filename Length       0011 (17)\n-207EF Extra Length          0000 (0)\n-207F1 Comment Length        0000 (0)\n-207F3 Disk Start            0000 (0)\n-207F5 Int File Attributes   0000 (0)\n+20958 CENTRAL HEADER #5     02014B50 (33639248)\n+2095C Created Zip Spec      14 (20) '2.0'\n+2095D Created OS            03 (3) 'Unix'\n+2095E Extract Zip Spec      0A (10) '1.0'\n+2095F Extract OS            00 (0) 'MS-DOS'\n+20960 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20962 Compression Method    0000 (0) 'Stored'\n+20964 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20968 CRC                   00000000 (0)\n+2096C Compressed Size       00000000 (0)\n+20970 Uncompressed Size     00000000 (0)\n+20974 Filename Length       0011 (17)\n+20976 Extra Length          0000 (0)\n+20978 Comment Length        0000 (0)\n+2097A Disk Start            0000 (0)\n+2097C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-207F7 Ext File Attributes   41ED0010 (1106051088)\n+2097E 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-207FB Local Header Offset   000000E6 (230)\n-207FF Filename              'XXXXXXXXXXXXXXXXX'\n+20982 Local Header Offset   000000E6 (230)\n+20986 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x207FF: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20986: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x207FF: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20986: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x207D7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2095E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-20810 CENTRAL HEADER #6     02014B50 (33639248)\n-20814 Created Zip Spec      14 (20) '2.0'\n-20815 Created OS            03 (3) 'Unix'\n-20816 Extract Zip Spec      0A (10) '1.0'\n-20817 Extract OS            00 (0) 'MS-DOS'\n-20818 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-2081A Compression Method    0000 (0) 'Stored'\n-2081C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20820 CRC                   00000000 (0)\n-20824 Compressed Size       00000000 (0)\n-20828 Uncompressed Size     00000000 (0)\n-2082C Filename Length       001A (26)\n-2082E Extra Length          0000 (0)\n-20830 Comment Length        0000 (0)\n-20832 Disk Start            0000 (0)\n-20834 Int File Attributes   0000 (0)\n+20997 CENTRAL HEADER #6     02014B50 (33639248)\n+2099B Created Zip Spec      14 (20) '2.0'\n+2099C Created OS            03 (3) 'Unix'\n+2099D Extract Zip Spec      0A (10) '1.0'\n+2099E Extract OS            00 (0) 'MS-DOS'\n+2099F General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+209A1 Compression Method    0000 (0) 'Stored'\n+209A3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+209A7 CRC                   00000000 (0)\n+209AB Compressed Size       00000000 (0)\n+209AF Uncompressed Size     00000000 (0)\n+209B3 Filename Length       001A (26)\n+209B5 Extra Length          0000 (0)\n+209B7 Comment Length        0000 (0)\n+209B9 Disk Start            0000 (0)\n+209BB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20836 Ext File Attributes   41ED0010 (1106051088)\n+209BD 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-2083A Local Header Offset   00000115 (277)\n-2083E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+209C1 Local Header Offset   00000115 (277)\n+209C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2083E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x209C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2083E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x209C5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20816: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2099D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20858 CENTRAL HEADER #7     02014B50 (33639248)\n-2085C Created Zip Spec      14 (20) '2.0'\n-2085D Created OS            03 (3) 'Unix'\n-2085E Extract Zip Spec      0A (10) '1.0'\n-2085F Extract OS            00 (0) 'MS-DOS'\n-20860 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20862 Compression Method    0000 (0) 'Stored'\n-20864 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20868 CRC                   00000000 (0)\n-2086C Compressed Size       00000000 (0)\n-20870 Uncompressed Size     00000000 (0)\n-20874 Filename Length       0021 (33)\n-20876 Extra Length          0000 (0)\n-20878 Comment Length        0000 (0)\n-2087A Disk Start            0000 (0)\n-2087C Int File Attributes   0000 (0)\n+209DF CENTRAL HEADER #7     02014B50 (33639248)\n+209E3 Created Zip Spec      14 (20) '2.0'\n+209E4 Created OS            03 (3) 'Unix'\n+209E5 Extract Zip Spec      0A (10) '1.0'\n+209E6 Extract OS            00 (0) 'MS-DOS'\n+209E7 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+209E9 Compression Method    0000 (0) 'Stored'\n+209EB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+209EF CRC                   00000000 (0)\n+209F3 Compressed Size       00000000 (0)\n+209F7 Uncompressed Size     00000000 (0)\n+209FB Filename Length       0021 (33)\n+209FD Extra Length          0000 (0)\n+209FF Comment Length        0000 (0)\n+20A01 Disk Start            0000 (0)\n+20A03 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2087E Ext File Attributes   41ED0010 (1106051088)\n+20A05 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-20882 Local Header Offset   0000014D (333)\n-20886 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20A09 Local Header Offset   0000014D (333)\n+20A0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20886: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20A0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20886: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20A0D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2085E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x209E5: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-208A7 CENTRAL HEADER #8     02014B50 (33639248)\n-208AB Created Zip Spec      14 (20) '2.0'\n-208AC Created OS            03 (3) 'Unix'\n-208AD Extract Zip Spec      0A (10) '1.0'\n-208AE Extract OS            00 (0) 'MS-DOS'\n-208AF General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-208B1 Compression Method    0000 (0) 'Stored'\n-208B3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-208B7 CRC                   00000000 (0)\n-208BB Compressed Size       00000000 (0)\n-208BF Uncompressed Size     00000000 (0)\n-208C3 Filename Length       0023 (35)\n-208C5 Extra Length          0000 (0)\n-208C7 Comment Length        0000 (0)\n-208C9 Disk Start            0000 (0)\n-208CB Int File Attributes   0000 (0)\n+20A2E CENTRAL HEADER #8     02014B50 (33639248)\n+20A32 Created Zip Spec      14 (20) '2.0'\n+20A33 Created OS            03 (3) 'Unix'\n+20A34 Extract Zip Spec      0A (10) '1.0'\n+20A35 Extract OS            00 (0) 'MS-DOS'\n+20A36 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20A38 Compression Method    0000 (0) 'Stored'\n+20A3A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20A3E CRC                   00000000 (0)\n+20A42 Compressed Size       00000000 (0)\n+20A46 Uncompressed Size     00000000 (0)\n+20A4A Filename Length       0023 (35)\n+20A4C Extra Length          0000 (0)\n+20A4E Comment Length        0000 (0)\n+20A50 Disk Start            0000 (0)\n+20A52 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-208CD Ext File Attributes   41ED0010 (1106051088)\n+20A54 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-208D1 Local Header Offset   0000018C (396)\n-208D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20A58 Local Header Offset   0000018C (396)\n+20A5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x208D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20A5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x208D5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20A5C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x208AD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20A34: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-208F8 CENTRAL HEADER #9     02014B50 (33639248)\n-208FC Created Zip Spec      14 (20) '2.0'\n-208FD Created OS            03 (3) 'Unix'\n-208FE Extract Zip Spec      0A (10) '1.0'\n-208FF Extract OS            00 (0) 'MS-DOS'\n-20900 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20902 Compression Method    0000 (0) 'Stored'\n-20904 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20908 CRC                   00000000 (0)\n-2090C Compressed Size       00000000 (0)\n-20910 Uncompressed Size     00000000 (0)\n-20914 Filename Length       0029 (41)\n-20916 Extra Length          0000 (0)\n-20918 Comment Length        0000 (0)\n-2091A Disk Start            0000 (0)\n-2091C Int File Attributes   0000 (0)\n+20A7F CENTRAL HEADER #9     02014B50 (33639248)\n+20A83 Created Zip Spec      14 (20) '2.0'\n+20A84 Created OS            03 (3) 'Unix'\n+20A85 Extract Zip Spec      0A (10) '1.0'\n+20A86 Extract OS            00 (0) 'MS-DOS'\n+20A87 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20A89 Compression Method    0000 (0) 'Stored'\n+20A8B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20A8F CRC                   00000000 (0)\n+20A93 Compressed Size       00000000 (0)\n+20A97 Uncompressed Size     00000000 (0)\n+20A9B Filename Length       0029 (41)\n+20A9D Extra Length          0000 (0)\n+20A9F Comment Length        0000 (0)\n+20AA1 Disk Start            0000 (0)\n+20AA3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2091E Ext File Attributes   41ED0010 (1106051088)\n+20AA5 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-20922 Local Header Offset   000001CD (461)\n-20926 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20AA9 Local Header Offset   000001CD (461)\n+20AAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20926: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20AAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20926: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20AAD: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x208FE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20A85: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2094F CENTRAL HEADER #10    02014B50 (33639248)\n-20953 Created Zip Spec      14 (20) '2.0'\n-20954 Created OS            03 (3) 'Unix'\n-20955 Extract Zip Spec      0A (10) '1.0'\n-20956 Extract OS            00 (0) 'MS-DOS'\n-20957 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20959 Compression Method    0000 (0) 'Stored'\n-2095B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2095F CRC                   00000000 (0)\n-20963 Compressed Size       00000000 (0)\n-20967 Uncompressed Size     00000000 (0)\n-2096B Filename Length       002B (43)\n-2096D Extra Length          0000 (0)\n-2096F Comment Length        0000 (0)\n-20971 Disk Start            0000 (0)\n-20973 Int File Attributes   0000 (0)\n+20AD6 CENTRAL HEADER #10    02014B50 (33639248)\n+20ADA Created Zip Spec      14 (20) '2.0'\n+20ADB Created OS            03 (3) 'Unix'\n+20ADC Extract Zip Spec      0A (10) '1.0'\n+20ADD Extract OS            00 (0) 'MS-DOS'\n+20ADE General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20AE0 Compression Method    0000 (0) 'Stored'\n+20AE2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20AE6 CRC                   00000000 (0)\n+20AEA Compressed Size       00000000 (0)\n+20AEE Uncompressed Size     00000000 (0)\n+20AF2 Filename Length       002B (43)\n+20AF4 Extra Length          0000 (0)\n+20AF6 Comment Length        0000 (0)\n+20AF8 Disk Start            0000 (0)\n+20AFA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20975 Ext File Attributes   41ED0010 (1106051088)\n+20AFC 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-20979 Local Header Offset   00000214 (532)\n-2097D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20B00 Local Header Offset   00000214 (532)\n+20B04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2097D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2097D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20B04: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20955: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20ADC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-209A8 CENTRAL HEADER #11    02014B50 (33639248)\n-209AC Created Zip Spec      14 (20) '2.0'\n-209AD Created OS            03 (3) 'Unix'\n-209AE Extract Zip Spec      0A (10) '1.0'\n-209AF Extract OS            00 (0) 'MS-DOS'\n-209B0 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-209B2 Compression Method    0000 (0) 'Stored'\n-209B4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-209B8 CRC                   00000000 (0)\n-209BC Compressed Size       00000000 (0)\n-209C0 Uncompressed Size     00000000 (0)\n-209C4 Filename Length       0032 (50)\n-209C6 Extra Length          0000 (0)\n-209C8 Comment Length        0000 (0)\n-209CA Disk Start            0000 (0)\n-209CC Int File Attributes   0000 (0)\n+20B2F CENTRAL HEADER #11    02014B50 (33639248)\n+20B33 Created Zip Spec      14 (20) '2.0'\n+20B34 Created OS            03 (3) 'Unix'\n+20B35 Extract Zip Spec      0A (10) '1.0'\n+20B36 Extract OS            00 (0) 'MS-DOS'\n+20B37 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20B39 Compression Method    0000 (0) 'Stored'\n+20B3B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20B3F CRC                   00000000 (0)\n+20B43 Compressed Size       00000000 (0)\n+20B47 Uncompressed Size     00000000 (0)\n+20B4B Filename Length       0032 (50)\n+20B4D Extra Length          0000 (0)\n+20B4F Comment Length        0000 (0)\n+20B51 Disk Start            0000 (0)\n+20B53 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-209CE Ext File Attributes   41ED0010 (1106051088)\n+20B55 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-209D2 Local Header Offset   0000025D (605)\n-209D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20B59 Local Header Offset   0000025D (605)\n+20B5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x209D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x209D6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20B5D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x209AE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B35: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20A08 CENTRAL HEADER #12    02014B50 (33639248)\n-20A0C Created Zip Spec      14 (20) '2.0'\n-20A0D Created OS            03 (3) 'Unix'\n-20A0E Extract Zip Spec      0A (10) '1.0'\n-20A0F Extract OS            00 (0) 'MS-DOS'\n-20A10 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20A12 Compression Method    0000 (0) 'Stored'\n-20A14 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20A18 CRC                   00000000 (0)\n-20A1C Compressed Size       00000000 (0)\n-20A20 Uncompressed Size     00000000 (0)\n-20A24 Filename Length       0021 (33)\n-20A26 Extra Length          0000 (0)\n-20A28 Comment Length        0000 (0)\n-20A2A Disk Start            0000 (0)\n-20A2C Int File Attributes   0000 (0)\n+20B8F CENTRAL HEADER #12    02014B50 (33639248)\n+20B93 Created Zip Spec      14 (20) '2.0'\n+20B94 Created OS            03 (3) 'Unix'\n+20B95 Extract Zip Spec      0A (10) '1.0'\n+20B96 Extract OS            00 (0) 'MS-DOS'\n+20B97 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20B99 Compression Method    0000 (0) 'Stored'\n+20B9B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20B9F CRC                   00000000 (0)\n+20BA3 Compressed Size       00000000 (0)\n+20BA7 Uncompressed Size     00000000 (0)\n+20BAB Filename Length       0021 (33)\n+20BAD Extra Length          0000 (0)\n+20BAF Comment Length        0000 (0)\n+20BB1 Disk Start            0000 (0)\n+20BB3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20A2E Ext File Attributes   41ED0010 (1106051088)\n+20BB5 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-20A32 Local Header Offset   000002AD (685)\n-20A36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20BB9 Local Header Offset   000002AD (685)\n+20BBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20A36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20BBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20A36: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20BBD: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20A0E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20B95: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20A57 CENTRAL HEADER #13    02014B50 (33639248)\n-20A5B Created Zip Spec      14 (20) '2.0'\n-20A5C Created OS            03 (3) 'Unix'\n-20A5D Extract Zip Spec      0A (10) '1.0'\n-20A5E Extract OS            00 (0) 'MS-DOS'\n-20A5F General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20A61 Compression Method    0000 (0) 'Stored'\n-20A63 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20A67 CRC                   00000000 (0)\n-20A6B Compressed Size       00000000 (0)\n-20A6F Uncompressed Size     00000000 (0)\n-20A73 Filename Length       0027 (39)\n-20A75 Extra Length          0000 (0)\n-20A77 Comment Length        0000 (0)\n-20A79 Disk Start            0000 (0)\n-20A7B Int File Attributes   0000 (0)\n+20BDE CENTRAL HEADER #13    02014B50 (33639248)\n+20BE2 Created Zip Spec      14 (20) '2.0'\n+20BE3 Created OS            03 (3) 'Unix'\n+20BE4 Extract Zip Spec      0A (10) '1.0'\n+20BE5 Extract OS            00 (0) 'MS-DOS'\n+20BE6 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20BE8 Compression Method    0000 (0) 'Stored'\n+20BEA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20BEE CRC                   00000000 (0)\n+20BF2 Compressed Size       00000000 (0)\n+20BF6 Uncompressed Size     00000000 (0)\n+20BFA Filename Length       0027 (39)\n+20BFC Extra Length          0000 (0)\n+20BFE Comment Length        0000 (0)\n+20C00 Disk Start            0000 (0)\n+20C02 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20A7D Ext File Attributes   41ED0010 (1106051088)\n+20C04 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-20A81 Local Header Offset   000002EC (748)\n-20A85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20C08 Local Header Offset   000002EC (748)\n+20C0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20A85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20C0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20A85: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20C0C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20A5D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20BE4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20AAC CENTRAL HEADER #14    02014B50 (33639248)\n-20AB0 Created Zip Spec      14 (20) '2.0'\n-20AB1 Created OS            03 (3) 'Unix'\n-20AB2 Extract Zip Spec      0A (10) '1.0'\n-20AB3 Extract OS            00 (0) 'MS-DOS'\n-20AB4 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20AB6 Compression Method    0000 (0) 'Stored'\n-20AB8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20ABC CRC                   00000000 (0)\n-20AC0 Compressed Size       00000000 (0)\n-20AC4 Uncompressed Size     00000000 (0)\n-20AC8 Filename Length       0029 (41)\n-20ACA Extra Length          0000 (0)\n-20ACC Comment Length        0000 (0)\n-20ACE Disk Start            0000 (0)\n-20AD0 Int File Attributes   0000 (0)\n+20C33 CENTRAL HEADER #14    02014B50 (33639248)\n+20C37 Created Zip Spec      14 (20) '2.0'\n+20C38 Created OS            03 (3) 'Unix'\n+20C39 Extract Zip Spec      0A (10) '1.0'\n+20C3A Extract OS            00 (0) 'MS-DOS'\n+20C3B General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20C3D Compression Method    0000 (0) 'Stored'\n+20C3F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20C43 CRC                   00000000 (0)\n+20C47 Compressed Size       00000000 (0)\n+20C4B Uncompressed Size     00000000 (0)\n+20C4F Filename Length       0029 (41)\n+20C51 Extra Length          0000 (0)\n+20C53 Comment Length        0000 (0)\n+20C55 Disk Start            0000 (0)\n+20C57 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20AD2 Ext File Attributes   41ED0010 (1106051088)\n+20C59 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-20AD6 Local Header Offset   00000331 (817)\n-20ADA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20C5D Local Header Offset   00000331 (817)\n+20C61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20ADA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20C61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20ADA: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20C61: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20AB2: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20C39: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20B03 CENTRAL HEADER #15    02014B50 (33639248)\n-20B07 Created Zip Spec      14 (20) '2.0'\n-20B08 Created OS            03 (3) 'Unix'\n-20B09 Extract Zip Spec      0A (10) '1.0'\n-20B0A Extract OS            00 (0) 'MS-DOS'\n-20B0B General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20B0D Compression Method    0000 (0) 'Stored'\n-20B0F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20B13 CRC                   00000000 (0)\n-20B17 Compressed Size       00000000 (0)\n-20B1B Uncompressed Size     00000000 (0)\n-20B1F Filename Length       0031 (49)\n-20B21 Extra Length          0000 (0)\n-20B23 Comment Length        0000 (0)\n-20B25 Disk Start            0000 (0)\n-20B27 Int File Attributes   0000 (0)\n+20C8A CENTRAL HEADER #15    02014B50 (33639248)\n+20C8E Created Zip Spec      14 (20) '2.0'\n+20C8F Created OS            03 (3) 'Unix'\n+20C90 Extract Zip Spec      0A (10) '1.0'\n+20C91 Extract OS            00 (0) 'MS-DOS'\n+20C92 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20C94 Compression Method    0000 (0) 'Stored'\n+20C96 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20C9A CRC                   00000000 (0)\n+20C9E Compressed Size       00000000 (0)\n+20CA2 Uncompressed Size     00000000 (0)\n+20CA6 Filename Length       0031 (49)\n+20CA8 Extra Length          0000 (0)\n+20CAA Comment Length        0000 (0)\n+20CAC Disk Start            0000 (0)\n+20CAE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20B29 Ext File Attributes   41ED0010 (1106051088)\n+20CB0 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-20B2D Local Header Offset   00000378 (888)\n-20B31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20CB4 Local Header Offset   00000378 (888)\n+20CB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20B31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20CB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20B31: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20CB8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20B09: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20C90: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20B62 CENTRAL HEADER #16    02014B50 (33639248)\n-20B66 Created Zip Spec      14 (20) '2.0'\n-20B67 Created OS            03 (3) 'Unix'\n-20B68 Extract Zip Spec      0A (10) '1.0'\n-20B69 Extract OS            00 (0) 'MS-DOS'\n-20B6A General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20B6C Compression Method    0000 (0) 'Stored'\n-20B6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20B72 CRC                   00000000 (0)\n-20B76 Compressed Size       00000000 (0)\n-20B7A Uncompressed Size     00000000 (0)\n-20B7E Filename Length       0024 (36)\n-20B80 Extra Length          0000 (0)\n-20B82 Comment Length        0000 (0)\n-20B84 Disk Start            0000 (0)\n-20B86 Int File Attributes   0000 (0)\n+20CE9 CENTRAL HEADER #16    02014B50 (33639248)\n+20CED Created Zip Spec      14 (20) '2.0'\n+20CEE Created OS            03 (3) 'Unix'\n+20CEF Extract Zip Spec      0A (10) '1.0'\n+20CF0 Extract OS            00 (0) 'MS-DOS'\n+20CF1 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20CF3 Compression Method    0000 (0) 'Stored'\n+20CF5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20CF9 CRC                   00000000 (0)\n+20CFD Compressed Size       00000000 (0)\n+20D01 Uncompressed Size     00000000 (0)\n+20D05 Filename Length       0024 (36)\n+20D07 Extra Length          0000 (0)\n+20D09 Comment Length        0000 (0)\n+20D0B Disk Start            0000 (0)\n+20D0D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20B88 Ext File Attributes   41ED0010 (1106051088)\n+20D0F 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-20B8C Local Header Offset   000003C7 (967)\n-20B90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20D13 Local Header Offset   000003C7 (967)\n+20D17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20B90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20D17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20B90: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20D17: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20B68: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20CEF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20BB4 CENTRAL HEADER #17    02014B50 (33639248)\n-20BB8 Created Zip Spec      14 (20) '2.0'\n-20BB9 Created OS            03 (3) 'Unix'\n-20BBA Extract Zip Spec      0A (10) '1.0'\n-20BBB Extract OS            00 (0) 'MS-DOS'\n-20BBC General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20BBE Compression Method    0000 (0) 'Stored'\n-20BC0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20BC4 CRC                   00000000 (0)\n-20BC8 Compressed Size       00000000 (0)\n-20BCC Uncompressed Size     00000000 (0)\n-20BD0 Filename Length       002A (42)\n-20BD2 Extra Length          0000 (0)\n-20BD4 Comment Length        0000 (0)\n-20BD6 Disk Start            0000 (0)\n-20BD8 Int File Attributes   0000 (0)\n+20D3B CENTRAL HEADER #17    02014B50 (33639248)\n+20D3F Created Zip Spec      14 (20) '2.0'\n+20D40 Created OS            03 (3) 'Unix'\n+20D41 Extract Zip Spec      0A (10) '1.0'\n+20D42 Extract OS            00 (0) 'MS-DOS'\n+20D43 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20D45 Compression Method    0000 (0) 'Stored'\n+20D47 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20D4B CRC                   00000000 (0)\n+20D4F Compressed Size       00000000 (0)\n+20D53 Uncompressed Size     00000000 (0)\n+20D57 Filename Length       002A (42)\n+20D59 Extra Length          0000 (0)\n+20D5B Comment Length        0000 (0)\n+20D5D Disk Start            0000 (0)\n+20D5F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20BDA Ext File Attributes   41ED0010 (1106051088)\n+20D61 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-20BDE Local Header Offset   00000409 (1033)\n-20BE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20D65 Local Header Offset   00000409 (1033)\n+20D69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20BE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20D69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20BE2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20D69: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20BBA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20D41: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20C0C CENTRAL HEADER #18    02014B50 (33639248)\n-20C10 Created Zip Spec      14 (20) '2.0'\n-20C11 Created OS            03 (3) 'Unix'\n-20C12 Extract Zip Spec      0A (10) '1.0'\n-20C13 Extract OS            00 (0) 'MS-DOS'\n-20C14 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20C16 Compression Method    0000 (0) 'Stored'\n-20C18 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20C1C CRC                   00000000 (0)\n-20C20 Compressed Size       00000000 (0)\n-20C24 Uncompressed Size     00000000 (0)\n-20C28 Filename Length       002F (47)\n-20C2A Extra Length          0000 (0)\n-20C2C Comment Length        0000 (0)\n-20C2E Disk Start            0000 (0)\n-20C30 Int File Attributes   0000 (0)\n+20D93 CENTRAL HEADER #18    02014B50 (33639248)\n+20D97 Created Zip Spec      14 (20) '2.0'\n+20D98 Created OS            03 (3) 'Unix'\n+20D99 Extract Zip Spec      0A (10) '1.0'\n+20D9A Extract OS            00 (0) 'MS-DOS'\n+20D9B General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20D9D Compression Method    0000 (0) 'Stored'\n+20D9F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20DA3 CRC                   00000000 (0)\n+20DA7 Compressed Size       00000000 (0)\n+20DAB Uncompressed Size     00000000 (0)\n+20DAF Filename Length       002F (47)\n+20DB1 Extra Length          0000 (0)\n+20DB3 Comment Length        0000 (0)\n+20DB5 Disk Start            0000 (0)\n+20DB7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20C32 Ext File Attributes   41ED0010 (1106051088)\n+20DB9 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-20C36 Local Header Offset   00000451 (1105)\n-20C3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20DBD Local Header Offset   00000451 (1105)\n+20DC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20C3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20DC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20C3A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20DC1: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20C12: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20D99: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20C69 CENTRAL HEADER #19    02014B50 (33639248)\n-20C6D Created Zip Spec      14 (20) '2.0'\n-20C6E Created OS            03 (3) 'Unix'\n-20C6F Extract Zip Spec      0A (10) '1.0'\n-20C70 Extract OS            00 (0) 'MS-DOS'\n-20C71 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20C73 Compression Method    0000 (0) 'Stored'\n-20C75 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20C79 CRC                   00000000 (0)\n-20C7D Compressed Size       00000000 (0)\n-20C81 Uncompressed Size     00000000 (0)\n-20C85 Filename Length       0033 (51)\n-20C87 Extra Length          0000 (0)\n-20C89 Comment Length        0000 (0)\n-20C8B Disk Start            0000 (0)\n-20C8D Int File Attributes   0000 (0)\n+20DF0 CENTRAL HEADER #19    02014B50 (33639248)\n+20DF4 Created Zip Spec      14 (20) '2.0'\n+20DF5 Created OS            03 (3) 'Unix'\n+20DF6 Extract Zip Spec      0A (10) '1.0'\n+20DF7 Extract OS            00 (0) 'MS-DOS'\n+20DF8 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20DFA Compression Method    0000 (0) 'Stored'\n+20DFC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20E00 CRC                   00000000 (0)\n+20E04 Compressed Size       00000000 (0)\n+20E08 Uncompressed Size     00000000 (0)\n+20E0C Filename Length       0033 (51)\n+20E0E Extra Length          0000 (0)\n+20E10 Comment Length        0000 (0)\n+20E12 Disk Start            0000 (0)\n+20E14 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20C8F Ext File Attributes   41ED0010 (1106051088)\n+20E16 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-20C93 Local Header Offset   0000049E (1182)\n-20C97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20E1A Local Header Offset   0000049E (1182)\n+20E1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20C97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20E1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20C97: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20E1E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20C6F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20DF6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20CCA CENTRAL HEADER #20    02014B50 (33639248)\n-20CCE Created Zip Spec      14 (20) '2.0'\n-20CCF Created OS            03 (3) 'Unix'\n-20CD0 Extract Zip Spec      0A (10) '1.0'\n-20CD1 Extract OS            00 (0) 'MS-DOS'\n-20CD2 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20CD4 Compression Method    0000 (0) 'Stored'\n-20CD6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20CDA CRC                   00000000 (0)\n-20CDE Compressed Size       00000000 (0)\n-20CE2 Uncompressed Size     00000000 (0)\n-20CE6 Filename Length       003A (58)\n-20CE8 Extra Length          0000 (0)\n-20CEA Comment Length        0000 (0)\n-20CEC Disk Start            0000 (0)\n-20CEE Int File Attributes   0000 (0)\n+20E51 CENTRAL HEADER #20    02014B50 (33639248)\n+20E55 Created Zip Spec      14 (20) '2.0'\n+20E56 Created OS            03 (3) 'Unix'\n+20E57 Extract Zip Spec      0A (10) '1.0'\n+20E58 Extract OS            00 (0) 'MS-DOS'\n+20E59 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20E5B Compression Method    0000 (0) 'Stored'\n+20E5D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20E61 CRC                   00000000 (0)\n+20E65 Compressed Size       00000000 (0)\n+20E69 Uncompressed Size     00000000 (0)\n+20E6D Filename Length       003A (58)\n+20E6F Extra Length          0000 (0)\n+20E71 Comment Length        0000 (0)\n+20E73 Disk Start            0000 (0)\n+20E75 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20CF0 Ext File Attributes   41ED0010 (1106051088)\n+20E77 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-20CF4 Local Header Offset   000004EF (1263)\n-20CF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20E7B Local Header Offset   000004EF (1263)\n+20E7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20CF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20E7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20CF8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20E7F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20CD0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20E57: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20D32 CENTRAL HEADER #21    02014B50 (33639248)\n-20D36 Created Zip Spec      14 (20) '2.0'\n-20D37 Created OS            03 (3) 'Unix'\n-20D38 Extract Zip Spec      0A (10) '1.0'\n-20D39 Extract OS            00 (0) 'MS-DOS'\n-20D3A General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20D3C Compression Method    0000 (0) 'Stored'\n-20D3E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20D42 CRC                   00000000 (0)\n-20D46 Compressed Size       00000000 (0)\n-20D4A Uncompressed Size     00000000 (0)\n-20D4E Filename Length       0036 (54)\n-20D50 Extra Length          0000 (0)\n-20D52 Comment Length        0000 (0)\n-20D54 Disk Start            0000 (0)\n-20D56 Int File Attributes   0000 (0)\n+20EB9 CENTRAL HEADER #21    02014B50 (33639248)\n+20EBD Created Zip Spec      14 (20) '2.0'\n+20EBE Created OS            03 (3) 'Unix'\n+20EBF Extract Zip Spec      0A (10) '1.0'\n+20EC0 Extract OS            00 (0) 'MS-DOS'\n+20EC1 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20EC3 Compression Method    0000 (0) 'Stored'\n+20EC5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20EC9 CRC                   00000000 (0)\n+20ECD Compressed Size       00000000 (0)\n+20ED1 Uncompressed Size     00000000 (0)\n+20ED5 Filename Length       0036 (54)\n+20ED7 Extra Length          0000 (0)\n+20ED9 Comment Length        0000 (0)\n+20EDB Disk Start            0000 (0)\n+20EDD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20D58 Ext File Attributes   41ED0010 (1106051088)\n+20EDF 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-20D5C Local Header Offset   00000547 (1351)\n-20D60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20EE3 Local Header Offset   00000547 (1351)\n+20EE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20D60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20EE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20D60: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20EE7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20D38: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20EBF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20D96 CENTRAL HEADER #22    02014B50 (33639248)\n-20D9A Created Zip Spec      14 (20) '2.0'\n-20D9B Created OS            03 (3) 'Unix'\n-20D9C Extract Zip Spec      0A (10) '1.0'\n-20D9D Extract OS            00 (0) 'MS-DOS'\n-20D9E General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20DA0 Compression Method    0000 (0) 'Stored'\n-20DA2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20DA6 CRC                   00000000 (0)\n-20DAA Compressed Size       00000000 (0)\n-20DAE Uncompressed Size     00000000 (0)\n-20DB2 Filename Length       0039 (57)\n-20DB4 Extra Length          0000 (0)\n-20DB6 Comment Length        0000 (0)\n-20DB8 Disk Start            0000 (0)\n-20DBA Int File Attributes   0000 (0)\n+20F1D CENTRAL HEADER #22    02014B50 (33639248)\n+20F21 Created Zip Spec      14 (20) '2.0'\n+20F22 Created OS            03 (3) 'Unix'\n+20F23 Extract Zip Spec      0A (10) '1.0'\n+20F24 Extract OS            00 (0) 'MS-DOS'\n+20F25 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20F27 Compression Method    0000 (0) 'Stored'\n+20F29 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20F2D CRC                   00000000 (0)\n+20F31 Compressed Size       00000000 (0)\n+20F35 Uncompressed Size     00000000 (0)\n+20F39 Filename Length       0039 (57)\n+20F3B Extra Length          0000 (0)\n+20F3D Comment Length        0000 (0)\n+20F3F Disk Start            0000 (0)\n+20F41 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20DBC Ext File Attributes   41ED0010 (1106051088)\n+20F43 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-20DC0 Local Header Offset   0000059B (1435)\n-20DC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20F47 Local Header Offset   0000059B (1435)\n+20F4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20DC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20DC4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20F4B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20D9C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F23: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20DFD CENTRAL HEADER #23    02014B50 (33639248)\n-20E01 Created Zip Spec      14 (20) '2.0'\n-20E02 Created OS            03 (3) 'Unix'\n-20E03 Extract Zip Spec      0A (10) '1.0'\n-20E04 Extract OS            00 (0) 'MS-DOS'\n-20E05 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20E07 Compression Method    0000 (0) 'Stored'\n-20E09 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20E0D CRC                   00000000 (0)\n-20E11 Compressed Size       00000000 (0)\n-20E15 Uncompressed Size     00000000 (0)\n-20E19 Filename Length       0037 (55)\n-20E1B Extra Length          0000 (0)\n-20E1D Comment Length        0000 (0)\n-20E1F Disk Start            0000 (0)\n-20E21 Int File Attributes   0000 (0)\n+20F84 CENTRAL HEADER #23    02014B50 (33639248)\n+20F88 Created Zip Spec      14 (20) '2.0'\n+20F89 Created OS            03 (3) 'Unix'\n+20F8A Extract Zip Spec      0A (10) '1.0'\n+20F8B Extract OS            00 (0) 'MS-DOS'\n+20F8C General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20F8E Compression Method    0000 (0) 'Stored'\n+20F90 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20F94 CRC                   00000000 (0)\n+20F98 Compressed Size       00000000 (0)\n+20F9C Uncompressed Size     00000000 (0)\n+20FA0 Filename Length       0037 (55)\n+20FA2 Extra Length          0000 (0)\n+20FA4 Comment Length        0000 (0)\n+20FA6 Disk Start            0000 (0)\n+20FA8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20E23 Ext File Attributes   41ED0010 (1106051088)\n+20FAA 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-20E27 Local Header Offset   000005F2 (1522)\n-20E2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20FAE Local Header Offset   000005F2 (1522)\n+20FB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20E2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20FB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20E2B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x20FB2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20E03: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F8A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20E62 CENTRAL HEADER #24    02014B50 (33639248)\n-20E66 Created Zip Spec      14 (20) '2.0'\n-20E67 Created OS            03 (3) 'Unix'\n-20E68 Extract Zip Spec      0A (10) '1.0'\n-20E69 Extract OS            00 (0) 'MS-DOS'\n-20E6A General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20E6C Compression Method    0000 (0) 'Stored'\n-20E6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20E72 CRC                   00000000 (0)\n-20E76 Compressed Size       00000000 (0)\n-20E7A Uncompressed Size     00000000 (0)\n-20E7E Filename Length       0020 (32)\n-20E80 Extra Length          0000 (0)\n-20E82 Comment Length        0000 (0)\n-20E84 Disk Start            0000 (0)\n-20E86 Int File Attributes   0000 (0)\n+20FE9 CENTRAL HEADER #24    02014B50 (33639248)\n+20FED Created Zip Spec      14 (20) '2.0'\n+20FEE Created OS            03 (3) 'Unix'\n+20FEF Extract Zip Spec      0A (10) '1.0'\n+20FF0 Extract OS            00 (0) 'MS-DOS'\n+20FF1 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+20FF3 Compression Method    0000 (0) 'Stored'\n+20FF5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+20FF9 CRC                   00000000 (0)\n+20FFD Compressed Size       00000000 (0)\n+21001 Uncompressed Size     00000000 (0)\n+21005 Filename Length       0020 (32)\n+21007 Extra Length          0000 (0)\n+21009 Comment Length        0000 (0)\n+2100B Disk Start            0000 (0)\n+2100D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20E88 Ext File Attributes   41ED0010 (1106051088)\n+2100F 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-20E8C Local Header Offset   00000647 (1607)\n-20E90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21013 Local Header Offset   00000647 (1607)\n+21017 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20E90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21017: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20E90: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x21017: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20E68: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20FEF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20EB0 CENTRAL HEADER #25    02014B50 (33639248)\n-20EB4 Created Zip Spec      14 (20) '2.0'\n-20EB5 Created OS            03 (3) 'Unix'\n-20EB6 Extract Zip Spec      0A (10) '1.0'\n-20EB7 Extract OS            00 (0) 'MS-DOS'\n-20EB8 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20EBA Compression Method    0000 (0) 'Stored'\n-20EBC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20EC0 CRC                   00000000 (0)\n-20EC4 Compressed Size       00000000 (0)\n-20EC8 Uncompressed Size     00000000 (0)\n-20ECC Filename Length       000F (15)\n-20ECE Extra Length          0000 (0)\n-20ED0 Comment Length        0000 (0)\n-20ED2 Disk Start            0000 (0)\n-20ED4 Int File Attributes   0000 (0)\n+21037 CENTRAL HEADER #25    02014B50 (33639248)\n+2103B Created Zip Spec      14 (20) '2.0'\n+2103C Created OS            03 (3) 'Unix'\n+2103D Extract Zip Spec      0A (10) '1.0'\n+2103E Extract OS            00 (0) 'MS-DOS'\n+2103F General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+21041 Compression Method    0000 (0) 'Stored'\n+21043 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21047 CRC                   00000000 (0)\n+2104B Compressed Size       00000000 (0)\n+2104F Uncompressed Size     00000000 (0)\n+21053 Filename Length       000F (15)\n+21055 Extra Length          0000 (0)\n+21057 Comment Length        0000 (0)\n+21059 Disk Start            0000 (0)\n+2105B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20ED6 Ext File Attributes   41ED0010 (1106051088)\n+2105D 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-20EDA Local Header Offset   00000685 (1669)\n-20EDE Filename              'XXXXXXXXXXXXXXX'\n+21061 Local Header Offset   00000685 (1669)\n+21065 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20EDE: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21065: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20EDE: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x21065: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20EB6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2103D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-20EED CENTRAL HEADER #26    02014B50 (33639248)\n-20EF1 Created Zip Spec      14 (20) '2.0'\n-20EF2 Created OS            03 (3) 'Unix'\n-20EF3 Extract Zip Spec      0A (10) '1.0'\n-20EF4 Extract OS            00 (0) 'MS-DOS'\n-20EF5 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20EF7 Compression Method    0000 (0) 'Stored'\n-20EF9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20EFD CRC                   00000000 (0)\n-20F01 Compressed Size       00000000 (0)\n-20F05 Uncompressed Size     00000000 (0)\n-20F09 Filename Length       0018 (24)\n-20F0B Extra Length          0000 (0)\n-20F0D Comment Length        0000 (0)\n-20F0F Disk Start            0000 (0)\n-20F11 Int File Attributes   0000 (0)\n+21074 CENTRAL HEADER #26    02014B50 (33639248)\n+21078 Created Zip Spec      14 (20) '2.0'\n+21079 Created OS            03 (3) 'Unix'\n+2107A Extract Zip Spec      0A (10) '1.0'\n+2107B Extract OS            00 (0) 'MS-DOS'\n+2107C General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+2107E Compression Method    0000 (0) 'Stored'\n+21080 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21084 CRC                   00000000 (0)\n+21088 Compressed Size       00000000 (0)\n+2108C Uncompressed Size     00000000 (0)\n+21090 Filename Length       0018 (24)\n+21092 Extra Length          0000 (0)\n+21094 Comment Length        0000 (0)\n+21096 Disk Start            0000 (0)\n+21098 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20F13 Ext File Attributes   41ED0010 (1106051088)\n+2109A 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-20F17 Local Header Offset   000006B2 (1714)\n-20F1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+2109E Local Header Offset   000006B2 (1714)\n+210A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20F1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x210A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20F1B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x210A2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20EF3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2107A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20F33 CENTRAL HEADER #27    02014B50 (33639248)\n-20F37 Created Zip Spec      14 (20) '2.0'\n-20F38 Created OS            03 (3) 'Unix'\n-20F39 Extract Zip Spec      0A (10) '1.0'\n-20F3A Extract OS            00 (0) 'MS-DOS'\n-20F3B General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20F3D Compression Method    0000 (0) 'Stored'\n-20F3F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20F43 CRC                   00000000 (0)\n-20F47 Compressed Size       00000000 (0)\n-20F4B Uncompressed Size     00000000 (0)\n-20F4F Filename Length       000F (15)\n-20F51 Extra Length          0000 (0)\n-20F53 Comment Length        0000 (0)\n-20F55 Disk Start            0000 (0)\n-20F57 Int File Attributes   0000 (0)\n+210BA CENTRAL HEADER #27    02014B50 (33639248)\n+210BE Created Zip Spec      14 (20) '2.0'\n+210BF Created OS            03 (3) 'Unix'\n+210C0 Extract Zip Spec      0A (10) '1.0'\n+210C1 Extract OS            00 (0) 'MS-DOS'\n+210C2 General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+210C4 Compression Method    0000 (0) 'Stored'\n+210C6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+210CA CRC                   00000000 (0)\n+210CE Compressed Size       00000000 (0)\n+210D2 Uncompressed Size     00000000 (0)\n+210D6 Filename Length       000F (15)\n+210D8 Extra Length          0000 (0)\n+210DA Comment Length        0000 (0)\n+210DC Disk Start            0000 (0)\n+210DE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20F59 Ext File Attributes   41ED0010 (1106051088)\n+210E0 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-20F5D Local Header Offset   000006E8 (1768)\n-20F61 Filename              'XXXXXXXXXXXXXXX'\n+210E4 Local Header Offset   000006E8 (1768)\n+210E8 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20F61: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x210E8: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20F61: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x210E8: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20F39: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x210C0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-20F70 CENTRAL HEADER #28    02014B50 (33639248)\n-20F74 Created Zip Spec      14 (20) '2.0'\n-20F75 Created OS            03 (3) 'Unix'\n-20F76 Extract Zip Spec      0A (10) '1.0'\n-20F77 Extract OS            00 (0) 'MS-DOS'\n-20F78 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20F7A Compression Method    0000 (0) 'Stored'\n-20F7C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20F80 CRC                   00000000 (0)\n-20F84 Compressed Size       00000000 (0)\n-20F88 Uncompressed Size     00000000 (0)\n-20F8C Filename Length       0020 (32)\n-20F8E Extra Length          0000 (0)\n-20F90 Comment Length        0000 (0)\n-20F92 Disk Start            0000 (0)\n-20F94 Int File Attributes   0000 (0)\n+210F7 CENTRAL HEADER #28    02014B50 (33639248)\n+210FB Created Zip Spec      14 (20) '2.0'\n+210FC Created OS            03 (3) 'Unix'\n+210FD Extract Zip Spec      0A (10) '1.0'\n+210FE Extract OS            00 (0) 'MS-DOS'\n+210FF General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+21101 Compression Method    0000 (0) 'Stored'\n+21103 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21107 CRC                   00000000 (0)\n+2110B Compressed Size       00000000 (0)\n+2110F Uncompressed Size     00000000 (0)\n+21113 Filename Length       0020 (32)\n+21115 Extra Length          0000 (0)\n+21117 Comment Length        0000 (0)\n+21119 Disk Start            0000 (0)\n+2111B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20F96 Ext File Attributes   41ED0010 (1106051088)\n+2111D 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-20F9A Local Header Offset   00000715 (1813)\n-20F9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21121 Local Header Offset   00000715 (1813)\n+21125 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20F9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21125: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20F9E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x21125: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20F76: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x210FD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-20FBE CENTRAL HEADER #29    02014B50 (33639248)\n-20FC2 Created Zip Spec      14 (20) '2.0'\n-20FC3 Created OS            03 (3) 'Unix'\n-20FC4 Extract Zip Spec      0A (10) '1.0'\n-20FC5 Extract OS            00 (0) 'MS-DOS'\n-20FC6 General Purpose Flag  0800 (2048)\n-      [Bit 11]              1 'Language Encoding'\n-20FC8 Compression Method    0000 (0) 'Stored'\n-20FCA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-20FCE CRC                   00000000 (0)\n-20FD2 Compressed Size       00000000 (0)\n-20FD6 Uncompressed Size     00000000 (0)\n-20FDA Filename Length       0033 (51)\n-20FDC Extra Length          0000 (0)\n-20FDE Comment Length        0000 (0)\n-20FE0 Disk Start            0000 (0)\n-20FE2 Int File Attributes   0000 (0)\n+21145 CENTRAL HEADER #29    02014B50 (33639248)\n+21149 Created Zip Spec      14 (20) '2.0'\n+2114A Created OS            03 (3) 'Unix'\n+2114B Extract Zip Spec      0A (10) '1.0'\n+2114C Extract OS            00 (0) 'MS-DOS'\n+2114D General Purpose Flag  0800 (2048)\n+      [Bit 11]              1 'Language Encoding'\n+2114F Compression Method    0000 (0) 'Stored'\n+21151 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21155 CRC                   00000000 (0)\n+21159 Compressed Size       00000000 (0)\n+2115D Uncompressed Size     00000000 (0)\n+21161 Filename Length       0033 (51)\n+21163 Extra Length          0000 (0)\n+21165 Comment Length        0000 (0)\n+21167 Disk Start            0000 (0)\n+21169 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-20FE4 Ext File Attributes   41ED0010 (1106051088)\n+2116B 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-20FE8 Local Header Offset   00000753 (1875)\n-20FEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2116F Local Header Offset   00000753 (1875)\n+21173 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20FEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21173: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x20FEC: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x21173: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x20FC4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2114B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2101F CENTRAL HEADER #30    02014B50 (33639248)\n-21023 Created Zip Spec      14 (20) '2.0'\n-21024 Created OS            03 (3) 'Unix'\n-21025 Extract Zip Spec      14 (20) '2.0'\n-21026 Extract OS            00 (0) 'MS-DOS'\n-21027 General Purpose Flag  0800 (2048)\n+211A6 CENTRAL HEADER #30    02014B50 (33639248)\n+211AA Created Zip Spec      14 (20) '2.0'\n+211AB Created OS            03 (3) 'Unix'\n+211AC Extract Zip Spec      14 (20) '2.0'\n+211AD Extract OS            00 (0) 'MS-DOS'\n+211AE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21029 Compression Method    0008 (8) 'Deflated'\n-2102B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2102F CRC                   1956270B (425076491)\n-21033 Compressed Size       000002AD (685)\n-21037 Uncompressed Size     0000090E (2318)\n-2103B Filename Length       0015 (21)\n-2103D Extra Length          0000 (0)\n-2103F Comment Length        0000 (0)\n-21041 Disk Start            0000 (0)\n-21043 Int File Attributes   0000 (0)\n+211B0 Compression Method    0008 (8) 'Deflated'\n+211B2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+211B6 CRC                   1956270B (425076491)\n+211BA Compressed Size       000002AD (685)\n+211BE Uncompressed Size     0000090E (2318)\n+211C2 Filename Length       0015 (21)\n+211C4 Extra Length          0000 (0)\n+211C6 Comment Length        0000 (0)\n+211C8 Disk Start            0000 (0)\n+211CA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21045 Ext File Attributes   81A40000 (2175008768)\n+211CC 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-21049 Local Header Offset   000007A4 (1956)\n-2104D Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+211D0 Local Header Offset   000007A4 (1956)\n+211D4 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2104D: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x211D4: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21062 CENTRAL HEADER #31    02014B50 (33639248)\n-21066 Created Zip Spec      14 (20) '2.0'\n-21067 Created OS            03 (3) 'Unix'\n-21068 Extract Zip Spec      14 (20) '2.0'\n-21069 Extract OS            00 (0) 'MS-DOS'\n-2106A General Purpose Flag  0800 (2048)\n+211E9 CENTRAL HEADER #31    02014B50 (33639248)\n+211ED Created Zip Spec      14 (20) '2.0'\n+211EE Created OS            03 (3) 'Unix'\n+211EF Extract Zip Spec      14 (20) '2.0'\n+211F0 Extract OS            00 (0) 'MS-DOS'\n+211F1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2106C Compression Method    0008 (8) 'Deflated'\n-2106E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21072 CRC                   86E2B4B4 (2263004340)\n-21076 Compressed Size       00000F6D (3949)\n-2107A Uncompressed Size     00002C5E (11358)\n-2107E Filename Length       0010 (16)\n-21080 Extra Length          0000 (0)\n-21082 Comment Length        0000 (0)\n-21084 Disk Start            0000 (0)\n-21086 Int File Attributes   0000 (0)\n+211F3 Compression Method    0008 (8) 'Deflated'\n+211F5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+211F9 CRC                   86E2B4B4 (2263004340)\n+211FD Compressed Size       00000F6D (3949)\n+21201 Uncompressed Size     00002C5E (11358)\n+21205 Filename Length       0010 (16)\n+21207 Extra Length          0000 (0)\n+21209 Comment Length        0000 (0)\n+2120B Disk Start            0000 (0)\n+2120D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21088 Ext File Attributes   81A40000 (2175008768)\n+2120F 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-2108C Local Header Offset   00000A84 (2692)\n-21090 Filename              'XXXXXXXXXXXXXXXX'\n+21213 Local Header Offset   00000A84 (2692)\n+21217 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21090: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21217: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-210A0 CENTRAL HEADER #32    02014B50 (33639248)\n-210A4 Created Zip Spec      14 (20) '2.0'\n-210A5 Created OS            03 (3) 'Unix'\n-210A6 Extract Zip Spec      14 (20) '2.0'\n-210A7 Extract OS            00 (0) 'MS-DOS'\n-210A8 General Purpose Flag  0800 (2048)\n+21227 CENTRAL HEADER #32    02014B50 (33639248)\n+2122B Created Zip Spec      14 (20) '2.0'\n+2122C Created OS            03 (3) 'Unix'\n+2122D Extract Zip Spec      14 (20) '2.0'\n+2122E Extract OS            00 (0) 'MS-DOS'\n+2122F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-210AA Compression Method    0008 (8) 'Deflated'\n-210AC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-210B0 CRC                   EA649568 (3932460392)\n-210B4 Compressed Size       0000007F (127)\n-210B8 Uncompressed Size     000000AF (175)\n-210BC Filename Length       000F (15)\n-210BE Extra Length          0000 (0)\n-210C0 Comment Length        0000 (0)\n-210C2 Disk Start            0000 (0)\n-210C4 Int File Attributes   0000 (0)\n+21231 Compression Method    0008 (8) 'Deflated'\n+21233 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21237 CRC                   EA649568 (3932460392)\n+2123B Compressed Size       0000007F (127)\n+2123F Uncompressed Size     000000AF (175)\n+21243 Filename Length       000F (15)\n+21245 Extra Length          0000 (0)\n+21247 Comment Length        0000 (0)\n+21249 Disk Start            0000 (0)\n+2124B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-210C6 Ext File Attributes   81A40000 (2175008768)\n+2124D 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-210CA Local Header Offset   00001A1F (6687)\n-210CE Filename              'XXXXXXXXXXXXXXX'\n+21251 Local Header Offset   00001A1F (6687)\n+21255 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x210CE: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21255: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-210DD CENTRAL HEADER #33    02014B50 (33639248)\n-210E1 Created Zip Spec      14 (20) '2.0'\n-210E2 Created OS            03 (3) 'Unix'\n-210E3 Extract Zip Spec      14 (20) '2.0'\n-210E4 Extract OS            00 (0) 'MS-DOS'\n-210E5 General Purpose Flag  0800 (2048)\n+21264 CENTRAL HEADER #33    02014B50 (33639248)\n+21268 Created Zip Spec      14 (20) '2.0'\n+21269 Created OS            03 (3) 'Unix'\n+2126A Extract Zip Spec      14 (20) '2.0'\n+2126B Extract OS            00 (0) 'MS-DOS'\n+2126C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-210E7 Compression Method    0008 (8) 'Deflated'\n-210E9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-210ED CRC                   1FBA8398 (532317080)\n-210F1 Compressed Size       00000305 (773)\n-210F5 Uncompressed Size     0000073A (1850)\n-210F9 Filename Length       0026 (38)\n-210FB Extra Length          0000 (0)\n-210FD Comment Length        0000 (0)\n-210FF Disk Start            0000 (0)\n-21101 Int File Attributes   0000 (0)\n+2126E Compression Method    0008 (8) 'Deflated'\n+21270 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21274 CRC                   040E3AFC (68041468)\n+21278 Compressed Size       00000310 (784)\n+2127C Uncompressed Size     00000783 (1923)\n+21280 Filename Length       0026 (38)\n+21282 Extra Length          0000 (0)\n+21284 Comment Length        0000 (0)\n+21286 Disk Start            0000 (0)\n+21288 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21103 Ext File Attributes   81A40000 (2175008768)\n+2128A 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-21107 Local Header Offset   00001ACB (6859)\n-2110B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2128E Local Header Offset   00001ACB (6859)\n+21292 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2110B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21292: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21131 CENTRAL HEADER #34    02014B50 (33639248)\n-21135 Created Zip Spec      14 (20) '2.0'\n-21136 Created OS            03 (3) 'Unix'\n-21137 Extract Zip Spec      14 (20) '2.0'\n-21138 Extract OS            00 (0) 'MS-DOS'\n-21139 General Purpose Flag  0800 (2048)\n+212B8 CENTRAL HEADER #34    02014B50 (33639248)\n+212BC Created Zip Spec      14 (20) '2.0'\n+212BD Created OS            03 (3) 'Unix'\n+212BE Extract Zip Spec      14 (20) '2.0'\n+212BF Extract OS            00 (0) 'MS-DOS'\n+212C0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2113B Compression Method    0008 (8) 'Deflated'\n-2113D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21141 CRC                   1A6C5333 (443306803)\n-21145 Compressed Size       000002F8 (760)\n-21149 Uncompressed Size     00000849 (2121)\n-2114D Filename Length       002D (45)\n-2114F Extra Length          0000 (0)\n-21151 Comment Length        0000 (0)\n-21153 Disk Start            0000 (0)\n-21155 Int File Attributes   0000 (0)\n+212C2 Compression Method    0008 (8) 'Deflated'\n+212C4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+212C8 CRC                   1A6C5333 (443306803)\n+212CC Compressed Size       000002F8 (760)\n+212D0 Uncompressed Size     00000849 (2121)\n+212D4 Filename Length       002D (45)\n+212D6 Extra Length          0000 (0)\n+212D8 Comment Length        0000 (0)\n+212DA Disk Start            0000 (0)\n+212DC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21157 Ext File Attributes   81A40000 (2175008768)\n+212DE 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-2115B Local Header Offset   00001E14 (7700)\n-2115F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+212E2 Local Header Offset   00001E1F (7711)\n+212E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2115F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x212E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2118C CENTRAL HEADER #35    02014B50 (33639248)\n-21190 Created Zip Spec      14 (20) '2.0'\n-21191 Created OS            03 (3) 'Unix'\n-21192 Extract Zip Spec      14 (20) '2.0'\n-21193 Extract OS            00 (0) 'MS-DOS'\n-21194 General Purpose Flag  0800 (2048)\n+21313 CENTRAL HEADER #35    02014B50 (33639248)\n+21317 Created Zip Spec      14 (20) '2.0'\n+21318 Created OS            03 (3) 'Unix'\n+21319 Extract Zip Spec      14 (20) '2.0'\n+2131A Extract OS            00 (0) 'MS-DOS'\n+2131B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21196 Compression Method    0008 (8) 'Deflated'\n-21198 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2119C CRC                   107C6EE6 (276590310)\n-211A0 Compressed Size       000002ED (749)\n-211A4 Uncompressed Size     0000058B (1419)\n-211A8 Filename Length       0025 (37)\n-211AA Extra Length          0000 (0)\n-211AC Comment Length        0000 (0)\n-211AE Disk Start            0000 (0)\n-211B0 Int File Attributes   0000 (0)\n+2131D Compression Method    0008 (8) 'Deflated'\n+2131F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21323 CRC                   107C6EE6 (276590310)\n+21327 Compressed Size       000002ED (749)\n+2132B Uncompressed Size     0000058B (1419)\n+2132F Filename Length       0025 (37)\n+21331 Extra Length          0000 (0)\n+21333 Comment Length        0000 (0)\n+21335 Disk Start            0000 (0)\n+21337 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-211B2 Ext File Attributes   81A40000 (2175008768)\n+21339 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-211B6 Local Header Offset   00002157 (8535)\n-211BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2133D Local Header Offset   00002162 (8546)\n+21341 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x211BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21341: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-211DF CENTRAL HEADER #36    02014B50 (33639248)\n-211E3 Created Zip Spec      14 (20) '2.0'\n-211E4 Created OS            03 (3) 'Unix'\n-211E5 Extract Zip Spec      14 (20) '2.0'\n-211E6 Extract OS            00 (0) 'MS-DOS'\n-211E7 General Purpose Flag  0800 (2048)\n+21366 CENTRAL HEADER #36    02014B50 (33639248)\n+2136A Created Zip Spec      14 (20) '2.0'\n+2136B Created OS            03 (3) 'Unix'\n+2136C Extract Zip Spec      14 (20) '2.0'\n+2136D Extract OS            00 (0) 'MS-DOS'\n+2136E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-211E9 Compression Method    0008 (8) 'Deflated'\n-211EB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-211EF CRC                   201747E5 (538396645)\n-211F3 Compressed Size       00000334 (820)\n-211F7 Uncompressed Size     00000734 (1844)\n-211FB Filename Length       0024 (36)\n-211FD Extra Length          0000 (0)\n-211FF Comment Length        0000 (0)\n-21201 Disk Start            0000 (0)\n-21203 Int File Attributes   0000 (0)\n+21370 Compression Method    0008 (8) 'Deflated'\n+21372 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21376 CRC                   9EA8C701 (2661861121)\n+2137A Compressed Size       0000033F (831)\n+2137E Uncompressed Size     00000771 (1905)\n+21382 Filename Length       0024 (36)\n+21384 Extra Length          0000 (0)\n+21386 Comment Length        0000 (0)\n+21388 Disk Start            0000 (0)\n+2138A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21205 Ext File Attributes   81A40000 (2175008768)\n+2138C 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-21209 Local Header Offset   00002487 (9351)\n-2120D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21390 Local Header Offset   00002492 (9362)\n+21394 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2120D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21394: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21231 CENTRAL HEADER #37    02014B50 (33639248)\n-21235 Created Zip Spec      14 (20) '2.0'\n-21236 Created OS            03 (3) 'Unix'\n-21237 Extract Zip Spec      14 (20) '2.0'\n-21238 Extract OS            00 (0) 'MS-DOS'\n-21239 General Purpose Flag  0800 (2048)\n+213B8 CENTRAL HEADER #37    02014B50 (33639248)\n+213BC Created Zip Spec      14 (20) '2.0'\n+213BD Created OS            03 (3) 'Unix'\n+213BE Extract Zip Spec      14 (20) '2.0'\n+213BF Extract OS            00 (0) 'MS-DOS'\n+213C0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2123B Compression Method    0008 (8) 'Deflated'\n-2123D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21241 CRC                   B08F3D84 (2962177412)\n-21245 Compressed Size       000002AF (687)\n-21249 Uncompressed Size     0000055C (1372)\n-2124D Filename Length       0025 (37)\n-2124F Extra Length          0000 (0)\n-21251 Comment Length        0000 (0)\n-21253 Disk Start            0000 (0)\n-21255 Int File Attributes   0000 (0)\n+213C2 Compression Method    0008 (8) 'Deflated'\n+213C4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+213C8 CRC                   2D139396 (756257686)\n+213CC Compressed Size       000002B7 (695)\n+213D0 Uncompressed Size     00000584 (1412)\n+213D4 Filename Length       0025 (37)\n+213D6 Extra Length          0000 (0)\n+213D8 Comment Length        0000 (0)\n+213DA Disk Start            0000 (0)\n+213DC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21257 Ext File Attributes   81A40000 (2175008768)\n+213DE 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-2125B Local Header Offset   000027FD (10237)\n-2125F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+213E2 Local Header Offset   00002813 (10259)\n+213E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2125F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x213E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21284 CENTRAL HEADER #38    02014B50 (33639248)\n-21288 Created Zip Spec      14 (20) '2.0'\n-21289 Created OS            03 (3) 'Unix'\n-2128A Extract Zip Spec      14 (20) '2.0'\n-2128B Extract OS            00 (0) 'MS-DOS'\n-2128C General Purpose Flag  0800 (2048)\n+2140B CENTRAL HEADER #38    02014B50 (33639248)\n+2140F Created Zip Spec      14 (20) '2.0'\n+21410 Created OS            03 (3) 'Unix'\n+21411 Extract Zip Spec      14 (20) '2.0'\n+21412 Extract OS            00 (0) 'MS-DOS'\n+21413 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2128E Compression Method    0008 (8) 'Deflated'\n-21290 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21294 CRC                   AB401562 (2873103714)\n-21298 Compressed Size       000005A5 (1445)\n-2129C Uncompressed Size     00000E7B (3707)\n-212A0 Filename Length       0028 (40)\n-212A2 Extra Length          0000 (0)\n-212A4 Comment Length        0000 (0)\n-212A6 Disk Start            0000 (0)\n-212A8 Int File Attributes   0000 (0)\n+21415 Compression Method    0008 (8) 'Deflated'\n+21417 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2141B CRC                   CEFC9AFA (3472661242)\n+2141F Compressed Size       000005B2 (1458)\n+21423 Uncompressed Size     00000F04 (3844)\n+21427 Filename Length       0028 (40)\n+21429 Extra Length          0000 (0)\n+2142B Comment Length        0000 (0)\n+2142D Disk Start            0000 (0)\n+2142F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-212AA Ext File Attributes   81A40000 (2175008768)\n+21431 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-212AE Local Header Offset   00002AEF (10991)\n-212B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21435 Local Header Offset   00002B0D (11021)\n+21439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x212B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-212DA CENTRAL HEADER #39    02014B50 (33639248)\n-212DE Created Zip Spec      14 (20) '2.0'\n-212DF Created OS            03 (3) 'Unix'\n-212E0 Extract Zip Spec      14 (20) '2.0'\n-212E1 Extract OS            00 (0) 'MS-DOS'\n-212E2 General Purpose Flag  0800 (2048)\n+21461 CENTRAL HEADER #39    02014B50 (33639248)\n+21465 Created Zip Spec      14 (20) '2.0'\n+21466 Created OS            03 (3) 'Unix'\n+21467 Extract Zip Spec      14 (20) '2.0'\n+21468 Extract OS            00 (0) 'MS-DOS'\n+21469 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-212E4 Compression Method    0008 (8) 'Deflated'\n-212E6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-212EA CRC                   D7F89917 (3623393559)\n-212EE Compressed Size       00000210 (528)\n-212F2 Uncompressed Size     000003AC (940)\n-212F6 Filename Length       0029 (41)\n-212F8 Extra Length          0000 (0)\n-212FA Comment Length        0000 (0)\n-212FC Disk Start            0000 (0)\n-212FE Int File Attributes   0000 (0)\n+2146B Compression Method    0008 (8) 'Deflated'\n+2146D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21471 CRC                   D7F89917 (3623393559)\n+21475 Compressed Size       00000210 (528)\n+21479 Uncompressed Size     000003AC (940)\n+2147D Filename Length       0029 (41)\n+2147F Extra Length          0000 (0)\n+21481 Comment Length        0000 (0)\n+21483 Disk Start            0000 (0)\n+21485 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21300 Ext File Attributes   81A40000 (2175008768)\n+21487 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-21304 Local Header Offset   000030DA (12506)\n-21308 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2148B Local Header Offset   00003105 (12549)\n+2148F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21308: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2148F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21331 CENTRAL HEADER #40    02014B50 (33639248)\n-21335 Created Zip Spec      14 (20) '2.0'\n-21336 Created OS            03 (3) 'Unix'\n-21337 Extract Zip Spec      14 (20) '2.0'\n-21338 Extract OS            00 (0) 'MS-DOS'\n-21339 General Purpose Flag  0800 (2048)\n+214B8 CENTRAL HEADER #40    02014B50 (33639248)\n+214BC Created Zip Spec      14 (20) '2.0'\n+214BD Created OS            03 (3) 'Unix'\n+214BE Extract Zip Spec      14 (20) '2.0'\n+214BF Extract OS            00 (0) 'MS-DOS'\n+214C0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2133B Compression Method    0008 (8) 'Deflated'\n-2133D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21341 CRC                   277ABF59 (662355801)\n-21345 Compressed Size       00000309 (777)\n-21349 Uncompressed Size     000005F8 (1528)\n-2134D Filename Length       0029 (41)\n-2134F Extra Length          0000 (0)\n-21351 Comment Length        0000 (0)\n-21353 Disk Start            0000 (0)\n-21355 Int File Attributes   0000 (0)\n+214C2 Compression Method    0008 (8) 'Deflated'\n+214C4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+214C8 CRC                   4A25E4BC (1243997372)\n+214CC Compressed Size       00000311 (785)\n+214D0 Uncompressed Size     00000621 (1569)\n+214D4 Filename Length       0029 (41)\n+214D6 Extra Length          0000 (0)\n+214D8 Comment Length        0000 (0)\n+214DA Disk Start            0000 (0)\n+214DC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21357 Ext File Attributes   81A40000 (2175008768)\n+214DE 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-2135B Local Header Offset   00003331 (13105)\n-2135F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+214E2 Local Header Offset   0000335C (13148)\n+214E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2135F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x214E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21388 CENTRAL HEADER #41    02014B50 (33639248)\n-2138C Created Zip Spec      14 (20) '2.0'\n-2138D Created OS            03 (3) 'Unix'\n-2138E Extract Zip Spec      14 (20) '2.0'\n-2138F Extract OS            00 (0) 'MS-DOS'\n-21390 General Purpose Flag  0800 (2048)\n+2150F CENTRAL HEADER #41    02014B50 (33639248)\n+21513 Created Zip Spec      14 (20) '2.0'\n+21514 Created OS            03 (3) 'Unix'\n+21515 Extract Zip Spec      14 (20) '2.0'\n+21516 Extract OS            00 (0) 'MS-DOS'\n+21517 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21392 Compression Method    0008 (8) 'Deflated'\n-21394 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21398 CRC                   D97FD102 (3649032450)\n-2139C Compressed Size       00000344 (836)\n-213A0 Uncompressed Size     0000083D (2109)\n-213A4 Filename Length       0027 (39)\n-213A6 Extra Length          0000 (0)\n-213A8 Comment Length        0000 (0)\n-213AA Disk Start            0000 (0)\n-213AC Int File Attributes   0000 (0)\n+21519 Compression Method    0008 (8) 'Deflated'\n+2151B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2151F CRC                   D97FD102 (3649032450)\n+21523 Compressed Size       00000344 (836)\n+21527 Uncompressed Size     0000083D (2109)\n+2152B Filename Length       0027 (39)\n+2152D Extra Length          0000 (0)\n+2152F Comment Length        0000 (0)\n+21531 Disk Start            0000 (0)\n+21533 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-213AE Ext File Attributes   81A40000 (2175008768)\n+21535 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-213B2 Local Header Offset   00003681 (13953)\n-213B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21539 Local Header Offset   000036B4 (14004)\n+2153D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x213B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2153D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-213DD CENTRAL HEADER #42    02014B50 (33639248)\n-213E1 Created Zip Spec      14 (20) '2.0'\n-213E2 Created OS            03 (3) 'Unix'\n-213E3 Extract Zip Spec      14 (20) '2.0'\n-213E4 Extract OS            00 (0) 'MS-DOS'\n-213E5 General Purpose Flag  0800 (2048)\n+21564 CENTRAL HEADER #42    02014B50 (33639248)\n+21568 Created Zip Spec      14 (20) '2.0'\n+21569 Created OS            03 (3) 'Unix'\n+2156A Extract Zip Spec      14 (20) '2.0'\n+2156B Extract OS            00 (0) 'MS-DOS'\n+2156C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-213E7 Compression Method    0008 (8) 'Deflated'\n-213E9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-213ED CRC                   6CA638E1 (1822832865)\n-213F1 Compressed Size       0000030F (783)\n-213F5 Uncompressed Size     00000968 (2408)\n-213F9 Filename Length       0031 (49)\n-213FB Extra Length          0000 (0)\n-213FD Comment Length        0000 (0)\n-213FF Disk Start            0000 (0)\n-21401 Int File Attributes   0000 (0)\n+2156E Compression Method    0008 (8) 'Deflated'\n+21570 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21574 CRC                   6CA638E1 (1822832865)\n+21578 Compressed Size       0000030F (783)\n+2157C Uncompressed Size     00000968 (2408)\n+21580 Filename Length       0031 (49)\n+21582 Extra Length          0000 (0)\n+21584 Comment Length        0000 (0)\n+21586 Disk Start            0000 (0)\n+21588 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21403 Ext File Attributes   81A40000 (2175008768)\n+2158A 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-21407 Local Header Offset   00003A0A (14858)\n-2140B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2158E Local Header Offset   00003A3D (14909)\n+21592 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2140B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21592: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2143C CENTRAL HEADER #43    02014B50 (33639248)\n-21440 Created Zip Spec      14 (20) '2.0'\n-21441 Created OS            03 (3) 'Unix'\n-21442 Extract Zip Spec      14 (20) '2.0'\n-21443 Extract OS            00 (0) 'MS-DOS'\n-21444 General Purpose Flag  0800 (2048)\n+215C3 CENTRAL HEADER #43    02014B50 (33639248)\n+215C7 Created Zip Spec      14 (20) '2.0'\n+215C8 Created OS            03 (3) 'Unix'\n+215C9 Extract Zip Spec      14 (20) '2.0'\n+215CA Extract OS            00 (0) 'MS-DOS'\n+215CB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21446 Compression Method    0008 (8) 'Deflated'\n-21448 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2144C CRC                   A6AFF543 (2796549443)\n-21450 Compressed Size       000002E1 (737)\n-21454 Uncompressed Size     00000613 (1555)\n-21458 Filename Length       002B (43)\n-2145A Extra Length          0000 (0)\n-2145C Comment Length        0000 (0)\n-2145E Disk Start            0000 (0)\n-21460 Int File Attributes   0000 (0)\n+215CD Compression Method    0008 (8) 'Deflated'\n+215CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+215D3 CRC                   31AD4BD9 (833440729)\n+215D7 Compressed Size       000002EC (748)\n+215DB Uncompressed Size     00000635 (1589)\n+215DF Filename Length       002B (43)\n+215E1 Extra Length          0000 (0)\n+215E3 Comment Length        0000 (0)\n+215E5 Disk Start            0000 (0)\n+215E7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21462 Ext File Attributes   81A40000 (2175008768)\n+215E9 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-21466 Local Header Offset   00003D68 (15720)\n-2146A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+215ED Local Header Offset   00003D9B (15771)\n+215F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2146A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x215F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21495 CENTRAL HEADER #44    02014B50 (33639248)\n-21499 Created Zip Spec      14 (20) '2.0'\n-2149A Created OS            03 (3) 'Unix'\n-2149B Extract Zip Spec      14 (20) '2.0'\n-2149C Extract OS            00 (0) 'MS-DOS'\n-2149D General Purpose Flag  0800 (2048)\n+2161C CENTRAL HEADER #44    02014B50 (33639248)\n+21620 Created Zip Spec      14 (20) '2.0'\n+21621 Created OS            03 (3) 'Unix'\n+21622 Extract Zip Spec      14 (20) '2.0'\n+21623 Extract OS            00 (0) 'MS-DOS'\n+21624 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2149F Compression Method    0008 (8) 'Deflated'\n-214A1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-214A5 CRC                   F7D73BF2 (4158077938)\n-214A9 Compressed Size       000003B7 (951)\n-214AD Uncompressed Size     00000C96 (3222)\n-214B1 Filename Length       0030 (48)\n-214B3 Extra Length          0000 (0)\n-214B5 Comment Length        0000 (0)\n-214B7 Disk Start            0000 (0)\n-214B9 Int File Attributes   0000 (0)\n+21626 Compression Method    0008 (8) 'Deflated'\n+21628 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2162C CRC                   8BF38561 (2347992417)\n+21630 Compressed Size       000003C4 (964)\n+21634 Uncompressed Size     00000CE9 (3305)\n+21638 Filename Length       0030 (48)\n+2163A Extra Length          0000 (0)\n+2163C Comment Length        0000 (0)\n+2163E Disk Start            0000 (0)\n+21640 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-214BB Ext File Attributes   81A40000 (2175008768)\n+21642 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-214BF Local Header Offset   00004092 (16530)\n-214C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21646 Local Header Offset   000040D0 (16592)\n+2164A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x214C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2164A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-214F3 CENTRAL HEADER #45    02014B50 (33639248)\n-214F7 Created Zip Spec      14 (20) '2.0'\n-214F8 Created OS            03 (3) 'Unix'\n-214F9 Extract Zip Spec      14 (20) '2.0'\n-214FA Extract OS            00 (0) 'MS-DOS'\n-214FB General Purpose Flag  0800 (2048)\n+2167A CENTRAL HEADER #45    02014B50 (33639248)\n+2167E Created Zip Spec      14 (20) '2.0'\n+2167F Created OS            03 (3) 'Unix'\n+21680 Extract Zip Spec      14 (20) '2.0'\n+21681 Extract OS            00 (0) 'MS-DOS'\n+21682 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-214FD Compression Method    0008 (8) 'Deflated'\n-214FF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21503 CRC                   D7FFC616 (3623863830)\n-21507 Compressed Size       00000340 (832)\n-2150B Uncompressed Size     000006A9 (1705)\n-2150F Filename Length       002D (45)\n-21511 Extra Length          0000 (0)\n-21513 Comment Length        0000 (0)\n-21515 Disk Start            0000 (0)\n-21517 Int File Attributes   0000 (0)\n+21684 Compression Method    0008 (8) 'Deflated'\n+21686 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2168A CRC                   38EB0C43 (954928195)\n+2168E Compressed Size       0000034E (846)\n+21692 Uncompressed Size     000006E3 (1763)\n+21696 Filename Length       002D (45)\n+21698 Extra Length          0000 (0)\n+2169A Comment Length        0000 (0)\n+2169C Disk Start            0000 (0)\n+2169E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21519 Ext File Attributes   81A40000 (2175008768)\n+216A0 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-2151D Local Header Offset   00004497 (17559)\n-21521 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+216A4 Local Header Offset   000044E2 (17634)\n+216A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21521: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x216A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2154E CENTRAL HEADER #46    02014B50 (33639248)\n-21552 Created Zip Spec      14 (20) '2.0'\n-21553 Created OS            03 (3) 'Unix'\n-21554 Extract Zip Spec      14 (20) '2.0'\n-21555 Extract OS            00 (0) 'MS-DOS'\n-21556 General Purpose Flag  0800 (2048)\n+216D5 CENTRAL HEADER #46    02014B50 (33639248)\n+216D9 Created Zip Spec      14 (20) '2.0'\n+216DA Created OS            03 (3) 'Unix'\n+216DB Extract Zip Spec      14 (20) '2.0'\n+216DC Extract OS            00 (0) 'MS-DOS'\n+216DD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21558 Compression Method    0008 (8) 'Deflated'\n-2155A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2155E CRC                   272E47E6 (657344486)\n-21562 Compressed Size       0000034C (844)\n-21566 Uncompressed Size     00000789 (1929)\n-2156A Filename Length       002F (47)\n-2156C Extra Length          0000 (0)\n-2156E Comment Length        0000 (0)\n-21570 Disk Start            0000 (0)\n-21572 Int File Attributes   0000 (0)\n+216DF Compression Method    0008 (8) 'Deflated'\n+216E1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+216E5 CRC                   D0646959 (3496241497)\n+216E9 Compressed Size       00000358 (856)\n+216ED Uncompressed Size     000007C1 (1985)\n+216F1 Filename Length       002F (47)\n+216F3 Extra Length          0000 (0)\n+216F5 Comment Length        0000 (0)\n+216F7 Disk Start            0000 (0)\n+216F9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21574 Ext File Attributes   81A40000 (2175008768)\n+216FB 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-21578 Local Header Offset   00004822 (18466)\n-2157C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+216FF Local Header Offset   0000487B (18555)\n+21703 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2157C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21703: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-215AB CENTRAL HEADER #47    02014B50 (33639248)\n-215AF Created Zip Spec      14 (20) '2.0'\n-215B0 Created OS            03 (3) 'Unix'\n-215B1 Extract Zip Spec      14 (20) '2.0'\n-215B2 Extract OS            00 (0) 'MS-DOS'\n-215B3 General Purpose Flag  0800 (2048)\n+21732 CENTRAL HEADER #47    02014B50 (33639248)\n+21736 Created Zip Spec      14 (20) '2.0'\n+21737 Created OS            03 (3) 'Unix'\n+21738 Extract Zip Spec      14 (20) '2.0'\n+21739 Extract OS            00 (0) 'MS-DOS'\n+2173A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-215B5 Compression Method    0008 (8) 'Deflated'\n-215B7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-215BB CRC                   684E4E1B (1749962267)\n-215BF Compressed Size       00000351 (849)\n-215C3 Uncompressed Size     00000814 (2068)\n-215C7 Filename Length       002A (42)\n-215C9 Extra Length          0000 (0)\n-215CB Comment Length        0000 (0)\n-215CD Disk Start            0000 (0)\n-215CF Int File Attributes   0000 (0)\n+2173C Compression Method    0008 (8) 'Deflated'\n+2173E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21742 CRC                   4475FC12 (1148582930)\n+21746 Compressed Size       0000035B (859)\n+2174A Uncompressed Size     0000084E (2126)\n+2174E Filename Length       002A (42)\n+21750 Extra Length          0000 (0)\n+21752 Comment Length        0000 (0)\n+21754 Disk Start            0000 (0)\n+21756 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-215D1 Ext File Attributes   81A40000 (2175008768)\n+21758 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-215D5 Local Header Offset   00004BBB (19387)\n-215D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2175C Local Header Offset   00004C20 (19488)\n+21760 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x215D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21760: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21603 CENTRAL HEADER #48    02014B50 (33639248)\n-21607 Created Zip Spec      14 (20) '2.0'\n-21608 Created OS            03 (3) 'Unix'\n-21609 Extract Zip Spec      14 (20) '2.0'\n-2160A Extract OS            00 (0) 'MS-DOS'\n-2160B General Purpose Flag  0800 (2048)\n+2178A CENTRAL HEADER #48    02014B50 (33639248)\n+2178E Created Zip Spec      14 (20) '2.0'\n+2178F Created OS            03 (3) 'Unix'\n+21790 Extract Zip Spec      14 (20) '2.0'\n+21791 Extract OS            00 (0) 'MS-DOS'\n+21792 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2160D Compression Method    0008 (8) 'Deflated'\n-2160F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21613 CRC                   65BE8BD8 (1706986456)\n-21617 Compressed Size       000003B8 (952)\n-2161B Uncompressed Size     00000C19 (3097)\n-2161F Filename Length       002B (43)\n-21621 Extra Length          0000 (0)\n-21623 Comment Length        0000 (0)\n-21625 Disk Start            0000 (0)\n-21627 Int File Attributes   0000 (0)\n+21794 Compression Method    0008 (8) 'Deflated'\n+21796 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2179A CRC                   65BE8BD8 (1706986456)\n+2179E Compressed Size       000003B8 (952)\n+217A2 Uncompressed Size     00000C19 (3097)\n+217A6 Filename Length       002B (43)\n+217A8 Extra Length          0000 (0)\n+217AA Comment Length        0000 (0)\n+217AC Disk Start            0000 (0)\n+217AE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21629 Ext File Attributes   81A40000 (2175008768)\n+217B0 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-2162D Local Header Offset   00004F54 (20308)\n-21631 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+217B4 Local Header Offset   00004FC3 (20419)\n+217B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21631: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x217B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2165C CENTRAL HEADER #49    02014B50 (33639248)\n-21660 Created Zip Spec      14 (20) '2.0'\n-21661 Created OS            03 (3) 'Unix'\n-21662 Extract Zip Spec      14 (20) '2.0'\n-21663 Extract OS            00 (0) 'MS-DOS'\n-21664 General Purpose Flag  0800 (2048)\n+217E3 CENTRAL HEADER #49    02014B50 (33639248)\n+217E7 Created Zip Spec      14 (20) '2.0'\n+217E8 Created OS            03 (3) 'Unix'\n+217E9 Extract Zip Spec      14 (20) '2.0'\n+217EA Extract OS            00 (0) 'MS-DOS'\n+217EB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21666 Compression Method    0008 (8) 'Deflated'\n-21668 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2166C CRC                   68852581 (1753556353)\n-21670 Compressed Size       000006C2 (1730)\n-21674 Uncompressed Size     00002404 (9220)\n-21678 Filename Length       003B (59)\n-2167A Extra Length          0000 (0)\n-2167C Comment Length        0000 (0)\n-2167E Disk Start            0000 (0)\n-21680 Int File Attributes   0000 (0)\n+217ED Compression Method    0008 (8) 'Deflated'\n+217EF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+217F3 CRC                   33E8796E (870873454)\n+217F7 Compressed Size       000006CE (1742)\n+217FB Uncompressed Size     00002559 (9561)\n+217FF Filename Length       003B (59)\n+21801 Extra Length          0000 (0)\n+21803 Comment Length        0000 (0)\n+21805 Disk Start            0000 (0)\n+21807 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21682 Ext File Attributes   81A40000 (2175008768)\n+21809 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-21686 Local Header Offset   00005355 (21333)\n-2168A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2180D Local Header Offset   000053C4 (21444)\n+21811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2168A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-216C5 CENTRAL HEADER #50    02014B50 (33639248)\n-216C9 Created Zip Spec      14 (20) '2.0'\n-216CA Created OS            03 (3) 'Unix'\n-216CB Extract Zip Spec      14 (20) '2.0'\n-216CC Extract OS            00 (0) 'MS-DOS'\n-216CD General Purpose Flag  0800 (2048)\n+2184C CENTRAL HEADER #50    02014B50 (33639248)\n+21850 Created Zip Spec      14 (20) '2.0'\n+21851 Created OS            03 (3) 'Unix'\n+21852 Extract Zip Spec      14 (20) '2.0'\n+21853 Extract OS            00 (0) 'MS-DOS'\n+21854 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-216CF Compression Method    0008 (8) 'Deflated'\n-216D1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-216D5 CRC                   AD83DA8F (2911099535)\n-216D9 Compressed Size       000006AB (1707)\n-216DD Uncompressed Size     00001EB2 (7858)\n-216E1 Filename Length       0043 (67)\n-216E3 Extra Length          0000 (0)\n-216E5 Comment Length        0000 (0)\n-216E7 Disk Start            0000 (0)\n-216E9 Int File Attributes   0000 (0)\n+21856 Compression Method    0008 (8) 'Deflated'\n+21858 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2185C CRC                   AD83DA8F (2911099535)\n+21860 Compressed Size       000006AB (1707)\n+21864 Uncompressed Size     00001EB2 (7858)\n+21868 Filename Length       0043 (67)\n+2186A Extra Length          0000 (0)\n+2186C Comment Length        0000 (0)\n+2186E Disk Start            0000 (0)\n+21870 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-216EB Ext File Attributes   81A40000 (2175008768)\n+21872 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-216EF Local Header Offset   00005A70 (23152)\n-216F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21876 Local Header Offset   00005AEB (23275)\n+2187A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x216F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2187A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21736 CENTRAL HEADER #51    02014B50 (33639248)\n-2173A Created Zip Spec      14 (20) '2.0'\n-2173B Created OS            03 (3) 'Unix'\n-2173C Extract Zip Spec      14 (20) '2.0'\n-2173D Extract OS            00 (0) 'MS-DOS'\n-2173E General Purpose Flag  0800 (2048)\n+218BD CENTRAL HEADER #51    02014B50 (33639248)\n+218C1 Created Zip Spec      14 (20) '2.0'\n+218C2 Created OS            03 (3) 'Unix'\n+218C3 Extract Zip Spec      14 (20) '2.0'\n+218C4 Extract OS            00 (0) 'MS-DOS'\n+218C5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21740 Compression Method    0008 (8) 'Deflated'\n-21742 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21746 CRC                   2E56D9DD (777443805)\n-2174A Compressed Size       0000196A (6506)\n-2174E Uncompressed Size     0000AA70 (43632)\n-21752 Filename Length       0033 (51)\n-21754 Extra Length          0000 (0)\n-21756 Comment Length        0000 (0)\n-21758 Disk Start            0000 (0)\n-2175A Int File Attributes   0000 (0)\n+218C7 Compression Method    0008 (8) 'Deflated'\n+218C9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+218CD CRC                   14F45D67 (351559015)\n+218D1 Compressed Size       0000198E (6542)\n+218D5 Uncompressed Size     0000AE27 (44583)\n+218D9 Filename Length       0033 (51)\n+218DB Extra Length          0000 (0)\n+218DD Comment Length        0000 (0)\n+218DF Disk Start            0000 (0)\n+218E1 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2175C Ext File Attributes   81A40000 (2175008768)\n+218E3 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-21760 Local Header Offset   0000617C (24956)\n-21764 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+218E7 Local Header Offset   000061F7 (25079)\n+218EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21764: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x218EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21797 CENTRAL HEADER #52    02014B50 (33639248)\n-2179B Created Zip Spec      14 (20) '2.0'\n-2179C Created OS            03 (3) 'Unix'\n-2179D Extract Zip Spec      14 (20) '2.0'\n-2179E Extract OS            00 (0) 'MS-DOS'\n-2179F General Purpose Flag  0800 (2048)\n+2191E CENTRAL HEADER #52    02014B50 (33639248)\n+21922 Created Zip Spec      14 (20) '2.0'\n+21923 Created OS            03 (3) 'Unix'\n+21924 Extract Zip Spec      14 (20) '2.0'\n+21925 Extract OS            00 (0) 'MS-DOS'\n+21926 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-217A1 Compression Method    0008 (8) 'Deflated'\n-217A3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-217A7 CRC                   6A53E0FE (1783881982)\n-217AB Compressed Size       0000024F (591)\n-217AF Uncompressed Size     00000456 (1110)\n-217B3 Filename Length       003A (58)\n-217B5 Extra Length          0000 (0)\n-217B7 Comment Length        0000 (0)\n-217B9 Disk Start            0000 (0)\n-217BB Int File Attributes   0000 (0)\n+21928 Compression Method    0008 (8) 'Deflated'\n+2192A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2192E CRC                   6A53E0FE (1783881982)\n+21932 Compressed Size       0000024F (591)\n+21936 Uncompressed Size     00000456 (1110)\n+2193A Filename Length       003A (58)\n+2193C Extra Length          0000 (0)\n+2193E Comment Length        0000 (0)\n+21940 Disk Start            0000 (0)\n+21942 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-217BD Ext File Attributes   81A40000 (2175008768)\n+21944 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-217C1 Local Header Offset   00007B37 (31543)\n-217C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21948 Local Header Offset   00007BD6 (31702)\n+2194C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x217C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2194C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-217FF CENTRAL HEADER #53    02014B50 (33639248)\n-21803 Created Zip Spec      14 (20) '2.0'\n-21804 Created OS            03 (3) 'Unix'\n-21805 Extract Zip Spec      14 (20) '2.0'\n-21806 Extract OS            00 (0) 'MS-DOS'\n-21807 General Purpose Flag  0800 (2048)\n+21986 CENTRAL HEADER #53    02014B50 (33639248)\n+2198A Created Zip Spec      14 (20) '2.0'\n+2198B Created OS            03 (3) 'Unix'\n+2198C Extract Zip Spec      14 (20) '2.0'\n+2198D Extract OS            00 (0) 'MS-DOS'\n+2198E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21809 Compression Method    0008 (8) 'Deflated'\n-2180B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2180F CRC                   4997E6D6 (1234691798)\n-21813 Compressed Size       00000429 (1065)\n-21817 Uncompressed Size     00000C53 (3155)\n-2181B Filename Length       003E (62)\n-2181D Extra Length          0000 (0)\n-2181F Comment Length        0000 (0)\n-21821 Disk Start            0000 (0)\n-21823 Int File Attributes   0000 (0)\n+21990 Compression Method    0008 (8) 'Deflated'\n+21992 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21996 CRC                   4997E6D6 (1234691798)\n+2199A Compressed Size       00000429 (1065)\n+2199E Uncompressed Size     00000C53 (3155)\n+219A2 Filename Length       003E (62)\n+219A4 Extra Length          0000 (0)\n+219A6 Comment Length        0000 (0)\n+219A8 Disk Start            0000 (0)\n+219AA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21825 Ext File Attributes   81A40000 (2175008768)\n+219AC 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-21829 Local Header Offset   00007DDE (32222)\n-2182D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+219B0 Local Header Offset   00007E7D (32381)\n+219B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2182D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x219B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2186B CENTRAL HEADER #54    02014B50 (33639248)\n-2186F Created Zip Spec      14 (20) '2.0'\n-21870 Created OS            03 (3) 'Unix'\n-21871 Extract Zip Spec      14 (20) '2.0'\n-21872 Extract OS            00 (0) 'MS-DOS'\n-21873 General Purpose Flag  0800 (2048)\n+219F2 CENTRAL HEADER #54    02014B50 (33639248)\n+219F6 Created Zip Spec      14 (20) '2.0'\n+219F7 Created OS            03 (3) 'Unix'\n+219F8 Extract Zip Spec      14 (20) '2.0'\n+219F9 Extract OS            00 (0) 'MS-DOS'\n+219FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21875 Compression Method    0008 (8) 'Deflated'\n-21877 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2187B CRC                   996F8C6F (2574224495)\n-2187F Compressed Size       00000307 (775)\n-21883 Uncompressed Size     00000765 (1893)\n-21887 Filename Length       003F (63)\n-21889 Extra Length          0000 (0)\n-2188B Comment Length        0000 (0)\n-2188D Disk Start            0000 (0)\n-2188F Int File Attributes   0000 (0)\n+219FC Compression Method    0008 (8) 'Deflated'\n+219FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21A02 CRC                   996F8C6F (2574224495)\n+21A06 Compressed Size       00000307 (775)\n+21A0A Uncompressed Size     00000765 (1893)\n+21A0E Filename Length       003F (63)\n+21A10 Extra Length          0000 (0)\n+21A12 Comment Length        0000 (0)\n+21A14 Disk Start            0000 (0)\n+21A16 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21891 Ext File Attributes   81A40000 (2175008768)\n+21A18 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-21895 Local Header Offset   00008263 (33379)\n-21899 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21A1C Local Header Offset   00008302 (33538)\n+21A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21899: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-218D8 CENTRAL HEADER #55    02014B50 (33639248)\n-218DC Created Zip Spec      14 (20) '2.0'\n-218DD Created OS            03 (3) 'Unix'\n-218DE Extract Zip Spec      14 (20) '2.0'\n-218DF Extract OS            00 (0) 'MS-DOS'\n-218E0 General Purpose Flag  0800 (2048)\n+21A5F CENTRAL HEADER #55    02014B50 (33639248)\n+21A63 Created Zip Spec      14 (20) '2.0'\n+21A64 Created OS            03 (3) 'Unix'\n+21A65 Extract Zip Spec      14 (20) '2.0'\n+21A66 Extract OS            00 (0) 'MS-DOS'\n+21A67 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-218E2 Compression Method    0008 (8) 'Deflated'\n-218E4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-218E8 CRC                   F6247952 (4129585490)\n-218EC Compressed Size       0000052D (1325)\n-218F0 Uncompressed Size     000012A2 (4770)\n-218F4 Filename Length       0034 (52)\n-218F6 Extra Length          0000 (0)\n-218F8 Comment Length        0000 (0)\n-218FA Disk Start            0000 (0)\n-218FC Int File Attributes   0000 (0)\n+21A69 Compression Method    0008 (8) 'Deflated'\n+21A6B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21A6F CRC                   C2B309D7 (3266513367)\n+21A73 Compressed Size       00000537 (1335)\n+21A77 Uncompressed Size     0000133E (4926)\n+21A7B Filename Length       0034 (52)\n+21A7D Extra Length          0000 (0)\n+21A7F Comment Length        0000 (0)\n+21A81 Disk Start            0000 (0)\n+21A83 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-218FE Ext File Attributes   81A40000 (2175008768)\n+21A85 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-21902 Local Header Offset   000085C7 (34247)\n-21906 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21A89 Local Header Offset   00008666 (34406)\n+21A8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21906: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21A8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2193A CENTRAL HEADER #56    02014B50 (33639248)\n-2193E Created Zip Spec      14 (20) '2.0'\n-2193F Created OS            03 (3) 'Unix'\n-21940 Extract Zip Spec      14 (20) '2.0'\n-21941 Extract OS            00 (0) 'MS-DOS'\n-21942 General Purpose Flag  0800 (2048)\n+21AC1 CENTRAL HEADER #56    02014B50 (33639248)\n+21AC5 Created Zip Spec      14 (20) '2.0'\n+21AC6 Created OS            03 (3) 'Unix'\n+21AC7 Extract Zip Spec      14 (20) '2.0'\n+21AC8 Extract OS            00 (0) 'MS-DOS'\n+21AC9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21944 Compression Method    0008 (8) 'Deflated'\n-21946 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2194A CRC                   9D245ED3 (2636406483)\n-2194E Compressed Size       000003C0 (960)\n-21952 Uncompressed Size     00000A45 (2629)\n-21956 Filename Length       0040 (64)\n-21958 Extra Length          0000 (0)\n-2195A Comment Length        0000 (0)\n-2195C Disk Start            0000 (0)\n-2195E Int File Attributes   0000 (0)\n+21ACB Compression Method    0008 (8) 'Deflated'\n+21ACD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21AD1 CRC                   9D245ED3 (2636406483)\n+21AD5 Compressed Size       000003C0 (960)\n+21AD9 Uncompressed Size     00000A45 (2629)\n+21ADD Filename Length       0040 (64)\n+21ADF Extra Length          0000 (0)\n+21AE1 Comment Length        0000 (0)\n+21AE3 Disk Start            0000 (0)\n+21AE5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21960 Ext File Attributes   81A40000 (2175008768)\n+21AE7 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-21964 Local Header Offset   00008B46 (35654)\n-21968 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21AEB Local Header Offset   00008BEF (35823)\n+21AEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21968: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21AEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-219A8 CENTRAL HEADER #57    02014B50 (33639248)\n-219AC Created Zip Spec      14 (20) '2.0'\n-219AD Created OS            03 (3) 'Unix'\n-219AE Extract Zip Spec      14 (20) '2.0'\n-219AF Extract OS            00 (0) 'MS-DOS'\n-219B0 General Purpose Flag  0800 (2048)\n+21B2F CENTRAL HEADER #57    02014B50 (33639248)\n+21B33 Created Zip Spec      14 (20) '2.0'\n+21B34 Created OS            03 (3) 'Unix'\n+21B35 Extract Zip Spec      14 (20) '2.0'\n+21B36 Extract OS            00 (0) 'MS-DOS'\n+21B37 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-219B2 Compression Method    0008 (8) 'Deflated'\n-219B4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-219B8 CRC                   5ED5B140 (1591062848)\n-219BC Compressed Size       00000551 (1361)\n-219C0 Uncompressed Size     000015E8 (5608)\n-219C4 Filename Length       003A (58)\n-219C6 Extra Length          0000 (0)\n-219C8 Comment Length        0000 (0)\n-219CA Disk Start            0000 (0)\n-219CC Int File Attributes   0000 (0)\n+21B39 Compression Method    0008 (8) 'Deflated'\n+21B3B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21B3F CRC                   5ED5B140 (1591062848)\n+21B43 Compressed Size       00000551 (1361)\n+21B47 Uncompressed Size     000015E8 (5608)\n+21B4B Filename Length       003A (58)\n+21B4D Extra Length          0000 (0)\n+21B4F Comment Length        0000 (0)\n+21B51 Disk Start            0000 (0)\n+21B53 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-219CE Ext File Attributes   81A40000 (2175008768)\n+21B55 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-219D2 Local Header Offset   00008F64 (36708)\n-219D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21B59 Local Header Offset   0000900D (36877)\n+21B5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x219D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21B5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21A10 CENTRAL HEADER #58    02014B50 (33639248)\n-21A14 Created Zip Spec      14 (20) '2.0'\n-21A15 Created OS            03 (3) 'Unix'\n-21A16 Extract Zip Spec      14 (20) '2.0'\n-21A17 Extract OS            00 (0) 'MS-DOS'\n-21A18 General Purpose Flag  0800 (2048)\n+21B97 CENTRAL HEADER #58    02014B50 (33639248)\n+21B9B Created Zip Spec      14 (20) '2.0'\n+21B9C Created OS            03 (3) 'Unix'\n+21B9D Extract Zip Spec      14 (20) '2.0'\n+21B9E Extract OS            00 (0) 'MS-DOS'\n+21B9F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21A1A Compression Method    0008 (8) 'Deflated'\n-21A1C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21A20 CRC                   CC038CDE (3422784734)\n-21A24 Compressed Size       0000065F (1631)\n-21A28 Uncompressed Size     000019AF (6575)\n-21A2C Filename Length       0037 (55)\n-21A2E Extra Length          0000 (0)\n-21A30 Comment Length        0000 (0)\n-21A32 Disk Start            0000 (0)\n-21A34 Int File Attributes   0000 (0)\n+21BA1 Compression Method    0008 (8) 'Deflated'\n+21BA3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21BA7 CRC                   CC038CDE (3422784734)\n+21BAB Compressed Size       0000065F (1631)\n+21BAF Uncompressed Size     000019AF (6575)\n+21BB3 Filename Length       0037 (55)\n+21BB5 Extra Length          0000 (0)\n+21BB7 Comment Length        0000 (0)\n+21BB9 Disk Start            0000 (0)\n+21BBB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21A36 Ext File Attributes   81A40000 (2175008768)\n+21BBD 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-21A3A Local Header Offset   0000950D (38157)\n-21A3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21BC1 Local Header Offset   000095B6 (38326)\n+21BC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21A3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21BC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21A75 CENTRAL HEADER #59    02014B50 (33639248)\n-21A79 Created Zip Spec      14 (20) '2.0'\n-21A7A Created OS            03 (3) 'Unix'\n-21A7B Extract Zip Spec      14 (20) '2.0'\n-21A7C Extract OS            00 (0) 'MS-DOS'\n-21A7D General Purpose Flag  0800 (2048)\n+21BFC CENTRAL HEADER #59    02014B50 (33639248)\n+21C00 Created Zip Spec      14 (20) '2.0'\n+21C01 Created OS            03 (3) 'Unix'\n+21C02 Extract Zip Spec      14 (20) '2.0'\n+21C03 Extract OS            00 (0) 'MS-DOS'\n+21C04 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21A7F Compression Method    0008 (8) 'Deflated'\n-21A81 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21A85 CRC                   80349D10 (2150931728)\n-21A89 Compressed Size       00000314 (788)\n-21A8D Uncompressed Size     00000779 (1913)\n-21A91 Filename Length       003E (62)\n-21A93 Extra Length          0000 (0)\n-21A95 Comment Length        0000 (0)\n-21A97 Disk Start            0000 (0)\n-21A99 Int File Attributes   0000 (0)\n+21C06 Compression Method    0008 (8) 'Deflated'\n+21C08 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21C0C CRC                   80349D10 (2150931728)\n+21C10 Compressed Size       00000314 (788)\n+21C14 Uncompressed Size     00000779 (1913)\n+21C18 Filename Length       003E (62)\n+21C1A Extra Length          0000 (0)\n+21C1C Comment Length        0000 (0)\n+21C1E Disk Start            0000 (0)\n+21C20 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21A9B Ext File Attributes   81A40000 (2175008768)\n+21C22 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-21A9F Local Header Offset   00009BC1 (39873)\n-21AA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21C26 Local Header Offset   00009C6A (40042)\n+21C2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21AA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21C2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21AE1 CENTRAL HEADER #60    02014B50 (33639248)\n-21AE5 Created Zip Spec      14 (20) '2.0'\n-21AE6 Created OS            03 (3) 'Unix'\n-21AE7 Extract Zip Spec      14 (20) '2.0'\n-21AE8 Extract OS            00 (0) 'MS-DOS'\n-21AE9 General Purpose Flag  0800 (2048)\n+21C68 CENTRAL HEADER #60    02014B50 (33639248)\n+21C6C Created Zip Spec      14 (20) '2.0'\n+21C6D Created OS            03 (3) 'Unix'\n+21C6E Extract Zip Spec      14 (20) '2.0'\n+21C6F Extract OS            00 (0) 'MS-DOS'\n+21C70 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21AEB Compression Method    0008 (8) 'Deflated'\n-21AED Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21AF1 CRC                   D599DEAA (3583631018)\n-21AF5 Compressed Size       00000332 (818)\n-21AF9 Uncompressed Size     000009A4 (2468)\n-21AFD Filename Length       0037 (55)\n-21AFF Extra Length          0000 (0)\n-21B01 Comment Length        0000 (0)\n-21B03 Disk Start            0000 (0)\n-21B05 Int File Attributes   0000 (0)\n+21C72 Compression Method    0008 (8) 'Deflated'\n+21C74 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21C78 CRC                   D599DEAA (3583631018)\n+21C7C Compressed Size       00000332 (818)\n+21C80 Uncompressed Size     000009A4 (2468)\n+21C84 Filename Length       0037 (55)\n+21C86 Extra Length          0000 (0)\n+21C88 Comment Length        0000 (0)\n+21C8A Disk Start            0000 (0)\n+21C8C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21B07 Ext File Attributes   81A40000 (2175008768)\n+21C8E 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-21B0B Local Header Offset   00009F31 (40753)\n-21B0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21C92 Local Header Offset   00009FDA (40922)\n+21C96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21B0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21C96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21B46 CENTRAL HEADER #61    02014B50 (33639248)\n-21B4A Created Zip Spec      14 (20) '2.0'\n-21B4B Created OS            03 (3) 'Unix'\n-21B4C Extract Zip Spec      14 (20) '2.0'\n-21B4D Extract OS            00 (0) 'MS-DOS'\n-21B4E General Purpose Flag  0800 (2048)\n+21CCD CENTRAL HEADER #61    02014B50 (33639248)\n+21CD1 Created Zip Spec      14 (20) '2.0'\n+21CD2 Created OS            03 (3) 'Unix'\n+21CD3 Extract Zip Spec      14 (20) '2.0'\n+21CD4 Extract OS            00 (0) 'MS-DOS'\n+21CD5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21B50 Compression Method    0008 (8) 'Deflated'\n-21B52 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21B56 CRC                   E165CDFB (3781545467)\n-21B5A Compressed Size       0000023B (571)\n-21B5E Uncompressed Size     0000041A (1050)\n-21B62 Filename Length       0036 (54)\n-21B64 Extra Length          0000 (0)\n-21B66 Comment Length        0000 (0)\n-21B68 Disk Start            0000 (0)\n-21B6A Int File Attributes   0000 (0)\n+21CD7 Compression Method    0008 (8) 'Deflated'\n+21CD9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21CDD CRC                   E165CDFB (3781545467)\n+21CE1 Compressed Size       0000023B (571)\n+21CE5 Uncompressed Size     0000041A (1050)\n+21CE9 Filename Length       0036 (54)\n+21CEB Extra Length          0000 (0)\n+21CED Comment Length        0000 (0)\n+21CEF Disk Start            0000 (0)\n+21CF1 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21B6C Ext File Attributes   81A40000 (2175008768)\n+21CF3 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-21B70 Local Header Offset   0000A2B8 (41656)\n-21B74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21CF7 Local Header Offset   0000A361 (41825)\n+21CFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21B74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21CFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21BAA CENTRAL HEADER #62    02014B50 (33639248)\n-21BAE Created Zip Spec      14 (20) '2.0'\n-21BAF Created OS            03 (3) 'Unix'\n-21BB0 Extract Zip Spec      14 (20) '2.0'\n-21BB1 Extract OS            00 (0) 'MS-DOS'\n-21BB2 General Purpose Flag  0800 (2048)\n+21D31 CENTRAL HEADER #62    02014B50 (33639248)\n+21D35 Created Zip Spec      14 (20) '2.0'\n+21D36 Created OS            03 (3) 'Unix'\n+21D37 Extract Zip Spec      14 (20) '2.0'\n+21D38 Extract OS            00 (0) 'MS-DOS'\n+21D39 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21BB4 Compression Method    0008 (8) 'Deflated'\n-21BB6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21BBA CRC                   72699C54 (1919523924)\n-21BBE Compressed Size       000002C2 (706)\n-21BC2 Uncompressed Size     000005B9 (1465)\n-21BC6 Filename Length       0037 (55)\n-21BC8 Extra Length          0000 (0)\n-21BCA Comment Length        0000 (0)\n-21BCC Disk Start            0000 (0)\n-21BCE Int File Attributes   0000 (0)\n+21D3B Compression Method    0008 (8) 'Deflated'\n+21D3D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21D41 CRC                   72699C54 (1919523924)\n+21D45 Compressed Size       000002C2 (706)\n+21D49 Uncompressed Size     000005B9 (1465)\n+21D4D Filename Length       0037 (55)\n+21D4F Extra Length          0000 (0)\n+21D51 Comment Length        0000 (0)\n+21D53 Disk Start            0000 (0)\n+21D55 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21BD0 Ext File Attributes   81A40000 (2175008768)\n+21D57 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-21BD4 Local Header Offset   0000A547 (42311)\n-21BD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21D5B Local Header Offset   0000A5F0 (42480)\n+21D5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21BD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21D5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21C0F CENTRAL HEADER #63    02014B50 (33639248)\n-21C13 Created Zip Spec      14 (20) '2.0'\n-21C14 Created OS            03 (3) 'Unix'\n-21C15 Extract Zip Spec      14 (20) '2.0'\n-21C16 Extract OS            00 (0) 'MS-DOS'\n-21C17 General Purpose Flag  0800 (2048)\n+21D96 CENTRAL HEADER #63    02014B50 (33639248)\n+21D9A Created Zip Spec      14 (20) '2.0'\n+21D9B Created OS            03 (3) 'Unix'\n+21D9C Extract Zip Spec      14 (20) '2.0'\n+21D9D Extract OS            00 (0) 'MS-DOS'\n+21D9E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21C19 Compression Method    0008 (8) 'Deflated'\n-21C1B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21C1F CRC                   330FACB0 (856665264)\n-21C23 Compressed Size       000002A4 (676)\n-21C27 Uncompressed Size     00000588 (1416)\n-21C2B Filename Length       0036 (54)\n-21C2D Extra Length          0000 (0)\n-21C2F Comment Length        0000 (0)\n-21C31 Disk Start            0000 (0)\n-21C33 Int File Attributes   0000 (0)\n+21DA0 Compression Method    0008 (8) 'Deflated'\n+21DA2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21DA6 CRC                   330FACB0 (856665264)\n+21DAA Compressed Size       000002A4 (676)\n+21DAE Uncompressed Size     00000588 (1416)\n+21DB2 Filename Length       0036 (54)\n+21DB4 Extra Length          0000 (0)\n+21DB6 Comment Length        0000 (0)\n+21DB8 Disk Start            0000 (0)\n+21DBA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21C35 Ext File Attributes   81A40000 (2175008768)\n+21DBC 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-21C39 Local Header Offset   0000A85E (43102)\n-21C3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21DC0 Local Header Offset   0000A907 (43271)\n+21DC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21C3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21DC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21C73 CENTRAL HEADER #64    02014B50 (33639248)\n-21C77 Created Zip Spec      14 (20) '2.0'\n-21C78 Created OS            03 (3) 'Unix'\n-21C79 Extract Zip Spec      14 (20) '2.0'\n-21C7A Extract OS            00 (0) 'MS-DOS'\n-21C7B General Purpose Flag  0800 (2048)\n+21DFA CENTRAL HEADER #64    02014B50 (33639248)\n+21DFE Created Zip Spec      14 (20) '2.0'\n+21DFF Created OS            03 (3) 'Unix'\n+21E00 Extract Zip Spec      14 (20) '2.0'\n+21E01 Extract OS            00 (0) 'MS-DOS'\n+21E02 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21C7D Compression Method    0008 (8) 'Deflated'\n-21C7F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21C83 CRC                   D85DA328 (3630015272)\n-21C87 Compressed Size       0000033E (830)\n-21C8B Uncompressed Size     000007B2 (1970)\n-21C8F Filename Length       0031 (49)\n-21C91 Extra Length          0000 (0)\n-21C93 Comment Length        0000 (0)\n-21C95 Disk Start            0000 (0)\n-21C97 Int File Attributes   0000 (0)\n+21E04 Compression Method    0008 (8) 'Deflated'\n+21E06 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21E0A CRC                   D85DA328 (3630015272)\n+21E0E Compressed Size       0000033E (830)\n+21E12 Uncompressed Size     000007B2 (1970)\n+21E16 Filename Length       0031 (49)\n+21E18 Extra Length          0000 (0)\n+21E1A Comment Length        0000 (0)\n+21E1C Disk Start            0000 (0)\n+21E1E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21C99 Ext File Attributes   81A40000 (2175008768)\n+21E20 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-21C9D Local Header Offset   0000AB56 (43862)\n-21CA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21E24 Local Header Offset   0000ABFF (44031)\n+21E28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21CA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21E28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21CD2 CENTRAL HEADER #65    02014B50 (33639248)\n-21CD6 Created Zip Spec      14 (20) '2.0'\n-21CD7 Created OS            03 (3) 'Unix'\n-21CD8 Extract Zip Spec      14 (20) '2.0'\n-21CD9 Extract OS            00 (0) 'MS-DOS'\n-21CDA General Purpose Flag  0800 (2048)\n+21E59 CENTRAL HEADER #65    02014B50 (33639248)\n+21E5D Created Zip Spec      14 (20) '2.0'\n+21E5E Created OS            03 (3) 'Unix'\n+21E5F Extract Zip Spec      14 (20) '2.0'\n+21E60 Extract OS            00 (0) 'MS-DOS'\n+21E61 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21CDC Compression Method    0008 (8) 'Deflated'\n-21CDE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21CE2 CRC                   B04E2D51 (2957913425)\n-21CE6 Compressed Size       00000461 (1121)\n-21CEA Uncompressed Size     0000135D (4957)\n-21CEE Filename Length       0032 (50)\n-21CF0 Extra Length          0000 (0)\n-21CF2 Comment Length        0000 (0)\n-21CF4 Disk Start            0000 (0)\n-21CF6 Int File Attributes   0000 (0)\n+21E63 Compression Method    0008 (8) 'Deflated'\n+21E65 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21E69 CRC                   B04E2D51 (2957913425)\n+21E6D Compressed Size       00000461 (1121)\n+21E71 Uncompressed Size     0000135D (4957)\n+21E75 Filename Length       0032 (50)\n+21E77 Extra Length          0000 (0)\n+21E79 Comment Length        0000 (0)\n+21E7B Disk Start            0000 (0)\n+21E7D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21CF8 Ext File Attributes   81A40000 (2175008768)\n+21E7F 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-21CFC Local Header Offset   0000AEE3 (44771)\n-21D00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21E83 Local Header Offset   0000AF8C (44940)\n+21E87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21D00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21E87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21D32 CENTRAL HEADER #66    02014B50 (33639248)\n-21D36 Created Zip Spec      14 (20) '2.0'\n-21D37 Created OS            03 (3) 'Unix'\n-21D38 Extract Zip Spec      14 (20) '2.0'\n-21D39 Extract OS            00 (0) 'MS-DOS'\n-21D3A General Purpose Flag  0800 (2048)\n+21EB9 CENTRAL HEADER #66    02014B50 (33639248)\n+21EBD Created Zip Spec      14 (20) '2.0'\n+21EBE Created OS            03 (3) 'Unix'\n+21EBF Extract Zip Spec      14 (20) '2.0'\n+21EC0 Extract OS            00 (0) 'MS-DOS'\n+21EC1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21D3C Compression Method    0008 (8) 'Deflated'\n-21D3E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21D42 CRC                   8CC675B8 (2361816504)\n-21D46 Compressed Size       00000513 (1299)\n-21D4A Uncompressed Size     00000E5B (3675)\n-21D4E Filename Length       002F (47)\n-21D50 Extra Length          0000 (0)\n-21D52 Comment Length        0000 (0)\n-21D54 Disk Start            0000 (0)\n-21D56 Int File Attributes   0000 (0)\n+21EC3 Compression Method    0008 (8) 'Deflated'\n+21EC5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21EC9 CRC                   D366AAB0 (3546720944)\n+21ECD Compressed Size       0000051E (1310)\n+21ED1 Uncompressed Size     00000EEC (3820)\n+21ED5 Filename Length       002F (47)\n+21ED7 Extra Length          0000 (0)\n+21ED9 Comment Length        0000 (0)\n+21EDB Disk Start            0000 (0)\n+21EDD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21D58 Ext File Attributes   81A40000 (2175008768)\n+21EDF 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-21D5C Local Header Offset   0000B394 (45972)\n-21D60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21EE3 Local Header Offset   0000B43D (46141)\n+21EE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21D60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21EE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21D8F CENTRAL HEADER #67    02014B50 (33639248)\n-21D93 Created Zip Spec      14 (20) '2.0'\n-21D94 Created OS            03 (3) 'Unix'\n-21D95 Extract Zip Spec      14 (20) '2.0'\n-21D96 Extract OS            00 (0) 'MS-DOS'\n-21D97 General Purpose Flag  0800 (2048)\n+21F16 CENTRAL HEADER #67    02014B50 (33639248)\n+21F1A Created Zip Spec      14 (20) '2.0'\n+21F1B Created OS            03 (3) 'Unix'\n+21F1C Extract Zip Spec      14 (20) '2.0'\n+21F1D Extract OS            00 (0) 'MS-DOS'\n+21F1E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21D99 Compression Method    0008 (8) 'Deflated'\n-21D9B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21D9F CRC                   FF46E79C (4282836892)\n-21DA3 Compressed Size       0000051B (1307)\n-21DA7 Uncompressed Size     00000FC4 (4036)\n-21DAB Filename Length       0030 (48)\n-21DAD Extra Length          0000 (0)\n-21DAF Comment Length        0000 (0)\n-21DB1 Disk Start            0000 (0)\n-21DB3 Int File Attributes   0000 (0)\n+21F20 Compression Method    0008 (8) 'Deflated'\n+21F22 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21F26 CRC                   FF46E79C (4282836892)\n+21F2A Compressed Size       0000051B (1307)\n+21F2E Uncompressed Size     00000FC4 (4036)\n+21F32 Filename Length       0030 (48)\n+21F34 Extra Length          0000 (0)\n+21F36 Comment Length        0000 (0)\n+21F38 Disk Start            0000 (0)\n+21F3A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21DB5 Ext File Attributes   81A40000 (2175008768)\n+21F3C 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-21DB9 Local Header Offset   0000B8F4 (47348)\n-21DBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21F40 Local Header Offset   0000B9A8 (47528)\n+21F44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21DBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21F44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21DED CENTRAL HEADER #68    02014B50 (33639248)\n-21DF1 Created Zip Spec      14 (20) '2.0'\n-21DF2 Created OS            03 (3) 'Unix'\n-21DF3 Extract Zip Spec      14 (20) '2.0'\n-21DF4 Extract OS            00 (0) 'MS-DOS'\n-21DF5 General Purpose Flag  0800 (2048)\n+21F74 CENTRAL HEADER #68    02014B50 (33639248)\n+21F78 Created Zip Spec      14 (20) '2.0'\n+21F79 Created OS            03 (3) 'Unix'\n+21F7A Extract Zip Spec      14 (20) '2.0'\n+21F7B Extract OS            00 (0) 'MS-DOS'\n+21F7C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21DF7 Compression Method    0008 (8) 'Deflated'\n-21DF9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21DFD CRC                   6E137A75 (1846770293)\n-21E01 Compressed Size       00001044 (4164)\n-21E05 Uncompressed Size     000050EF (20719)\n-21E09 Filename Length       003B (59)\n-21E0B Extra Length          0000 (0)\n-21E0D Comment Length        0000 (0)\n-21E0F Disk Start            0000 (0)\n-21E11 Int File Attributes   0000 (0)\n+21F7E Compression Method    0008 (8) 'Deflated'\n+21F80 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21F84 CRC                   6E137A75 (1846770293)\n+21F88 Compressed Size       00001044 (4164)\n+21F8C Uncompressed Size     000050EF (20719)\n+21F90 Filename Length       003B (59)\n+21F92 Extra Length          0000 (0)\n+21F94 Comment Length        0000 (0)\n+21F96 Disk Start            0000 (0)\n+21F98 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21E13 Ext File Attributes   81A40000 (2175008768)\n+21F9A 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-21E17 Local Header Offset   0000BE5D (48733)\n-21E1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+21F9E Local Header Offset   0000BF11 (48913)\n+21FA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21E1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x21FA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21E56 CENTRAL HEADER #69    02014B50 (33639248)\n-21E5A Created Zip Spec      14 (20) '2.0'\n-21E5B Created OS            03 (3) 'Unix'\n-21E5C Extract Zip Spec      14 (20) '2.0'\n-21E5D Extract OS            00 (0) 'MS-DOS'\n-21E5E General Purpose Flag  0800 (2048)\n+21FDD CENTRAL HEADER #69    02014B50 (33639248)\n+21FE1 Created Zip Spec      14 (20) '2.0'\n+21FE2 Created OS            03 (3) 'Unix'\n+21FE3 Extract Zip Spec      14 (20) '2.0'\n+21FE4 Extract OS            00 (0) 'MS-DOS'\n+21FE5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21E60 Compression Method    0008 (8) 'Deflated'\n-21E62 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21E66 CRC                   71D1D17D (1909576061)\n-21E6A Compressed Size       00000C33 (3123)\n-21E6E Uncompressed Size     00002CEB (11499)\n-21E72 Filename Length       003D (61)\n-21E74 Extra Length          0000 (0)\n-21E76 Comment Length        0000 (0)\n-21E78 Disk Start            0000 (0)\n-21E7A Int File Attributes   0000 (0)\n+21FE7 Compression Method    0008 (8) 'Deflated'\n+21FE9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+21FED CRC                   38A27EA4 (950173348)\n+21FF1 Compressed Size       00000C4B (3147)\n+21FF5 Uncompressed Size     00002E18 (11800)\n+21FF9 Filename Length       003D (61)\n+21FFB Extra Length          0000 (0)\n+21FFD Comment Length        0000 (0)\n+21FFF Disk Start            0000 (0)\n+22001 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21E7C Ext File Attributes   81A40000 (2175008768)\n+22003 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-21E80 Local Header Offset   0000CEFA (52986)\n-21E84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22007 Local Header Offset   0000CFAE (53166)\n+2200B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21E84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2200B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21EC1 CENTRAL HEADER #70    02014B50 (33639248)\n-21EC5 Created Zip Spec      14 (20) '2.0'\n-21EC6 Created OS            03 (3) 'Unix'\n-21EC7 Extract Zip Spec      14 (20) '2.0'\n-21EC8 Extract OS            00 (0) 'MS-DOS'\n-21EC9 General Purpose Flag  0800 (2048)\n+22048 CENTRAL HEADER #70    02014B50 (33639248)\n+2204C Created Zip Spec      14 (20) '2.0'\n+2204D Created OS            03 (3) 'Unix'\n+2204E Extract Zip Spec      14 (20) '2.0'\n+2204F Extract OS            00 (0) 'MS-DOS'\n+22050 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21ECB Compression Method    0008 (8) 'Deflated'\n-21ECD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21ED1 CRC                   8AF6C6B7 (2331428535)\n-21ED5 Compressed Size       000002B3 (691)\n-21ED9 Uncompressed Size     000005BB (1467)\n-21EDD Filename Length       0046 (70)\n-21EDF Extra Length          0000 (0)\n-21EE1 Comment Length        0000 (0)\n-21EE3 Disk Start            0000 (0)\n-21EE5 Int File Attributes   0000 (0)\n+22052 Compression Method    0008 (8) 'Deflated'\n+22054 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22058 CRC                   8AF6C6B7 (2331428535)\n+2205C Compressed Size       000002B3 (691)\n+22060 Uncompressed Size     000005BB (1467)\n+22064 Filename Length       0046 (70)\n+22066 Extra Length          0000 (0)\n+22068 Comment Length        0000 (0)\n+2206A Disk Start            0000 (0)\n+2206C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21EE7 Ext File Attributes   81A40000 (2175008768)\n+2206E 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-21EEB Local Header Offset   0000DB88 (56200)\n-21EEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22072 Local Header Offset   0000DC54 (56404)\n+22076 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21EEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22076: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21F35 CENTRAL HEADER #71    02014B50 (33639248)\n-21F39 Created Zip Spec      14 (20) '2.0'\n-21F3A Created OS            03 (3) 'Unix'\n-21F3B Extract Zip Spec      14 (20) '2.0'\n-21F3C Extract OS            00 (0) 'MS-DOS'\n-21F3D General Purpose Flag  0800 (2048)\n+220BC CENTRAL HEADER #71    02014B50 (33639248)\n+220C0 Created Zip Spec      14 (20) '2.0'\n+220C1 Created OS            03 (3) 'Unix'\n+220C2 Extract Zip Spec      14 (20) '2.0'\n+220C3 Extract OS            00 (0) 'MS-DOS'\n+220C4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21F3F Compression Method    0008 (8) 'Deflated'\n-21F41 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21F45 CRC                   2C68D340 (745067328)\n-21F49 Compressed Size       0000043C (1084)\n-21F4D Uncompressed Size     00001165 (4453)\n-21F51 Filename Length       0049 (73)\n-21F53 Extra Length          0000 (0)\n-21F55 Comment Length        0000 (0)\n-21F57 Disk Start            0000 (0)\n-21F59 Int File Attributes   0000 (0)\n+220C6 Compression Method    0008 (8) 'Deflated'\n+220C8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+220CC CRC                   2C68D340 (745067328)\n+220D0 Compressed Size       0000043C (1084)\n+220D4 Uncompressed Size     00001165 (4453)\n+220D8 Filename Length       0049 (73)\n+220DA Extra Length          0000 (0)\n+220DC Comment Length        0000 (0)\n+220DE Disk Start            0000 (0)\n+220E0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21F5B Ext File Attributes   81A40000 (2175008768)\n+220E2 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-21F5F Local Header Offset   0000DE9F (56991)\n-21F63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+220E6 Local Header Offset   0000DF6B (57195)\n+220EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21F63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x220EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-21FAC CENTRAL HEADER #72    02014B50 (33639248)\n-21FB0 Created Zip Spec      14 (20) '2.0'\n-21FB1 Created OS            03 (3) 'Unix'\n-21FB2 Extract Zip Spec      14 (20) '2.0'\n-21FB3 Extract OS            00 (0) 'MS-DOS'\n-21FB4 General Purpose Flag  0800 (2048)\n+22133 CENTRAL HEADER #72    02014B50 (33639248)\n+22137 Created Zip Spec      14 (20) '2.0'\n+22138 Created OS            03 (3) 'Unix'\n+22139 Extract Zip Spec      14 (20) '2.0'\n+2213A Extract OS            00 (0) 'MS-DOS'\n+2213B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21FB6 Compression Method    0008 (8) 'Deflated'\n-21FB8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-21FBC CRC                   C14E1F5D (3243122525)\n-21FC0 Compressed Size       000003EC (1004)\n-21FC4 Uncompressed Size     00000DD5 (3541)\n-21FC8 Filename Length       0046 (70)\n-21FCA Extra Length          0000 (0)\n-21FCC Comment Length        0000 (0)\n-21FCE Disk Start            0000 (0)\n-21FD0 Int File Attributes   0000 (0)\n+2213D Compression Method    0008 (8) 'Deflated'\n+2213F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22143 CRC                   C14E1F5D (3243122525)\n+22147 Compressed Size       000003EC (1004)\n+2214B Uncompressed Size     00000DD5 (3541)\n+2214F Filename Length       0046 (70)\n+22151 Extra Length          0000 (0)\n+22153 Comment Length        0000 (0)\n+22155 Disk Start            0000 (0)\n+22157 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-21FD2 Ext File Attributes   81A40000 (2175008768)\n+22159 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-21FD6 Local Header Offset   0000E342 (58178)\n-21FDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2215D Local Header Offset   0000E40E (58382)\n+22161 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21FDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22161: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22020 CENTRAL HEADER #73    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+221A7 CENTRAL HEADER #73    02014B50 (33639248)\n+221AB Created Zip Spec      14 (20) '2.0'\n+221AC Created OS            03 (3) 'Unix'\n+221AD Extract Zip Spec      14 (20) '2.0'\n+221AE Extract OS            00 (0) 'MS-DOS'\n+221AF 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                   0593378C (93534092)\n-22034 Compressed Size       0000037E (894)\n-22038 Uncompressed Size     000009B6 (2486)\n-2203C Filename Length       003C (60)\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+221B1 Compression Method    0008 (8) 'Deflated'\n+221B3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+221B7 CRC                   0593378C (93534092)\n+221BB Compressed Size       0000037E (894)\n+221BF Uncompressed Size     000009B6 (2486)\n+221C3 Filename Length       003C (60)\n+221C5 Extra Length          0000 (0)\n+221C7 Comment Length        0000 (0)\n+221C9 Disk Start            0000 (0)\n+221CB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22046 Ext File Attributes   81A40000 (2175008768)\n+221CD 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   0000E792 (59282)\n-2204E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+221D1 Local Header Offset   0000E85E (59486)\n+221D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2204E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x221D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2208A CENTRAL HEADER #74    02014B50 (33639248)\n-2208E Created Zip Spec      14 (20) '2.0'\n-2208F Created OS            03 (3) 'Unix'\n-22090 Extract Zip Spec      14 (20) '2.0'\n-22091 Extract OS            00 (0) 'MS-DOS'\n-22092 General Purpose Flag  0800 (2048)\n+22211 CENTRAL HEADER #74    02014B50 (33639248)\n+22215 Created Zip Spec      14 (20) '2.0'\n+22216 Created OS            03 (3) 'Unix'\n+22217 Extract Zip Spec      14 (20) '2.0'\n+22218 Extract OS            00 (0) 'MS-DOS'\n+22219 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22094 Compression Method    0008 (8) 'Deflated'\n-22096 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2209A CRC                   B40DC99A (3020802458)\n-2209E Compressed Size       0000028D (653)\n-220A2 Uncompressed Size     00000516 (1302)\n-220A6 Filename Length       0037 (55)\n-220A8 Extra Length          0000 (0)\n-220AA Comment Length        0000 (0)\n-220AC Disk Start            0000 (0)\n-220AE Int File Attributes   0000 (0)\n+2221B Compression Method    0008 (8) 'Deflated'\n+2221D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22221 CRC                   B40DC99A (3020802458)\n+22225 Compressed Size       0000028D (653)\n+22229 Uncompressed Size     00000516 (1302)\n+2222D Filename Length       0037 (55)\n+2222F Extra Length          0000 (0)\n+22231 Comment Length        0000 (0)\n+22233 Disk Start            0000 (0)\n+22235 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-220B0 Ext File Attributes   81A40000 (2175008768)\n+22237 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-220B4 Local Header Offset   0000EB6A (60266)\n-220B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2223B Local Header Offset   0000EC36 (60470)\n+2223F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x220B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2223F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-220EF CENTRAL HEADER #75    02014B50 (33639248)\n-220F3 Created Zip Spec      14 (20) '2.0'\n-220F4 Created OS            03 (3) 'Unix'\n-220F5 Extract Zip Spec      14 (20) '2.0'\n-220F6 Extract OS            00 (0) 'MS-DOS'\n-220F7 General Purpose Flag  0800 (2048)\n+22276 CENTRAL HEADER #75    02014B50 (33639248)\n+2227A Created Zip Spec      14 (20) '2.0'\n+2227B Created OS            03 (3) 'Unix'\n+2227C Extract Zip Spec      14 (20) '2.0'\n+2227D Extract OS            00 (0) 'MS-DOS'\n+2227E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-220F9 Compression Method    0008 (8) 'Deflated'\n-220FB Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-220FF CRC                   27689F2C (661167916)\n-22103 Compressed Size       0000041D (1053)\n-22107 Uncompressed Size     00000AAA (2730)\n-2210B Filename Length       0041 (65)\n-2210D Extra Length          0000 (0)\n-2210F Comment Length        0000 (0)\n-22111 Disk Start            0000 (0)\n-22113 Int File Attributes   0000 (0)\n+22280 Compression Method    0008 (8) 'Deflated'\n+22282 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22286 CRC                   27689F2C (661167916)\n+2228A Compressed Size       0000041D (1053)\n+2228E Uncompressed Size     00000AAA (2730)\n+22292 Filename Length       0041 (65)\n+22294 Extra Length          0000 (0)\n+22296 Comment Length        0000 (0)\n+22298 Disk Start            0000 (0)\n+2229A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22115 Ext File Attributes   81A40000 (2175008768)\n+2229C 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-22119 Local Header Offset   0000EE4C (61004)\n-2211D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+222A0 Local Header Offset   0000EF18 (61208)\n+222A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2211D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x222A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2215E CENTRAL HEADER #76    02014B50 (33639248)\n-22162 Created Zip Spec      14 (20) '2.0'\n-22163 Created OS            03 (3) 'Unix'\n-22164 Extract Zip Spec      14 (20) '2.0'\n-22165 Extract OS            00 (0) 'MS-DOS'\n-22166 General Purpose Flag  0800 (2048)\n+222E5 CENTRAL HEADER #76    02014B50 (33639248)\n+222E9 Created Zip Spec      14 (20) '2.0'\n+222EA Created OS            03 (3) 'Unix'\n+222EB Extract Zip Spec      14 (20) '2.0'\n+222EC Extract OS            00 (0) 'MS-DOS'\n+222ED General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22168 Compression Method    0008 (8) 'Deflated'\n-2216A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2216E CRC                   3CE2D276 (1021497974)\n-22172 Compressed Size       00000445 (1093)\n-22176 Uncompressed Size     00000B3E (2878)\n-2217A Filename Length       0048 (72)\n-2217C Extra Length          0000 (0)\n-2217E Comment Length        0000 (0)\n-22180 Disk Start            0000 (0)\n-22182 Int File Attributes   0000 (0)\n+222EF Compression Method    0008 (8) 'Deflated'\n+222F1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+222F5 CRC                   E73F3737 (3879679799)\n+222F9 Compressed Size       0000044D (1101)\n+222FD Uncompressed Size     00000B9F (2975)\n+22301 Filename Length       0048 (72)\n+22303 Extra Length          0000 (0)\n+22305 Comment Length        0000 (0)\n+22307 Disk Start            0000 (0)\n+22309 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22184 Ext File Attributes   81A40000 (2175008768)\n+2230B 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-22188 Local Header Offset   0000F2C8 (62152)\n-2218C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2230F Local Header Offset   0000F394 (62356)\n+22313 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2218C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22313: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-221D4 CENTRAL HEADER #77    02014B50 (33639248)\n-221D8 Created Zip Spec      14 (20) '2.0'\n-221D9 Created OS            03 (3) 'Unix'\n-221DA Extract Zip Spec      14 (20) '2.0'\n-221DB Extract OS            00 (0) 'MS-DOS'\n-221DC General Purpose Flag  0800 (2048)\n+2235B CENTRAL HEADER #77    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-221DE Compression Method    0008 (8) 'Deflated'\n-221E0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-221E4 CRC                   BC922CD8 (3163696344)\n-221E8 Compressed Size       000003AE (942)\n-221EC Uncompressed Size     00000890 (2192)\n-221F0 Filename Length       0045 (69)\n-221F2 Extra Length          0000 (0)\n-221F4 Comment Length        0000 (0)\n-221F6 Disk Start            0000 (0)\n-221F8 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                   BC922CD8 (3163696344)\n+2236F Compressed Size       000003AE (942)\n+22373 Uncompressed Size     00000890 (2192)\n+22377 Filename Length       0045 (69)\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-221FA 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-221FE Local Header Offset   0000F773 (63347)\n-22202 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22385 Local Header Offset   0000F847 (63559)\n+22389 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22202: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22389: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22247 CENTRAL HEADER #78    02014B50 (33639248)\n-2224B Created Zip Spec      14 (20) '2.0'\n-2224C Created OS            03 (3) 'Unix'\n-2224D Extract Zip Spec      14 (20) '2.0'\n-2224E Extract OS            00 (0) 'MS-DOS'\n-2224F General Purpose Flag  0800 (2048)\n+223CE CENTRAL HEADER #78    02014B50 (33639248)\n+223D2 Created Zip Spec      14 (20) '2.0'\n+223D3 Created OS            03 (3) 'Unix'\n+223D4 Extract Zip Spec      14 (20) '2.0'\n+223D5 Extract OS            00 (0) 'MS-DOS'\n+223D6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22251 Compression Method    0008 (8) 'Deflated'\n-22253 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22257 CRC                   B13FDACC (2973752012)\n-2225B Compressed Size       0000081E (2078)\n-2225F Uncompressed Size     0000217A (8570)\n-22263 Filename Length       004C (76)\n-22265 Extra Length          0000 (0)\n-22267 Comment Length        0000 (0)\n-22269 Disk Start            0000 (0)\n-2226B Int File Attributes   0000 (0)\n+223D8 Compression Method    0008 (8) 'Deflated'\n+223DA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+223DE CRC                   B13FDACC (2973752012)\n+223E2 Compressed Size       0000081E (2078)\n+223E6 Uncompressed Size     0000217A (8570)\n+223EA Filename Length       004C (76)\n+223EC Extra Length          0000 (0)\n+223EE Comment Length        0000 (0)\n+223F0 Disk Start            0000 (0)\n+223F2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2226D Ext File Attributes   81A40000 (2175008768)\n+223F4 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-22271 Local Header Offset   0000FB84 (64388)\n-22275 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+223F8 Local Header Offset   0000FC58 (64600)\n+223FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22275: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x223FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-222C1 CENTRAL HEADER #79    02014B50 (33639248)\n-222C5 Created Zip Spec      14 (20) '2.0'\n-222C6 Created OS            03 (3) 'Unix'\n-222C7 Extract Zip Spec      14 (20) '2.0'\n-222C8 Extract OS            00 (0) 'MS-DOS'\n-222C9 General Purpose Flag  0800 (2048)\n+22448 CENTRAL HEADER #79    02014B50 (33639248)\n+2244C Created Zip Spec      14 (20) '2.0'\n+2244D Created OS            03 (3) 'Unix'\n+2244E Extract Zip Spec      14 (20) '2.0'\n+2244F Extract OS            00 (0) 'MS-DOS'\n+22450 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-222CB Compression Method    0008 (8) 'Deflated'\n-222CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-222D1 CRC                   2FB42746 (800335686)\n-222D5 Compressed Size       000007B7 (1975)\n-222D9 Uncompressed Size     00001E7B (7803)\n-222DD Filename Length       004B (75)\n-222DF Extra Length          0000 (0)\n-222E1 Comment Length        0000 (0)\n-222E3 Disk Start            0000 (0)\n-222E5 Int File Attributes   0000 (0)\n+22452 Compression Method    0008 (8) 'Deflated'\n+22454 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22458 CRC                   2FB42746 (800335686)\n+2245C Compressed Size       000007B7 (1975)\n+22460 Uncompressed Size     00001E7B (7803)\n+22464 Filename Length       004B (75)\n+22466 Extra Length          0000 (0)\n+22468 Comment Length        0000 (0)\n+2246A Disk Start            0000 (0)\n+2246C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-222E7 Ext File Attributes   81A40000 (2175008768)\n+2246E 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-222EB Local Header Offset   0001040C (66572)\n-222EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22472 Local Header Offset   000104E0 (66784)\n+22476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x222EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2233A CENTRAL HEADER #80    02014B50 (33639248)\n-2233E Created Zip Spec      14 (20) '2.0'\n-2233F Created OS            03 (3) 'Unix'\n-22340 Extract Zip Spec      14 (20) '2.0'\n-22341 Extract OS            00 (0) 'MS-DOS'\n-22342 General Purpose Flag  0800 (2048)\n+224C1 CENTRAL HEADER #80    02014B50 (33639248)\n+224C5 Created Zip Spec      14 (20) '2.0'\n+224C6 Created OS            03 (3) 'Unix'\n+224C7 Extract Zip Spec      14 (20) '2.0'\n+224C8 Extract OS            00 (0) 'MS-DOS'\n+224C9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22344 Compression Method    0008 (8) 'Deflated'\n-22346 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2234A CRC                   C01CAB2E (3223104302)\n-2234E Compressed Size       000008DD (2269)\n-22352 Uncompressed Size     0000247E (9342)\n-22356 Filename Length       004C (76)\n-22358 Extra Length          0000 (0)\n-2235A Comment Length        0000 (0)\n-2235C Disk Start            0000 (0)\n-2235E Int File Attributes   0000 (0)\n+224CB Compression Method    0008 (8) 'Deflated'\n+224CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+224D1 CRC                   C01CAB2E (3223104302)\n+224D5 Compressed Size       000008DD (2269)\n+224D9 Uncompressed Size     0000247E (9342)\n+224DD Filename Length       004C (76)\n+224DF Extra Length          0000 (0)\n+224E1 Comment Length        0000 (0)\n+224E3 Disk Start            0000 (0)\n+224E5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22360 Ext File Attributes   81A40000 (2175008768)\n+224E7 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-22364 Local Header Offset   00010C2C (68652)\n-22368 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+224EB Local Header Offset   00010D00 (68864)\n+224EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22368: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x224EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-223B4 CENTRAL HEADER #81    02014B50 (33639248)\n-223B8 Created Zip Spec      14 (20) '2.0'\n-223B9 Created OS            03 (3) 'Unix'\n-223BA Extract Zip Spec      14 (20) '2.0'\n-223BB Extract OS            00 (0) 'MS-DOS'\n-223BC General Purpose Flag  0800 (2048)\n+2253B CENTRAL HEADER #81    02014B50 (33639248)\n+2253F Created Zip Spec      14 (20) '2.0'\n+22540 Created OS            03 (3) 'Unix'\n+22541 Extract Zip Spec      14 (20) '2.0'\n+22542 Extract OS            00 (0) 'MS-DOS'\n+22543 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-223BE Compression Method    0008 (8) 'Deflated'\n-223C0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-223C4 CRC                   6C372682 (1815553666)\n-223C8 Compressed Size       000009AA (2474)\n-223CC Uncompressed Size     000024E2 (9442)\n-223D0 Filename Length       004B (75)\n-223D2 Extra Length          0000 (0)\n-223D4 Comment Length        0000 (0)\n-223D6 Disk Start            0000 (0)\n-223D8 Int File Attributes   0000 (0)\n+22545 Compression Method    0008 (8) 'Deflated'\n+22547 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2254B CRC                   6C372682 (1815553666)\n+2254F Compressed Size       000009AA (2474)\n+22553 Uncompressed Size     000024E2 (9442)\n+22557 Filename Length       004B (75)\n+22559 Extra Length          0000 (0)\n+2255B Comment Length        0000 (0)\n+2255D Disk Start            0000 (0)\n+2255F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-223DA Ext File Attributes   81A40000 (2175008768)\n+22561 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-223DE Local Header Offset   00011573 (71027)\n-223E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22565 Local Header Offset   00011647 (71239)\n+22569 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x223E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22569: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2242D CENTRAL HEADER #82    02014B50 (33639248)\n-22431 Created Zip Spec      14 (20) '2.0'\n-22432 Created OS            03 (3) 'Unix'\n-22433 Extract Zip Spec      14 (20) '2.0'\n-22434 Extract OS            00 (0) 'MS-DOS'\n-22435 General Purpose Flag  0800 (2048)\n+225B4 CENTRAL HEADER #82    02014B50 (33639248)\n+225B8 Created Zip Spec      14 (20) '2.0'\n+225B9 Created OS            03 (3) 'Unix'\n+225BA Extract Zip Spec      14 (20) '2.0'\n+225BB Extract OS            00 (0) 'MS-DOS'\n+225BC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22437 Compression Method    0008 (8) 'Deflated'\n-22439 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2243D CRC                   7F591FA6 (2136547238)\n-22441 Compressed Size       000002F6 (758)\n-22445 Uncompressed Size     0000079B (1947)\n-22449 Filename Length       0046 (70)\n-2244B Extra Length          0000 (0)\n-2244D Comment Length        0000 (0)\n-2244F Disk Start            0000 (0)\n-22451 Int File Attributes   0000 (0)\n+225BE Compression Method    0008 (8) 'Deflated'\n+225C0 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+225C4 CRC                   7F591FA6 (2136547238)\n+225C8 Compressed Size       000002F6 (758)\n+225CC Uncompressed Size     0000079B (1947)\n+225D0 Filename Length       0046 (70)\n+225D2 Extra Length          0000 (0)\n+225D4 Comment Length        0000 (0)\n+225D6 Disk Start            0000 (0)\n+225D8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22453 Ext File Attributes   81A40000 (2175008768)\n+225DA 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-22457 Local Header Offset   00011F86 (73606)\n-2245B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+225DE Local Header Offset   0001205A (73818)\n+225E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2245B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x225E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-224A1 CENTRAL HEADER #83    02014B50 (33639248)\n-224A5 Created Zip Spec      14 (20) '2.0'\n-224A6 Created OS            03 (3) 'Unix'\n-224A7 Extract Zip Spec      14 (20) '2.0'\n-224A8 Extract OS            00 (0) 'MS-DOS'\n-224A9 General Purpose Flag  0800 (2048)\n+22628 CENTRAL HEADER #83    02014B50 (33639248)\n+2262C Created Zip Spec      14 (20) '2.0'\n+2262D Created OS            03 (3) 'Unix'\n+2262E Extract Zip Spec      14 (20) '2.0'\n+2262F Extract OS            00 (0) 'MS-DOS'\n+22630 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-224AB Compression Method    0008 (8) 'Deflated'\n-224AD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-224B1 CRC                   229A16D5 (580523733)\n-224B5 Compressed Size       0000054B (1355)\n-224B9 Uncompressed Size     00001172 (4466)\n-224BD Filename Length       0047 (71)\n-224BF Extra Length          0000 (0)\n-224C1 Comment Length        0000 (0)\n-224C3 Disk Start            0000 (0)\n-224C5 Int File Attributes   0000 (0)\n+22632 Compression Method    0008 (8) 'Deflated'\n+22634 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22638 CRC                   BBC269CA (3150080458)\n+2263C Compressed Size       00000553 (1363)\n+22640 Uncompressed Size     000011E6 (4582)\n+22644 Filename Length       0047 (71)\n+22646 Extra Length          0000 (0)\n+22648 Comment Length        0000 (0)\n+2264A Disk Start            0000 (0)\n+2264C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-224C7 Ext File Attributes   81A40000 (2175008768)\n+2264E 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-224CB Local Header Offset   000122E0 (74464)\n-224CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22652 Local Header Offset   000123B4 (74676)\n+22656 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x224CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22656: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22516 CENTRAL HEADER #84    02014B50 (33639248)\n-2251A Created Zip Spec      14 (20) '2.0'\n-2251B Created OS            03 (3) 'Unix'\n-2251C Extract Zip Spec      14 (20) '2.0'\n-2251D Extract OS            00 (0) 'MS-DOS'\n-2251E General Purpose Flag  0800 (2048)\n+2269D CENTRAL HEADER #84    02014B50 (33639248)\n+226A1 Created Zip Spec      14 (20) '2.0'\n+226A2 Created OS            03 (3) 'Unix'\n+226A3 Extract Zip Spec      14 (20) '2.0'\n+226A4 Extract OS            00 (0) 'MS-DOS'\n+226A5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22520 Compression Method    0008 (8) 'Deflated'\n-22522 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22526 CRC                   6C52AC25 (1817357349)\n-2252A Compressed Size       0000041F (1055)\n-2252E Uncompressed Size     00000A2F (2607)\n-22532 Filename Length       0049 (73)\n-22534 Extra Length          0000 (0)\n-22536 Comment Length        0000 (0)\n-22538 Disk Start            0000 (0)\n-2253A Int File Attributes   0000 (0)\n+226A7 Compression Method    0008 (8) 'Deflated'\n+226A9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+226AD CRC                   CCFFACEF (3439308015)\n+226B1 Compressed Size       00000428 (1064)\n+226B5 Uncompressed Size     00000A6F (2671)\n+226B9 Filename Length       0049 (73)\n+226BB Extra Length          0000 (0)\n+226BD Comment Length        0000 (0)\n+226BF Disk Start            0000 (0)\n+226C1 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2253C Ext File Attributes   81A40000 (2175008768)\n+226C3 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-22540 Local Header Offset   00012890 (75920)\n-22544 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+226C7 Local Header Offset   0001296C (76140)\n+226CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22544: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x226CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2258D CENTRAL HEADER #85    02014B50 (33639248)\n-22591 Created Zip Spec      14 (20) '2.0'\n-22592 Created OS            03 (3) 'Unix'\n-22593 Extract Zip Spec      14 (20) '2.0'\n-22594 Extract OS            00 (0) 'MS-DOS'\n-22595 General Purpose Flag  0800 (2048)\n+22714 CENTRAL HEADER #85    02014B50 (33639248)\n+22718 Created Zip Spec      14 (20) '2.0'\n+22719 Created OS            03 (3) 'Unix'\n+2271A Extract Zip Spec      14 (20) '2.0'\n+2271B Extract OS            00 (0) 'MS-DOS'\n+2271C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22597 Compression Method    0008 (8) 'Deflated'\n-22599 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2259D CRC                   39DE0130 (970850608)\n-225A1 Compressed Size       00000430 (1072)\n-225A5 Uncompressed Size     00000AD0 (2768)\n-225A9 Filename Length       0049 (73)\n-225AB Extra Length          0000 (0)\n-225AD Comment Length        0000 (0)\n-225AF Disk Start            0000 (0)\n-225B1 Int File Attributes   0000 (0)\n+2271E Compression Method    0008 (8) 'Deflated'\n+22720 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22724 CRC                   39DE0130 (970850608)\n+22728 Compressed Size       00000430 (1072)\n+2272C Uncompressed Size     00000AD0 (2768)\n+22730 Filename Length       0049 (73)\n+22732 Extra Length          0000 (0)\n+22734 Comment Length        0000 (0)\n+22736 Disk Start            0000 (0)\n+22738 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-225B3 Ext File Attributes   81A40000 (2175008768)\n+2273A 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-225B7 Local Header Offset   00012D16 (77078)\n-225BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2273E Local Header Offset   00012DFB (77307)\n+22742 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x225BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22742: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22604 CENTRAL HEADER #86    02014B50 (33639248)\n-22608 Created Zip Spec      14 (20) '2.0'\n-22609 Created OS            03 (3) 'Unix'\n-2260A Extract Zip Spec      14 (20) '2.0'\n-2260B Extract OS            00 (0) 'MS-DOS'\n-2260C General Purpose Flag  0800 (2048)\n+2278B CENTRAL HEADER #86    02014B50 (33639248)\n+2278F Created Zip Spec      14 (20) '2.0'\n+22790 Created OS            03 (3) 'Unix'\n+22791 Extract Zip Spec      14 (20) '2.0'\n+22792 Extract OS            00 (0) 'MS-DOS'\n+22793 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2260E Compression Method    0008 (8) 'Deflated'\n-22610 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22614 CRC                   1A03F22E (436466222)\n-22618 Compressed Size       0000026F (623)\n-2261C Uncompressed Size     000004DF (1247)\n-22620 Filename Length       0033 (51)\n-22622 Extra Length          0000 (0)\n-22624 Comment Length        0000 (0)\n-22626 Disk Start            0000 (0)\n-22628 Int File Attributes   0000 (0)\n+22795 Compression Method    0008 (8) 'Deflated'\n+22797 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2279B CRC                   1A03F22E (436466222)\n+2279F Compressed Size       0000026F (623)\n+227A3 Uncompressed Size     000004DF (1247)\n+227A7 Filename Length       0033 (51)\n+227A9 Extra Length          0000 (0)\n+227AB Comment Length        0000 (0)\n+227AD Disk Start            0000 (0)\n+227AF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2262A Ext File Attributes   81A40000 (2175008768)\n+227B1 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-2262E Local Header Offset   000131AD (78253)\n-22632 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+227B5 Local Header Offset   00013292 (78482)\n+227B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22632: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x227B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22665 CENTRAL HEADER #87    02014B50 (33639248)\n-22669 Created Zip Spec      14 (20) '2.0'\n-2266A Created OS            03 (3) 'Unix'\n-2266B Extract Zip Spec      14 (20) '2.0'\n-2266C Extract OS            00 (0) 'MS-DOS'\n-2266D General Purpose Flag  0800 (2048)\n+227EC CENTRAL HEADER #87    02014B50 (33639248)\n+227F0 Created Zip Spec      14 (20) '2.0'\n+227F1 Created OS            03 (3) 'Unix'\n+227F2 Extract Zip Spec      14 (20) '2.0'\n+227F3 Extract OS            00 (0) 'MS-DOS'\n+227F4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2266F Compression Method    0008 (8) 'Deflated'\n-22671 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22675 CRC                   DBE899CA (3689454026)\n-22679 Compressed Size       00000B09 (2825)\n-2267D Uncompressed Size     00002E6D (11885)\n-22681 Filename Length       0037 (55)\n-22683 Extra Length          0000 (0)\n-22685 Comment Length        0000 (0)\n-22687 Disk Start            0000 (0)\n-22689 Int File Attributes   0000 (0)\n+227F6 Compression Method    0008 (8) 'Deflated'\n+227F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+227FC CRC                   DBE899CA (3689454026)\n+22800 Compressed Size       00000B09 (2825)\n+22804 Uncompressed Size     00002E6D (11885)\n+22808 Filename Length       0037 (55)\n+2280A Extra Length          0000 (0)\n+2280C Comment Length        0000 (0)\n+2280E Disk Start            0000 (0)\n+22810 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2268B Ext File Attributes   81A40000 (2175008768)\n+22812 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-2268F Local Header Offset   0001346D (78957)\n-22693 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22816 Local Header Offset   00013552 (79186)\n+2281A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22693: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2281A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-226CA CENTRAL HEADER #88    02014B50 (33639248)\n-226CE Created Zip Spec      14 (20) '2.0'\n-226CF Created OS            03 (3) 'Unix'\n-226D0 Extract Zip Spec      14 (20) '2.0'\n-226D1 Extract OS            00 (0) 'MS-DOS'\n-226D2 General Purpose Flag  0800 (2048)\n+22851 CENTRAL HEADER #88    02014B50 (33639248)\n+22855 Created Zip Spec      14 (20) '2.0'\n+22856 Created OS            03 (3) 'Unix'\n+22857 Extract Zip Spec      14 (20) '2.0'\n+22858 Extract OS            00 (0) 'MS-DOS'\n+22859 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-226D4 Compression Method    0008 (8) 'Deflated'\n-226D6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-226DA CRC                   91FB3CEA (2449161450)\n-226DE Compressed Size       0000028B (651)\n-226E2 Uncompressed Size     00000518 (1304)\n-226E6 Filename Length       0032 (50)\n-226E8 Extra Length          0000 (0)\n-226EA Comment Length        0000 (0)\n-226EC Disk Start            0000 (0)\n-226EE Int File Attributes   0000 (0)\n+2285B Compression Method    0008 (8) 'Deflated'\n+2285D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22861 CRC                   91FB3CEA (2449161450)\n+22865 Compressed Size       0000028B (651)\n+22869 Uncompressed Size     00000518 (1304)\n+2286D Filename Length       0032 (50)\n+2286F Extra Length          0000 (0)\n+22871 Comment Length        0000 (0)\n+22873 Disk Start            0000 (0)\n+22875 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-226F0 Ext File Attributes   81A40000 (2175008768)\n+22877 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-226F4 Local Header Offset   00013FCB (81867)\n-226F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2287B Local Header Offset   000140B0 (82096)\n+2287F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x226F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2287F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2272A CENTRAL HEADER #89    02014B50 (33639248)\n-2272E Created Zip Spec      14 (20) '2.0'\n-2272F Created OS            03 (3) 'Unix'\n-22730 Extract Zip Spec      14 (20) '2.0'\n-22731 Extract OS            00 (0) 'MS-DOS'\n-22732 General Purpose Flag  0800 (2048)\n+228B1 CENTRAL HEADER #89    02014B50 (33639248)\n+228B5 Created Zip Spec      14 (20) '2.0'\n+228B6 Created OS            03 (3) 'Unix'\n+228B7 Extract Zip Spec      14 (20) '2.0'\n+228B8 Extract OS            00 (0) 'MS-DOS'\n+228B9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22734 Compression Method    0008 (8) 'Deflated'\n-22736 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2273A CRC                   492B287D (1227565181)\n-2273E Compressed Size       0000052C (1324)\n-22742 Uncompressed Size     00000FCE (4046)\n-22746 Filename Length       0042 (66)\n-22748 Extra Length          0000 (0)\n-2274A Comment Length        0000 (0)\n-2274C Disk Start            0000 (0)\n-2274E Int File Attributes   0000 (0)\n+228BB Compression Method    0008 (8) 'Deflated'\n+228BD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+228C1 CRC                   492B287D (1227565181)\n+228C5 Compressed Size       0000052C (1324)\n+228C9 Uncompressed Size     00000FCE (4046)\n+228CD Filename Length       0042 (66)\n+228CF Extra Length          0000 (0)\n+228D1 Comment Length        0000 (0)\n+228D3 Disk Start            0000 (0)\n+228D5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22750 Ext File Attributes   81A40000 (2175008768)\n+228D7 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-22754 Local Header Offset   000142A6 (82598)\n-22758 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+228DB Local Header Offset   0001438B (82827)\n+228DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22758: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x228DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2279A CENTRAL HEADER #90    02014B50 (33639248)\n-2279E Created Zip Spec      14 (20) '2.0'\n-2279F Created OS            03 (3) 'Unix'\n-227A0 Extract Zip Spec      14 (20) '2.0'\n-227A1 Extract OS            00 (0) 'MS-DOS'\n-227A2 General Purpose Flag  0800 (2048)\n+22921 CENTRAL HEADER #90    02014B50 (33639248)\n+22925 Created Zip Spec      14 (20) '2.0'\n+22926 Created OS            03 (3) 'Unix'\n+22927 Extract Zip Spec      14 (20) '2.0'\n+22928 Extract OS            00 (0) 'MS-DOS'\n+22929 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-227A4 Compression Method    0008 (8) 'Deflated'\n-227A6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-227AA CRC                   EB3BD2B9 (3946566329)\n-227AE Compressed Size       00000530 (1328)\n-227B2 Uncompressed Size     0000169D (5789)\n-227B6 Filename Length       0039 (57)\n-227B8 Extra Length          0000 (0)\n-227BA Comment Length        0000 (0)\n-227BC Disk Start            0000 (0)\n-227BE Int File Attributes   0000 (0)\n+2292B Compression Method    0008 (8) 'Deflated'\n+2292D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22931 CRC                   EB3BD2B9 (3946566329)\n+22935 Compressed Size       00000530 (1328)\n+22939 Uncompressed Size     0000169D (5789)\n+2293D Filename Length       0039 (57)\n+2293F Extra Length          0000 (0)\n+22941 Comment Length        0000 (0)\n+22943 Disk Start            0000 (0)\n+22945 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-227C0 Ext File Attributes   81A40000 (2175008768)\n+22947 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-227C4 Local Header Offset   00014832 (84018)\n-227C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2294B Local Header Offset   00014917 (84247)\n+2294F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x227C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2294F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22801 CENTRAL HEADER #91    02014B50 (33639248)\n-22805 Created Zip Spec      14 (20) '2.0'\n-22806 Created OS            03 (3) 'Unix'\n-22807 Extract Zip Spec      14 (20) '2.0'\n-22808 Extract OS            00 (0) 'MS-DOS'\n-22809 General Purpose Flag  0800 (2048)\n+22988 CENTRAL HEADER #91    02014B50 (33639248)\n+2298C Created Zip Spec      14 (20) '2.0'\n+2298D Created OS            03 (3) 'Unix'\n+2298E Extract Zip Spec      14 (20) '2.0'\n+2298F Extract OS            00 (0) 'MS-DOS'\n+22990 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2280B Compression Method    0008 (8) 'Deflated'\n-2280D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22811 CRC                   74498D23 (1950977315)\n-22815 Compressed Size       0000034E (846)\n-22819 Uncompressed Size     00000738 (1848)\n-2281D Filename Length       0048 (72)\n-2281F Extra Length          0000 (0)\n-22821 Comment Length        0000 (0)\n-22823 Disk Start            0000 (0)\n-22825 Int File Attributes   0000 (0)\n+22992 Compression Method    0008 (8) 'Deflated'\n+22994 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22998 CRC                   74498D23 (1950977315)\n+2299C Compressed Size       0000034E (846)\n+229A0 Uncompressed Size     00000738 (1848)\n+229A4 Filename Length       0048 (72)\n+229A6 Extra Length          0000 (0)\n+229A8 Comment Length        0000 (0)\n+229AA Disk Start            0000 (0)\n+229AC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22827 Ext File Attributes   81A40000 (2175008768)\n+229AE 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-2282B Local Header Offset   00014DB9 (85433)\n-2282F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+229B2 Local Header Offset   00014E9E (85662)\n+229B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2282F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x229B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22877 CENTRAL HEADER #92    02014B50 (33639248)\n-2287B Created Zip Spec      14 (20) '2.0'\n-2287C Created OS            03 (3) 'Unix'\n-2287D Extract Zip Spec      14 (20) '2.0'\n-2287E Extract OS            00 (0) 'MS-DOS'\n-2287F General Purpose Flag  0800 (2048)\n+229FE CENTRAL HEADER #92    02014B50 (33639248)\n+22A02 Created Zip Spec      14 (20) '2.0'\n+22A03 Created OS            03 (3) 'Unix'\n+22A04 Extract Zip Spec      14 (20) '2.0'\n+22A05 Extract OS            00 (0) 'MS-DOS'\n+22A06 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22881 Compression Method    0008 (8) 'Deflated'\n-22883 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22887 CRC                   C2DA4C0E (3269086222)\n-2288B Compressed Size       000002B1 (689)\n-2288F Uncompressed Size     00000581 (1409)\n-22893 Filename Length       0047 (71)\n-22895 Extra Length          0000 (0)\n-22897 Comment Length        0000 (0)\n-22899 Disk Start            0000 (0)\n-2289B Int File Attributes   0000 (0)\n+22A08 Compression Method    0008 (8) 'Deflated'\n+22A0A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22A0E CRC                   C2DA4C0E (3269086222)\n+22A12 Compressed Size       000002B1 (689)\n+22A16 Uncompressed Size     00000581 (1409)\n+22A1A Filename Length       0047 (71)\n+22A1C Extra Length          0000 (0)\n+22A1E Comment Length        0000 (0)\n+22A20 Disk Start            0000 (0)\n+22A22 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2289D Ext File Attributes   81A40000 (2175008768)\n+22A24 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-228A1 Local Header Offset   0001516D (86381)\n-228A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22A28 Local Header Offset   00015252 (86610)\n+22A2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x228A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22A2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-228EC CENTRAL HEADER #93    02014B50 (33639248)\n-228F0 Created Zip Spec      14 (20) '2.0'\n-228F1 Created OS            03 (3) 'Unix'\n-228F2 Extract Zip Spec      14 (20) '2.0'\n-228F3 Extract OS            00 (0) 'MS-DOS'\n-228F4 General Purpose Flag  0800 (2048)\n+22A73 CENTRAL HEADER #93    02014B50 (33639248)\n+22A77 Created Zip Spec      14 (20) '2.0'\n+22A78 Created OS            03 (3) 'Unix'\n+22A79 Extract Zip Spec      14 (20) '2.0'\n+22A7A Extract OS            00 (0) 'MS-DOS'\n+22A7B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-228F6 Compression Method    0008 (8) 'Deflated'\n-228F8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-228FC CRC                   A166D974 (2707872116)\n-22900 Compressed Size       000004DD (1245)\n-22904 Uncompressed Size     00000E50 (3664)\n-22908 Filename Length       0047 (71)\n-2290A Extra Length          0000 (0)\n-2290C Comment Length        0000 (0)\n-2290E Disk Start            0000 (0)\n-22910 Int File Attributes   0000 (0)\n+22A7D Compression Method    0008 (8) 'Deflated'\n+22A7F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22A83 CRC                   A166D974 (2707872116)\n+22A87 Compressed Size       000004DD (1245)\n+22A8B Uncompressed Size     00000E50 (3664)\n+22A8F Filename Length       0047 (71)\n+22A91 Extra Length          0000 (0)\n+22A93 Comment Length        0000 (0)\n+22A95 Disk Start            0000 (0)\n+22A97 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22912 Ext File Attributes   81A40000 (2175008768)\n+22A99 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-22916 Local Header Offset   00015483 (87171)\n-2291A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22A9D Local Header Offset   00015568 (87400)\n+22AA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2291A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22AA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22961 CENTRAL HEADER #94    02014B50 (33639248)\n-22965 Created Zip Spec      14 (20) '2.0'\n-22966 Created OS            03 (3) 'Unix'\n-22967 Extract Zip Spec      14 (20) '2.0'\n-22968 Extract OS            00 (0) 'MS-DOS'\n-22969 General Purpose Flag  0800 (2048)\n+22AE8 CENTRAL HEADER #94    02014B50 (33639248)\n+22AEC Created Zip Spec      14 (20) '2.0'\n+22AED Created OS            03 (3) 'Unix'\n+22AEE Extract Zip Spec      14 (20) '2.0'\n+22AEF Extract OS            00 (0) 'MS-DOS'\n+22AF0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2296B Compression Method    0008 (8) 'Deflated'\n-2296D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22971 CRC                   F227F3D5 (4062704597)\n-22975 Compressed Size       000005DA (1498)\n-22979 Uncompressed Size     0000107D (4221)\n-2297D Filename Length       0046 (70)\n-2297F Extra Length          0000 (0)\n-22981 Comment Length        0000 (0)\n-22983 Disk Start            0000 (0)\n-22985 Int File Attributes   0000 (0)\n+22AF2 Compression Method    0008 (8) 'Deflated'\n+22AF4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22AF8 CRC                   07F19A54 (133274196)\n+22AFC Compressed Size       000005E6 (1510)\n+22B00 Uncompressed Size     000010DC (4316)\n+22B04 Filename Length       0046 (70)\n+22B06 Extra Length          0000 (0)\n+22B08 Comment Length        0000 (0)\n+22B0A Disk Start            0000 (0)\n+22B0C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22987 Ext File Attributes   81A40000 (2175008768)\n+22B0E 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-2298B Local Header Offset   000159C5 (88517)\n-2298F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22B12 Local Header Offset   00015AAA (88746)\n+22B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2298F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-229D5 CENTRAL HEADER #95    02014B50 (33639248)\n-229D9 Created Zip Spec      14 (20) '2.0'\n-229DA Created OS            03 (3) 'Unix'\n-229DB Extract Zip Spec      14 (20) '2.0'\n-229DC Extract OS            00 (0) 'MS-DOS'\n-229DD General Purpose Flag  0800 (2048)\n+22B5C CENTRAL HEADER #95    02014B50 (33639248)\n+22B60 Created Zip Spec      14 (20) '2.0'\n+22B61 Created OS            03 (3) 'Unix'\n+22B62 Extract Zip Spec      14 (20) '2.0'\n+22B63 Extract OS            00 (0) 'MS-DOS'\n+22B64 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-229DF Compression Method    0008 (8) 'Deflated'\n-229E1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-229E5 CRC                   F5209683 (4112553603)\n-229E9 Compressed Size       0000058D (1421)\n-229ED Uncompressed Size     00001210 (4624)\n-229F1 Filename Length       0049 (73)\n-229F3 Extra Length          0000 (0)\n-229F5 Comment Length        0000 (0)\n-229F7 Disk Start            0000 (0)\n-229F9 Int File Attributes   0000 (0)\n+22B66 Compression Method    0008 (8) 'Deflated'\n+22B68 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22B6C CRC                   F5209683 (4112553603)\n+22B70 Compressed Size       0000058D (1421)\n+22B74 Uncompressed Size     00001210 (4624)\n+22B78 Filename Length       0049 (73)\n+22B7A Extra Length          0000 (0)\n+22B7C Comment Length        0000 (0)\n+22B7E Disk Start            0000 (0)\n+22B80 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-229FB Ext File Attributes   81A40000 (2175008768)\n+22B82 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-229FF Local Header Offset   00016003 (90115)\n-22A03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22B86 Local Header Offset   000160F4 (90356)\n+22B8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22A03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22B8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22A4C CENTRAL HEADER #96    02014B50 (33639248)\n-22A50 Created Zip Spec      14 (20) '2.0'\n-22A51 Created OS            03 (3) 'Unix'\n-22A52 Extract Zip Spec      14 (20) '2.0'\n-22A53 Extract OS            00 (0) 'MS-DOS'\n-22A54 General Purpose Flag  0800 (2048)\n+22BD3 CENTRAL HEADER #96    02014B50 (33639248)\n+22BD7 Created Zip Spec      14 (20) '2.0'\n+22BD8 Created OS            03 (3) 'Unix'\n+22BD9 Extract Zip Spec      14 (20) '2.0'\n+22BDA Extract OS            00 (0) 'MS-DOS'\n+22BDB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22A56 Compression Method    0008 (8) 'Deflated'\n-22A58 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22A5C CRC                   A7E27376 (2816635766)\n-22A60 Compressed Size       00000352 (850)\n-22A64 Uncompressed Size     0000076D (1901)\n-22A68 Filename Length       0038 (56)\n-22A6A Extra Length          0000 (0)\n-22A6C Comment Length        0000 (0)\n-22A6E Disk Start            0000 (0)\n-22A70 Int File Attributes   0000 (0)\n+22BDD Compression Method    0008 (8) 'Deflated'\n+22BDF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22BE3 CRC                   A7E27376 (2816635766)\n+22BE7 Compressed Size       00000352 (850)\n+22BEB Uncompressed Size     0000076D (1901)\n+22BEF Filename Length       0038 (56)\n+22BF1 Extra Length          0000 (0)\n+22BF3 Comment Length        0000 (0)\n+22BF5 Disk Start            0000 (0)\n+22BF7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22A72 Ext File Attributes   81A40000 (2175008768)\n+22BF9 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-22A76 Local Header Offset   000165F7 (91639)\n-22A7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22BFD Local Header Offset   000166E8 (91880)\n+22C01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22A7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22C01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22AB2 CENTRAL HEADER #97    02014B50 (33639248)\n-22AB6 Created Zip Spec      14 (20) '2.0'\n-22AB7 Created OS            03 (3) 'Unix'\n-22AB8 Extract Zip Spec      14 (20) '2.0'\n-22AB9 Extract OS            00 (0) 'MS-DOS'\n-22ABA General Purpose Flag  0800 (2048)\n+22C39 CENTRAL HEADER #97    02014B50 (33639248)\n+22C3D Created Zip Spec      14 (20) '2.0'\n+22C3E Created OS            03 (3) 'Unix'\n+22C3F Extract Zip Spec      14 (20) '2.0'\n+22C40 Extract OS            00 (0) 'MS-DOS'\n+22C41 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22ABC Compression Method    0008 (8) 'Deflated'\n-22ABE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22AC2 CRC                   28520740 (676464448)\n-22AC6 Compressed Size       0000032C (812)\n-22ACA Uncompressed Size     00000910 (2320)\n-22ACE Filename Length       0047 (71)\n-22AD0 Extra Length          0000 (0)\n-22AD2 Comment Length        0000 (0)\n-22AD4 Disk Start            0000 (0)\n-22AD6 Int File Attributes   0000 (0)\n+22C43 Compression Method    0008 (8) 'Deflated'\n+22C45 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22C49 CRC                   28520740 (676464448)\n+22C4D Compressed Size       0000032C (812)\n+22C51 Uncompressed Size     00000910 (2320)\n+22C55 Filename Length       0047 (71)\n+22C57 Extra Length          0000 (0)\n+22C59 Comment Length        0000 (0)\n+22C5B Disk Start            0000 (0)\n+22C5D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22AD8 Ext File Attributes   81A40000 (2175008768)\n+22C5F 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-22ADC Local Header Offset   0001699F (92575)\n-22AE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22C63 Local Header Offset   00016A90 (92816)\n+22C67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22AE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22C67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22B27 CENTRAL HEADER #98    02014B50 (33639248)\n-22B2B Created Zip Spec      14 (20) '2.0'\n-22B2C Created OS            03 (3) 'Unix'\n-22B2D Extract Zip Spec      14 (20) '2.0'\n-22B2E Extract OS            00 (0) 'MS-DOS'\n-22B2F General Purpose Flag  0800 (2048)\n+22CAE CENTRAL HEADER #98    02014B50 (33639248)\n+22CB2 Created Zip Spec      14 (20) '2.0'\n+22CB3 Created OS            03 (3) 'Unix'\n+22CB4 Extract Zip Spec      14 (20) '2.0'\n+22CB5 Extract OS            00 (0) 'MS-DOS'\n+22CB6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22B31 Compression Method    0008 (8) 'Deflated'\n-22B33 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22B37 CRC                   C60919F1 (3322485233)\n-22B3B Compressed Size       00000991 (2449)\n-22B3F Uncompressed Size     00002E58 (11864)\n-22B43 Filename Length       0037 (55)\n-22B45 Extra Length          0000 (0)\n-22B47 Comment Length        0000 (0)\n-22B49 Disk Start            0000 (0)\n-22B4B Int File Attributes   0000 (0)\n+22CB8 Compression Method    0008 (8) 'Deflated'\n+22CBA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22CBE CRC                   B8E0F8E9 (3101751529)\n+22CC2 Compressed Size       000009A0 (2464)\n+22CC6 Uncompressed Size     00002FAF (12207)\n+22CCA Filename Length       0037 (55)\n+22CCC Extra Length          0000 (0)\n+22CCE Comment Length        0000 (0)\n+22CD0 Disk Start            0000 (0)\n+22CD2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22B4D Ext File Attributes   81A40000 (2175008768)\n+22CD4 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-22B51 Local Header Offset   00016D30 (93488)\n-22B55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22CD8 Local Header Offset   00016E21 (93729)\n+22CDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22B55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22CDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22B8C CENTRAL HEADER #99    02014B50 (33639248)\n-22B90 Created Zip Spec      14 (20) '2.0'\n-22B91 Created OS            03 (3) 'Unix'\n-22B92 Extract Zip Spec      14 (20) '2.0'\n-22B93 Extract OS            00 (0) 'MS-DOS'\n-22B94 General Purpose Flag  0800 (2048)\n+22D13 CENTRAL HEADER #99    02014B50 (33639248)\n+22D17 Created Zip Spec      14 (20) '2.0'\n+22D18 Created OS            03 (3) 'Unix'\n+22D19 Extract Zip Spec      14 (20) '2.0'\n+22D1A Extract OS            00 (0) 'MS-DOS'\n+22D1B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22B96 Compression Method    0008 (8) 'Deflated'\n-22B98 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22B9C CRC                   C68A09E8 (3330935272)\n-22BA0 Compressed Size       00000525 (1317)\n-22BA4 Uncompressed Size     00000F96 (3990)\n-22BA8 Filename Length       0036 (54)\n-22BAA Extra Length          0000 (0)\n-22BAC Comment Length        0000 (0)\n-22BAE Disk Start            0000 (0)\n-22BB0 Int File Attributes   0000 (0)\n+22D1D Compression Method    0008 (8) 'Deflated'\n+22D1F Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22D23 CRC                   191CDF67 (421322599)\n+22D27 Compressed Size       0000052E (1326)\n+22D2B Uncompressed Size     00001001 (4097)\n+22D2F Filename Length       0036 (54)\n+22D31 Extra Length          0000 (0)\n+22D33 Comment Length        0000 (0)\n+22D35 Disk Start            0000 (0)\n+22D37 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22BB2 Ext File Attributes   81A40000 (2175008768)\n+22D39 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-22BB6 Local Header Offset   00017716 (96022)\n-22BBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22D3D Local Header Offset   00017816 (96278)\n+22D41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22BBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22D41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22BF0 CENTRAL HEADER #100   02014B50 (33639248)\n-22BF4 Created Zip Spec      14 (20) '2.0'\n-22BF5 Created OS            03 (3) 'Unix'\n-22BF6 Extract Zip Spec      14 (20) '2.0'\n-22BF7 Extract OS            00 (0) 'MS-DOS'\n-22BF8 General Purpose Flag  0800 (2048)\n+22D77 CENTRAL HEADER #100   02014B50 (33639248)\n+22D7B Created Zip Spec      14 (20) '2.0'\n+22D7C Created OS            03 (3) 'Unix'\n+22D7D Extract Zip Spec      14 (20) '2.0'\n+22D7E Extract OS            00 (0) 'MS-DOS'\n+22D7F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22BFA Compression Method    0008 (8) 'Deflated'\n-22BFC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22C00 CRC                   AE59B827 (2925115431)\n-22C04 Compressed Size       00000500 (1280)\n-22C08 Uncompressed Size     00001018 (4120)\n-22C0C Filename Length       0039 (57)\n-22C0E Extra Length          0000 (0)\n-22C10 Comment Length        0000 (0)\n-22C12 Disk Start            0000 (0)\n-22C14 Int File Attributes   0000 (0)\n+22D81 Compression Method    0008 (8) 'Deflated'\n+22D83 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22D87 CRC                   D94EDD2B (3645824299)\n+22D8B Compressed Size       0000050B (1291)\n+22D8F Uncompressed Size     0000108B (4235)\n+22D93 Filename Length       0039 (57)\n+22D95 Extra Length          0000 (0)\n+22D97 Comment Length        0000 (0)\n+22D99 Disk Start            0000 (0)\n+22D9B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22C16 Ext File Attributes   81A40000 (2175008768)\n+22D9D 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-22C1A Local Header Offset   00017C8F (97423)\n-22C1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22DA1 Local Header Offset   00017D98 (97688)\n+22DA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22C1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22DA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22C57 CENTRAL HEADER #101   02014B50 (33639248)\n-22C5B Created Zip Spec      14 (20) '2.0'\n-22C5C Created OS            03 (3) 'Unix'\n-22C5D Extract Zip Spec      14 (20) '2.0'\n-22C5E Extract OS            00 (0) 'MS-DOS'\n-22C5F General Purpose Flag  0800 (2048)\n+22DDE CENTRAL HEADER #101   02014B50 (33639248)\n+22DE2 Created Zip Spec      14 (20) '2.0'\n+22DE3 Created OS            03 (3) 'Unix'\n+22DE4 Extract Zip Spec      14 (20) '2.0'\n+22DE5 Extract OS            00 (0) 'MS-DOS'\n+22DE6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22C61 Compression Method    0008 (8) 'Deflated'\n-22C63 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22C67 CRC                   C397571B (3281475355)\n-22C6B Compressed Size       000004CB (1227)\n-22C6F Uncompressed Size     00001058 (4184)\n-22C73 Filename Length       0035 (53)\n-22C75 Extra Length          0000 (0)\n-22C77 Comment Length        0000 (0)\n-22C79 Disk Start            0000 (0)\n-22C7B Int File Attributes   0000 (0)\n+22DE8 Compression Method    0008 (8) 'Deflated'\n+22DEA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22DEE CRC                   C397571B (3281475355)\n+22DF2 Compressed Size       000004CB (1227)\n+22DF6 Uncompressed Size     00001058 (4184)\n+22DFA Filename Length       0035 (53)\n+22DFC Extra Length          0000 (0)\n+22DFE Comment Length        0000 (0)\n+22E00 Disk Start            0000 (0)\n+22E02 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22C7D Ext File Attributes   81A40000 (2175008768)\n+22E04 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-22C81 Local Header Offset   000181E6 (98790)\n-22C85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22E08 Local Header Offset   000182FA (99066)\n+22E0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22C85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22E0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22CBA CENTRAL HEADER #102   02014B50 (33639248)\n-22CBE Created Zip Spec      14 (20) '2.0'\n-22CBF Created OS            03 (3) 'Unix'\n-22CC0 Extract Zip Spec      14 (20) '2.0'\n-22CC1 Extract OS            00 (0) 'MS-DOS'\n-22CC2 General Purpose Flag  0800 (2048)\n+22E41 CENTRAL HEADER #102   02014B50 (33639248)\n+22E45 Created Zip Spec      14 (20) '2.0'\n+22E46 Created OS            03 (3) 'Unix'\n+22E47 Extract Zip Spec      14 (20) '2.0'\n+22E48 Extract OS            00 (0) 'MS-DOS'\n+22E49 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22CC4 Compression Method    0008 (8) 'Deflated'\n-22CC6 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22CCA CRC                   F1D2C098 (4057120920)\n-22CCE Compressed Size       000007F0 (2032)\n-22CD2 Uncompressed Size     00001C03 (7171)\n-22CD6 Filename Length       0037 (55)\n-22CD8 Extra Length          0000 (0)\n-22CDA Comment Length        0000 (0)\n-22CDC Disk Start            0000 (0)\n-22CDE Int File Attributes   0000 (0)\n+22E4B Compression Method    0008 (8) 'Deflated'\n+22E4D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22E51 CRC                   9B1DD286 (2602422918)\n+22E55 Compressed Size       00000800 (2048)\n+22E59 Uncompressed Size     00001CC3 (7363)\n+22E5D Filename Length       0037 (55)\n+22E5F Extra Length          0000 (0)\n+22E61 Comment Length        0000 (0)\n+22E63 Disk Start            0000 (0)\n+22E65 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22CE0 Ext File Attributes   81A40000 (2175008768)\n+22E67 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-22CE4 Local Header Offset   00018704 (100100)\n-22CE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22E6B Local Header Offset   00018818 (100376)\n+22E6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22CE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22E6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22D1F CENTRAL HEADER #103   02014B50 (33639248)\n-22D23 Created Zip Spec      14 (20) '2.0'\n-22D24 Created OS            03 (3) 'Unix'\n-22D25 Extract Zip Spec      14 (20) '2.0'\n-22D26 Extract OS            00 (0) 'MS-DOS'\n-22D27 General Purpose Flag  0800 (2048)\n+22EA6 CENTRAL HEADER #103   02014B50 (33639248)\n+22EAA Created Zip Spec      14 (20) '2.0'\n+22EAB Created OS            03 (3) 'Unix'\n+22EAC Extract Zip Spec      14 (20) '2.0'\n+22EAD Extract OS            00 (0) 'MS-DOS'\n+22EAE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22D29 Compression Method    0008 (8) 'Deflated'\n-22D2B Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22D2F CRC                   8ED687AA (2396424106)\n-22D33 Compressed Size       000003B2 (946)\n-22D37 Uncompressed Size     00000C9B (3227)\n-22D3B Filename Length       0038 (56)\n-22D3D Extra Length          0000 (0)\n-22D3F Comment Length        0000 (0)\n-22D41 Disk Start            0000 (0)\n-22D43 Int File Attributes   0000 (0)\n+22EB0 Compression Method    0008 (8) 'Deflated'\n+22EB2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22EB6 CRC                   8ED687AA (2396424106)\n+22EBA Compressed Size       000003B2 (946)\n+22EBE Uncompressed Size     00000C9B (3227)\n+22EC2 Filename Length       0038 (56)\n+22EC4 Extra Length          0000 (0)\n+22EC6 Comment Length        0000 (0)\n+22EC8 Disk Start            0000 (0)\n+22ECA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22D45 Ext File Attributes   81A40000 (2175008768)\n+22ECC 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-22D49 Local Header Offset   00018F49 (102217)\n-22D4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22ED0 Local Header Offset   0001906D (102509)\n+22ED4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22D4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22ED4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22D85 CENTRAL HEADER #104   02014B50 (33639248)\n-22D89 Created Zip Spec      14 (20) '2.0'\n-22D8A Created OS            03 (3) 'Unix'\n-22D8B Extract Zip Spec      14 (20) '2.0'\n-22D8C Extract OS            00 (0) 'MS-DOS'\n-22D8D General Purpose Flag  0800 (2048)\n+22F0C CENTRAL HEADER #104   02014B50 (33639248)\n+22F10 Created Zip Spec      14 (20) '2.0'\n+22F11 Created OS            03 (3) 'Unix'\n+22F12 Extract Zip Spec      14 (20) '2.0'\n+22F13 Extract OS            00 (0) 'MS-DOS'\n+22F14 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22D8F Compression Method    0008 (8) 'Deflated'\n-22D91 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22D95 CRC                   3E4334ED (1044591853)\n-22D99 Compressed Size       0000028A (650)\n-22D9D Uncompressed Size     0000066A (1642)\n-22DA1 Filename Length       003E (62)\n-22DA3 Extra Length          0000 (0)\n-22DA5 Comment Length        0000 (0)\n-22DA7 Disk Start            0000 (0)\n-22DA9 Int File Attributes   0000 (0)\n+22F16 Compression Method    0008 (8) 'Deflated'\n+22F18 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22F1C CRC                   3E4334ED (1044591853)\n+22F20 Compressed Size       0000028A (650)\n+22F24 Uncompressed Size     0000066A (1642)\n+22F28 Filename Length       003E (62)\n+22F2A Extra Length          0000 (0)\n+22F2C Comment Length        0000 (0)\n+22F2E Disk Start            0000 (0)\n+22F30 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22DAB Ext File Attributes   81A40000 (2175008768)\n+22F32 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-22DAF Local Header Offset   00019351 (103249)\n-22DB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22F36 Local Header Offset   00019475 (103541)\n+22F3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22DB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22F3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22DF1 CENTRAL HEADER #105   02014B50 (33639248)\n-22DF5 Created Zip Spec      14 (20) '2.0'\n-22DF6 Created OS            03 (3) 'Unix'\n-22DF7 Extract Zip Spec      14 (20) '2.0'\n-22DF8 Extract OS            00 (0) 'MS-DOS'\n-22DF9 General Purpose Flag  0800 (2048)\n+22F78 CENTRAL HEADER #105   02014B50 (33639248)\n+22F7C Created Zip Spec      14 (20) '2.0'\n+22F7D Created OS            03 (3) 'Unix'\n+22F7E Extract Zip Spec      14 (20) '2.0'\n+22F7F Extract OS            00 (0) 'MS-DOS'\n+22F80 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22DFB Compression Method    0008 (8) 'Deflated'\n-22DFD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22E01 CRC                   1F076089 (520577161)\n-22E05 Compressed Size       00000227 (551)\n-22E09 Uncompressed Size     000003FD (1021)\n-22E0D Filename Length       003F (63)\n-22E0F Extra Length          0000 (0)\n-22E11 Comment Length        0000 (0)\n-22E13 Disk Start            0000 (0)\n-22E15 Int File Attributes   0000 (0)\n+22F82 Compression Method    0008 (8) 'Deflated'\n+22F84 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22F88 CRC                   1F076089 (520577161)\n+22F8C Compressed Size       00000227 (551)\n+22F90 Uncompressed Size     000003FD (1021)\n+22F94 Filename Length       003F (63)\n+22F96 Extra Length          0000 (0)\n+22F98 Comment Length        0000 (0)\n+22F9A Disk Start            0000 (0)\n+22F9C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22E17 Ext File Attributes   81A40000 (2175008768)\n+22F9E 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-22E1B Local Header Offset   00019637 (103991)\n-22E1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22FA2 Local Header Offset   0001975B (104283)\n+22FA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22E1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22FA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22E5E CENTRAL HEADER #106   02014B50 (33639248)\n-22E62 Created Zip Spec      14 (20) '2.0'\n-22E63 Created OS            03 (3) 'Unix'\n-22E64 Extract Zip Spec      14 (20) '2.0'\n-22E65 Extract OS            00 (0) 'MS-DOS'\n-22E66 General Purpose Flag  0800 (2048)\n+22FE5 CENTRAL HEADER #106   02014B50 (33639248)\n+22FE9 Created Zip Spec      14 (20) '2.0'\n+22FEA Created OS            03 (3) 'Unix'\n+22FEB Extract Zip Spec      14 (20) '2.0'\n+22FEC Extract OS            00 (0) 'MS-DOS'\n+22FED General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22E68 Compression Method    0008 (8) 'Deflated'\n-22E6A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22E6E CRC                   63B69239 (1672909369)\n-22E72 Compressed Size       00000408 (1032)\n-22E76 Uncompressed Size     00000F7F (3967)\n-22E7A Filename Length       0041 (65)\n-22E7C Extra Length          0000 (0)\n-22E7E Comment Length        0000 (0)\n-22E80 Disk Start            0000 (0)\n-22E82 Int File Attributes   0000 (0)\n+22FEF Compression Method    0008 (8) 'Deflated'\n+22FF1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22FF5 CRC                   63B69239 (1672909369)\n+22FF9 Compressed Size       00000408 (1032)\n+22FFD Uncompressed Size     00000F7F (3967)\n+23001 Filename Length       0041 (65)\n+23003 Extra Length          0000 (0)\n+23005 Comment Length        0000 (0)\n+23007 Disk Start            0000 (0)\n+23009 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22E84 Ext File Attributes   81A40000 (2175008768)\n+2300B 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-22E88 Local Header Offset   000198BB (104635)\n-22E8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2300F Local Header Offset   000199DF (104927)\n+23013 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22E8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23013: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22ECD CENTRAL HEADER #107   02014B50 (33639248)\n-22ED1 Created Zip Spec      14 (20) '2.0'\n-22ED2 Created OS            03 (3) 'Unix'\n-22ED3 Extract Zip Spec      14 (20) '2.0'\n-22ED4 Extract OS            00 (0) 'MS-DOS'\n-22ED5 General Purpose Flag  0800 (2048)\n+23054 CENTRAL HEADER #107   02014B50 (33639248)\n+23058 Created Zip Spec      14 (20) '2.0'\n+23059 Created OS            03 (3) 'Unix'\n+2305A Extract Zip Spec      14 (20) '2.0'\n+2305B Extract OS            00 (0) 'MS-DOS'\n+2305C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22ED7 Compression Method    0008 (8) 'Deflated'\n-22ED9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22EDD CRC                   DB6423CF (3680773071)\n-22EE1 Compressed Size       00000405 (1029)\n-22EE5 Uncompressed Size     00000DEE (3566)\n-22EE9 Filename Length       0037 (55)\n-22EEB Extra Length          0000 (0)\n-22EED Comment Length        0000 (0)\n-22EEF Disk Start            0000 (0)\n-22EF1 Int File Attributes   0000 (0)\n+2305E Compression Method    0008 (8) 'Deflated'\n+23060 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23064 CRC                   DB6423CF (3680773071)\n+23068 Compressed Size       00000405 (1029)\n+2306C Uncompressed Size     00000DEE (3566)\n+23070 Filename Length       0037 (55)\n+23072 Extra Length          0000 (0)\n+23074 Comment Length        0000 (0)\n+23076 Disk Start            0000 (0)\n+23078 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22EF3 Ext File Attributes   81A40000 (2175008768)\n+2307A 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-22EF7 Local Header Offset   00019D22 (105762)\n-22EFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2307E Local Header Offset   00019E46 (106054)\n+23082 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22EFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23082: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22F32 CENTRAL HEADER #108   02014B50 (33639248)\n-22F36 Created Zip Spec      14 (20) '2.0'\n-22F37 Created OS            03 (3) 'Unix'\n-22F38 Extract Zip Spec      14 (20) '2.0'\n-22F39 Extract OS            00 (0) 'MS-DOS'\n-22F3A General Purpose Flag  0800 (2048)\n+230B9 CENTRAL HEADER #108   02014B50 (33639248)\n+230BD Created Zip Spec      14 (20) '2.0'\n+230BE Created OS            03 (3) 'Unix'\n+230BF Extract Zip Spec      14 (20) '2.0'\n+230C0 Extract OS            00 (0) 'MS-DOS'\n+230C1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22F3C Compression Method    0008 (8) 'Deflated'\n-22F3E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22F42 CRC                   B4E5D367 (3034960743)\n-22F46 Compressed Size       0000091D (2333)\n-22F4A Uncompressed Size     00001DDA (7642)\n-22F4E Filename Length       0035 (53)\n-22F50 Extra Length          0000 (0)\n-22F52 Comment Length        0000 (0)\n-22F54 Disk Start            0000 (0)\n-22F56 Int File Attributes   0000 (0)\n+230C3 Compression Method    0008 (8) 'Deflated'\n+230C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+230C9 CRC                   79B32E36 (2041785910)\n+230CD Compressed Size       00000928 (2344)\n+230D1 Uncompressed Size     00001E8F (7823)\n+230D5 Filename Length       0035 (53)\n+230D7 Extra Length          0000 (0)\n+230D9 Comment Length        0000 (0)\n+230DB Disk Start            0000 (0)\n+230DD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22F58 Ext File Attributes   81A40000 (2175008768)\n+230DF 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-22F5C Local Header Offset   0001A17C (106876)\n-22F60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+230E3 Local Header Offset   0001A2A0 (107168)\n+230E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22F60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x230E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22F95 CENTRAL HEADER #109   02014B50 (33639248)\n-22F99 Created Zip Spec      14 (20) '2.0'\n-22F9A Created OS            03 (3) 'Unix'\n-22F9B Extract Zip Spec      14 (20) '2.0'\n-22F9C Extract OS            00 (0) 'MS-DOS'\n-22F9D General Purpose Flag  0800 (2048)\n+2311C CENTRAL HEADER #109   02014B50 (33639248)\n+23120 Created Zip Spec      14 (20) '2.0'\n+23121 Created OS            03 (3) 'Unix'\n+23122 Extract Zip Spec      14 (20) '2.0'\n+23123 Extract OS            00 (0) 'MS-DOS'\n+23124 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22F9F Compression Method    0008 (8) 'Deflated'\n-22FA1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22FA5 CRC                   602945D5 (1613317589)\n-22FA9 Compressed Size       000003BA (954)\n-22FAD Uncompressed Size     000009C9 (2505)\n-22FB1 Filename Length       0036 (54)\n-22FB3 Extra Length          0000 (0)\n-22FB5 Comment Length        0000 (0)\n-22FB7 Disk Start            0000 (0)\n-22FB9 Int File Attributes   0000 (0)\n+23126 Compression Method    0008 (8) 'Deflated'\n+23128 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2312C CRC                   5F8B1DE8 (1602952680)\n+23130 Compressed Size       000003C5 (965)\n+23134 Uncompressed Size     00000A0E (2574)\n+23138 Filename Length       0036 (54)\n+2313A Extra Length          0000 (0)\n+2313C Comment Length        0000 (0)\n+2313E Disk Start            0000 (0)\n+23140 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-22FBB Ext File Attributes   81A40000 (2175008768)\n+23142 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-22FBF Local Header Offset   0001AAEC (109292)\n-22FC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23146 Local Header Offset   0001AC1B (109595)\n+2314A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22FC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2314A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-22FF9 CENTRAL HEADER #110   02014B50 (33639248)\n-22FFD Created Zip Spec      14 (20) '2.0'\n-22FFE Created OS            03 (3) 'Unix'\n-22FFF Extract Zip Spec      14 (20) '2.0'\n-23000 Extract OS            00 (0) 'MS-DOS'\n-23001 General Purpose Flag  0800 (2048)\n+23180 CENTRAL HEADER #110   02014B50 (33639248)\n+23184 Created Zip Spec      14 (20) '2.0'\n+23185 Created OS            03 (3) 'Unix'\n+23186 Extract Zip Spec      14 (20) '2.0'\n+23187 Extract OS            00 (0) 'MS-DOS'\n+23188 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23003 Compression Method    0008 (8) 'Deflated'\n-23005 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23009 CRC                   D9BD9D3A (3653082426)\n-2300D Compressed Size       00000278 (632)\n-23011 Uncompressed Size     00000469 (1129)\n-23015 Filename Length       0044 (68)\n-23017 Extra Length          0000 (0)\n-23019 Comment Length        0000 (0)\n-2301B Disk Start            0000 (0)\n-2301D Int File Attributes   0000 (0)\n+2318A Compression Method    0008 (8) 'Deflated'\n+2318C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23190 CRC                   D9BD9D3A (3653082426)\n+23194 Compressed Size       00000278 (632)\n+23198 Uncompressed Size     00000469 (1129)\n+2319C Filename Length       0044 (68)\n+2319E Extra Length          0000 (0)\n+231A0 Comment Length        0000 (0)\n+231A2 Disk Start            0000 (0)\n+231A4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2301F Ext File Attributes   81A40000 (2175008768)\n+231A6 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-23023 Local Header Offset   0001AEFA (110330)\n-23027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+231AA Local Header Offset   0001B034 (110644)\n+231AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x231AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2306B CENTRAL HEADER #111   02014B50 (33639248)\n-2306F Created Zip Spec      14 (20) '2.0'\n-23070 Created OS            03 (3) 'Unix'\n-23071 Extract Zip Spec      14 (20) '2.0'\n-23072 Extract OS            00 (0) 'MS-DOS'\n-23073 General Purpose Flag  0800 (2048)\n+231F2 CENTRAL HEADER #111   02014B50 (33639248)\n+231F6 Created Zip Spec      14 (20) '2.0'\n+231F7 Created OS            03 (3) 'Unix'\n+231F8 Extract Zip Spec      14 (20) '2.0'\n+231F9 Extract OS            00 (0) 'MS-DOS'\n+231FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23075 Compression Method    0008 (8) 'Deflated'\n-23077 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2307B CRC                   78792D26 (2021207334)\n-2307F Compressed Size       000002FE (766)\n-23083 Uncompressed Size     000006B5 (1717)\n-23087 Filename Length       003C (60)\n-23089 Extra Length          0000 (0)\n-2308B Comment Length        0000 (0)\n-2308D Disk Start            0000 (0)\n-2308F Int File Attributes   0000 (0)\n+231FC Compression Method    0008 (8) 'Deflated'\n+231FE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23202 CRC                   78792D26 (2021207334)\n+23206 Compressed Size       000002FE (766)\n+2320A Uncompressed Size     000006B5 (1717)\n+2320E Filename Length       003C (60)\n+23210 Extra Length          0000 (0)\n+23212 Comment Length        0000 (0)\n+23214 Disk Start            0000 (0)\n+23216 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23091 Ext File Attributes   81A40000 (2175008768)\n+23218 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-23095 Local Header Offset   0001B1D4 (111060)\n-23099 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2321C Local Header Offset   0001B30E (111374)\n+23220 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23099: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23220: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-230D5 CENTRAL HEADER #112   02014B50 (33639248)\n-230D9 Created Zip Spec      14 (20) '2.0'\n-230DA Created OS            03 (3) 'Unix'\n-230DB Extract Zip Spec      14 (20) '2.0'\n-230DC Extract OS            00 (0) 'MS-DOS'\n-230DD General Purpose Flag  0800 (2048)\n+2325C CENTRAL HEADER #112   02014B50 (33639248)\n+23260 Created Zip Spec      14 (20) '2.0'\n+23261 Created OS            03 (3) 'Unix'\n+23262 Extract Zip Spec      14 (20) '2.0'\n+23263 Extract OS            00 (0) 'MS-DOS'\n+23264 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-230DF Compression Method    0008 (8) 'Deflated'\n-230E1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-230E5 CRC                   A9090E7C (2835943036)\n-230E9 Compressed Size       000003C5 (965)\n-230ED Uncompressed Size     00000C45 (3141)\n-230F1 Filename Length       0037 (55)\n-230F3 Extra Length          0000 (0)\n-230F5 Comment Length        0000 (0)\n-230F7 Disk Start            0000 (0)\n-230F9 Int File Attributes   0000 (0)\n+23266 Compression Method    0008 (8) 'Deflated'\n+23268 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2326C CRC                   A9090E7C (2835943036)\n+23270 Compressed Size       000003C5 (965)\n+23274 Uncompressed Size     00000C45 (3141)\n+23278 Filename Length       0037 (55)\n+2327A Extra Length          0000 (0)\n+2327C Comment Length        0000 (0)\n+2327E Disk Start            0000 (0)\n+23280 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-230FB Ext File Attributes   81A40000 (2175008768)\n+23282 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-230FF Local Header Offset   0001B52C (111916)\n-23103 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23286 Local Header Offset   0001B666 (112230)\n+2328A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23103: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2328A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2313A CENTRAL HEADER #113   02014B50 (33639248)\n-2313E Created Zip Spec      14 (20) '2.0'\n-2313F Created OS            03 (3) 'Unix'\n-23140 Extract Zip Spec      14 (20) '2.0'\n-23141 Extract OS            00 (0) 'MS-DOS'\n-23142 General Purpose Flag  0800 (2048)\n+232C1 CENTRAL HEADER #113   02014B50 (33639248)\n+232C5 Created Zip Spec      14 (20) '2.0'\n+232C6 Created OS            03 (3) 'Unix'\n+232C7 Extract Zip Spec      14 (20) '2.0'\n+232C8 Extract OS            00 (0) 'MS-DOS'\n+232C9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23144 Compression Method    0008 (8) 'Deflated'\n-23146 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2314A CRC                   101D85B9 (270370233)\n-2314E Compressed Size       000003B3 (947)\n-23152 Uncompressed Size     0000094B (2379)\n-23156 Filename Length       003B (59)\n-23158 Extra Length          0000 (0)\n-2315A Comment Length        0000 (0)\n-2315C Disk Start            0000 (0)\n-2315E Int File Attributes   0000 (0)\n+232CB Compression Method    0008 (8) 'Deflated'\n+232CD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+232D1 CRC                   101D85B9 (270370233)\n+232D5 Compressed Size       000003B3 (947)\n+232D9 Uncompressed Size     0000094B (2379)\n+232DD Filename Length       003B (59)\n+232DF Extra Length          0000 (0)\n+232E1 Comment Length        0000 (0)\n+232E3 Disk Start            0000 (0)\n+232E5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23160 Ext File Attributes   81A40000 (2175008768)\n+232E7 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-23164 Local Header Offset   0001B946 (112966)\n-23168 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+232EB Local Header Offset   0001BA80 (113280)\n+232EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23168: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x232EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-231A3 CENTRAL HEADER #114   02014B50 (33639248)\n-231A7 Created Zip Spec      14 (20) '2.0'\n-231A8 Created OS            03 (3) 'Unix'\n-231A9 Extract Zip Spec      14 (20) '2.0'\n-231AA Extract OS            00 (0) 'MS-DOS'\n-231AB General Purpose Flag  0800 (2048)\n+2332A CENTRAL HEADER #114   02014B50 (33639248)\n+2332E Created Zip Spec      14 (20) '2.0'\n+2332F Created OS            03 (3) 'Unix'\n+23330 Extract Zip Spec      14 (20) '2.0'\n+23331 Extract OS            00 (0) 'MS-DOS'\n+23332 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-231AD Compression Method    0008 (8) 'Deflated'\n-231AF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-231B3 CRC                   7EE6D15A (2129056090)\n-231B7 Compressed Size       00000452 (1106)\n-231BB Uncompressed Size     00000D5E (3422)\n-231BF Filename Length       003D (61)\n-231C1 Extra Length          0000 (0)\n-231C3 Comment Length        0000 (0)\n-231C5 Disk Start            0000 (0)\n-231C7 Int File Attributes   0000 (0)\n+23334 Compression Method    0008 (8) 'Deflated'\n+23336 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2333A CRC                   7EE6D15A (2129056090)\n+2333E Compressed Size       00000452 (1106)\n+23342 Uncompressed Size     00000D5E (3422)\n+23346 Filename Length       003D (61)\n+23348 Extra Length          0000 (0)\n+2334A Comment Length        0000 (0)\n+2334C Disk Start            0000 (0)\n+2334E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-231C9 Ext File Attributes   81A40000 (2175008768)\n+23350 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-231CD Local Header Offset   0001BD52 (114002)\n-231D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23354 Local Header Offset   0001BE8C (114316)\n+23358 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x231D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23358: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2320E CENTRAL HEADER #115   02014B50 (33639248)\n-23212 Created Zip Spec      14 (20) '2.0'\n-23213 Created OS            03 (3) 'Unix'\n-23214 Extract Zip Spec      14 (20) '2.0'\n-23215 Extract OS            00 (0) 'MS-DOS'\n-23216 General Purpose Flag  0800 (2048)\n+23395 CENTRAL HEADER #115   02014B50 (33639248)\n+23399 Created Zip Spec      14 (20) '2.0'\n+2339A Created OS            03 (3) 'Unix'\n+2339B Extract Zip Spec      14 (20) '2.0'\n+2339C Extract OS            00 (0) 'MS-DOS'\n+2339D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23218 Compression Method    0008 (8) 'Deflated'\n-2321A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2321E CRC                   A053D891 (2689849489)\n-23222 Compressed Size       00000471 (1137)\n-23226 Uncompressed Size     00001205 (4613)\n-2322A Filename Length       0048 (72)\n-2322C Extra Length          0000 (0)\n-2322E Comment Length        0000 (0)\n-23230 Disk Start            0000 (0)\n-23232 Int File Attributes   0000 (0)\n+2339F Compression Method    0008 (8) 'Deflated'\n+233A1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+233A5 CRC                   A053D891 (2689849489)\n+233A9 Compressed Size       00000471 (1137)\n+233AD Uncompressed Size     00001205 (4613)\n+233B1 Filename Length       0048 (72)\n+233B3 Extra Length          0000 (0)\n+233B5 Comment Length        0000 (0)\n+233B7 Disk Start            0000 (0)\n+233B9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23234 Ext File Attributes   81A40000 (2175008768)\n+233BB 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-23238 Local Header Offset   0001C1FF (115199)\n-2323C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+233BF Local Header Offset   0001C339 (115513)\n+233C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2323C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x233C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23284 CENTRAL HEADER #116   02014B50 (33639248)\n-23288 Created Zip Spec      14 (20) '2.0'\n-23289 Created OS            03 (3) 'Unix'\n-2328A Extract Zip Spec      14 (20) '2.0'\n-2328B Extract OS            00 (0) 'MS-DOS'\n-2328C General Purpose Flag  0800 (2048)\n+2340B CENTRAL HEADER #116   02014B50 (33639248)\n+2340F Created Zip Spec      14 (20) '2.0'\n+23410 Created OS            03 (3) 'Unix'\n+23411 Extract Zip Spec      14 (20) '2.0'\n+23412 Extract OS            00 (0) 'MS-DOS'\n+23413 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2328E Compression Method    0008 (8) 'Deflated'\n-23290 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23294 CRC                   F077FE2F (4034395695)\n-23298 Compressed Size       0000031E (798)\n-2329C Uncompressed Size     000007C3 (1987)\n-232A0 Filename Length       0043 (67)\n-232A2 Extra Length          0000 (0)\n-232A4 Comment Length        0000 (0)\n-232A6 Disk Start            0000 (0)\n-232A8 Int File Attributes   0000 (0)\n+23415 Compression Method    0008 (8) 'Deflated'\n+23417 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2341B CRC                   F077FE2F (4034395695)\n+2341F Compressed Size       0000031E (798)\n+23423 Uncompressed Size     000007C3 (1987)\n+23427 Filename Length       0043 (67)\n+23429 Extra Length          0000 (0)\n+2342B Comment Length        0000 (0)\n+2342D Disk Start            0000 (0)\n+2342F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-232AA Ext File Attributes   81A40000 (2175008768)\n+23431 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-232AE Local Header Offset   0001C6D6 (116438)\n-232B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23435 Local Header Offset   0001C810 (116752)\n+23439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x232B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-232F5 CENTRAL HEADER #117   02014B50 (33639248)\n-232F9 Created Zip Spec      14 (20) '2.0'\n-232FA Created OS            03 (3) 'Unix'\n-232FB Extract Zip Spec      14 (20) '2.0'\n-232FC Extract OS            00 (0) 'MS-DOS'\n-232FD General Purpose Flag  0800 (2048)\n+2347C CENTRAL HEADER #117   02014B50 (33639248)\n+23480 Created Zip Spec      14 (20) '2.0'\n+23481 Created OS            03 (3) 'Unix'\n+23482 Extract Zip Spec      14 (20) '2.0'\n+23483 Extract OS            00 (0) 'MS-DOS'\n+23484 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-232FF Compression Method    0008 (8) 'Deflated'\n-23301 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23305 CRC                   F135EAA5 (4046842533)\n-23309 Compressed Size       0000068C (1676)\n-2330D Uncompressed Size     000014BA (5306)\n-23311 Filename Length       0049 (73)\n-23313 Extra Length          0000 (0)\n-23315 Comment Length        0000 (0)\n-23317 Disk Start            0000 (0)\n-23319 Int File Attributes   0000 (0)\n+23486 Compression Method    0008 (8) 'Deflated'\n+23488 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2348C CRC                   1DD7EFDF (500690911)\n+23490 Compressed Size       0000069C (1692)\n+23494 Uncompressed Size     0000154F (5455)\n+23498 Filename Length       0049 (73)\n+2349A Extra Length          0000 (0)\n+2349C Comment Length        0000 (0)\n+2349E Disk Start            0000 (0)\n+234A0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2331B Ext File Attributes   81A40000 (2175008768)\n+234A2 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-2331F Local Header Offset   0001CA55 (117333)\n-23323 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+234A6 Local Header Offset   0001CB8F (117647)\n+234AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23323: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x234AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2336C CENTRAL HEADER #118   02014B50 (33639248)\n-23370 Created Zip Spec      14 (20) '2.0'\n-23371 Created OS            03 (3) 'Unix'\n-23372 Extract Zip Spec      14 (20) '2.0'\n-23373 Extract OS            00 (0) 'MS-DOS'\n-23374 General Purpose Flag  0800 (2048)\n+234F3 CENTRAL HEADER #118   02014B50 (33639248)\n+234F7 Created Zip Spec      14 (20) '2.0'\n+234F8 Created OS            03 (3) 'Unix'\n+234F9 Extract Zip Spec      14 (20) '2.0'\n+234FA Extract OS            00 (0) 'MS-DOS'\n+234FB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23376 Compression Method    0008 (8) 'Deflated'\n-23378 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2337C CRC                   32EFA1AA (854565290)\n-23380 Compressed Size       00000406 (1030)\n-23384 Uncompressed Size     00000E18 (3608)\n-23388 Filename Length       0049 (73)\n-2338A Extra Length          0000 (0)\n-2338C Comment Length        0000 (0)\n-2338E Disk Start            0000 (0)\n-23390 Int File Attributes   0000 (0)\n+234FD Compression Method    0008 (8) 'Deflated'\n+234FF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23503 CRC                   1909E1F3 (420078067)\n+23507 Compressed Size       0000040F (1039)\n+2350B Uncompressed Size     00000E69 (3689)\n+2350F Filename Length       0049 (73)\n+23511 Extra Length          0000 (0)\n+23513 Comment Length        0000 (0)\n+23515 Disk Start            0000 (0)\n+23517 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23392 Ext File Attributes   81A40000 (2175008768)\n+23519 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-23396 Local Header Offset   0001D148 (119112)\n-2339A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2351D Local Header Offset   0001D292 (119442)\n+23521 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2339A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23521: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-233E3 CENTRAL HEADER #119   02014B50 (33639248)\n-233E7 Created Zip Spec      14 (20) '2.0'\n-233E8 Created OS            03 (3) 'Unix'\n-233E9 Extract Zip Spec      14 (20) '2.0'\n-233EA Extract OS            00 (0) 'MS-DOS'\n-233EB General Purpose Flag  0800 (2048)\n+2356A CENTRAL HEADER #119   02014B50 (33639248)\n+2356E Created Zip Spec      14 (20) '2.0'\n+2356F Created OS            03 (3) 'Unix'\n+23570 Extract Zip Spec      14 (20) '2.0'\n+23571 Extract OS            00 (0) 'MS-DOS'\n+23572 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-233ED Compression Method    0008 (8) 'Deflated'\n-233EF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-233F3 CRC                   40313D69 (1076968809)\n-233F7 Compressed Size       0000029A (666)\n-233FB Uncompressed Size     00000521 (1313)\n-233FF Filename Length       0045 (69)\n-23401 Extra Length          0000 (0)\n-23403 Comment Length        0000 (0)\n-23405 Disk Start            0000 (0)\n-23407 Int File Attributes   0000 (0)\n+23574 Compression Method    0008 (8) 'Deflated'\n+23576 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2357A CRC                   40313D69 (1076968809)\n+2357E Compressed Size       0000029A (666)\n+23582 Uncompressed Size     00000521 (1313)\n+23586 Filename Length       0045 (69)\n+23588 Extra Length          0000 (0)\n+2358A Comment Length        0000 (0)\n+2358C Disk Start            0000 (0)\n+2358E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23409 Ext File Attributes   81A40000 (2175008768)\n+23590 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-2340D Local Header Offset   0001D5B5 (120245)\n-23411 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23594 Local Header Offset   0001D708 (120584)\n+23598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23411: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23456 CENTRAL HEADER #120   02014B50 (33639248)\n-2345A Created Zip Spec      14 (20) '2.0'\n-2345B Created OS            03 (3) 'Unix'\n-2345C Extract Zip Spec      14 (20) '2.0'\n-2345D Extract OS            00 (0) 'MS-DOS'\n-2345E General Purpose Flag  0800 (2048)\n+235DD CENTRAL HEADER #120   02014B50 (33639248)\n+235E1 Created Zip Spec      14 (20) '2.0'\n+235E2 Created OS            03 (3) 'Unix'\n+235E3 Extract Zip Spec      14 (20) '2.0'\n+235E4 Extract OS            00 (0) 'MS-DOS'\n+235E5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23460 Compression Method    0008 (8) 'Deflated'\n-23462 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23466 CRC                   956AD47E (2506806398)\n-2346A Compressed Size       00000605 (1541)\n-2346E Uncompressed Size     000014D1 (5329)\n-23472 Filename Length       005E (94)\n-23474 Extra Length          0000 (0)\n-23476 Comment Length        0000 (0)\n-23478 Disk Start            0000 (0)\n-2347A Int File Attributes   0000 (0)\n+235E7 Compression Method    0008 (8) 'Deflated'\n+235E9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+235ED CRC                   7D6D8264 (2104328804)\n+235F1 Compressed Size       0000060E (1550)\n+235F5 Uncompressed Size     0000153E (5438)\n+235F9 Filename Length       005E (94)\n+235FB Extra Length          0000 (0)\n+235FD Comment Length        0000 (0)\n+235FF Disk Start            0000 (0)\n+23601 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2347C Ext File Attributes   81A40000 (2175008768)\n+23603 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-23480 Local Header Offset   0001D8B2 (121010)\n-23484 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23607 Local Header Offset   0001DA05 (121349)\n+2360B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23484: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2360B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-234E2 CENTRAL HEADER #121   02014B50 (33639248)\n-234E6 Created Zip Spec      14 (20) '2.0'\n-234E7 Created OS            03 (3) 'Unix'\n-234E8 Extract Zip Spec      14 (20) '2.0'\n-234E9 Extract OS            00 (0) 'MS-DOS'\n-234EA General Purpose Flag  0800 (2048)\n+23669 CENTRAL HEADER #121   02014B50 (33639248)\n+2366D Created Zip Spec      14 (20) '2.0'\n+2366E Created OS            03 (3) 'Unix'\n+2366F Extract Zip Spec      14 (20) '2.0'\n+23670 Extract OS            00 (0) 'MS-DOS'\n+23671 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-234EC Compression Method    0008 (8) 'Deflated'\n-234EE Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-234F2 CRC                   5474BB92 (1416936338)\n-234F6 Compressed Size       0000029F (671)\n-234FA Uncompressed Size     00000551 (1361)\n-234FE Filename Length       005A (90)\n-23500 Extra Length          0000 (0)\n-23502 Comment Length        0000 (0)\n-23504 Disk Start            0000 (0)\n-23506 Int File Attributes   0000 (0)\n+23673 Compression Method    0008 (8) 'Deflated'\n+23675 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23679 CRC                   5474BB92 (1416936338)\n+2367D Compressed Size       0000029F (671)\n+23681 Uncompressed Size     00000551 (1361)\n+23685 Filename Length       005A (90)\n+23687 Extra Length          0000 (0)\n+23689 Comment Length        0000 (0)\n+2368B Disk Start            0000 (0)\n+2368D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23508 Ext File Attributes   81A40000 (2175008768)\n+2368F 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-2350C Local Header Offset   0001DF33 (122675)\n-23510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23693 Local Header Offset   0001E08F (123023)\n+23697 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23697: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2356A CENTRAL HEADER #122   02014B50 (33639248)\n-2356E Created Zip Spec      14 (20) '2.0'\n-2356F Created OS            03 (3) 'Unix'\n-23570 Extract Zip Spec      14 (20) '2.0'\n-23571 Extract OS            00 (0) 'MS-DOS'\n-23572 General Purpose Flag  0800 (2048)\n+236F1 CENTRAL HEADER #122   02014B50 (33639248)\n+236F5 Created Zip Spec      14 (20) '2.0'\n+236F6 Created OS            03 (3) 'Unix'\n+236F7 Extract Zip Spec      14 (20) '2.0'\n+236F8 Extract OS            00 (0) 'MS-DOS'\n+236F9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23574 Compression Method    0008 (8) 'Deflated'\n-23576 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2357A CRC                   F2C441AD (4072948141)\n-2357E Compressed Size       00000383 (899)\n-23582 Uncompressed Size     000008B3 (2227)\n-23586 Filename Length       004F (79)\n-23588 Extra Length          0000 (0)\n-2358A Comment Length        0000 (0)\n-2358C Disk Start            0000 (0)\n-2358E Int File Attributes   0000 (0)\n+236FB Compression Method    0008 (8) 'Deflated'\n+236FD Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23701 CRC                   F9C89211 (4190671377)\n+23705 Compressed Size       00000389 (905)\n+23709 Uncompressed Size     000008E6 (2278)\n+2370D Filename Length       004F (79)\n+2370F Extra Length          0000 (0)\n+23711 Comment Length        0000 (0)\n+23713 Disk Start            0000 (0)\n+23715 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23590 Ext File Attributes   81A40000 (2175008768)\n+23717 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-23594 Local Header Offset   0001E24A (123466)\n-23598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2371B Local Header Offset   0001E3A6 (123814)\n+2371F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2371F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-235E7 CENTRAL HEADER #123   02014B50 (33639248)\n-235EB Created Zip Spec      14 (20) '2.0'\n-235EC Created OS            03 (3) 'Unix'\n-235ED Extract Zip Spec      14 (20) '2.0'\n-235EE Extract OS            00 (0) 'MS-DOS'\n-235EF General Purpose Flag  0800 (2048)\n+2376E CENTRAL HEADER #123   02014B50 (33639248)\n+23772 Created Zip Spec      14 (20) '2.0'\n+23773 Created OS            03 (3) 'Unix'\n+23774 Extract Zip Spec      14 (20) '2.0'\n+23775 Extract OS            00 (0) 'MS-DOS'\n+23776 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-235F1 Compression Method    0008 (8) 'Deflated'\n-235F3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-235F7 CRC                   E0C2D2A3 (3770864291)\n-235FB Compressed Size       00000285 (645)\n-235FF Uncompressed Size     000004FE (1278)\n-23603 Filename Length       004B (75)\n-23605 Extra Length          0000 (0)\n-23607 Comment Length        0000 (0)\n-23609 Disk Start            0000 (0)\n-2360B Int File Attributes   0000 (0)\n+23778 Compression Method    0008 (8) 'Deflated'\n+2377A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2377E CRC                   66FEA41B (1727964187)\n+23782 Compressed Size       0000028E (654)\n+23786 Uncompressed Size     00000521 (1313)\n+2378A Filename Length       004B (75)\n+2378C Extra Length          0000 (0)\n+2378E Comment Length        0000 (0)\n+23790 Disk Start            0000 (0)\n+23792 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2360D Ext File Attributes   81A40000 (2175008768)\n+23794 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-23611 Local Header Offset   0001E63A (124474)\n-23615 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23798 Local Header Offset   0001E79C (124828)\n+2379C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23615: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2379C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23660 CENTRAL HEADER #124   02014B50 (33639248)\n-23664 Created Zip Spec      14 (20) '2.0'\n-23665 Created OS            03 (3) 'Unix'\n-23666 Extract Zip Spec      14 (20) '2.0'\n-23667 Extract OS            00 (0) 'MS-DOS'\n-23668 General Purpose Flag  0800 (2048)\n+237E7 CENTRAL HEADER #124   02014B50 (33639248)\n+237EB Created Zip Spec      14 (20) '2.0'\n+237EC Created OS            03 (3) 'Unix'\n+237ED Extract Zip Spec      14 (20) '2.0'\n+237EE Extract OS            00 (0) 'MS-DOS'\n+237EF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2366A Compression Method    0008 (8) 'Deflated'\n-2366C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23670 CRC                   9D8FBCBD (2643442877)\n-23674 Compressed Size       000004CD (1229)\n-23678 Uncompressed Size     00000C4B (3147)\n-2367C Filename Length       0055 (85)\n-2367E Extra Length          0000 (0)\n-23680 Comment Length        0000 (0)\n-23682 Disk Start            0000 (0)\n-23684 Int File Attributes   0000 (0)\n+237F1 Compression Method    0008 (8) 'Deflated'\n+237F3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+237F7 CRC                   E83FE9D5 (3896502741)\n+237FB Compressed Size       000004D6 (1238)\n+237FF Uncompressed Size     00000C8C (3212)\n+23803 Filename Length       0055 (85)\n+23805 Extra Length          0000 (0)\n+23807 Comment Length        0000 (0)\n+23809 Disk Start            0000 (0)\n+2380B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23686 Ext File Attributes   81A40000 (2175008768)\n+2380D 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-2368A Local Header Offset   0001E928 (125224)\n-2368E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23811 Local Header Offset   0001EA93 (125587)\n+23815 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2368E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23815: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-236E3 CENTRAL HEADER #125   02014B50 (33639248)\n-236E7 Created Zip Spec      14 (20) '2.0'\n-236E8 Created OS            03 (3) 'Unix'\n-236E9 Extract Zip Spec      14 (20) '2.0'\n-236EA Extract OS            00 (0) 'MS-DOS'\n-236EB General Purpose Flag  0800 (2048)\n+2386A CENTRAL HEADER #125   02014B50 (33639248)\n+2386E Created Zip Spec      14 (20) '2.0'\n+2386F Created OS            03 (3) 'Unix'\n+23870 Extract Zip Spec      14 (20) '2.0'\n+23871 Extract OS            00 (0) 'MS-DOS'\n+23872 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-236ED Compression Method    0008 (8) 'Deflated'\n-236EF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-236F3 CRC                   DF933BA4 (3750968228)\n-236F7 Compressed Size       000002AA (682)\n-236FB Uncompressed Size     00000555 (1365)\n-236FF Filename Length       0051 (81)\n-23701 Extra Length          0000 (0)\n-23703 Comment Length        0000 (0)\n-23705 Disk Start            0000 (0)\n-23707 Int File Attributes   0000 (0)\n+23874 Compression Method    0008 (8) 'Deflated'\n+23876 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2387A CRC                   DF933BA4 (3750968228)\n+2387E Compressed Size       000002AA (682)\n+23882 Uncompressed Size     00000555 (1365)\n+23886 Filename Length       0051 (81)\n+23888 Extra Length          0000 (0)\n+2388A Comment Length        0000 (0)\n+2388C Disk Start            0000 (0)\n+2388E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23709 Ext File Attributes   81A40000 (2175008768)\n+23890 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-2370D Local Header Offset   0001EE68 (126568)\n-23711 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23894 Local Header Offset   0001EFDC (126940)\n+23898 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23711: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23898: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23762 CENTRAL HEADER #126   02014B50 (33639248)\n-23766 Created Zip Spec      14 (20) '2.0'\n-23767 Created OS            03 (3) 'Unix'\n-23768 Extract Zip Spec      14 (20) '2.0'\n-23769 Extract OS            00 (0) 'MS-DOS'\n-2376A General Purpose Flag  0800 (2048)\n+238E9 CENTRAL HEADER #126   02014B50 (33639248)\n+238ED Created Zip Spec      14 (20) '2.0'\n+238EE Created OS            03 (3) 'Unix'\n+238EF Extract Zip Spec      14 (20) '2.0'\n+238F0 Extract OS            00 (0) 'MS-DOS'\n+238F1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2376C Compression Method    0008 (8) 'Deflated'\n-2376E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23772 CRC                   5CADB8BA (1554888890)\n-23776 Compressed Size       0000039E (926)\n-2377A Uncompressed Size     00000910 (2320)\n-2377E Filename Length       0055 (85)\n-23780 Extra Length          0000 (0)\n-23782 Comment Length        0000 (0)\n-23784 Disk Start            0000 (0)\n-23786 Int File Attributes   0000 (0)\n+238F3 Compression Method    0008 (8) 'Deflated'\n+238F5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+238F9 CRC                   9032EA6A (2419255914)\n+238FD Compressed Size       000003A7 (935)\n+23901 Uncompressed Size     00000944 (2372)\n+23905 Filename Length       0055 (85)\n+23907 Extra Length          0000 (0)\n+23909 Comment Length        0000 (0)\n+2390B Disk Start            0000 (0)\n+2390D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23788 Ext File Attributes   81A40000 (2175008768)\n+2390F 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-2378C Local Header Offset   0001F181 (127361)\n-23790 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23913 Local Header Offset   0001F2F5 (127733)\n+23917 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23790: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23917: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-237E5 CENTRAL HEADER #127   02014B50 (33639248)\n-237E9 Created Zip Spec      14 (20) '2.0'\n-237EA Created OS            03 (3) 'Unix'\n-237EB Extract Zip Spec      14 (20) '2.0'\n-237EC Extract OS            00 (0) 'MS-DOS'\n-237ED General Purpose Flag  0800 (2048)\n+2396C CENTRAL HEADER #127   02014B50 (33639248)\n+23970 Created Zip Spec      14 (20) '2.0'\n+23971 Created OS            03 (3) 'Unix'\n+23972 Extract Zip Spec      14 (20) '2.0'\n+23973 Extract OS            00 (0) 'MS-DOS'\n+23974 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-237EF Compression Method    0008 (8) 'Deflated'\n-237F1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-237F5 CRC                   897FB906 (2306849030)\n-237F9 Compressed Size       000002A3 (675)\n-237FD Uncompressed Size     00000546 (1350)\n-23801 Filename Length       0051 (81)\n-23803 Extra Length          0000 (0)\n-23805 Comment Length        0000 (0)\n-23807 Disk Start            0000 (0)\n-23809 Int File Attributes   0000 (0)\n+23976 Compression Method    0008 (8) 'Deflated'\n+23978 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2397C CRC                   897FB906 (2306849030)\n+23980 Compressed Size       000002A3 (675)\n+23984 Uncompressed Size     00000546 (1350)\n+23988 Filename Length       0051 (81)\n+2398A Extra Length          0000 (0)\n+2398C Comment Length        0000 (0)\n+2398E Disk Start            0000 (0)\n+23990 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2380B Ext File Attributes   81A40000 (2175008768)\n+23992 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-2380F Local Header Offset   0001F592 (128402)\n-23813 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23996 Local Header Offset   0001F70F (128783)\n+2399A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23813: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2399A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23864 CENTRAL HEADER #128   02014B50 (33639248)\n-23868 Created Zip Spec      14 (20) '2.0'\n-23869 Created OS            03 (3) 'Unix'\n-2386A Extract Zip Spec      14 (20) '2.0'\n-2386B Extract OS            00 (0) 'MS-DOS'\n-2386C General Purpose Flag  0800 (2048)\n+239EB CENTRAL HEADER #128   02014B50 (33639248)\n+239EF Created Zip Spec      14 (20) '2.0'\n+239F0 Created OS            03 (3) 'Unix'\n+239F1 Extract Zip Spec      14 (20) '2.0'\n+239F2 Extract OS            00 (0) 'MS-DOS'\n+239F3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2386E Compression Method    0008 (8) 'Deflated'\n-23870 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23874 CRC                   6365E73A (1667622714)\n-23878 Compressed Size       00000326 (806)\n-2387C Uncompressed Size     00000708 (1800)\n-23880 Filename Length       0033 (51)\n-23882 Extra Length          0000 (0)\n-23884 Comment Length        0000 (0)\n-23886 Disk Start            0000 (0)\n-23888 Int File Attributes   0000 (0)\n+239F5 Compression Method    0008 (8) 'Deflated'\n+239F7 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+239FB CRC                   C50A75E6 (3305797094)\n+239FF Compressed Size       0000032E (814)\n+23A03 Uncompressed Size     00000738 (1848)\n+23A07 Filename Length       0033 (51)\n+23A09 Extra Length          0000 (0)\n+23A0B Comment Length        0000 (0)\n+23A0D Disk Start            0000 (0)\n+23A0F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2388A Ext File Attributes   81A40000 (2175008768)\n+23A11 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-2388E Local Header Offset   0001F8A4 (129188)\n-23892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23A15 Local Header Offset   0001FA21 (129569)\n+23A19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23A19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-238C5 CENTRAL HEADER #129   02014B50 (33639248)\n-238C9 Created Zip Spec      14 (20) '2.0'\n-238CA Created OS            03 (3) 'Unix'\n-238CB Extract Zip Spec      14 (20) '2.0'\n-238CC Extract OS            00 (0) 'MS-DOS'\n-238CD General Purpose Flag  0800 (2048)\n+23A4C CENTRAL HEADER #129   02014B50 (33639248)\n+23A50 Created Zip Spec      14 (20) '2.0'\n+23A51 Created OS            03 (3) 'Unix'\n+23A52 Extract Zip Spec      14 (20) '2.0'\n+23A53 Extract OS            00 (0) 'MS-DOS'\n+23A54 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-238CF Compression Method    0008 (8) 'Deflated'\n-238D1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-238D5 CRC                   BFAE288D (3215861901)\n-238D9 Compressed Size       000002FE (766)\n-238DD Uncompressed Size     0000060E (1550)\n-238E1 Filename Length       002D (45)\n-238E3 Extra Length          0000 (0)\n-238E5 Comment Length        0000 (0)\n-238E7 Disk Start            0000 (0)\n-238E9 Int File Attributes   0000 (0)\n+23A56 Compression Method    0008 (8) 'Deflated'\n+23A58 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23A5C CRC                   7B898F0A (2072612618)\n+23A60 Compressed Size       00000307 (775)\n+23A64 Uncompressed Size     00000633 (1587)\n+23A68 Filename Length       002D (45)\n+23A6A Extra Length          0000 (0)\n+23A6C Comment Length        0000 (0)\n+23A6E Disk Start            0000 (0)\n+23A70 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-238EB Ext File Attributes   81A40000 (2175008768)\n+23A72 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-238EF Local Header Offset   0001FC1B (130075)\n-238F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23A76 Local Header Offset   0001FDA0 (130464)\n+23A7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x238F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23A7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23920 CENTRAL HEADER #130   02014B50 (33639248)\n-23924 Created Zip Spec      14 (20) '2.0'\n-23925 Created OS            03 (3) 'Unix'\n-23926 Extract Zip Spec      14 (20) '2.0'\n-23927 Extract OS            00 (0) 'MS-DOS'\n-23928 General Purpose Flag  0800 (2048)\n+23AA7 CENTRAL HEADER #130   02014B50 (33639248)\n+23AAB Created Zip Spec      14 (20) '2.0'\n+23AAC Created OS            03 (3) 'Unix'\n+23AAD Extract Zip Spec      14 (20) '2.0'\n+23AAE Extract OS            00 (0) 'MS-DOS'\n+23AAF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2392A Compression Method    0008 (8) 'Deflated'\n-2392C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23930 CRC                   7822E272 (2015552114)\n-23934 Compressed Size       00000057 (87)\n-23938 Uncompressed Size     000000BE (190)\n-2393C Filename Length       0038 (56)\n-2393E Extra Length          0000 (0)\n-23940 Comment Length        0000 (0)\n-23942 Disk Start            0000 (0)\n-23944 Int File Attributes   0000 (0)\n+23AB1 Compression Method    0008 (8) 'Deflated'\n+23AB3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23AB7 CRC                   7822E272 (2015552114)\n+23ABB Compressed Size       00000057 (87)\n+23ABF Uncompressed Size     000000BE (190)\n+23AC3 Filename Length       0038 (56)\n+23AC5 Extra Length          0000 (0)\n+23AC7 Comment Length        0000 (0)\n+23AC9 Disk Start            0000 (0)\n+23ACB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23946 Ext File Attributes   81A40000 (2175008768)\n+23ACD 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-2394A Local Header Offset   0001FF64 (130916)\n-2394E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23AD1 Local Header Offset   000200F2 (131314)\n+23AD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2394E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23AD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23986 CENTRAL HEADER #131   02014B50 (33639248)\n-2398A Created Zip Spec      14 (20) '2.0'\n-2398B Created OS            03 (3) 'Unix'\n-2398C Extract Zip Spec      14 (20) '2.0'\n-2398D Extract OS            00 (0) 'MS-DOS'\n-2398E General Purpose Flag  0800 (2048)\n+23B0D CENTRAL HEADER #131   02014B50 (33639248)\n+23B11 Created Zip Spec      14 (20) '2.0'\n+23B12 Created OS            03 (3) 'Unix'\n+23B13 Extract Zip Spec      14 (20) '2.0'\n+23B14 Extract OS            00 (0) 'MS-DOS'\n+23B15 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23990 Compression Method    0008 (8) 'Deflated'\n-23992 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23996 CRC                   F57FED56 (4118801750)\n-2399A Compressed Size       00000085 (133)\n-2399E Uncompressed Size     000001A3 (419)\n-239A2 Filename Length       003C (60)\n-239A4 Extra Length          0000 (0)\n-239A6 Comment Length        0000 (0)\n-239A8 Disk Start            0000 (0)\n-239AA Int File Attributes   0000 (0)\n+23B17 Compression Method    0008 (8) 'Deflated'\n+23B19 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23B1D CRC                   F57FED56 (4118801750)\n+23B21 Compressed Size       00000085 (133)\n+23B25 Uncompressed Size     000001A3 (419)\n+23B29 Filename Length       003C (60)\n+23B2B Extra Length          0000 (0)\n+23B2D Comment Length        0000 (0)\n+23B2F Disk Start            0000 (0)\n+23B31 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-239AC Ext File Attributes   81A40000 (2175008768)\n+23B33 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-239B0 Local Header Offset   00020011 (131089)\n-239B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23B37 Local Header Offset   0002019F (131487)\n+23B3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x239B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23B3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-239F0 CENTRAL HEADER #132   02014B50 (33639248)\n-239F4 Created Zip Spec      14 (20) '2.0'\n-239F5 Created OS            03 (3) 'Unix'\n-239F6 Extract Zip Spec      14 (20) '2.0'\n-239F7 Extract OS            00 (0) 'MS-DOS'\n-239F8 General Purpose Flag  0800 (2048)\n+23B77 CENTRAL HEADER #132   02014B50 (33639248)\n+23B7B Created Zip Spec      14 (20) '2.0'\n+23B7C Created OS            03 (3) 'Unix'\n+23B7D Extract Zip Spec      14 (20) '2.0'\n+23B7E Extract OS            00 (0) 'MS-DOS'\n+23B7F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-239FA Compression Method    0008 (8) 'Deflated'\n-239FC Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23A00 CRC                   ACEF17E5 (2901350373)\n-23A04 Compressed Size       0000003E (62)\n-23A08 Uncompressed Size     00000048 (72)\n-23A0C Filename Length       0044 (68)\n-23A0E Extra Length          0000 (0)\n-23A10 Comment Length        0000 (0)\n-23A12 Disk Start            0000 (0)\n-23A14 Int File Attributes   0000 (0)\n+23B81 Compression Method    0008 (8) 'Deflated'\n+23B83 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23B87 CRC                   ACEF17E5 (2901350373)\n+23B8B Compressed Size       0000003E (62)\n+23B8F Uncompressed Size     00000048 (72)\n+23B93 Filename Length       0044 (68)\n+23B95 Extra Length          0000 (0)\n+23B97 Comment Length        0000 (0)\n+23B99 Disk Start            0000 (0)\n+23B9B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23A16 Ext File Attributes   81A40000 (2175008768)\n+23B9D 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-23A1A Local Header Offset   000200F0 (131312)\n-23A1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23BA1 Local Header Offset   0002027E (131710)\n+23BA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23A1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23BA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23A62 CENTRAL HEADER #133   02014B50 (33639248)\n-23A66 Created Zip Spec      14 (20) '2.0'\n-23A67 Created OS            03 (3) 'Unix'\n-23A68 Extract Zip Spec      14 (20) '2.0'\n-23A69 Extract OS            00 (0) 'MS-DOS'\n-23A6A General Purpose Flag  0800 (2048)\n+23BE9 CENTRAL HEADER #133   02014B50 (33639248)\n+23BED Created Zip Spec      14 (20) '2.0'\n+23BEE Created OS            03 (3) 'Unix'\n+23BEF Extract Zip Spec      14 (20) '2.0'\n+23BF0 Extract OS            00 (0) 'MS-DOS'\n+23BF1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23A6C Compression Method    0008 (8) 'Deflated'\n-23A6E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23A72 CRC                   0D658C42 (224758850)\n-23A76 Compressed Size       00000070 (112)\n-23A7A Uncompressed Size     0000016F (367)\n-23A7E Filename Length       0046 (70)\n-23A80 Extra Length          0000 (0)\n-23A82 Comment Length        0000 (0)\n-23A84 Disk Start            0000 (0)\n-23A86 Int File Attributes   0000 (0)\n+23BF3 Compression Method    0008 (8) 'Deflated'\n+23BF5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23BF9 CRC                   0D658C42 (224758850)\n+23BFD Compressed Size       00000070 (112)\n+23C01 Uncompressed Size     0000016F (367)\n+23C05 Filename Length       0046 (70)\n+23C07 Extra Length          0000 (0)\n+23C09 Comment Length        0000 (0)\n+23C0B Disk Start            0000 (0)\n+23C0D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23A88 Ext File Attributes   81A40000 (2175008768)\n+23C0F 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-23A8C Local Header Offset   00020190 (131472)\n-23A90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23C13 Local Header Offset   0002031E (131870)\n+23C17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23A90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23C17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23AD6 CENTRAL HEADER #134   02014B50 (33639248)\n-23ADA Created Zip Spec      14 (20) '2.0'\n-23ADB Created OS            03 (3) 'Unix'\n-23ADC Extract Zip Spec      14 (20) '2.0'\n-23ADD Extract OS            00 (0) 'MS-DOS'\n-23ADE General Purpose Flag  0800 (2048)\n+23C5D CENTRAL HEADER #134   02014B50 (33639248)\n+23C61 Created Zip Spec      14 (20) '2.0'\n+23C62 Created OS            03 (3) 'Unix'\n+23C63 Extract Zip Spec      14 (20) '2.0'\n+23C64 Extract OS            00 (0) 'MS-DOS'\n+23C65 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23AE0 Compression Method    0008 (8) 'Deflated'\n-23AE2 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23AE6 CRC                   2EBB8418 (784040984)\n-23AEA Compressed Size       0000038B (907)\n-23AEE Uncompressed Size     00000951 (2385)\n-23AF2 Filename Length       003A (58)\n-23AF4 Extra Length          0000 (0)\n-23AF6 Comment Length        0000 (0)\n-23AF8 Disk Start            0000 (0)\n-23AFA Int File Attributes   0000 (0)\n+23C67 Compression Method    0008 (8) 'Deflated'\n+23C69 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23C6D CRC                   412C4DB4 (1093422516)\n+23C71 Compressed Size       00000384 (900)\n+23C75 Uncompressed Size     00000916 (2326)\n+23C79 Filename Length       003A (58)\n+23C7B Extra Length          0000 (0)\n+23C7D Comment Length        0000 (0)\n+23C7F Disk Start            0000 (0)\n+23C81 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23AFC Ext File Attributes   81A40000 (2175008768)\n+23C83 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-23B00 Local Header Offset   00020264 (131684)\n-23B04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23C87 Local Header Offset   000203F2 (132082)\n+23C8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23B04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23C8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23B3E CENTRAL HEADER #135   02014B50 (33639248)\n-23B42 Created Zip Spec      14 (20) '2.0'\n-23B43 Created OS            03 (3) 'Unix'\n-23B44 Extract Zip Spec      14 (20) '2.0'\n-23B45 Extract OS            00 (0) 'MS-DOS'\n-23B46 General Purpose Flag  0800 (2048)\n+23CC5 CENTRAL HEADER #135   02014B50 (33639248)\n+23CC9 Created Zip Spec      14 (20) '2.0'\n+23CCA Created OS            03 (3) 'Unix'\n+23CCB Extract Zip Spec      14 (20) '2.0'\n+23CCC Extract OS            00 (0) 'MS-DOS'\n+23CCD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23B48 Compression Method    0008 (8) 'Deflated'\n-23B4A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-23B4E CRC                   86CFF4B4 (2261775540)\n-23B52 Compressed Size       00000047 (71)\n-23B56 Uncompressed Size     00000049 (73)\n-23B5A Filename Length       0041 (65)\n-23B5C Extra Length          0000 (0)\n-23B5E Comment Length        0000 (0)\n-23B60 Disk Start            0000 (0)\n-23B62 Int File Attributes   0000 (0)\n+23CCF Compression Method    0008 (8) 'Deflated'\n+23CD1 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+23CD5 CRC                   86CFF4B4 (2261775540)\n+23CD9 Compressed Size       00000047 (71)\n+23CDD Uncompressed Size     00000049 (73)\n+23CE1 Filename Length       0041 (65)\n+23CE3 Extra Length          0000 (0)\n+23CE5 Comment Length        0000 (0)\n+23CE7 Disk Start            0000 (0)\n+23CE9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-23B64 Ext File Attributes   81A40000 (2175008768)\n+23CEB 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-23B68 Local Header Offset   00020647 (132679)\n-23B6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23CEF Local Header Offset   000207CE (133070)\n+23CF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23B6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x23CF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-23BAD END CENTRAL HEADER    06054B50 (101010256)\n-23BB1 Number of this disk   0000 (0)\n-23BB3 Central Dir Disk no   0000 (0)\n-23BB5 Entries in this disk  0087 (135)\n-23BB7 Total Entries         0087 (135)\n-23BB9 Size of Central Dir   000034C0 (13504)\n-23BBD Offset to Central Dir 000206ED (132845)\n-23BC1 Comment Length        0000 (0)\n+23D34 END CENTRAL HEADER    06054B50 (101010256)\n+23D38 Number of this disk   0000 (0)\n+23D3A Central Dir Disk no   0000 (0)\n+23D3C Entries in this disk  0087 (135)\n+23D3E Total Entries         0087 (135)\n+23D40 Size of Central Dir   000034C0 (13504)\n+23D44 Offset to Central Dir 00020874 (133236)\n+23D48 Comment Length        0000 (0)\n #\n # Error Count: 28\n # Warning Count: 298\n #\n # Done\n"}, {"source1": "org/apache/dubbo/remoting/Channel.java", "source2": "org/apache/dubbo/remoting/Channel.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * Channel. (API/SPI, Prototype, ThreadSafe)\n- *\n- * @see org.apache.dubbo.remoting.Client\n- * @see RemotingServer#getChannels()\n- * @see RemotingServer#getChannel(InetSocketAddress)\n- */\n-public interface Channel extends Endpoint {\n-\n-    /**\n-     * get remote address.\n-     *\n-     * @return remote address.\n-     */\n-    InetSocketAddress getRemoteAddress();\n-\n-    /**\n-     * is connected.\n-     *\n-     * @return connected\n-     */\n-    boolean isConnected();\n-\n-    /**\n-     * has attribute.\n-     *\n-     * @param key key.\n-     * @return has or has not.\n-     */\n-    boolean hasAttribute(String key);\n-\n-    /**\n-     * get attribute.\n-     *\n-     * @param key key.\n-     * @return value.\n-     */\n-    Object getAttribute(String key);\n-\n-    /**\n-     * set attribute.\n-     *\n-     * @param key   key.\n-     * @param value value.\n-     */\n-    void setAttribute(String key, Object value);\n-\n-    /**\n-     * remove attribute.\n-     *\n-     * @param key key.\n-     */\n-    void removeAttribute(String key);\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * Channel. (API/SPI, Prototype, ThreadSafe)\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Client\r\n+ * @see RemotingServer#getChannels()\r\n+ * @see RemotingServer#getChannel(InetSocketAddress)\r\n+ */\r\n+public interface Channel extends Endpoint {\r\n+\r\n+    /**\r\n+     * get remote address.\r\n+     *\r\n+     * @return remote address.\r\n+     */\r\n+    InetSocketAddress getRemoteAddress();\r\n+\r\n+    /**\r\n+     * is connected.\r\n+     *\r\n+     * @return connected\r\n+     */\r\n+    boolean isConnected();\r\n+\r\n+    /**\r\n+     * has attribute.\r\n+     *\r\n+     * @param key key.\r\n+     * @return has or has not.\r\n+     */\r\n+    boolean hasAttribute(String key);\r\n+\r\n+    /**\r\n+     * get attribute.\r\n+     *\r\n+     * @param key key.\r\n+     * @return value.\r\n+     */\r\n+    Object getAttribute(String key);\r\n+\r\n+    /**\r\n+     * set attribute.\r\n+     *\r\n+     * @param key   key.\r\n+     * @param value value.\r\n+     */\r\n+    void setAttribute(String key, Object value);\r\n+\r\n+    /**\r\n+     * remove attribute.\r\n+     *\r\n+     * @param key key.\r\n+     */\r\n+    void removeAttribute(String key);\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Codec.java", "source2": "org/apache/dubbo/remoting/Codec.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * Codec. (SPI, Singleton, ThreadSafe)\n- */\n-@Deprecated\n-@SPI\n-public interface Codec {\n-\n-    /**\n-     * Need more input poison.\n-     *\n-     * @see #decode(Channel, InputStream)\n-     */\n-    Object NEED_MORE_INPUT = new Object();\n-\n-    /**\n-     * Encode message.\n-     *\n-     * @param channel channel.\n-     * @param output  output stream.\n-     * @param message message.\n-     */\n-    @Adaptive({Constants.CODEC_KEY})\n-    void encode(Channel channel, OutputStream output, Object message) throws IOException;\n-\n-    /**\n-     * Decode message.\n-     *\n-     * @param channel channel.\n-     * @param input   input stream.\n-     * @return message or <code>NEED_MORE_INPUT</code> poison.\n-     * @see #NEED_MORE_INPUT\n-     */\n-    @Adaptive({Constants.CODEC_KEY})\n-    Object decode(Channel channel, InputStream input) throws IOException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Codec. (SPI, Singleton, ThreadSafe)\r\n+ */\r\n+@Deprecated\r\n+@SPI\r\n+public interface Codec {\r\n+\r\n+    /**\r\n+     * Need more input poison.\r\n+     *\r\n+     * @see #decode(Channel, InputStream)\r\n+     */\r\n+    Object NEED_MORE_INPUT = new Object();\r\n+\r\n+    /**\r\n+     * Encode message.\r\n+     *\r\n+     * @param channel channel.\r\n+     * @param output  output stream.\r\n+     * @param message message.\r\n+     */\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    void encode(Channel channel, OutputStream output, Object message) throws IOException;\r\n+\r\n+    /**\r\n+     * Decode message.\r\n+     *\r\n+     * @param channel channel.\r\n+     * @param input   input stream.\r\n+     * @return message or <code>NEED_MORE_INPUT</code> poison.\r\n+     * @see #NEED_MORE_INPUT\r\n+     */\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    Object decode(Channel channel, InputStream input) throws IOException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/Codec2.java", "source2": "org/apache/dubbo/remoting/Codec2.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.remoting;\n-\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-\n-import java.io.IOException;\n-\n-@SPI\n-public interface Codec2 {\n-\n-    @Adaptive({Constants.CODEC_KEY})\n-    void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException;\n-\n-    @Adaptive({Constants.CODEC_KEY})\n-    Object decode(Channel channel, ChannelBuffer buffer) throws IOException;\n-\n-\n-    enum DecodeResult {\n-        NEED_MORE_INPUT, SKIP_SOME_INPUT\n-    }\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+@SPI\r\n+public interface Codec2 {\r\n+\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException;\r\n+\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    Object decode(Channel channel, ChannelBuffer buffer) throws IOException;\r\n+\r\n+\r\n+    enum DecodeResult {\r\n+        NEED_MORE_INPUT, SKIP_SOME_INPUT\r\n+    }\r\n+\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/remoting/Constants.java", "source2": "org/apache/dubbo/remoting/Constants.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,138 +1,138 @@\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.remoting;\n-\n-\n-public interface Constants {\n-\n-    String BUFFER_KEY = \"buffer\";\n-\n-    /**\n-     * default buffer size is 8k.\n-     */\n-    int DEFAULT_BUFFER_SIZE = 8 * 1024;\n-\n-    int MAX_BUFFER_SIZE = 16 * 1024;\n-\n-    int MIN_BUFFER_SIZE = 1 * 1024;\n-\n-    String IDLE_TIMEOUT_KEY = \"idle.timeout\";\n-\n-    int DEFAULT_IDLE_TIMEOUT = 600 * 1000;\n-    /**\n-     * max size of channel. default value is zero that means unlimited.\n-     */\n-    String ACCEPTS_KEY = \"accepts\";\n-\n-    int DEFAULT_ACCEPTS = 0;\n-\n-    String CONNECT_QUEUE_CAPACITY = \"connect.queue.capacity\";\n-\n-    String CONNECT_QUEUE_WARNING_SIZE = \"connect.queue.warning.size\";\n-\n-    int DEFAULT_CONNECT_QUEUE_WARNING_SIZE = 1000;\n-\n-    String CHARSET_KEY = \"charset\";\n-\n-    String DEFAULT_CHARSET = \"UTF-8\";\n-\n-    /**\n-     * Every heartbeat duration / HEARTBEAT_CHECK_TICK, check if a heartbeat should be sent. Every heartbeat timeout\n-     * duration / HEARTBEAT_CHECK_TICK, check if a connection should be closed on server side, and if reconnect on\n-     * client side\n-     */\n-    int HEARTBEAT_CHECK_TICK = 3;\n-\n-    /**\n-     * the least heartbeat during is 1000 ms.\n-     */\n-    long LEAST_HEARTBEAT_DURATION = 1000;\n-\n-    /**\n-     * ticks per wheel.\n-     */\n-    int TICKS_PER_WHEEL = 128;\n-    String PAYLOAD_KEY = \"payload\";\n-    /**\n-     * 8M\n-     */\n-    int DEFAULT_PAYLOAD = 8 * 1024 * 1024;\n-\n-    String CONNECT_TIMEOUT_KEY = \"connect.timeout\";\n-\n-    int DEFAULT_CONNECT_TIMEOUT = 3000;\n-\n-    String SERIALIZATION_KEY = \"serialization\";\n-\n-    String DEFAULT_REMOTING_SERIALIZATION = \"hessian2\";\n-\n-    String CODEC_KEY = \"codec\";\n-\n-    String CODEC_VERSION_KEY = \"codec.version\";\n-\n-    String SERVER_KEY = \"server\";\n-\n-    String CLIENT_KEY = \"client\";\n-\n-    String DEFAULT_REMOTING_CLIENT = \"netty\";\n-\n-    String TRANSPORTER_KEY = \"transporter\";\n-\n-    String DEFAULT_TRANSPORTER = \"netty\";\n-\n-    String EXCHANGER_KEY = \"exchanger\";\n-\n-    String DEFAULT_EXCHANGER = \"header\";\n-\n-    String DISPACTHER_KEY = \"dispacther\";\n-\n-    int DEFAULT_IO_THREADS = Math.min(Runtime.getRuntime().availableProcessors() + 1, 32);\n-\n-    String BIND_IP_KEY = \"bind.ip\";\n-\n-    String BIND_PORT_KEY = \"bind.port\";\n-\n-    String SENT_KEY = \"sent\";\n-\n-    String DISPATCHER_KEY = \"dispatcher\";\n-\n-    String CHANNEL_ATTRIBUTE_READONLY_KEY = \"channel.readonly\";\n-\n-    String CHANNEL_READONLYEVENT_SENT_KEY = \"channel.readonly.sent\";\n-\n-    String CHANNEL_SEND_READONLYEVENT_KEY = \"channel.readonly.send\";\n-\n-    String RECONNECT_KEY = \"reconnect\";\n-\n-    int DEFAULT_RECONNECT_PERIOD = 2000;\n-\n-    String SEND_RECONNECT_KEY = \"send.reconnect\";\n-\n-    String CHECK_KEY = \"check\";\n-\n-    String PROMPT_KEY = \"prompt\";\n-\n-    String DEFAULT_PROMPT = \"dubbo>\";\n-    String TELNET = \"telnet\";\n-    String HEARTBEAT_KEY = \"heartbeat\";\n-    int DEFAULT_HEARTBEAT = 60 * 1000;\n-    String HEARTBEAT_TIMEOUT_KEY = \"heartbeat.timeout\";\n-    String CONNECTIONS_KEY = \"connections\";\n-\n-    int DEFAULT_BACKLOG = 1024;\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.remoting;\r\n+\r\n+\r\n+public interface Constants {\r\n+\r\n+    String BUFFER_KEY = \"buffer\";\r\n+\r\n+    /**\r\n+     * default buffer size is 8k.\r\n+     */\r\n+    int DEFAULT_BUFFER_SIZE = 8 * 1024;\r\n+\r\n+    int MAX_BUFFER_SIZE = 16 * 1024;\r\n+\r\n+    int MIN_BUFFER_SIZE = 1 * 1024;\r\n+\r\n+    String IDLE_TIMEOUT_KEY = \"idle.timeout\";\r\n+\r\n+    int DEFAULT_IDLE_TIMEOUT = 600 * 1000;\r\n+    /**\r\n+     * max size of channel. default value is zero that means unlimited.\r\n+     */\r\n+    String ACCEPTS_KEY = \"accepts\";\r\n+\r\n+    int DEFAULT_ACCEPTS = 0;\r\n+\r\n+    String CONNECT_QUEUE_CAPACITY = \"connect.queue.capacity\";\r\n+\r\n+    String CONNECT_QUEUE_WARNING_SIZE = \"connect.queue.warning.size\";\r\n+\r\n+    int DEFAULT_CONNECT_QUEUE_WARNING_SIZE = 1000;\r\n+\r\n+    String CHARSET_KEY = \"charset\";\r\n+\r\n+    String DEFAULT_CHARSET = \"UTF-8\";\r\n+\r\n+    /**\r\n+     * Every heartbeat duration / HEARTBEAT_CHECK_TICK, check if a heartbeat should be sent. Every heartbeat timeout\r\n+     * duration / HEARTBEAT_CHECK_TICK, check if a connection should be closed on server side, and if reconnect on\r\n+     * client side\r\n+     */\r\n+    int HEARTBEAT_CHECK_TICK = 3;\r\n+\r\n+    /**\r\n+     * the least heartbeat during is 1000 ms.\r\n+     */\r\n+    long LEAST_HEARTBEAT_DURATION = 1000;\r\n+\r\n+    /**\r\n+     * ticks per wheel.\r\n+     */\r\n+    int TICKS_PER_WHEEL = 128;\r\n+    String PAYLOAD_KEY = \"payload\";\r\n+    /**\r\n+     * 8M\r\n+     */\r\n+    int DEFAULT_PAYLOAD = 8 * 1024 * 1024;\r\n+\r\n+    String CONNECT_TIMEOUT_KEY = \"connect.timeout\";\r\n+\r\n+    int DEFAULT_CONNECT_TIMEOUT = 3000;\r\n+\r\n+    String SERIALIZATION_KEY = \"serialization\";\r\n+\r\n+    String DEFAULT_REMOTING_SERIALIZATION = \"hessian2\";\r\n+\r\n+    String CODEC_KEY = \"codec\";\r\n+\r\n+    String CODEC_VERSION_KEY = \"codec.version\";\r\n+\r\n+    String SERVER_KEY = \"server\";\r\n+\r\n+    String CLIENT_KEY = \"client\";\r\n+\r\n+    String DEFAULT_REMOTING_CLIENT = \"netty\";\r\n+\r\n+    String TRANSPORTER_KEY = \"transporter\";\r\n+\r\n+    String DEFAULT_TRANSPORTER = \"netty\";\r\n+\r\n+    String EXCHANGER_KEY = \"exchanger\";\r\n+\r\n+    String DEFAULT_EXCHANGER = \"header\";\r\n+\r\n+    String DISPACTHER_KEY = \"dispacther\";\r\n+\r\n+    int DEFAULT_IO_THREADS = Math.min(Runtime.getRuntime().availableProcessors() + 1, 32);\r\n+\r\n+    String BIND_IP_KEY = \"bind.ip\";\r\n+\r\n+    String BIND_PORT_KEY = \"bind.port\";\r\n+\r\n+    String SENT_KEY = \"sent\";\r\n+\r\n+    String DISPATCHER_KEY = \"dispatcher\";\r\n+\r\n+    String CHANNEL_ATTRIBUTE_READONLY_KEY = \"channel.readonly\";\r\n+\r\n+    String CHANNEL_READONLYEVENT_SENT_KEY = \"channel.readonly.sent\";\r\n+\r\n+    String CHANNEL_SEND_READONLYEVENT_KEY = \"channel.readonly.send\";\r\n+\r\n+    String RECONNECT_KEY = \"reconnect\";\r\n+\r\n+    int DEFAULT_RECONNECT_PERIOD = 2000;\r\n+\r\n+    String SEND_RECONNECT_KEY = \"send.reconnect\";\r\n+\r\n+    String CHECK_KEY = \"check\";\r\n+\r\n+    String PROMPT_KEY = \"prompt\";\r\n+\r\n+    String DEFAULT_PROMPT = \"dubbo>\";\r\n+    String TELNET = \"telnet\";\r\n+    String HEARTBEAT_KEY = \"heartbeat\";\r\n+    int DEFAULT_HEARTBEAT = 60 * 1000;\r\n+    String HEARTBEAT_TIMEOUT_KEY = \"heartbeat.timeout\";\r\n+    String CONNECTIONS_KEY = \"connections\";\r\n+\r\n+    int DEFAULT_BACKLOG = 1024;\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Dispatcher.java", "source2": "org/apache/dubbo/remoting/Dispatcher.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher;\n-\n-/**\n- * ChannelHandlerWrapper (SPI, Singleton, ThreadSafe)\n- */\n-@SPI(AllDispatcher.NAME)\n-public interface Dispatcher {\n-\n-    /**\n-     * dispatch the message to threadpool.\n-     *\n-     * @param handler\n-     * @param url\n-     * @return channel handler\n-     */\n-    @Adaptive({Constants.DISPATCHER_KEY, \"dispather\", \"channel.handler\"})\n-    // The last two parameters are reserved for compatibility with the old configuration\n-    ChannelHandler dispatch(ChannelHandler handler, URL 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.remoting;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher;\r\n+\r\n+/**\r\n+ * ChannelHandlerWrapper (SPI, Singleton, ThreadSafe)\r\n+ */\r\n+@SPI(AllDispatcher.NAME)\r\n+public interface Dispatcher {\r\n+\r\n+    /**\r\n+     * dispatch the message to threadpool.\r\n+     *\r\n+     * @param handler\r\n+     * @param url\r\n+     * @return channel handler\r\n+     */\r\n+    @Adaptive({Constants.DISPATCHER_KEY, \"dispather\", \"channel.handler\"})\r\n+    // The last two parameters are reserved for compatibility with the old configuration\r\n+    ChannelHandler dispatch(ChannelHandler handler, URL url);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/IdleSensible.java", "source2": "org/apache/dubbo/remoting/IdleSensible.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-/**\n- * Indicate whether the implementation (for both server and client) has the ability to sense and handle idle connection.\n- * If the server has the ability to handle idle connection, it should close the connection when it happens, and if\n- * the client has the ability to handle idle connection, it should send the heartbeat to the server.\n- */\n-public interface IdleSensible {\n-    /**\n-     * Whether the implementation can sense and handle the idle connection. By default it's false, the implementation\n-     * relies on dedicated timer to take care of idle connection.\n-     *\n-     * @return whether has the ability to handle idle connection\n-     */\n-    default boolean canHandleIdle() {\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.remoting;\r\n+\r\n+/**\r\n+ * Indicate whether the implementation (for both server and client) has the ability to sense and handle idle connection.\r\n+ * If the server has the ability to handle idle connection, it should close the connection when it happens, and if\r\n+ * the client has the ability to handle idle connection, it should send the heartbeat to the server.\r\n+ */\r\n+public interface IdleSensible {\r\n+    /**\r\n+     * Whether the implementation can sense and handle the idle connection. By default it's false, the implementation\r\n+     * relies on dedicated timer to take care of idle connection.\r\n+     *\r\n+     * @return whether has the ability to handle idle connection\r\n+     */\r\n+    default boolean canHandleIdle() {\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/RemotingException.java", "source2": "org/apache/dubbo/remoting/RemotingException.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,84 +1,84 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * RemotingException. (API, Prototype, ThreadSafe)\n- *\n- * @export\n- * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\n- * @see org.apache.dubbo.remoting.Channel#send(Object, boolean)\n- * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object)\n- * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object, int)\n- * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\n- * @see org.apache.dubbo.remoting.Transporter#connect(org.apache.dubbo.common.URL, ChannelHandler)\n- */\n-public class RemotingException extends Exception {\n-\n-    private static final long serialVersionUID = -3160452149606778709L;\n-\n-    private InetSocketAddress localAddress;\n-\n-    private InetSocketAddress remoteAddress;\n-\n-    public RemotingException(Channel channel, String msg) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                msg);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\n-        super(message);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public RemotingException(Channel channel, Throwable cause) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\n-        super(cause);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public RemotingException(Channel channel, String message, Throwable cause) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                message, cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message,\n-                             Throwable cause) {\n-        super(message, cause);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public InetSocketAddress getLocalAddress() {\n-        return localAddress;\n-    }\n-\n-    public InetSocketAddress getRemoteAddress() {\n-        return remoteAddress;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * RemotingException. (API, Prototype, ThreadSafe)\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\r\n+ * @see org.apache.dubbo.remoting.Channel#send(Object, boolean)\r\n+ * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object)\r\n+ * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object, int)\r\n+ * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ * @see org.apache.dubbo.remoting.Transporter#connect(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ */\r\n+public class RemotingException extends Exception {\r\n+\r\n+    private static final long serialVersionUID = -3160452149606778709L;\r\n+\r\n+    private InetSocketAddress localAddress;\r\n+\r\n+    private InetSocketAddress remoteAddress;\r\n+\r\n+    public RemotingException(Channel channel, String msg) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                msg);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\r\n+        super(message);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, Throwable cause) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\r\n+        super(cause);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, String message, Throwable cause) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                message, cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message,\r\n+                             Throwable cause) {\r\n+        super(message, cause);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return localAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return remoteAddress;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/RemotingServer.java", "source2": "org/apache/dubbo/remoting/RemotingServer.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.Resetable;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-\n-/**\n- * Remoting Server. (API/SPI, Prototype, ThreadSafe)\n- * <p>\n- * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\n- *\n- * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\n- */\n-public interface RemotingServer extends Endpoint, Resetable, IdleSensible {\n-\n-    /**\n-     * is bound.\n-     *\n-     * @return bound\n-     */\n-    boolean isBound();\n-\n-    /**\n-     * get channels.\n-     *\n-     * @return channels\n-     */\n-    Collection<Channel> getChannels();\n-\n-    /**\n-     * get channel.\n-     *\n-     * @param remoteAddress\n-     * @return channel\n-     */\n-    Channel getChannel(InetSocketAddress remoteAddress);\n-\n-    @Deprecated\n-    void reset(org.apache.dubbo.common.Parameters parameters);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.Resetable;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * Remoting Server. (API/SPI, Prototype, ThreadSafe)\r\n+ * <p>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ */\r\n+public interface RemotingServer extends Endpoint, Resetable, IdleSensible {\r\n+\r\n+    /**\r\n+     * is bound.\r\n+     *\r\n+     * @return bound\r\n+     */\r\n+    boolean isBound();\r\n+\r\n+    /**\r\n+     * get channels.\r\n+     *\r\n+     * @return channels\r\n+     */\r\n+    Collection<Channel> getChannels();\r\n+\r\n+    /**\r\n+     * get channel.\r\n+     *\r\n+     * @param remoteAddress\r\n+     * @return channel\r\n+     */\r\n+    Channel getChannel(InetSocketAddress remoteAddress);\r\n+\r\n+    @Deprecated\r\n+    void reset(org.apache.dubbo.common.Parameters parameters);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/TimeoutException.java", "source2": "org/apache/dubbo/remoting/TimeoutException.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * TimeoutException. (API, Prototype, ThreadSafe)\n- *\n- * @export\n- * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\n- */\n-public class TimeoutException extends RemotingException {\n-\n-    public static final int CLIENT_SIDE = 0;\n-    public static final int SERVER_SIDE = 1;\n-    private static final long serialVersionUID = 3122966731958222692L;\n-    private final int phase;\n-\n-    public TimeoutException(boolean serverSide, Channel channel, String message) {\n-        super(channel, message);\n-        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\n-    }\n-\n-    public TimeoutException(boolean serverSide, InetSocketAddress localAddress,\n-                            InetSocketAddress remoteAddress, String message) {\n-        super(localAddress, remoteAddress, message);\n-        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\n-    }\n-\n-    public int getPhase() {\n-        return phase;\n-    }\n-\n-    public boolean isServerSide() {\n-        return phase == 1;\n-    }\n-\n-    public boolean isClientSide() {\n-        return phase == 0;\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * TimeoutException. (API, Prototype, ThreadSafe)\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\r\n+ */\r\n+public class TimeoutException extends RemotingException {\r\n+\r\n+    public static final int CLIENT_SIDE = 0;\r\n+    public static final int SERVER_SIDE = 1;\r\n+    private static final long serialVersionUID = 3122966731958222692L;\r\n+    private final int phase;\r\n+\r\n+    public TimeoutException(boolean serverSide, Channel channel, String message) {\r\n+        super(channel, message);\r\n+        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\r\n+    }\r\n+\r\n+    public TimeoutException(boolean serverSide, InetSocketAddress localAddress,\r\n+                            InetSocketAddress remoteAddress, String message) {\r\n+        super(localAddress, remoteAddress, message);\r\n+        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\r\n+    }\r\n+\r\n+    public int getPhase() {\r\n+        return phase;\r\n+    }\r\n+\r\n+    public boolean isServerSide() {\r\n+        return phase == 1;\r\n+    }\r\n+\r\n+    public boolean isClientSide() {\r\n+        return phase == 0;\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Transporter.java", "source2": "org/apache/dubbo/remoting/Transporter.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Transporter. (SPI, Singleton, ThreadSafe)\n- * <p>\n- * <a href=\"http://en.wikipedia.org/wiki/Transport_Layer\">Transport Layer</a>\n- * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\n- *\n- * @see org.apache.dubbo.remoting.Transporters\n- */\n-@SPI(\"netty\")\n-public interface Transporter {\n-\n-    /**\n-     * Bind a server.\n-     *\n-     * @param url     server url\n-     * @param handler\n-     * @return server\n-     * @throws RemotingException\n-     * @see org.apache.dubbo.remoting.Transporters#bind(URL, ChannelHandler...)\n-     */\n-    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\n-    RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException;\n-\n-    /**\n-     * Connect to a server.\n-     *\n-     * @param url     server url\n-     * @param handler\n-     * @return client\n-     * @throws RemotingException\n-     * @see org.apache.dubbo.remoting.Transporters#connect(URL, ChannelHandler...)\n-     */\n-    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\n-    Client connect(URL url, ChannelHandler handler) throws RemotingException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Transporter. (SPI, Singleton, ThreadSafe)\r\n+ * <p>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Transport_Layer\">Transport Layer</a>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Transporters\r\n+ */\r\n+@SPI(\"netty\")\r\n+public interface Transporter {\r\n+\r\n+    /**\r\n+     * Bind a server.\r\n+     *\r\n+     * @param url     server url\r\n+     * @param handler\r\n+     * @return server\r\n+     * @throws RemotingException\r\n+     * @see org.apache.dubbo.remoting.Transporters#bind(URL, ChannelHandler...)\r\n+     */\r\n+    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\r\n+    RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException;\r\n+\r\n+    /**\r\n+     * Connect to a server.\r\n+     *\r\n+     * @param url     server url\r\n+     * @param handler\r\n+     * @return client\r\n+     * @throws RemotingException\r\n+     * @see org.apache.dubbo.remoting.Transporters#connect(URL, ChannelHandler...)\r\n+     */\r\n+    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\r\n+    Client connect(URL url, ChannelHandler handler) throws RemotingException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java", "source2": "org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,341 +1,341 @@\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.remoting.buffer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.nio.ByteBuffer;\n-\n-public abstract class AbstractChannelBuffer implements ChannelBuffer {\n-\n-    private int readerIndex;\n-\n-    private int writerIndex;\n-\n-    private int markedReaderIndex;\n-\n-    private int markedWriterIndex;\n-\n-    @Override\n-    public int readerIndex() {\n-        return readerIndex;\n-    }\n-\n-    @Override\n-    public void readerIndex(int readerIndex) {\n-        if (readerIndex < 0 || readerIndex > writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.readerIndex = readerIndex;\n-    }\n-\n-    @Override\n-    public int writerIndex() {\n-        return writerIndex;\n-    }\n-\n-    @Override\n-    public void writerIndex(int writerIndex) {\n-        if (writerIndex < readerIndex || writerIndex > capacity()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.writerIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void setIndex(int readerIndex, int writerIndex) {\n-        if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.readerIndex = readerIndex;\n-        this.writerIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void clear() {\n-        readerIndex = writerIndex = 0;\n-    }\n-\n-    @Override\n-    public boolean readable() {\n-        return readableBytes() > 0;\n-    }\n-\n-    @Override\n-    public boolean writable() {\n-        return writableBytes() > 0;\n-    }\n-\n-    @Override\n-    public int readableBytes() {\n-        return writerIndex - readerIndex;\n-    }\n-\n-    @Override\n-    public int writableBytes() {\n-        return capacity() - writerIndex;\n-    }\n-\n-    @Override\n-    public void markReaderIndex() {\n-        markedReaderIndex = readerIndex;\n-    }\n-\n-    @Override\n-    public void resetReaderIndex() {\n-        readerIndex(markedReaderIndex);\n-    }\n-\n-    @Override\n-    public void markWriterIndex() {\n-        markedWriterIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void resetWriterIndex() {\n-        writerIndex = markedWriterIndex;\n-    }\n-\n-    @Override\n-    public void discardReadBytes() {\n-        if (readerIndex == 0) {\n-            return;\n-        }\n-        setBytes(0, this, readerIndex, writerIndex - readerIndex);\n-        writerIndex -= readerIndex;\n-        markedReaderIndex = Math.max(markedReaderIndex - readerIndex, 0);\n-        markedWriterIndex = Math.max(markedWriterIndex - readerIndex, 0);\n-        readerIndex = 0;\n-    }\n-\n-    @Override\n-    public void ensureWritableBytes(int writableBytes) {\n-        if (writableBytes > writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-    }\n-\n-    @Override\n-    public void getBytes(int index, byte[] dst) {\n-        getBytes(index, dst, 0, dst.length);\n-    }\n-\n-    @Override\n-    public void getBytes(int index, ChannelBuffer dst) {\n-        getBytes(index, dst, dst.writableBytes());\n-    }\n-\n-    @Override\n-    public void getBytes(int index, ChannelBuffer dst, int length) {\n-        if (length > dst.writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        getBytes(index, dst, dst.writerIndex(), length);\n-        dst.writerIndex(dst.writerIndex() + length);\n-    }\n-\n-    @Override\n-    public void setBytes(int index, byte[] src) {\n-        setBytes(index, src, 0, src.length);\n-    }\n-\n-    @Override\n-    public void setBytes(int index, ChannelBuffer src) {\n-        setBytes(index, src, src.readableBytes());\n-    }\n-\n-    @Override\n-    public void setBytes(int index, ChannelBuffer src, int length) {\n-        if (length > src.readableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        setBytes(index, src, src.readerIndex(), length);\n-        src.readerIndex(src.readerIndex() + length);\n-    }\n-\n-    @Override\n-    public byte readByte() {\n-        if (readerIndex == writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        return getByte(readerIndex++);\n-    }\n-\n-    @Override\n-    public ChannelBuffer readBytes(int length) {\n-        checkReadableBytes(length);\n-        if (length == 0) {\n-            return ChannelBuffers.EMPTY_BUFFER;\n-        }\n-        ChannelBuffer buf = factory().getBuffer(length);\n-        buf.writeBytes(this, readerIndex, length);\n-        readerIndex += length;\n-        return buf;\n-    }\n-\n-    @Override\n-    public void readBytes(byte[] dst, int dstIndex, int length) {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst, dstIndex, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(byte[] dst) {\n-        readBytes(dst, 0, dst.length);\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst) {\n-        readBytes(dst, dst.writableBytes());\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst, int length) {\n-        if (length > dst.writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        readBytes(dst, dst.writerIndex(), length);\n-        dst.writerIndex(dst.writerIndex() + length);\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst, int dstIndex, int length) {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst, dstIndex, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(ByteBuffer dst) {\n-        int length = dst.remaining();\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(OutputStream out, int length) throws IOException {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, out, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void skipBytes(int length) {\n-        int newReaderIndex = readerIndex + length;\n-        if (newReaderIndex > writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        readerIndex = newReaderIndex;\n-    }\n-\n-    @Override\n-    public void writeByte(int value) {\n-        setByte(writerIndex++, value);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] src, int srcIndex, int length) {\n-        setBytes(writerIndex, src, srcIndex, length);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] src) {\n-        writeBytes(src, 0, src.length);\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src) {\n-        writeBytes(src, src.readableBytes());\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src, int length) {\n-        if (length > src.readableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        writeBytes(src, src.readerIndex(), length);\n-        src.readerIndex(src.readerIndex() + length);\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src, int srcIndex, int length) {\n-        setBytes(writerIndex, src, srcIndex, length);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public void writeBytes(ByteBuffer src) {\n-        int length = src.remaining();\n-        setBytes(writerIndex, src);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public int writeBytes(InputStream in, int length) throws IOException {\n-        int writtenBytes = setBytes(writerIndex, in, length);\n-        if (writtenBytes > 0) {\n-            writerIndex += writtenBytes;\n-        }\n-        return writtenBytes;\n-    }\n-\n-    @Override\n-    public ChannelBuffer copy() {\n-        return copy(readerIndex, readableBytes());\n-    }\n-\n-    @Override\n-    public ByteBuffer toByteBuffer() {\n-        return toByteBuffer(readerIndex, readableBytes());\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        return o instanceof ChannelBuffer\n-                && ChannelBuffers.equals(this, (ChannelBuffer) o);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return ChannelBuffers.hasCode(this);\n-    }\n-\n-    @Override\n-    public int compareTo(ChannelBuffer that) {\n-        return ChannelBuffers.compare(this, that);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getClass().getSimpleName() + '(' +\n-                \"ridx=\" + readerIndex + \", \" +\n-                \"widx=\" + writerIndex + \", \" +\n-                \"cap=\" + capacity() +\n-                ')';\n-    }\n-\n-    protected void checkReadableBytes(int minimumReadableBytes) {\n-        if (readableBytes() < minimumReadableBytes) {\n-            throw new IndexOutOfBoundsException();\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.remoting.buffer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.nio.ByteBuffer;\r\n+\r\n+public abstract class AbstractChannelBuffer implements ChannelBuffer {\r\n+\r\n+    private int readerIndex;\r\n+\r\n+    private int writerIndex;\r\n+\r\n+    private int markedReaderIndex;\r\n+\r\n+    private int markedWriterIndex;\r\n+\r\n+    @Override\r\n+    public int readerIndex() {\r\n+        return readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readerIndex(int readerIndex) {\r\n+        if (readerIndex < 0 || readerIndex > writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.readerIndex = readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writerIndex() {\r\n+        return writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writerIndex(int writerIndex) {\r\n+        if (writerIndex < readerIndex || writerIndex > capacity()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.writerIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setIndex(int readerIndex, int writerIndex) {\r\n+        if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.readerIndex = readerIndex;\r\n+        this.writerIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void clear() {\r\n+        readerIndex = writerIndex = 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readable() {\r\n+        return readableBytes() > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean writable() {\r\n+        return writableBytes() > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readableBytes() {\r\n+        return writerIndex - readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writableBytes() {\r\n+        return capacity() - writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void markReaderIndex() {\r\n+        markedReaderIndex = readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void resetReaderIndex() {\r\n+        readerIndex(markedReaderIndex);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void markWriterIndex() {\r\n+        markedWriterIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void resetWriterIndex() {\r\n+        writerIndex = markedWriterIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void discardReadBytes() {\r\n+        if (readerIndex == 0) {\r\n+            return;\r\n+        }\r\n+        setBytes(0, this, readerIndex, writerIndex - readerIndex);\r\n+        writerIndex -= readerIndex;\r\n+        markedReaderIndex = Math.max(markedReaderIndex - readerIndex, 0);\r\n+        markedWriterIndex = Math.max(markedWriterIndex - readerIndex, 0);\r\n+        readerIndex = 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void ensureWritableBytes(int writableBytes) {\r\n+        if (writableBytes > writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, byte[] dst) {\r\n+        getBytes(index, dst, 0, dst.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, ChannelBuffer dst) {\r\n+        getBytes(index, dst, dst.writableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, ChannelBuffer dst, int length) {\r\n+        if (length > dst.writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        getBytes(index, dst, dst.writerIndex(), length);\r\n+        dst.writerIndex(dst.writerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, byte[] src) {\r\n+        setBytes(index, src, 0, src.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, ChannelBuffer src) {\r\n+        setBytes(index, src, src.readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, ChannelBuffer src, int length) {\r\n+        if (length > src.readableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        setBytes(index, src, src.readerIndex(), length);\r\n+        src.readerIndex(src.readerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() {\r\n+        if (readerIndex == writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        return getByte(readerIndex++);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelBuffer readBytes(int length) {\r\n+        checkReadableBytes(length);\r\n+        if (length == 0) {\r\n+            return ChannelBuffers.EMPTY_BUFFER;\r\n+        }\r\n+        ChannelBuffer buf = factory().getBuffer(length);\r\n+        buf.writeBytes(this, readerIndex, length);\r\n+        readerIndex += length;\r\n+        return buf;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(byte[] dst, int dstIndex, int length) {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst, dstIndex, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(byte[] dst) {\r\n+        readBytes(dst, 0, dst.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst) {\r\n+        readBytes(dst, dst.writableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst, int length) {\r\n+        if (length > dst.writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        readBytes(dst, dst.writerIndex(), length);\r\n+        dst.writerIndex(dst.writerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst, int dstIndex, int length) {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst, dstIndex, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ByteBuffer dst) {\r\n+        int length = dst.remaining();\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(OutputStream out, int length) throws IOException {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, out, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void skipBytes(int length) {\r\n+        int newReaderIndex = readerIndex + length;\r\n+        if (newReaderIndex > writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        readerIndex = newReaderIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(int value) {\r\n+        setByte(writerIndex++, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] src, int srcIndex, int length) {\r\n+        setBytes(writerIndex, src, srcIndex, length);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] src) {\r\n+        writeBytes(src, 0, src.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src) {\r\n+        writeBytes(src, src.readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src, int length) {\r\n+        if (length > src.readableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        writeBytes(src, src.readerIndex(), length);\r\n+        src.readerIndex(src.readerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src, int srcIndex, int length) {\r\n+        setBytes(writerIndex, src, srcIndex, length);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ByteBuffer src) {\r\n+        int length = src.remaining();\r\n+        setBytes(writerIndex, src);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writeBytes(InputStream in, int length) throws IOException {\r\n+        int writtenBytes = setBytes(writerIndex, in, length);\r\n+        if (writtenBytes > 0) {\r\n+            writerIndex += writtenBytes;\r\n+        }\r\n+        return writtenBytes;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelBuffer copy() {\r\n+        return copy(readerIndex, readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public ByteBuffer toByteBuffer() {\r\n+        return toByteBuffer(readerIndex, readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        return o instanceof ChannelBuffer\r\n+                && ChannelBuffers.equals(this, (ChannelBuffer) o);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return ChannelBuffers.hasCode(this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int compareTo(ChannelBuffer that) {\r\n+        return ChannelBuffers.compare(this, that);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getClass().getSimpleName() + '(' +\r\n+                \"ridx=\" + readerIndex + \", \" +\r\n+                \"widx=\" + writerIndex + \", \" +\r\n+                \"cap=\" + capacity() +\r\n+                ')';\r\n+    }\r\n+\r\n+    protected void checkReadableBytes(int minimumReadableBytes) {\r\n+        if (readableBytes() < minimumReadableBytes) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/ChannelBuffer.java", "source2": "org/apache/dubbo/remoting/buffer/ChannelBuffer.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,951 +1,951 @@\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.remoting.buffer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.nio.ByteBuffer;\n-\n-/**\n- * A random and sequential accessible sequence of zero or more bytes (octets).\n- * This interface provides an abstract view for one or more primitive byte\n- * arrays ({@code byte[]}) and {@linkplain ByteBuffer NIO buffers}.\n- * <p/>\n- * <h3>Creation of a buffer</h3>\n- * <p/>\n- * It is recommended to create a new buffer using the helper methods in {@link\n- * ChannelBuffers} rather than calling an individual implementation's\n- * constructor.\n- * <p/>\n- * <h3>Random Access Indexing</h3>\n- * <p/>\n- * Just like an ordinary primitive byte array, {@link ChannelBuffer} uses <a\n- * href=\"http://en.wikipedia.org/wiki/Index_(information_technology)#Array_element_identifier\">zero-based\n- * indexing</a>. It means the index of the first byte is always {@code 0} and\n- * the index of the last byte is always {@link #capacity() capacity - 1}.  For\n- * example, to iterate all bytes of a buffer, you can do the following,\n- * regardless of its internal implementation:\n- * <p/>\n- * <pre>\n- * {@link ChannelBuffer} buffer = ...;\n- * for (int i = 0; i &lt; buffer.capacity(); i ++</strong>) {\n- *     byte b = buffer.getByte(i);\n- *     System.out.println((char) b);\n- * }\n- * </pre>\n- * <p/>\n- * <h3>Sequential Access Indexing</h3>\n- * <p/>\n- * {@link ChannelBuffer} provides two pointer variables to support sequential\n- * read and write operations - {@link #readerIndex() readerIndex} for a read\n- * operation and {@link #writerIndex() writerIndex} for a write operation\n- * respectively.  The following diagram shows how a buffer is segmented into\n- * three areas by the two pointers:\n- * <p/>\n- * <pre>\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      |                   |     (CONTENT)    |                  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- * </pre>\n- * <p/>\n- * <h4>Readable bytes (the actual content)</h4>\n- * <p/>\n- * This segment is where the actual data is stored.  Any operation whose name\n- * starts with {@code read} or {@code skip} will get or skip the data at the\n- * current {@link #readerIndex() readerIndex} and increase it by the number of\n- * read bytes.  If the argument of the read operation is also a {@link\n- * ChannelBuffer} and no destination index is specified, the specified buffer's\n- * {@link #readerIndex() readerIndex} is increased together.\n- * <p/>\n- * If there's not enough content left, {@link IndexOutOfBoundsException} is\n- * raised.  The default value of newly allocated, wrapped or copied buffer's\n- * {@link #readerIndex() readerIndex} is {@code 0}.\n- * <p/>\n- * <pre>\n- * // Iterates the readable bytes of a buffer.\n- * {@link ChannelBuffer} buffer = ...;\n- * while (buffer.readable()) {\n- *     System.out.println(buffer.readByte());\n- * }\n- * </pre>\n- * <p/>\n- * <h4>Writable bytes</h4>\n- * <p/>\n- * This segment is a undefined space which needs to be filled.  Any operation\n- * whose name ends with {@code write} will write the data at the current {@link\n- * #writerIndex() writerIndex} and increase it by the number of written bytes.\n- * If the argument of the write operation is also a {@link ChannelBuffer}, and\n- * no source index is specified, the specified buffer's {@link #readerIndex()\n- * readerIndex} is increased together.\n- * <p/>\n- * If there's not enough writable bytes left, {@link IndexOutOfBoundsException}\n- * is raised.  The default value of newly allocated buffer's {@link\n- * #writerIndex() writerIndex} is {@code 0}.  The default value of wrapped or\n- * copied buffer's {@link #writerIndex() writerIndex} is the {@link #capacity()\n- * capacity} of the buffer.\n- * <p/>\n- * <pre>\n- * // Fills the writable bytes of a buffer with random integers.\n- * {@link ChannelBuffer} buffer = ...;\n- * while (buffer.writableBytes() >= 4) {\n- *     buffer.writeInt(random.nextInt());\n- * }\n- * </pre>\n- * <p/>\n- * <h4>Discardable bytes</h4>\n- * <p/>\n- * This segment contains the bytes which were read already by a read operation.\n- * Initially, the size of this segment is {@code 0}, but its size increases up\n- * to the {@link #writerIndex() writerIndex} as read operations are executed.\n- * The read bytes can be discarded by calling {@link #discardReadBytes()} to\n- * reclaim unused area as depicted by the following diagram:\n- * <p/>\n- * <pre>\n- *  BEFORE discardReadBytes()\n- *\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- *\n- *\n- *  AFTER discardReadBytes()\n- *\n- *      +------------------+--------------------------------------+\n- *      |  readable bytes  |    writable bytes (got more space)   |\n- *      +------------------+--------------------------------------+\n- *      |                  |                                      |\n- * readerIndex (0) <= writerIndex (decreased)        <=        capacity\n- * </pre>\n- * <p/>\n- * Please note that there is no guarantee about the content of writable bytes\n- * after calling {@link #discardReadBytes()}.  The writable bytes will not be\n- * moved in most cases and could even be filled with completely different data\n- * depending on the underlying buffer implementation.\n- * <p/>\n- * <h4>Clearing the buffer indexes</h4>\n- * <p/>\n- * You can set both {@link #readerIndex() readerIndex} and {@link #writerIndex()\n- * writerIndex} to {@code 0} by calling {@link #clear()}. It does not clear the\n- * buffer content (e.g. filling with {@code 0}) but just clears the two\n- * pointers.  Please also note that the semantic of this operation is different\n- * from {@link ByteBuffer#clear()}.\n- * <p/>\n- * <pre>\n- *  BEFORE clear()\n- *\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- *\n- *\n- *  AFTER clear()\n- *\n- *      +---------------------------------------------------------+\n- *      |             writable bytes (got more space)             |\n- *      +---------------------------------------------------------+\n- *      |                                                         |\n- *      0 = readerIndex = writerIndex            <=            capacity\n- * </pre>\n- * <p/>\n- * <h3>Mark and reset</h3>\n- * <p/>\n- * There are two marker indexes in every buffer. One is for storing {@link\n- * #readerIndex() readerIndex} and the other is for storing {@link\n- * #writerIndex() writerIndex}.  You can always reposition one of the two\n- * indexes by calling a reset method.  It works in a similar fashion to the mark\n- * and reset methods in {@link InputStream} except that there's no {@code\n- * readlimit}.\n- * <p/>\n- * <h3>Conversion to existing JDK types</h3>\n- * <p/>\n- * <h4>Byte array</h4>\n- * <p/>\n- * If a {@link ChannelBuffer} is backed by a byte array (i.e. {@code byte[]}),\n- * you can access it directly via the {@link #array()} method.  To determine if\n- * a buffer is backed by a byte array, {@link #hasArray()} should be used.\n- * <p/>\n- * <h4>NIO Buffers</h4>\n- * <p/>\n- * Various {@link #toByteBuffer()}  methods convert a {@link ChannelBuffer} into\n- * one or more NIO buffers.  These methods avoid buffer allocation and memory\n- * copy whenever possible, but there's no guarantee that memory copy will not be\n- * involved.\n- * <p/>\n- * <h4>I/O Streams</h4>\n- * <p/>\n- * Please refer to {@link ChannelBufferInputStream} and {@link\n- * ChannelBufferOutputStream}.\n- *\n- *\n- */\n-public interface ChannelBuffer extends Comparable<ChannelBuffer> {\n-\n-    /**\n-     * Returns the number of bytes (octets) this buffer can contain.\n-     */\n-    int capacity();\n-\n-    /**\n-     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer to\n-     * {@code 0}. This method is identical to {@link #setIndex(int, int)\n-     * setIndex(0, 0)}.\n-     * <p/>\n-     * Please note that the behavior of this method is different from that of\n-     * NIO buffer, which sets the {@code limit} to the {@code capacity} of the\n-     * buffer.\n-     */\n-    void clear();\n-\n-    /**\n-     * Returns a copy of this buffer's readable bytes.  Modifying the content of\n-     * the returned buffer or this buffer does not affect each other at all.\n-     * This method is identical to {@code buf.copy(buf.readerIndex(),\n-     * buf.readableBytes())}. This method does not modify {@code readerIndex} or\n-     * {@code writerIndex} of this buffer.\n-     */\n-    ChannelBuffer copy();\n-\n-    /**\n-     * Returns a copy of this buffer's sub-region.  Modifying the content of the\n-     * returned buffer or this buffer does not affect each other at all. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     */\n-    ChannelBuffer copy(int index, int length);\n-\n-    /**\n-     * Discards the bytes between the 0th index and {@code readerIndex}. It\n-     * moves the bytes between {@code readerIndex} and {@code writerIndex} to\n-     * the 0th index, and sets {@code readerIndex} and {@code writerIndex} to\n-     * {@code 0} and {@code oldWriterIndex - oldReaderIndex} respectively.\n-     * <p/>\n-     * Please refer to the class documentation for more detailed explanation.\n-     */\n-    void discardReadBytes();\n-\n-    /**\n-     * Makes sure the number of {@linkplain #writableBytes() the writable bytes}\n-     * is equal to or greater than the specified value.  If there is enough\n-     * writable bytes in this buffer, this method returns with no side effect.\n-     * Otherwise: <ul> <li>a non-dynamic buffer will throw an {@link\n-     * IndexOutOfBoundsException}.</li> <li>a dynamic buffer will expand its\n-     * capacity so that the number of the {@link #writableBytes() writable\n-     * bytes} becomes equal to or greater than the specified value. The\n-     * expansion involves the reallocation of the internal buffer and\n-     * consequently memory copy.</li> </ul>\n-     *\n-     * @param writableBytes the expected minimum number of writable bytes\n-     * @throws IndexOutOfBoundsException if {@linkplain #writableBytes() the\n-     *                                   writable bytes} of this buffer is less\n-     *                                   than the specified value and if this\n-     *                                   buffer is not a dynamic buffer\n-     */\n-    void ensureWritableBytes(int writableBytes);\n-\n-    /**\n-     * Determines if the content of the specified buffer is identical to the\n-     * content of this array.  'Identical' here means: <ul> <li>the size of the\n-     * contents of the two buffers are same and</li> <li>every single byte of\n-     * the content of the two buffers are same.</li> </ul> Please note that it\n-     * does not compare {@link #readerIndex()} nor {@link #writerIndex()}.  This\n-     * method also returns {@code false} for {@code null} and an object which is\n-     * not an instance of {@link ChannelBuffer} type.\n-     */\n-    @Override\n-    boolean equals(Object o);\n-\n-    /**\n-     * Returns the factory which creates a {@link ChannelBuffer} whose type and\n-     * default {@link java.nio.ByteOrder} are same with this buffer.\n-     */\n-    ChannelBufferFactory factory();\n-\n-    /**\n-     * Gets a byte at the specified absolute {@code index} in this buffer. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or {@code index + 1} is\n-     *                                   greater than {@code this.capacity}\n-     */\n-    byte getByte(int index);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.length} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void getBytes(int index, byte[] dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   dstIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   dstIndex + length} is greater than\n-     *                                   {@code dst.length}\n-     */\n-    void getBytes(int index, byte[] dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index} until the destination's position reaches\n-     * its limit. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of this buffer while the destination's {@code position} will\n-     * be increased.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.remaining()} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void getBytes(int index, ByteBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index} until the destination becomes\n-     * non-writable.  This method is basically same with {@link #getBytes(int,\n-     * ChannelBuffer, int, int)}, except that this method increases the {@code\n-     * writerIndex} of the destination by the number of the transferred bytes\n-     * while {@link #getBytes(int, ChannelBuffer, int, int)} does not. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of the\n-     * source buffer (i.e. {@code this}).\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.writableBytes} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void getBytes(int index, ChannelBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}.  This method is basically same with\n-     * {@link #getBytes(int, ChannelBuffer, int, int)}, except that this method\n-     * increases the {@code writerIndex} of the destination by the number of the\n-     * transferred bytes while {@link #getBytes(int, ChannelBuffer, int, int)}\n-     * does not. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of the source buffer (i.e. {@code this}).\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}, or if {@code length} is\n-     *                                   greater than {@code dst.writableBytes}\n-     */\n-    void getBytes(int index, ChannelBuffer dst, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\n-     * this}) and the destination.\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   dstIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   dstIndex + length} is greater than\n-     *                                   {@code dst.capacity}\n-     */\n-    void getBytes(int index, ChannelBuffer dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified stream starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    void getBytes(int index, OutputStream dst, int length) throws IOException;\n-\n-    /**\n-     * Returns {@code true} if and only if this buffer is backed by an NIO\n-     * direct buffer.\n-     */\n-    boolean isDirect();\n-\n-    /**\n-     * Marks the current {@code readerIndex} in this buffer.  You can reposition\n-     * the current {@code readerIndex} to the marked {@code readerIndex} by\n-     * calling {@link #resetReaderIndex()}. The initial value of the marked\n-     * {@code readerIndex} is {@code 0}.\n-     */\n-    void markReaderIndex();\n-\n-    /**\n-     * Marks the current {@code writerIndex} in this buffer.  You can reposition\n-     * the current {@code writerIndex} to the marked {@code writerIndex} by\n-     * calling {@link #resetWriterIndex()}. The initial value of the marked\n-     * {@code writerIndex} is {@code 0}.\n-     */\n-    void markWriterIndex();\n-\n-    /**\n-     * Returns {@code true} if and only if {@code (this.writerIndex -\n-     * this.readerIndex)} is greater than {@code 0}.\n-     */\n-    boolean readable();\n-\n-    /**\n-     * Returns the number of readable bytes which is equal to {@code\n-     * (this.writerIndex - this.readerIndex)}.\n-     */\n-    int readableBytes();\n-\n-    /**\n-     * Gets a byte at the current {@code readerIndex} and increases the {@code\n-     * readerIndex} by {@code 1} in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code this.readableBytes} is less\n-     *                                   than {@code 1}\n-     */\n-    byte readByte();\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code dst.length}).\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    void readBytes(byte[] dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\n-     *                                   less than {@code 0}, if {@code length}\n-     *                                   is greater than {@code this.readableBytes},\n-     *                                   or if {@code dstIndex + length} is\n-     *                                   greater than {@code dst.length}\n-     */\n-    void readBytes(byte[] dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} until the destination's position reaches its\n-     * limit, and increases the {@code readerIndex} by the number of the\n-     * transferred bytes.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.remaining()} is greater\n-     *                                   than {@code this.readableBytes}\n-     */\n-    void readBytes(ByteBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} until the destination becomes non-writable,\n-     * and increases the {@code readerIndex} by the number of the transferred\n-     * bytes.  This method is basically same with {@link\n-     * #readBytes(ChannelBuffer, int, int)}, except that this method increases\n-     * the {@code writerIndex} of the destination by the number of the\n-     * transferred bytes while {@link #readBytes(ChannelBuffer, int, int)} does\n-     * not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.writableBytes} is greater\n-     *                                   than {@code this.readableBytes}\n-     */\n-    void readBytes(ChannelBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).  This method is\n-     * basically same with {@link #readBytes(ChannelBuffer, int, int)}, except\n-     * that this method increases the {@code writerIndex} of the destination by\n-     * the number of the transferred bytes (= {@code length}) while {@link\n-     * #readBytes(ChannelBuffer, int, int)} does not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes} or if {@code\n-     *                                   length} is greater than {@code\n-     *                                   dst.writableBytes}\n-     */\n-    void readBytes(ChannelBuffer dst, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\n-     *                                   less than {@code 0}, if {@code length}\n-     *                                   is greater than {@code this.readableBytes},\n-     *                                   or if {@code dstIndex + length} is\n-     *                                   greater than {@code dst.capacity}\n-     */\n-    void readBytes(ChannelBuffer dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to a newly created buffer starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}). The returned buffer's\n-     * {@code readerIndex} and {@code writerIndex} are {@code 0} and {@code\n-     * length} respectively.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the newly created buffer which contains the transferred bytes\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    ChannelBuffer readBytes(int length);\n-\n-    /**\n-     * Repositions the current {@code readerIndex} to the marked {@code\n-     * readerIndex} in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the current {@code writerIndex} is\n-     *                                   less than the marked {@code\n-     *                                   readerIndex}\n-     */\n-    void resetReaderIndex();\n-\n-    /**\n-     * Marks the current {@code writerIndex} in this buffer.  You can reposition\n-     * the current {@code writerIndex} to the marked {@code writerIndex} by\n-     * calling {@link #resetWriterIndex()}. The initial value of the marked\n-     * {@code writerIndex} is {@code 0}.\n-     */\n-    void resetWriterIndex();\n-\n-    /**\n-     * Returns the {@code readerIndex} of this buffer.\n-     */\n-    int readerIndex();\n-\n-    /**\n-     * Sets the {@code readerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\n-     *                                   less than {@code 0} or greater than\n-     *                                   {@code this.writerIndex}\n-     */\n-    void readerIndex(int readerIndex);\n-\n-    /**\n-     * Transfers this buffer's data to the specified stream starting at the\n-     * current {@code readerIndex}.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    void readBytes(OutputStream dst, int length) throws IOException;\n-\n-    /**\n-     * Sets the specified byte at the specified absolute {@code index} in this\n-     * buffer.  The 24 high-order bits of the specified value are ignored. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or {@code index + 1} is\n-     *                                   greater than {@code this.capacity}\n-     */\n-    void setByte(int index, int value);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.length} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void setBytes(int index, byte[] src);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   srcIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   srcIndex + length} is greater than\n-     *                                   {@code src.length}\n-     */\n-    void setBytes(int index, byte[] src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index} until the source buffer's position\n-     * reaches its limit. This method does not modify {@code readerIndex} or\n-     * {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.remaining()} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void setBytes(int index, ByteBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index} until the source buffer becomes\n-     * unreadable.  This method is basically same with {@link #setBytes(int,\n-     * ChannelBuffer, int, int)}, except that this method increases the {@code\n-     * readerIndex} of the source buffer by the number of the transferred bytes\n-     * while {@link #setBytes(int, ChannelBuffer, int, int)} does not. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of the\n-     * source buffer (i.e. {@code this}).\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.readableBytes} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void setBytes(int index, ChannelBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index}.  This method is basically same with\n-     * {@link #setBytes(int, ChannelBuffer, int, int)}, except that this method\n-     * increases the {@code readerIndex} of the source buffer by the number of\n-     * the transferred bytes while {@link #setBytes(int, ChannelBuffer, int,\n-     * int)} does not. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of the source buffer (i.e. {@code this}).\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}, or if {@code length} is\n-     *                                   greater than {@code src.readableBytes}\n-     */\n-    void setBytes(int index, ChannelBuffer src, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\n-     * this}) and the destination.\n-     *\n-     * @param srcIndex the first index of the source\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   srcIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   srcIndex + length} is greater than\n-     *                                   {@code src.capacity}\n-     */\n-    void setBytes(int index, ChannelBuffer src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the content of the specified source stream to this buffer\n-     * starting at the specified absolute {@code index}. This method does not\n-     * modify {@code readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the actual number of bytes read in from the specified channel.\n-     * {@code -1} if the specified channel is closed.\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    int setBytes(int index, InputStream src, int length) throws IOException;\n-\n-    /**\n-     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer in\n-     * one shot.  This method is useful when you have to worry about the\n-     * invocation order of {@link #readerIndex(int)} and {@link\n-     * #writerIndex(int)} methods.  For example, the following code will fail:\n-     * <p/>\n-     * <pre>\n-     * // Create a buffer whose readerIndex, writerIndex and capacity are\n-     * // 0, 0 and 8 respectively.\n-     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.buffer(8);\n-     *\n-     * // IndexOutOfBoundsException is thrown because the specified\n-     * // readerIndex (2) cannot be greater than the current writerIndex (0).\n-     * buf.readerIndex(2);\n-     * buf.writerIndex(4);\n-     * </pre>\n-     * <p/>\n-     * The following code will also fail:\n-     * <p/>\n-     * <pre>\n-     * // Create a buffer whose readerIndex, writerIndex and capacity are\n-     * // 0, 8 and 8 respectively.\n-     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.wrappedBuffer(new\n-     * byte[8]);\n-     *\n-     * // readerIndex becomes 8.\n-     * buf.readLong();\n-     *\n-     * // IndexOutOfBoundsException is thrown because the specified\n-     * // writerIndex (4) cannot be less than the current readerIndex (8).\n-     * buf.writerIndex(4);\n-     * buf.readerIndex(2);\n-     * </pre>\n-     * <p/>\n-     * By contrast, {@link #setIndex(int, int)} guarantees that it never throws\n-     * an {@link IndexOutOfBoundsException} as long as the specified indexes\n-     * meet basic constraints, regardless what the current index values of the\n-     * buffer are:\n-     * <p/>\n-     * <pre>\n-     * // No matter what the current state of the buffer is, the following\n-     * // call always succeeds as long as the capacity of the buffer is not\n-     * // less than 4.\n-     * buf.setIndex(2, 4);\n-     * </pre>\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\n-     *                                   less than 0, if the specified {@code\n-     *                                   writerIndex} is less than the specified\n-     *                                   {@code readerIndex} or if the specified\n-     *                                   {@code writerIndex} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void setIndex(int readerIndex, int writerIndex);\n-\n-    /**\n-     * Increases the current {@code readerIndex} by the specified {@code length}\n-     * in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    void skipBytes(int length);\n-\n-    /**\n-     * Converts this buffer's readable bytes into a NIO buffer.  The returned\n-     * buffer might or might not share the content with this buffer, while they\n-     * have separate indexes and marks.  This method is identical to {@code\n-     * buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())}. This method\n-     * does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     */\n-    ByteBuffer toByteBuffer();\n-\n-    /**\n-     * Converts this buffer's sub-region into a NIO buffer.  The returned buffer\n-     * might or might not share the content with this buffer, while they have\n-     * separate indexes and marks. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     */\n-    ByteBuffer toByteBuffer(int index, int length);\n-\n-    /**\n-     * Returns {@code true} if and only if {@code (this.capacity -\n-     * this.writerIndex)} is greater than {@code 0}.\n-     */\n-    boolean writable();\n-\n-    /**\n-     * Returns the number of writable bytes which is equal to {@code\n-     * (this.capacity - this.writerIndex)}.\n-     */\n-    int writableBytes();\n-\n-    /**\n-     * Sets the specified byte at the current {@code writerIndex} and increases\n-     * the {@code writerIndex} by {@code 1} in this buffer. The 24 high-order\n-     * bits of the specified value are ignored.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code this.writableBytes} is less\n-     *                                   than {@code 1}\n-     */\n-    void writeByte(int value);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code src.length}).\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.length} is greater than\n-     *                                   {@code this.writableBytes}\n-     */\n-    void writeBytes(byte[] src);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).\n-     *\n-     * @param index  the first index of the source\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\n-     *                                   less than {@code 0}, if {@code srcIndex\n-     *                                   + length} is greater than {@code\n-     *                                   src.length}, or if {@code length} is\n-     *                                   greater than {@code this.writableBytes}\n-     */\n-    void writeBytes(byte[] src, int index, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} until the source buffer's position\n-     * reaches its limit, and increases the {@code writerIndex} by the number of\n-     * the transferred bytes.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.remaining()} is greater\n-     *                                   than {@code this.writableBytes}\n-     */\n-    void writeBytes(ByteBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} until the source buffer becomes\n-     * unreadable, and increases the {@code writerIndex} by the number of the\n-     * transferred bytes.  This method is basically same with {@link\n-     * #writeBytes(ChannelBuffer, int, int)}, except that this method increases\n-     * the {@code readerIndex} of the source buffer by the number of the\n-     * transferred bytes while {@link #writeBytes(ChannelBuffer, int, int)} does\n-     * not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.readableBytes} is greater\n-     *                                   than {@code this.writableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).  This method is\n-     * basically same with {@link #writeBytes(ChannelBuffer, int, int)}, except\n-     * that this method increases the {@code readerIndex} of the source buffer\n-     * by the number of the transferred bytes (= {@code length}) while {@link\n-     * #writeBytes(ChannelBuffer, int, int)} does not.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.writableBytes} or if {@code\n-     *                                   length} is greater then {@code\n-     *                                   src.readableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).\n-     *\n-     * @param srcIndex the first index of the source\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\n-     *                                   less than {@code 0}, if {@code srcIndex\n-     *                                   + length} is greater than {@code\n-     *                                   src.capacity}, or if {@code length} is\n-     *                                   greater than {@code this.writableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the content of the specified stream to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the actual number of bytes read in from the specified stream\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.writableBytes}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    int writeBytes(InputStream src, int length) throws IOException;\n-\n-    /**\n-     * Returns the {@code writerIndex} of this buffer.\n-     */\n-    int writerIndex();\n-\n-    /**\n-     * Sets the {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code writerIndex} is\n-     *                                   less than {@code this.readerIndex} or\n-     *                                   greater than {@code this.capacity}\n-     */\n-    void writerIndex(int writerIndex);\n-\n-    /**\n-     * Returns the backing byte array of this buffer.\n-     *\n-     * @throws UnsupportedOperationException if there no accessible backing byte\n-     *                                       array\n-     */\n-    byte[] array();\n-\n-    /**\n-     * Returns {@code true} if and only if this buffer has a backing byte array.\n-     * If this method returns true, you can safely call {@link #array()} and\n-     * {@link #arrayOffset()}.\n-     */\n-    boolean hasArray();\n-\n-    /**\n-     * Returns the offset of the first byte within the backing byte array of\n-     * this buffer.\n-     *\n-     * @throws UnsupportedOperationException if there no accessible backing byte\n-     *                                       array\n-     */\n-    int arrayOffset();\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.remoting.buffer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.nio.ByteBuffer;\r\n+\r\n+/**\r\n+ * A random and sequential accessible sequence of zero or more bytes (octets).\r\n+ * This interface provides an abstract view for one or more primitive byte\r\n+ * arrays ({@code byte[]}) and {@linkplain ByteBuffer NIO buffers}.\r\n+ * <p/>\r\n+ * <h3>Creation of a buffer</h3>\r\n+ * <p/>\r\n+ * It is recommended to create a new buffer using the helper methods in {@link\r\n+ * ChannelBuffers} rather than calling an individual implementation's\r\n+ * constructor.\r\n+ * <p/>\r\n+ * <h3>Random Access Indexing</h3>\r\n+ * <p/>\r\n+ * Just like an ordinary primitive byte array, {@link ChannelBuffer} uses <a\r\n+ * href=\"http://en.wikipedia.org/wiki/Index_(information_technology)#Array_element_identifier\">zero-based\r\n+ * indexing</a>. It means the index of the first byte is always {@code 0} and\r\n+ * the index of the last byte is always {@link #capacity() capacity - 1}.  For\r\n+ * example, to iterate all bytes of a buffer, you can do the following,\r\n+ * regardless of its internal implementation:\r\n+ * <p/>\r\n+ * <pre>\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * for (int i = 0; i &lt; buffer.capacity(); i ++</strong>) {\r\n+ *     byte b = buffer.getByte(i);\r\n+ *     System.out.println((char) b);\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h3>Sequential Access Indexing</h3>\r\n+ * <p/>\r\n+ * {@link ChannelBuffer} provides two pointer variables to support sequential\r\n+ * read and write operations - {@link #readerIndex() readerIndex} for a read\r\n+ * operation and {@link #writerIndex() writerIndex} for a write operation\r\n+ * respectively.  The following diagram shows how a buffer is segmented into\r\n+ * three areas by the two pointers:\r\n+ * <p/>\r\n+ * <pre>\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      |                   |     (CONTENT)    |                  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Readable bytes (the actual content)</h4>\r\n+ * <p/>\r\n+ * This segment is where the actual data is stored.  Any operation whose name\r\n+ * starts with {@code read} or {@code skip} will get or skip the data at the\r\n+ * current {@link #readerIndex() readerIndex} and increase it by the number of\r\n+ * read bytes.  If the argument of the read operation is also a {@link\r\n+ * ChannelBuffer} and no destination index is specified, the specified buffer's\r\n+ * {@link #readerIndex() readerIndex} is increased together.\r\n+ * <p/>\r\n+ * If there's not enough content left, {@link IndexOutOfBoundsException} is\r\n+ * raised.  The default value of newly allocated, wrapped or copied buffer's\r\n+ * {@link #readerIndex() readerIndex} is {@code 0}.\r\n+ * <p/>\r\n+ * <pre>\r\n+ * // Iterates the readable bytes of a buffer.\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * while (buffer.readable()) {\r\n+ *     System.out.println(buffer.readByte());\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Writable bytes</h4>\r\n+ * <p/>\r\n+ * This segment is a undefined space which needs to be filled.  Any operation\r\n+ * whose name ends with {@code write} will write the data at the current {@link\r\n+ * #writerIndex() writerIndex} and increase it by the number of written bytes.\r\n+ * If the argument of the write operation is also a {@link ChannelBuffer}, and\r\n+ * no source index is specified, the specified buffer's {@link #readerIndex()\r\n+ * readerIndex} is increased together.\r\n+ * <p/>\r\n+ * If there's not enough writable bytes left, {@link IndexOutOfBoundsException}\r\n+ * is raised.  The default value of newly allocated buffer's {@link\r\n+ * #writerIndex() writerIndex} is {@code 0}.  The default value of wrapped or\r\n+ * copied buffer's {@link #writerIndex() writerIndex} is the {@link #capacity()\r\n+ * capacity} of the buffer.\r\n+ * <p/>\r\n+ * <pre>\r\n+ * // Fills the writable bytes of a buffer with random integers.\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * while (buffer.writableBytes() >= 4) {\r\n+ *     buffer.writeInt(random.nextInt());\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Discardable bytes</h4>\r\n+ * <p/>\r\n+ * This segment contains the bytes which were read already by a read operation.\r\n+ * Initially, the size of this segment is {@code 0}, but its size increases up\r\n+ * to the {@link #writerIndex() writerIndex} as read operations are executed.\r\n+ * The read bytes can be discarded by calling {@link #discardReadBytes()} to\r\n+ * reclaim unused area as depicted by the following diagram:\r\n+ * <p/>\r\n+ * <pre>\r\n+ *  BEFORE discardReadBytes()\r\n+ *\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ *\r\n+ *\r\n+ *  AFTER discardReadBytes()\r\n+ *\r\n+ *      +------------------+--------------------------------------+\r\n+ *      |  readable bytes  |    writable bytes (got more space)   |\r\n+ *      +------------------+--------------------------------------+\r\n+ *      |                  |                                      |\r\n+ * readerIndex (0) <= writerIndex (decreased)        <=        capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * Please note that there is no guarantee about the content of writable bytes\r\n+ * after calling {@link #discardReadBytes()}.  The writable bytes will not be\r\n+ * moved in most cases and could even be filled with completely different data\r\n+ * depending on the underlying buffer implementation.\r\n+ * <p/>\r\n+ * <h4>Clearing the buffer indexes</h4>\r\n+ * <p/>\r\n+ * You can set both {@link #readerIndex() readerIndex} and {@link #writerIndex()\r\n+ * writerIndex} to {@code 0} by calling {@link #clear()}. It does not clear the\r\n+ * buffer content (e.g. filling with {@code 0}) but just clears the two\r\n+ * pointers.  Please also note that the semantic of this operation is different\r\n+ * from {@link ByteBuffer#clear()}.\r\n+ * <p/>\r\n+ * <pre>\r\n+ *  BEFORE clear()\r\n+ *\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ *\r\n+ *\r\n+ *  AFTER clear()\r\n+ *\r\n+ *      +---------------------------------------------------------+\r\n+ *      |             writable bytes (got more space)             |\r\n+ *      +---------------------------------------------------------+\r\n+ *      |                                                         |\r\n+ *      0 = readerIndex = writerIndex            <=            capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h3>Mark and reset</h3>\r\n+ * <p/>\r\n+ * There are two marker indexes in every buffer. One is for storing {@link\r\n+ * #readerIndex() readerIndex} and the other is for storing {@link\r\n+ * #writerIndex() writerIndex}.  You can always reposition one of the two\r\n+ * indexes by calling a reset method.  It works in a similar fashion to the mark\r\n+ * and reset methods in {@link InputStream} except that there's no {@code\r\n+ * readlimit}.\r\n+ * <p/>\r\n+ * <h3>Conversion to existing JDK types</h3>\r\n+ * <p/>\r\n+ * <h4>Byte array</h4>\r\n+ * <p/>\r\n+ * If a {@link ChannelBuffer} is backed by a byte array (i.e. {@code byte[]}),\r\n+ * you can access it directly via the {@link #array()} method.  To determine if\r\n+ * a buffer is backed by a byte array, {@link #hasArray()} should be used.\r\n+ * <p/>\r\n+ * <h4>NIO Buffers</h4>\r\n+ * <p/>\r\n+ * Various {@link #toByteBuffer()}  methods convert a {@link ChannelBuffer} into\r\n+ * one or more NIO buffers.  These methods avoid buffer allocation and memory\r\n+ * copy whenever possible, but there's no guarantee that memory copy will not be\r\n+ * involved.\r\n+ * <p/>\r\n+ * <h4>I/O Streams</h4>\r\n+ * <p/>\r\n+ * Please refer to {@link ChannelBufferInputStream} and {@link\r\n+ * ChannelBufferOutputStream}.\r\n+ *\r\n+ *\r\n+ */\r\n+public interface ChannelBuffer extends Comparable<ChannelBuffer> {\r\n+\r\n+    /**\r\n+     * Returns the number of bytes (octets) this buffer can contain.\r\n+     */\r\n+    int capacity();\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer to\r\n+     * {@code 0}. This method is identical to {@link #setIndex(int, int)\r\n+     * setIndex(0, 0)}.\r\n+     * <p/>\r\n+     * Please note that the behavior of this method is different from that of\r\n+     * NIO buffer, which sets the {@code limit} to the {@code capacity} of the\r\n+     * buffer.\r\n+     */\r\n+    void clear();\r\n+\r\n+    /**\r\n+     * Returns a copy of this buffer's readable bytes.  Modifying the content of\r\n+     * the returned buffer or this buffer does not affect each other at all.\r\n+     * This method is identical to {@code buf.copy(buf.readerIndex(),\r\n+     * buf.readableBytes())}. This method does not modify {@code readerIndex} or\r\n+     * {@code writerIndex} of this buffer.\r\n+     */\r\n+    ChannelBuffer copy();\r\n+\r\n+    /**\r\n+     * Returns a copy of this buffer's sub-region.  Modifying the content of the\r\n+     * returned buffer or this buffer does not affect each other at all. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     */\r\n+    ChannelBuffer copy(int index, int length);\r\n+\r\n+    /**\r\n+     * Discards the bytes between the 0th index and {@code readerIndex}. It\r\n+     * moves the bytes between {@code readerIndex} and {@code writerIndex} to\r\n+     * the 0th index, and sets {@code readerIndex} and {@code writerIndex} to\r\n+     * {@code 0} and {@code oldWriterIndex - oldReaderIndex} respectively.\r\n+     * <p/>\r\n+     * Please refer to the class documentation for more detailed explanation.\r\n+     */\r\n+    void discardReadBytes();\r\n+\r\n+    /**\r\n+     * Makes sure the number of {@linkplain #writableBytes() the writable bytes}\r\n+     * is equal to or greater than the specified value.  If there is enough\r\n+     * writable bytes in this buffer, this method returns with no side effect.\r\n+     * Otherwise: <ul> <li>a non-dynamic buffer will throw an {@link\r\n+     * IndexOutOfBoundsException}.</li> <li>a dynamic buffer will expand its\r\n+     * capacity so that the number of the {@link #writableBytes() writable\r\n+     * bytes} becomes equal to or greater than the specified value. The\r\n+     * expansion involves the reallocation of the internal buffer and\r\n+     * consequently memory copy.</li> </ul>\r\n+     *\r\n+     * @param writableBytes the expected minimum number of writable bytes\r\n+     * @throws IndexOutOfBoundsException if {@linkplain #writableBytes() the\r\n+     *                                   writable bytes} of this buffer is less\r\n+     *                                   than the specified value and if this\r\n+     *                                   buffer is not a dynamic buffer\r\n+     */\r\n+    void ensureWritableBytes(int writableBytes);\r\n+\r\n+    /**\r\n+     * Determines if the content of the specified buffer is identical to the\r\n+     * content of this array.  'Identical' here means: <ul> <li>the size of the\r\n+     * contents of the two buffers are same and</li> <li>every single byte of\r\n+     * the content of the two buffers are same.</li> </ul> Please note that it\r\n+     * does not compare {@link #readerIndex()} nor {@link #writerIndex()}.  This\r\n+     * method also returns {@code false} for {@code null} and an object which is\r\n+     * not an instance of {@link ChannelBuffer} type.\r\n+     */\r\n+    @Override\r\n+    boolean equals(Object o);\r\n+\r\n+    /**\r\n+     * Returns the factory which creates a {@link ChannelBuffer} whose type and\r\n+     * default {@link java.nio.ByteOrder} are same with this buffer.\r\n+     */\r\n+    ChannelBufferFactory factory();\r\n+\r\n+    /**\r\n+     * Gets a byte at the specified absolute {@code index} in this buffer. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or {@code index + 1} is\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    byte getByte(int index);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void getBytes(int index, byte[] dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   dstIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   dstIndex + length} is greater than\r\n+     *                                   {@code dst.length}\r\n+     */\r\n+    void getBytes(int index, byte[] dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index} until the destination's position reaches\r\n+     * its limit. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of this buffer while the destination's {@code position} will\r\n+     * be increased.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.remaining()} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void getBytes(int index, ByteBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index} until the destination becomes\r\n+     * non-writable.  This method is basically same with {@link #getBytes(int,\r\n+     * ChannelBuffer, int, int)}, except that this method increases the {@code\r\n+     * writerIndex} of the destination by the number of the transferred bytes\r\n+     * while {@link #getBytes(int, ChannelBuffer, int, int)} does not. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of the\r\n+     * source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.writableBytes} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}.  This method is basically same with\r\n+     * {@link #getBytes(int, ChannelBuffer, int, int)}, except that this method\r\n+     * increases the {@code writerIndex} of the destination by the number of the\r\n+     * transferred bytes while {@link #getBytes(int, ChannelBuffer, int, int)}\r\n+     * does not. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of the source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code dst.writableBytes}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\r\n+     * this}) and the destination.\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   dstIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   dstIndex + length} is greater than\r\n+     *                                   {@code dst.capacity}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified stream starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    void getBytes(int index, OutputStream dst, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if this buffer is backed by an NIO\r\n+     * direct buffer.\r\n+     */\r\n+    boolean isDirect();\r\n+\r\n+    /**\r\n+     * Marks the current {@code readerIndex} in this buffer.  You can reposition\r\n+     * the current {@code readerIndex} to the marked {@code readerIndex} by\r\n+     * calling {@link #resetReaderIndex()}. The initial value of the marked\r\n+     * {@code readerIndex} is {@code 0}.\r\n+     */\r\n+    void markReaderIndex();\r\n+\r\n+    /**\r\n+     * Marks the current {@code writerIndex} in this buffer.  You can reposition\r\n+     * the current {@code writerIndex} to the marked {@code writerIndex} by\r\n+     * calling {@link #resetWriterIndex()}. The initial value of the marked\r\n+     * {@code writerIndex} is {@code 0}.\r\n+     */\r\n+    void markWriterIndex();\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if {@code (this.writerIndex -\r\n+     * this.readerIndex)} is greater than {@code 0}.\r\n+     */\r\n+    boolean readable();\r\n+\r\n+    /**\r\n+     * Returns the number of readable bytes which is equal to {@code\r\n+     * (this.writerIndex - this.readerIndex)}.\r\n+     */\r\n+    int readableBytes();\r\n+\r\n+    /**\r\n+     * Gets a byte at the current {@code readerIndex} and increases the {@code\r\n+     * readerIndex} by {@code 1} in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code this.readableBytes} is less\r\n+     *                                   than {@code 1}\r\n+     */\r\n+    byte readByte();\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code dst.length}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(byte[] dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\r\n+     *                                   less than {@code 0}, if {@code length}\r\n+     *                                   is greater than {@code this.readableBytes},\r\n+     *                                   or if {@code dstIndex + length} is\r\n+     *                                   greater than {@code dst.length}\r\n+     */\r\n+    void readBytes(byte[] dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} until the destination's position reaches its\r\n+     * limit, and increases the {@code readerIndex} by the number of the\r\n+     * transferred bytes.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.remaining()} is greater\r\n+     *                                   than {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(ByteBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} until the destination becomes non-writable,\r\n+     * and increases the {@code readerIndex} by the number of the transferred\r\n+     * bytes.  This method is basically same with {@link\r\n+     * #readBytes(ChannelBuffer, int, int)}, except that this method increases\r\n+     * the {@code writerIndex} of the destination by the number of the\r\n+     * transferred bytes while {@link #readBytes(ChannelBuffer, int, int)} does\r\n+     * not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.writableBytes} is greater\r\n+     *                                   than {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).  This method is\r\n+     * basically same with {@link #readBytes(ChannelBuffer, int, int)}, except\r\n+     * that this method increases the {@code writerIndex} of the destination by\r\n+     * the number of the transferred bytes (= {@code length}) while {@link\r\n+     * #readBytes(ChannelBuffer, int, int)} does not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes} or if {@code\r\n+     *                                   length} is greater than {@code\r\n+     *                                   dst.writableBytes}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\r\n+     *                                   less than {@code 0}, if {@code length}\r\n+     *                                   is greater than {@code this.readableBytes},\r\n+     *                                   or if {@code dstIndex + length} is\r\n+     *                                   greater than {@code dst.capacity}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to a newly created buffer starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}). The returned buffer's\r\n+     * {@code readerIndex} and {@code writerIndex} are {@code 0} and {@code\r\n+     * length} respectively.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the newly created buffer which contains the transferred bytes\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    ChannelBuffer readBytes(int length);\r\n+\r\n+    /**\r\n+     * Repositions the current {@code readerIndex} to the marked {@code\r\n+     * readerIndex} in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the current {@code writerIndex} is\r\n+     *                                   less than the marked {@code\r\n+     *                                   readerIndex}\r\n+     */\r\n+    void resetReaderIndex();\r\n+\r\n+    /**\r\n+     * Marks the current {@code writerIndex} in this buffer.  You can reposition\r\n+     * the current {@code writerIndex} to the marked {@code writerIndex} by\r\n+     * calling {@link #resetWriterIndex()}. The initial value of the marked\r\n+     * {@code writerIndex} is {@code 0}.\r\n+     */\r\n+    void resetWriterIndex();\r\n+\r\n+    /**\r\n+     * Returns the {@code readerIndex} of this buffer.\r\n+     */\r\n+    int readerIndex();\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\r\n+     *                                   less than {@code 0} or greater than\r\n+     *                                   {@code this.writerIndex}\r\n+     */\r\n+    void readerIndex(int readerIndex);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified stream starting at the\r\n+     * current {@code readerIndex}.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    void readBytes(OutputStream dst, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Sets the specified byte at the specified absolute {@code index} in this\r\n+     * buffer.  The 24 high-order bits of the specified value are ignored. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or {@code index + 1} is\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    void setByte(int index, int value);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void setBytes(int index, byte[] src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   srcIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   srcIndex + length} is greater than\r\n+     *                                   {@code src.length}\r\n+     */\r\n+    void setBytes(int index, byte[] src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index} until the source buffer's position\r\n+     * reaches its limit. This method does not modify {@code readerIndex} or\r\n+     * {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.remaining()} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void setBytes(int index, ByteBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index} until the source buffer becomes\r\n+     * unreadable.  This method is basically same with {@link #setBytes(int,\r\n+     * ChannelBuffer, int, int)}, except that this method increases the {@code\r\n+     * readerIndex} of the source buffer by the number of the transferred bytes\r\n+     * while {@link #setBytes(int, ChannelBuffer, int, int)} does not. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of the\r\n+     * source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.readableBytes} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index}.  This method is basically same with\r\n+     * {@link #setBytes(int, ChannelBuffer, int, int)}, except that this method\r\n+     * increases the {@code readerIndex} of the source buffer by the number of\r\n+     * the transferred bytes while {@link #setBytes(int, ChannelBuffer, int,\r\n+     * int)} does not. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of the source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code src.readableBytes}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\r\n+     * this}) and the destination.\r\n+     *\r\n+     * @param srcIndex the first index of the source\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   srcIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   srcIndex + length} is greater than\r\n+     *                                   {@code src.capacity}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the content of the specified source stream to this buffer\r\n+     * starting at the specified absolute {@code index}. This method does not\r\n+     * modify {@code readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the actual number of bytes read in from the specified channel.\r\n+     * {@code -1} if the specified channel is closed.\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    int setBytes(int index, InputStream src, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer in\r\n+     * one shot.  This method is useful when you have to worry about the\r\n+     * invocation order of {@link #readerIndex(int)} and {@link\r\n+     * #writerIndex(int)} methods.  For example, the following code will fail:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // Create a buffer whose readerIndex, writerIndex and capacity are\r\n+     * // 0, 0 and 8 respectively.\r\n+     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.buffer(8);\r\n+     *\r\n+     * // IndexOutOfBoundsException is thrown because the specified\r\n+     * // readerIndex (2) cannot be greater than the current writerIndex (0).\r\n+     * buf.readerIndex(2);\r\n+     * buf.writerIndex(4);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * The following code will also fail:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // Create a buffer whose readerIndex, writerIndex and capacity are\r\n+     * // 0, 8 and 8 respectively.\r\n+     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.wrappedBuffer(new\r\n+     * byte[8]);\r\n+     *\r\n+     * // readerIndex becomes 8.\r\n+     * buf.readLong();\r\n+     *\r\n+     * // IndexOutOfBoundsException is thrown because the specified\r\n+     * // writerIndex (4) cannot be less than the current readerIndex (8).\r\n+     * buf.writerIndex(4);\r\n+     * buf.readerIndex(2);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * By contrast, {@link #setIndex(int, int)} guarantees that it never throws\r\n+     * an {@link IndexOutOfBoundsException} as long as the specified indexes\r\n+     * meet basic constraints, regardless what the current index values of the\r\n+     * buffer are:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // No matter what the current state of the buffer is, the following\r\n+     * // call always succeeds as long as the capacity of the buffer is not\r\n+     * // less than 4.\r\n+     * buf.setIndex(2, 4);\r\n+     * </pre>\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\r\n+     *                                   less than 0, if the specified {@code\r\n+     *                                   writerIndex} is less than the specified\r\n+     *                                   {@code readerIndex} or if the specified\r\n+     *                                   {@code writerIndex} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void setIndex(int readerIndex, int writerIndex);\r\n+\r\n+    /**\r\n+     * Increases the current {@code readerIndex} by the specified {@code length}\r\n+     * in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    void skipBytes(int length);\r\n+\r\n+    /**\r\n+     * Converts this buffer's readable bytes into a NIO buffer.  The returned\r\n+     * buffer might or might not share the content with this buffer, while they\r\n+     * have separate indexes and marks.  This method is identical to {@code\r\n+     * buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())}. This method\r\n+     * does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     */\r\n+    ByteBuffer toByteBuffer();\r\n+\r\n+    /**\r\n+     * Converts this buffer's sub-region into a NIO buffer.  The returned buffer\r\n+     * might or might not share the content with this buffer, while they have\r\n+     * separate indexes and marks. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     */\r\n+    ByteBuffer toByteBuffer(int index, int length);\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if {@code (this.capacity -\r\n+     * this.writerIndex)} is greater than {@code 0}.\r\n+     */\r\n+    boolean writable();\r\n+\r\n+    /**\r\n+     * Returns the number of writable bytes which is equal to {@code\r\n+     * (this.capacity - this.writerIndex)}.\r\n+     */\r\n+    int writableBytes();\r\n+\r\n+    /**\r\n+     * Sets the specified byte at the current {@code writerIndex} and increases\r\n+     * the {@code writerIndex} by {@code 1} in this buffer. The 24 high-order\r\n+     * bits of the specified value are ignored.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code this.writableBytes} is less\r\n+     *                                   than {@code 1}\r\n+     */\r\n+    void writeByte(int value);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code src.length}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.length} is greater than\r\n+     *                                   {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(byte[] src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param index  the first index of the source\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\r\n+     *                                   less than {@code 0}, if {@code srcIndex\r\n+     *                                   + length} is greater than {@code\r\n+     *                                   src.length}, or if {@code length} is\r\n+     *                                   greater than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(byte[] src, int index, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} until the source buffer's position\r\n+     * reaches its limit, and increases the {@code writerIndex} by the number of\r\n+     * the transferred bytes.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.remaining()} is greater\r\n+     *                                   than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ByteBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} until the source buffer becomes\r\n+     * unreadable, and increases the {@code writerIndex} by the number of the\r\n+     * transferred bytes.  This method is basically same with {@link\r\n+     * #writeBytes(ChannelBuffer, int, int)}, except that this method increases\r\n+     * the {@code readerIndex} of the source buffer by the number of the\r\n+     * transferred bytes while {@link #writeBytes(ChannelBuffer, int, int)} does\r\n+     * not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.readableBytes} is greater\r\n+     *                                   than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).  This method is\r\n+     * basically same with {@link #writeBytes(ChannelBuffer, int, int)}, except\r\n+     * that this method increases the {@code readerIndex} of the source buffer\r\n+     * by the number of the transferred bytes (= {@code length}) while {@link\r\n+     * #writeBytes(ChannelBuffer, int, int)} does not.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.writableBytes} or if {@code\r\n+     *                                   length} is greater then {@code\r\n+     *                                   src.readableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param srcIndex the first index of the source\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\r\n+     *                                   less than {@code 0}, if {@code srcIndex\r\n+     *                                   + length} is greater than {@code\r\n+     *                                   src.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the content of the specified stream to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the actual number of bytes read in from the specified stream\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.writableBytes}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    int writeBytes(InputStream src, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Returns the {@code writerIndex} of this buffer.\r\n+     */\r\n+    int writerIndex();\r\n+\r\n+    /**\r\n+     * Sets the {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code writerIndex} is\r\n+     *                                   less than {@code this.readerIndex} or\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    void writerIndex(int writerIndex);\r\n+\r\n+    /**\r\n+     * Returns the backing byte array of this buffer.\r\n+     *\r\n+     * @throws UnsupportedOperationException if there no accessible backing byte\r\n+     *                                       array\r\n+     */\r\n+    byte[] array();\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if this buffer has a backing byte array.\r\n+     * If this method returns true, you can safely call {@link #array()} and\r\n+     * {@link #arrayOffset()}.\r\n+     */\r\n+    boolean hasArray();\r\n+\r\n+    /**\r\n+     * Returns the offset of the first byte within the backing byte array of\r\n+     * this buffer.\r\n+     *\r\n+     * @throws UnsupportedOperationException if there no accessible backing byte\r\n+     *                                       array\r\n+     */\r\n+    int arrayOffset();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/ChannelBuffers.java", "source2": "org/apache/dubbo/remoting/buffer/ChannelBuffers.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,156 +1,156 @@\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.remoting.buffer;\n-\n-import java.nio.ByteBuffer;\n-\n-public final class ChannelBuffers {\n-\n-    public static final ChannelBuffer EMPTY_BUFFER = new HeapChannelBuffer(0);\n-\n-    private ChannelBuffers() {\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer() {\n-        return dynamicBuffer(256);\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer(int capacity) {\n-        return new DynamicChannelBuffer(capacity);\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer(int capacity,\n-                                              ChannelBufferFactory factory) {\n-        return new DynamicChannelBuffer(capacity, factory);\n-    }\n-\n-    public static ChannelBuffer buffer(int capacity) {\n-        if (capacity < 0) {\n-            throw new IllegalArgumentException(\"capacity can not be negative\");\n-        }\n-        if (capacity == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-        return new HeapChannelBuffer(capacity);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(byte[] array, int offset, int length) {\n-        if (array == null) {\n-            throw new NullPointerException(\"array == null\");\n-        }\n-        byte[] dest = new byte[length];\n-        System.arraycopy(array, offset, dest, 0, length);\n-        return wrappedBuffer(dest);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(byte[] array) {\n-        if (array == null) {\n-            throw new NullPointerException(\"array == null\");\n-        }\n-        if (array.length == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-        return new HeapChannelBuffer(array);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(ByteBuffer buffer) {\n-        if (!buffer.hasRemaining()) {\n-            return EMPTY_BUFFER;\n-        }\n-        if (buffer.hasArray()) {\n-            return wrappedBuffer(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining());\n-        } else {\n-            return new ByteBufferBackedChannelBuffer(buffer);\n-        }\n-    }\n-\n-    public static ChannelBuffer directBuffer(int capacity) {\n-        if (capacity == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-\n-        ChannelBuffer buffer = new ByteBufferBackedChannelBuffer(\n-                ByteBuffer.allocateDirect(capacity));\n-        buffer.clear();\n-        return buffer;\n-    }\n-\n-    public static boolean equals(ChannelBuffer bufferA, ChannelBuffer bufferB) {\n-        final int aLen = bufferA.readableBytes();\n-        if (aLen != bufferB.readableBytes()) {\n-            return false;\n-        }\n-\n-        final int byteCount = aLen & 7;\n-\n-        int aIndex = bufferA.readerIndex();\n-        int bIndex = bufferB.readerIndex();\n-\n-        for (int i = byteCount; i > 0; i--) {\n-            if (bufferA.getByte(aIndex) != bufferB.getByte(bIndex)) {\n-                return false;\n-            }\n-            aIndex++;\n-            bIndex++;\n-        }\n-\n-        return true;\n-    }\n-\n-    public static int hasCode(ChannelBuffer buffer){\n-        final int aLen = buffer.readableBytes();\n-        final int byteCount = aLen & 7;\n-\n-        int hashCode = 1;\n-        int arrayIndex = buffer.readerIndex();\n-\n-        for (int i = byteCount; i > 0; i--) {\n-            hashCode = 31 * hashCode + buffer.getByte(arrayIndex++);\n-        }\n-\n-        if (hashCode == 0) {\n-            hashCode = 1;\n-        }\n-\n-        return hashCode;\n-    }\n-\n-    public static int compare(ChannelBuffer bufferA, ChannelBuffer bufferB) {\n-        final int aLen = bufferA.readableBytes();\n-        final int bLen = bufferB.readableBytes();\n-        final int minLength = Math.min(aLen, bLen);\n-\n-        int aIndex = bufferA.readerIndex();\n-        int bIndex = bufferB.readerIndex();\n-\n-        for (int i = minLength; i > 0; i--) {\n-            byte va = bufferA.getByte(aIndex);\n-            byte vb = bufferB.getByte(bIndex);\n-            if (va > vb) {\n-                return 1;\n-            } else if (va < vb) {\n-                return -1;\n-            }\n-            aIndex++;\n-            bIndex++;\n-        }\n-\n-        return aLen - bLen;\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.remoting.buffer;\r\n+\r\n+import java.nio.ByteBuffer;\r\n+\r\n+public final class ChannelBuffers {\r\n+\r\n+    public static final ChannelBuffer EMPTY_BUFFER = new HeapChannelBuffer(0);\r\n+\r\n+    private ChannelBuffers() {\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer() {\r\n+        return dynamicBuffer(256);\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer(int capacity) {\r\n+        return new DynamicChannelBuffer(capacity);\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer(int capacity,\r\n+                                              ChannelBufferFactory factory) {\r\n+        return new DynamicChannelBuffer(capacity, factory);\r\n+    }\r\n+\r\n+    public static ChannelBuffer buffer(int capacity) {\r\n+        if (capacity < 0) {\r\n+            throw new IllegalArgumentException(\"capacity can not be negative\");\r\n+        }\r\n+        if (capacity == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        return new HeapChannelBuffer(capacity);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(byte[] array, int offset, int length) {\r\n+        if (array == null) {\r\n+            throw new NullPointerException(\"array == null\");\r\n+        }\r\n+        byte[] dest = new byte[length];\r\n+        System.arraycopy(array, offset, dest, 0, length);\r\n+        return wrappedBuffer(dest);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(byte[] array) {\r\n+        if (array == null) {\r\n+            throw new NullPointerException(\"array == null\");\r\n+        }\r\n+        if (array.length == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        return new HeapChannelBuffer(array);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(ByteBuffer buffer) {\r\n+        if (!buffer.hasRemaining()) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        if (buffer.hasArray()) {\r\n+            return wrappedBuffer(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining());\r\n+        } else {\r\n+            return new ByteBufferBackedChannelBuffer(buffer);\r\n+        }\r\n+    }\r\n+\r\n+    public static ChannelBuffer directBuffer(int capacity) {\r\n+        if (capacity == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+\r\n+        ChannelBuffer buffer = new ByteBufferBackedChannelBuffer(\r\n+                ByteBuffer.allocateDirect(capacity));\r\n+        buffer.clear();\r\n+        return buffer;\r\n+    }\r\n+\r\n+    public static boolean equals(ChannelBuffer bufferA, ChannelBuffer bufferB) {\r\n+        final int aLen = bufferA.readableBytes();\r\n+        if (aLen != bufferB.readableBytes()) {\r\n+            return false;\r\n+        }\r\n+\r\n+        final int byteCount = aLen & 7;\r\n+\r\n+        int aIndex = bufferA.readerIndex();\r\n+        int bIndex = bufferB.readerIndex();\r\n+\r\n+        for (int i = byteCount; i > 0; i--) {\r\n+            if (bufferA.getByte(aIndex) != bufferB.getByte(bIndex)) {\r\n+                return false;\r\n+            }\r\n+            aIndex++;\r\n+            bIndex++;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    public static int hasCode(ChannelBuffer buffer){\r\n+        final int aLen = buffer.readableBytes();\r\n+        final int byteCount = aLen & 7;\r\n+\r\n+        int hashCode = 1;\r\n+        int arrayIndex = buffer.readerIndex();\r\n+\r\n+        for (int i = byteCount; i > 0; i--) {\r\n+            hashCode = 31 * hashCode + buffer.getByte(arrayIndex++);\r\n+        }\r\n+\r\n+        if (hashCode == 0) {\r\n+            hashCode = 1;\r\n+        }\r\n+\r\n+        return hashCode;\r\n+    }\r\n+\r\n+    public static int compare(ChannelBuffer bufferA, ChannelBuffer bufferB) {\r\n+        final int aLen = bufferA.readableBytes();\r\n+        final int bLen = bufferB.readableBytes();\r\n+        final int minLength = Math.min(aLen, bLen);\r\n+\r\n+        int aIndex = bufferA.readerIndex();\r\n+        int bIndex = bufferB.readerIndex();\r\n+\r\n+        for (int i = minLength; i > 0; i--) {\r\n+            byte va = bufferA.getByte(aIndex);\r\n+            byte vb = bufferB.getByte(bIndex);\r\n+            if (va > vb) {\r\n+                return 1;\r\n+            } else if (va < vb) {\r\n+                return -1;\r\n+            }\r\n+            aIndex++;\r\n+            bIndex++;\r\n+        }\r\n+\r\n+        return aLen - bLen;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/Request.java", "source2": "org/apache/dubbo/remoting/exchange/Request.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,145 +1,145 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.exchange;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-/**\n- * Request.\n- */\n-public class Request {\n-\n-    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\n-\n-    private final long mId;\n-\n-    private String mVersion;\n-\n-    private boolean mTwoWay = true;\n-\n-    private boolean mEvent = false;\n-\n-    private boolean mBroken = false;\n-\n-    private Object mData;\n-\n-    public Request() {\n-        mId = newId();\n-    }\n-\n-    public Request(long id) {\n-        mId = id;\n-    }\n-\n-    private static long newId() {\n-        // getAndIncrement() When it grows to MAX_VALUE, it will grow to MIN_VALUE, and the negative can be used as ID\n-        return INVOKE_ID.getAndIncrement();\n-    }\n-\n-    private static String safeToString(Object data) {\n-        if (data == null) {\n-            return null;\n-        }\n-        String dataStr;\n-        try {\n-            dataStr = data.toString();\n-        } catch (Throwable e) {\n-            dataStr = \"<Fail toString of \" + data.getClass() + \", cause: \" +\n-                    StringUtils.toString(e) + \">\";\n-        }\n-        return dataStr;\n-    }\n-\n-    public long getId() {\n-        return mId;\n-    }\n-\n-    public String getVersion() {\n-        return mVersion;\n-    }\n-\n-    public void setVersion(String version) {\n-        mVersion = version;\n-    }\n-\n-    public boolean isTwoWay() {\n-        return mTwoWay;\n-    }\n-\n-    public void setTwoWay(boolean twoWay) {\n-        mTwoWay = twoWay;\n-    }\n-\n-    public boolean isEvent() {\n-        return mEvent;\n-    }\n-\n-    public void setEvent(String event) {\n-        this.mEvent = true;\n-        this.mData = event;\n-    }\n-\n-    public void setEvent(boolean mEvent) {\n-        this.mEvent = mEvent;\n-    }\n-\n-    public boolean isBroken() {\n-        return mBroken;\n-    }\n-\n-    public void setBroken(boolean mBroken) {\n-        this.mBroken = mBroken;\n-    }\n-\n-    public Object getData() {\n-        return mData;\n-    }\n-\n-    public void setData(Object msg) {\n-        mData = msg;\n-    }\n-\n-    public boolean isHeartbeat() {\n-        return mEvent && HEARTBEAT_EVENT == mData;\n-    }\n-\n-    public void setHeartbeat(boolean isHeartbeat) {\n-        if (isHeartbeat) {\n-            setEvent(HEARTBEAT_EVENT);\n-        }\n-    }\n-\n-    public Request copy() {\n-        Request copy = new Request(mId);\n-        copy.mVersion = this.mVersion;\n-        copy.mTwoWay = this.mTwoWay;\n-        copy.mEvent = this.mEvent;\n-        copy.mBroken = this.mBroken;\n-        copy.mData = this.mData;\n-        return copy;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"Request [id=\" + mId + \", version=\" + mVersion + \", twoway=\" + mTwoWay + \", event=\" + mEvent\n-                + \", broken=\" + mBroken + \", data=\" + (mData == this ? \"this\" : safeToString(mData)) + \"]\";\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.exchange;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * Request.\r\n+ */\r\n+public class Request {\r\n+\r\n+    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\r\n+\r\n+    private final long mId;\r\n+\r\n+    private String mVersion;\r\n+\r\n+    private boolean mTwoWay = true;\r\n+\r\n+    private boolean mEvent = false;\r\n+\r\n+    private boolean mBroken = false;\r\n+\r\n+    private Object mData;\r\n+\r\n+    public Request() {\r\n+        mId = newId();\r\n+    }\r\n+\r\n+    public Request(long id) {\r\n+        mId = id;\r\n+    }\r\n+\r\n+    private static long newId() {\r\n+        // getAndIncrement() When it grows to MAX_VALUE, it will grow to MIN_VALUE, and the negative can be used as ID\r\n+        return INVOKE_ID.getAndIncrement();\r\n+    }\r\n+\r\n+    private static String safeToString(Object data) {\r\n+        if (data == null) {\r\n+            return null;\r\n+        }\r\n+        String dataStr;\r\n+        try {\r\n+            dataStr = data.toString();\r\n+        } catch (Throwable e) {\r\n+            dataStr = \"<Fail toString of \" + data.getClass() + \", cause: \" +\r\n+                    StringUtils.toString(e) + \">\";\r\n+        }\r\n+        return dataStr;\r\n+    }\r\n+\r\n+    public long getId() {\r\n+        return mId;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return mVersion;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        mVersion = version;\r\n+    }\r\n+\r\n+    public boolean isTwoWay() {\r\n+        return mTwoWay;\r\n+    }\r\n+\r\n+    public void setTwoWay(boolean twoWay) {\r\n+        mTwoWay = twoWay;\r\n+    }\r\n+\r\n+    public boolean isEvent() {\r\n+        return mEvent;\r\n+    }\r\n+\r\n+    public void setEvent(String event) {\r\n+        this.mEvent = true;\r\n+        this.mData = event;\r\n+    }\r\n+\r\n+    public void setEvent(boolean mEvent) {\r\n+        this.mEvent = mEvent;\r\n+    }\r\n+\r\n+    public boolean isBroken() {\r\n+        return mBroken;\r\n+    }\r\n+\r\n+    public void setBroken(boolean mBroken) {\r\n+        this.mBroken = mBroken;\r\n+    }\r\n+\r\n+    public Object getData() {\r\n+        return mData;\r\n+    }\r\n+\r\n+    public void setData(Object msg) {\r\n+        mData = msg;\r\n+    }\r\n+\r\n+    public boolean isHeartbeat() {\r\n+        return mEvent && HEARTBEAT_EVENT == mData;\r\n+    }\r\n+\r\n+    public void setHeartbeat(boolean isHeartbeat) {\r\n+        if (isHeartbeat) {\r\n+            setEvent(HEARTBEAT_EVENT);\r\n+        }\r\n+    }\r\n+\r\n+    public Request copy() {\r\n+        Request copy = new Request(mId);\r\n+        copy.mVersion = this.mVersion;\r\n+        copy.mTwoWay = this.mTwoWay;\r\n+        copy.mEvent = this.mEvent;\r\n+        copy.mBroken = this.mBroken;\r\n+        copy.mData = this.mData;\r\n+        return copy;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"Request [id=\" + mId + \", version=\" + mVersion + \", twoway=\" + mTwoWay + \", event=\" + mEvent\r\n+                + \", broken=\" + mBroken + \", data=\" + (mData == this ? \"this\" : safeToString(mData)) + \"]\";\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/DefaultFuture.java", "source2": "org/apache/dubbo/remoting/exchange/support/DefaultFuture.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,301 +1,301 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.exchange.support;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.common.timer.HashedWheelTimer;\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.common.timer.Timer;\n-import org.apache.dubbo.common.timer.TimerTask;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * DefaultFuture.\n- */\n-public class DefaultFuture extends CompletableFuture<Object> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DefaultFuture.class);\n-\n-    private static final Map<Long, Channel> CHANNELS = new ConcurrentHashMap<>();\n-\n-    private static final Map<Long, DefaultFuture> FUTURES = new ConcurrentHashMap<>();\n-\n-    public static final Timer TIME_OUT_TIMER = new HashedWheelTimer(\n-            new NamedThreadFactory(\"dubbo-future-timeout\", true),\n-            30,\n-            TimeUnit.MILLISECONDS);\n-\n-    // invoke id.\n-    private final Long id;\n-    private final Channel channel;\n-    private final Request request;\n-    private final int timeout;\n-    private final long start = System.currentTimeMillis();\n-    private volatile long sent;\n-    private Timeout timeoutCheckTask;\n-\n-    private ExecutorService executor;\n-\n-    public ExecutorService getExecutor() {\n-        return executor;\n-    }\n-\n-    public void setExecutor(ExecutorService executor) {\n-        this.executor = executor;\n-    }\n-\n-    private DefaultFuture(Channel channel, Request request, int timeout) {\n-        this.channel = channel;\n-        this.request = request;\n-        this.id = request.getId();\n-        this.timeout = timeout > 0 ? timeout : channel.getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        // put into waiting map.\n-        FUTURES.put(id, this);\n-        CHANNELS.put(id, channel);\n-    }\n-\n-    /**\n-     * check time out of the future\n-     */\n-    private static void timeoutCheck(DefaultFuture future) {\n-        TimeoutCheckTask task = new TimeoutCheckTask(future.getId());\n-        future.timeoutCheckTask = TIME_OUT_TIMER.newTimeout(task, future.getTimeout(), TimeUnit.MILLISECONDS);\n-    }\n-\n-    /**\n-     * init a DefaultFuture\n-     * 1.init a DefaultFuture\n-     * 2.timeout check\n-     *\n-     * @param channel channel\n-     * @param request the request\n-     * @param timeout timeout\n-     * @return a new DefaultFuture\n-     */\n-    public static DefaultFuture newFuture(Channel channel, Request request, int timeout, ExecutorService executor) {\n-        final DefaultFuture future = new DefaultFuture(channel, request, timeout);\n-        future.setExecutor(executor);\n-        // ThreadlessExecutor needs to hold the waiting future in case of circuit return.\n-        if (executor instanceof ThreadlessExecutor) {\n-            ((ThreadlessExecutor) executor).setWaitingFuture(future);\n-        }\n-        // timeout check\n-        timeoutCheck(future);\n-        return future;\n-    }\n-\n-    public static DefaultFuture getFuture(long id) {\n-        return FUTURES.get(id);\n-    }\n-\n-    public static boolean hasFuture(Channel channel) {\n-        return CHANNELS.containsValue(channel);\n-    }\n-\n-    public static void sent(Channel channel, Request request) {\n-        DefaultFuture future = FUTURES.get(request.getId());\n-        if (future != null) {\n-            future.doSent();\n-        }\n-    }\n-\n-    /**\n-     * close a channel when a channel is inactive\n-     * directly return the unfinished requests.\n-     *\n-     * @param channel channel to close\n-     */\n-    public static void closeChannel(Channel channel) {\n-        for (Map.Entry<Long, Channel> entry : CHANNELS.entrySet()) {\n-            if (channel.equals(entry.getValue())) {\n-                DefaultFuture future = getFuture(entry.getKey());\n-                if (future != null && !future.isDone()) {\n-                    ExecutorService futureExecutor = future.getExecutor();\n-                    if (futureExecutor != null && !futureExecutor.isTerminated()) {\n-                        futureExecutor.shutdownNow();\n-                    }\n-\n-                    Response disconnectResponse = new Response(future.getId());\n-                    disconnectResponse.setStatus(Response.CHANNEL_INACTIVE);\n-                    disconnectResponse.setErrorMessage(\"Channel \" +\n-                            channel +\n-                            \" is inactive. Directly return the unFinished request : \" +\n-                            future.getRequest());\n-                    DefaultFuture.received(channel, disconnectResponse);\n-                }\n-            }\n-        }\n-    }\n-\n-    public static void received(Channel channel, Response response) {\n-        received(channel, response, false);\n-    }\n-\n-    public static void received(Channel channel, Response response, boolean timeout) {\n-        try {\n-            DefaultFuture future = FUTURES.remove(response.getId());\n-            if (future != null) {\n-                Timeout t = future.timeoutCheckTask;\n-                if (!timeout) {\n-                    // decrease Time\n-                    t.cancel();\n-                }\n-                future.doReceived(response);\n-            } else {\n-                logger.warn(\"The timeout response finally returned at \"\n-                        + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date()))\n-                        + \", response status is \" + response.getStatus()\n-                        + (channel == null ? \"\" : \", channel: \" + channel.getLocalAddress()\n-                        + \" -> \" + channel.getRemoteAddress()) + \", please check provider side for detailed result.\");\n-            }\n-        } finally {\n-            CHANNELS.remove(response.getId());\n-        }\n-    }\n-\n-    @Override\n-    public boolean cancel(boolean mayInterruptIfRunning) {\n-        Response errorResult = new Response(id);\n-        errorResult.setStatus(Response.CLIENT_ERROR);\n-        errorResult.setErrorMessage(\"request future has been canceled.\");\n-        this.doReceived(errorResult);\n-        FUTURES.remove(id);\n-        CHANNELS.remove(id);\n-        return true;\n-    }\n-\n-    public void cancel() {\n-        this.cancel(true);\n-    }\n-\n-    private void doReceived(Response res) {\n-        if (res == null) {\n-            throw new IllegalStateException(\"response cannot be null\");\n-        }\n-        if (res.getStatus() == Response.OK) {\n-            this.complete(res.getResult());\n-        } else if (res.getStatus() == Response.CLIENT_TIMEOUT || res.getStatus() == Response.SERVER_TIMEOUT) {\n-            this.completeExceptionally(new TimeoutException(res.getStatus() == Response.SERVER_TIMEOUT, channel, res.getErrorMessage()));\n-        } else {\n-            this.completeExceptionally(new RemotingException(channel, res.getErrorMessage()));\n-        }\n-\n-        // the result is returning, but the caller thread may still waiting\n-        // to avoid endless waiting for whatever reason, notify caller thread to return.\n-        if (executor != null && executor instanceof ThreadlessExecutor) {\n-            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\n-            if (threadlessExecutor.isWaiting()) {\n-                threadlessExecutor.notifyReturn(new IllegalStateException(\"The result has returned, but the biz thread is still waiting\" +\n-                        \" which is not an expected state, interrupt the thread manually by returning an exception.\"));\n-            }\n-        }\n-    }\n-\n-    private long getId() {\n-        return id;\n-    }\n-\n-    private Channel getChannel() {\n-        return channel;\n-    }\n-\n-    private boolean isSent() {\n-        return sent > 0;\n-    }\n-\n-    public Request getRequest() {\n-        return request;\n-    }\n-\n-    private int getTimeout() {\n-        return timeout;\n-    }\n-\n-    private void doSent() {\n-        sent = System.currentTimeMillis();\n-    }\n-\n-    private String getTimeoutMessage(boolean scan) {\n-        long nowTimestamp = System.currentTimeMillis();\n-        return (sent > 0 ? \"Waiting server-side response timeout\" : \"Sending request timeout in client-side\")\n-                + (scan ? \" by scan timer\" : \"\") + \". start time: \"\n-                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(start))) + \", end time: \"\n-                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(nowTimestamp))) + \",\"\n-                + (sent > 0 ? \" client elapsed: \" + (sent - start)\n-                + \" ms, server elapsed: \" + (nowTimestamp - sent)\n-                : \" elapsed: \" + (nowTimestamp - start)) + \" ms, timeout: \"\n-                + timeout + \" ms, request: \" + (logger.isDebugEnabled() ? request : getRequestWithoutData()) + \", channel: \" + channel.getLocalAddress()\n-                + \" -> \" + channel.getRemoteAddress();\n-    }\n-\n-    private Request getRequestWithoutData() {\n-        Request newRequest = request.copy();\n-        newRequest.setData(null);\n-        return newRequest;\n-    }\n-\n-    private static class TimeoutCheckTask implements TimerTask {\n-\n-        private final Long requestID;\n-\n-        TimeoutCheckTask(Long requestID) {\n-            this.requestID = requestID;\n-        }\n-\n-        @Override\n-        public void run(Timeout timeout) {\n-            DefaultFuture future = DefaultFuture.getFuture(requestID);\n-            if (future == null || future.isDone()) {\n-                return;\n-            }\n-\n-            if (future.getExecutor() != null) {\n-                future.getExecutor().execute(() -> notifyTimeout(future));\n-            } else {\n-                notifyTimeout(future);\n-            }\n-        }\n-\n-        private void notifyTimeout(DefaultFuture future) {\n-            // create exception response.\n-            Response timeoutResponse = new Response(future.getId());\n-            // set timeout status.\n-            timeoutResponse.setStatus(future.isSent() ? Response.SERVER_TIMEOUT : Response.CLIENT_TIMEOUT);\n-            timeoutResponse.setErrorMessage(future.getTimeoutMessage(true));\n-            // handle response.\n-            DefaultFuture.received(future.getChannel(), timeoutResponse, true);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.exchange.support;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.common.timer.HashedWheelTimer;\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.common.timer.Timer;\r\n+import org.apache.dubbo.common.timer.TimerTask;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * DefaultFuture.\r\n+ */\r\n+public class DefaultFuture extends CompletableFuture<Object> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DefaultFuture.class);\r\n+\r\n+    private static final Map<Long, Channel> CHANNELS = new ConcurrentHashMap<>();\r\n+\r\n+    private static final Map<Long, DefaultFuture> FUTURES = new ConcurrentHashMap<>();\r\n+\r\n+    public static final Timer TIME_OUT_TIMER = new HashedWheelTimer(\r\n+            new NamedThreadFactory(\"dubbo-future-timeout\", true),\r\n+            30,\r\n+            TimeUnit.MILLISECONDS);\r\n+\r\n+    // invoke id.\r\n+    private final Long id;\r\n+    private final Channel channel;\r\n+    private final Request request;\r\n+    private final int timeout;\r\n+    private final long start = System.currentTimeMillis();\r\n+    private volatile long sent;\r\n+    private Timeout timeoutCheckTask;\r\n+\r\n+    private ExecutorService executor;\r\n+\r\n+    public ExecutorService getExecutor() {\r\n+        return executor;\r\n+    }\r\n+\r\n+    public void setExecutor(ExecutorService executor) {\r\n+        this.executor = executor;\r\n+    }\r\n+\r\n+    private DefaultFuture(Channel channel, Request request, int timeout) {\r\n+        this.channel = channel;\r\n+        this.request = request;\r\n+        this.id = request.getId();\r\n+        this.timeout = timeout > 0 ? timeout : channel.getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        // put into waiting map.\r\n+        FUTURES.put(id, this);\r\n+        CHANNELS.put(id, channel);\r\n+    }\r\n+\r\n+    /**\r\n+     * check time out of the future\r\n+     */\r\n+    private static void timeoutCheck(DefaultFuture future) {\r\n+        TimeoutCheckTask task = new TimeoutCheckTask(future.getId());\r\n+        future.timeoutCheckTask = TIME_OUT_TIMER.newTimeout(task, future.getTimeout(), TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    /**\r\n+     * init a DefaultFuture\r\n+     * 1.init a DefaultFuture\r\n+     * 2.timeout check\r\n+     *\r\n+     * @param channel channel\r\n+     * @param request the request\r\n+     * @param timeout timeout\r\n+     * @return a new DefaultFuture\r\n+     */\r\n+    public static DefaultFuture newFuture(Channel channel, Request request, int timeout, ExecutorService executor) {\r\n+        final DefaultFuture future = new DefaultFuture(channel, request, timeout);\r\n+        future.setExecutor(executor);\r\n+        // ThreadlessExecutor needs to hold the waiting future in case of circuit return.\r\n+        if (executor instanceof ThreadlessExecutor) {\r\n+            ((ThreadlessExecutor) executor).setWaitingFuture(future);\r\n+        }\r\n+        // timeout check\r\n+        timeoutCheck(future);\r\n+        return future;\r\n+    }\r\n+\r\n+    public static DefaultFuture getFuture(long id) {\r\n+        return FUTURES.get(id);\r\n+    }\r\n+\r\n+    public static boolean hasFuture(Channel channel) {\r\n+        return CHANNELS.containsValue(channel);\r\n+    }\r\n+\r\n+    public static void sent(Channel channel, Request request) {\r\n+        DefaultFuture future = FUTURES.get(request.getId());\r\n+        if (future != null) {\r\n+            future.doSent();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * close a channel when a channel is inactive\r\n+     * directly return the unfinished requests.\r\n+     *\r\n+     * @param channel channel to close\r\n+     */\r\n+    public static void closeChannel(Channel channel) {\r\n+        for (Map.Entry<Long, Channel> entry : CHANNELS.entrySet()) {\r\n+            if (channel.equals(entry.getValue())) {\r\n+                DefaultFuture future = getFuture(entry.getKey());\r\n+                if (future != null && !future.isDone()) {\r\n+                    ExecutorService futureExecutor = future.getExecutor();\r\n+                    if (futureExecutor != null && !futureExecutor.isTerminated()) {\r\n+                        futureExecutor.shutdownNow();\r\n+                    }\r\n+\r\n+                    Response disconnectResponse = new Response(future.getId());\r\n+                    disconnectResponse.setStatus(Response.CHANNEL_INACTIVE);\r\n+                    disconnectResponse.setErrorMessage(\"Channel \" +\r\n+                            channel +\r\n+                            \" is inactive. Directly return the unFinished request : \" +\r\n+                            future.getRequest());\r\n+                    DefaultFuture.received(channel, disconnectResponse);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static void received(Channel channel, Response response) {\r\n+        received(channel, response, false);\r\n+    }\r\n+\r\n+    public static void received(Channel channel, Response response, boolean timeout) {\r\n+        try {\r\n+            DefaultFuture future = FUTURES.remove(response.getId());\r\n+            if (future != null) {\r\n+                Timeout t = future.timeoutCheckTask;\r\n+                if (!timeout) {\r\n+                    // decrease Time\r\n+                    t.cancel();\r\n+                }\r\n+                future.doReceived(response);\r\n+            } else {\r\n+                logger.warn(\"The timeout response finally returned at \"\r\n+                        + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date()))\r\n+                        + \", response status is \" + response.getStatus()\r\n+                        + (channel == null ? \"\" : \", channel: \" + channel.getLocalAddress()\r\n+                        + \" -> \" + channel.getRemoteAddress()) + \", please check provider side for detailed result.\");\r\n+            }\r\n+        } finally {\r\n+            CHANNELS.remove(response.getId());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean cancel(boolean mayInterruptIfRunning) {\r\n+        Response errorResult = new Response(id);\r\n+        errorResult.setStatus(Response.CLIENT_ERROR);\r\n+        errorResult.setErrorMessage(\"request future has been canceled.\");\r\n+        this.doReceived(errorResult);\r\n+        FUTURES.remove(id);\r\n+        CHANNELS.remove(id);\r\n+        return true;\r\n+    }\r\n+\r\n+    public void cancel() {\r\n+        this.cancel(true);\r\n+    }\r\n+\r\n+    private void doReceived(Response res) {\r\n+        if (res == null) {\r\n+            throw new IllegalStateException(\"response cannot be null\");\r\n+        }\r\n+        if (res.getStatus() == Response.OK) {\r\n+            this.complete(res.getResult());\r\n+        } else if (res.getStatus() == Response.CLIENT_TIMEOUT || res.getStatus() == Response.SERVER_TIMEOUT) {\r\n+            this.completeExceptionally(new TimeoutException(res.getStatus() == Response.SERVER_TIMEOUT, channel, res.getErrorMessage()));\r\n+        } else {\r\n+            this.completeExceptionally(new RemotingException(channel, res.getErrorMessage()));\r\n+        }\r\n+\r\n+        // the result is returning, but the caller thread may still waiting\r\n+        // to avoid endless waiting for whatever reason, notify caller thread to return.\r\n+        if (executor != null && executor instanceof ThreadlessExecutor) {\r\n+            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\r\n+            if (threadlessExecutor.isWaiting()) {\r\n+                threadlessExecutor.notifyReturn(new IllegalStateException(\"The result has returned, but the biz thread is still waiting\" +\r\n+                        \" which is not an expected state, interrupt the thread manually by returning an exception.\"));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private long getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    private Channel getChannel() {\r\n+        return channel;\r\n+    }\r\n+\r\n+    private boolean isSent() {\r\n+        return sent > 0;\r\n+    }\r\n+\r\n+    public Request getRequest() {\r\n+        return request;\r\n+    }\r\n+\r\n+    private int getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    private void doSent() {\r\n+        sent = System.currentTimeMillis();\r\n+    }\r\n+\r\n+    private String getTimeoutMessage(boolean scan) {\r\n+        long nowTimestamp = System.currentTimeMillis();\r\n+        return (sent > 0 ? \"Waiting server-side response timeout\" : \"Sending request timeout in client-side\")\r\n+                + (scan ? \" by scan timer\" : \"\") + \". start time: \"\r\n+                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(start))) + \", end time: \"\r\n+                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(nowTimestamp))) + \",\"\r\n+                + (sent > 0 ? \" client elapsed: \" + (sent - start)\r\n+                + \" ms, server elapsed: \" + (nowTimestamp - sent)\r\n+                : \" elapsed: \" + (nowTimestamp - start)) + \" ms, timeout: \"\r\n+                + timeout + \" ms, request: \" + (logger.isDebugEnabled() ? request : getRequestWithoutData()) + \", channel: \" + channel.getLocalAddress()\r\n+                + \" -> \" + channel.getRemoteAddress();\r\n+    }\r\n+\r\n+    private Request getRequestWithoutData() {\r\n+        Request newRequest = request.copy();\r\n+        newRequest.setData(null);\r\n+        return newRequest;\r\n+    }\r\n+\r\n+    private static class TimeoutCheckTask implements TimerTask {\r\n+\r\n+        private final Long requestID;\r\n+\r\n+        TimeoutCheckTask(Long requestID) {\r\n+            this.requestID = requestID;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run(Timeout timeout) {\r\n+            DefaultFuture future = DefaultFuture.getFuture(requestID);\r\n+            if (future == null || future.isDone()) {\r\n+                return;\r\n+            }\r\n+\r\n+            if (future.getExecutor() != null) {\r\n+                future.getExecutor().execute(() -> notifyTimeout(future));\r\n+            } else {\r\n+                notifyTimeout(future);\r\n+            }\r\n+        }\r\n+\r\n+        private void notifyTimeout(DefaultFuture future) {\r\n+            // create exception response.\r\n+            Response timeoutResponse = new Response(future.getId());\r\n+            // set timeout status.\r\n+            timeoutResponse.setStatus(future.isSent() ? Response.SERVER_TIMEOUT : Response.CLIENT_TIMEOUT);\r\n+            timeoutResponse.setErrorMessage(future.getTimeoutMessage(true));\r\n+            // handle response.\r\n+            DefaultFuture.received(future.getChannel(), timeoutResponse, true);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,97 +1,97 @@\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.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.common.timer.Timer;\n-import org.apache.dubbo.common.timer.TimerTask;\n-import org.apache.dubbo.remoting.Channel;\n-\n-import java.util.Collection;\n-import java.util.concurrent.TimeUnit;\n-\n-/**\n- * AbstractTimerTask\n- */\n-public abstract class AbstractTimerTask implements TimerTask {\n-\n-    private final ChannelProvider channelProvider;\n-\n-    private final Long tick;\n-\n-    protected volatile boolean cancel = false;\n-\n-    AbstractTimerTask(ChannelProvider channelProvider, Long tick) {\n-        if (channelProvider == null || tick == null) {\n-            throw new IllegalArgumentException();\n-        }\n-        this.tick = tick;\n-        this.channelProvider = channelProvider;\n-    }\n-\n-    static Long lastRead(Channel channel) {\n-        return (Long) channel.getAttribute(HeartbeatHandler.KEY_READ_TIMESTAMP);\n-    }\n-\n-    static Long lastWrite(Channel channel) {\n-        return (Long) channel.getAttribute(HeartbeatHandler.KEY_WRITE_TIMESTAMP);\n-    }\n-\n-    static Long now() {\n-        return System.currentTimeMillis();\n-    }\n-\n-    public void cancel() {\n-        this.cancel = true;\n-    }\n-\n-    private void reput(Timeout timeout, Long tick) {\n-        if (timeout == null || tick == null) {\n-            throw new IllegalArgumentException();\n-        }\n-\n-        if (cancel) {\n-            return;\n-        }\n-\n-        Timer timer = timeout.timer();\n-        if (timer.isStop() || timeout.isCancelled()) {\n-            return;\n-        }\n-\n-        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    public void run(Timeout timeout) throws Exception {\n-        Collection<Channel> c = channelProvider.getChannels();\n-        for (Channel channel : c) {\n-            if (channel.isClosed()) {\n-                continue;\n-            }\n-            doTask(channel);\n-        }\n-        reput(timeout, tick);\n-    }\n-\n-    protected abstract void doTask(Channel channel);\n-\n-    interface ChannelProvider {\n-        Collection<Channel> getChannels();\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.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.common.timer.Timer;\r\n+import org.apache.dubbo.common.timer.TimerTask;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+/**\r\n+ * AbstractTimerTask\r\n+ */\r\n+public abstract class AbstractTimerTask implements TimerTask {\r\n+\r\n+    private final ChannelProvider channelProvider;\r\n+\r\n+    private final Long tick;\r\n+\r\n+    protected volatile boolean cancel = false;\r\n+\r\n+    AbstractTimerTask(ChannelProvider channelProvider, Long tick) {\r\n+        if (channelProvider == null || tick == null) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+        this.tick = tick;\r\n+        this.channelProvider = channelProvider;\r\n+    }\r\n+\r\n+    static Long lastRead(Channel channel) {\r\n+        return (Long) channel.getAttribute(HeartbeatHandler.KEY_READ_TIMESTAMP);\r\n+    }\r\n+\r\n+    static Long lastWrite(Channel channel) {\r\n+        return (Long) channel.getAttribute(HeartbeatHandler.KEY_WRITE_TIMESTAMP);\r\n+    }\r\n+\r\n+    static Long now() {\r\n+        return System.currentTimeMillis();\r\n+    }\r\n+\r\n+    public void cancel() {\r\n+        this.cancel = true;\r\n+    }\r\n+\r\n+    private void reput(Timeout timeout, Long tick) {\r\n+        if (timeout == null || tick == null) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+\r\n+        if (cancel) {\r\n+            return;\r\n+        }\r\n+\r\n+        Timer timer = timeout.timer();\r\n+        if (timer.isStop() || timeout.isCancelled()) {\r\n+            return;\r\n+        }\r\n+\r\n+        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void run(Timeout timeout) throws Exception {\r\n+        Collection<Channel> c = channelProvider.getChannels();\r\n+        for (Channel channel : c) {\r\n+            if (channel.isClosed()) {\r\n+                continue;\r\n+            }\r\n+            doTask(channel);\r\n+        }\r\n+        reput(timeout, tick);\r\n+    }\r\n+\r\n+    protected abstract void doTask(Channel channel);\r\n+\r\n+    interface ChannelProvider {\r\n+        Collection<Channel> getChannels();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,116 +1,116 @@\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.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.transport.AbstractChannelHandlerDelegate;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-public class HeartbeatHandler extends AbstractChannelHandlerDelegate {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(HeartbeatHandler.class);\n-\n-    public static final String KEY_READ_TIMESTAMP = \"READ_TIMESTAMP\";\n-\n-    public static final String KEY_WRITE_TIMESTAMP = \"WRITE_TIMESTAMP\";\n-\n-    public HeartbeatHandler(ChannelHandler handler) {\n-        super(handler);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        setReadTimestamp(channel);\n-        setWriteTimestamp(channel);\n-        handler.connected(channel);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        clearReadTimestamp(channel);\n-        clearWriteTimestamp(channel);\n-        handler.disconnected(channel);\n-    }\n-\n-    @Override\n-    public void sent(Channel channel, Object message) throws RemotingException {\n-        setWriteTimestamp(channel);\n-        handler.sent(channel, message);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        setReadTimestamp(channel);\n-        if (isHeartbeatRequest(message)) {\n-            Request req = (Request) message;\n-            if (req.isTwoWay()) {\n-                Response res = new Response(req.getId(), req.getVersion());\n-                res.setEvent(HEARTBEAT_EVENT);\n-                channel.send(res);\n-                if (logger.isInfoEnabled()) {\n-                    int heartbeat = channel.getUrl().getParameter(Constants.HEARTBEAT_KEY, 0);\n-                    if (logger.isDebugEnabled()) {\n-                        logger.debug(\"Received heartbeat from remote channel \" + channel.getRemoteAddress()\n-                                + \", cause: The channel has no data-transmission exceeds a heartbeat period\"\n-                                + (heartbeat > 0 ? \": \" + heartbeat + \"ms\" : \"\"));\n-                    }\n-                }\n-            }\n-            return;\n-        }\n-        if (isHeartbeatResponse(message)) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Receive heartbeat response in thread \" + Thread.currentThread().getName());\n-            }\n-            return;\n-        }\n-        handler.received(channel, message);\n-    }\n-\n-    private void setReadTimestamp(Channel channel) {\n-        channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());\n-    }\n-\n-    private void setWriteTimestamp(Channel channel) {\n-        channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());\n-    }\n-\n-    private void clearReadTimestamp(Channel channel) {\n-        channel.removeAttribute(KEY_READ_TIMESTAMP);\n-    }\n-\n-    private void clearWriteTimestamp(Channel channel) {\n-        channel.removeAttribute(KEY_WRITE_TIMESTAMP);\n-    }\n-\n-    private boolean isHeartbeatRequest(Object message) {\n-        return message instanceof Request && ((Request) message).isHeartbeat();\n-    }\n-\n-    private boolean isHeartbeatResponse(Object message) {\n-        return message instanceof Response && ((Response) message).isHeartbeat();\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.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannelHandlerDelegate;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+public class HeartbeatHandler extends AbstractChannelHandlerDelegate {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(HeartbeatHandler.class);\r\n+\r\n+    public static final String KEY_READ_TIMESTAMP = \"READ_TIMESTAMP\";\r\n+\r\n+    public static final String KEY_WRITE_TIMESTAMP = \"WRITE_TIMESTAMP\";\r\n+\r\n+    public HeartbeatHandler(ChannelHandler handler) {\r\n+        super(handler);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        setReadTimestamp(channel);\r\n+        setWriteTimestamp(channel);\r\n+        handler.connected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        clearReadTimestamp(channel);\r\n+        clearWriteTimestamp(channel);\r\n+        handler.disconnected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void sent(Channel channel, Object message) throws RemotingException {\r\n+        setWriteTimestamp(channel);\r\n+        handler.sent(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        setReadTimestamp(channel);\r\n+        if (isHeartbeatRequest(message)) {\r\n+            Request req = (Request) message;\r\n+            if (req.isTwoWay()) {\r\n+                Response res = new Response(req.getId(), req.getVersion());\r\n+                res.setEvent(HEARTBEAT_EVENT);\r\n+                channel.send(res);\r\n+                if (logger.isInfoEnabled()) {\r\n+                    int heartbeat = channel.getUrl().getParameter(Constants.HEARTBEAT_KEY, 0);\r\n+                    if (logger.isDebugEnabled()) {\r\n+                        logger.debug(\"Received heartbeat from remote channel \" + channel.getRemoteAddress()\r\n+                                + \", cause: The channel has no data-transmission exceeds a heartbeat period\"\r\n+                                + (heartbeat > 0 ? \": \" + heartbeat + \"ms\" : \"\"));\r\n+                    }\r\n+                }\r\n+            }\r\n+            return;\r\n+        }\r\n+        if (isHeartbeatResponse(message)) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Receive heartbeat response in thread \" + Thread.currentThread().getName());\r\n+            }\r\n+            return;\r\n+        }\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    private void setReadTimestamp(Channel channel) {\r\n+        channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());\r\n+    }\r\n+\r\n+    private void setWriteTimestamp(Channel channel) {\r\n+        channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());\r\n+    }\r\n+\r\n+    private void clearReadTimestamp(Channel channel) {\r\n+        channel.removeAttribute(KEY_READ_TIMESTAMP);\r\n+    }\r\n+\r\n+    private void clearWriteTimestamp(Channel channel) {\r\n+        channel.removeAttribute(KEY_WRITE_TIMESTAMP);\r\n+    }\r\n+\r\n+    private boolean isHeartbeatRequest(Object message) {\r\n+        return message instanceof Request && ((Request) message).isHeartbeat();\r\n+    }\r\n+\r\n+    private boolean isHeartbeatResponse(Object message) {\r\n+        return message instanceof Response && ((Response) message).isHeartbeat();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,64 +1,64 @@\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.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.exchange.Request;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-/**\n- * HeartbeatTimerTask\n- */\n-public class HeartbeatTimerTask extends AbstractTimerTask {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(HeartbeatTimerTask.class);\n-\n-    private final int heartbeat;\n-\n-    HeartbeatTimerTask(ChannelProvider channelProvider, Long heartbeatTick, int heartbeat) {\n-        super(channelProvider, heartbeatTick);\n-        this.heartbeat = heartbeat;\n-    }\n-\n-    @Override\n-    protected void doTask(Channel channel) {\n-        try {\n-            Long lastRead = lastRead(channel);\n-            Long lastWrite = lastWrite(channel);\n-            if ((lastRead != null && now() - lastRead > heartbeat)\n-                    || (lastWrite != null && now() - lastWrite > heartbeat)) {\n-                Request req = new Request();\n-                req.setVersion(Version.getProtocolVersion());\n-                req.setTwoWay(true);\n-                req.setEvent(HEARTBEAT_EVENT);\n-                channel.send(req);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"Send heartbeat to remote channel \" + channel.getRemoteAddress()\n-                            + \", cause: The channel has no data-transmission exceeds a heartbeat period: \"\n-                            + heartbeat + \"ms\");\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"Exception when heartbeat to remote channel \" + channel.getRemoteAddress(), t);\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.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * HeartbeatTimerTask\r\n+ */\r\n+public class HeartbeatTimerTask extends AbstractTimerTask {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(HeartbeatTimerTask.class);\r\n+\r\n+    private final int heartbeat;\r\n+\r\n+    HeartbeatTimerTask(ChannelProvider channelProvider, Long heartbeatTick, int heartbeat) {\r\n+        super(channelProvider, heartbeatTick);\r\n+        this.heartbeat = heartbeat;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doTask(Channel channel) {\r\n+        try {\r\n+            Long lastRead = lastRead(channel);\r\n+            Long lastWrite = lastWrite(channel);\r\n+            if ((lastRead != null && now() - lastRead > heartbeat)\r\n+                    || (lastWrite != null && now() - lastWrite > heartbeat)) {\r\n+                Request req = new Request();\r\n+                req.setVersion(Version.getProtocolVersion());\r\n+                req.setTwoWay(true);\r\n+                req.setEvent(HEARTBEAT_EVENT);\r\n+                channel.send(req);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"Send heartbeat to remote channel \" + channel.getRemoteAddress()\r\n+                            + \", cause: The channel has no data-transmission exceeds a heartbeat period: \"\r\n+                            + heartbeat + \"ms\");\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Exception when heartbeat to remote channel \" + channel.getRemoteAddress(), t);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java", "source2": "org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.telnet.support.command;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Level;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.nio.ByteBuffer;\n-import java.nio.channels.FileChannel;\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-\n-/**\n- * LogTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\n-public class LogTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.log\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        long size = 0;\n-        File file = LoggerFactory.getFile();\n-        StringBuilder buf = new StringBuilder();\n-        if (message == null || message.trim().length() == 0) {\n-            buf.append(\"EXAMPLE: log error / log 100\");\n-        } else {\n-            String[] str = message.split(\" \");\n-            if (!StringUtils.isInteger(str[0])) {\n-                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\n-            } else {\n-                int showLogLength = Integer.parseInt(str[0]);\n-\n-                if (file != null && file.exists()) {\n-                    try {\n-                        try (FileInputStream fis = new FileInputStream(file)) {\n-                            try (FileChannel filechannel = fis.getChannel()) {\n-                                size = filechannel.size();\n-                                ByteBuffer bb;\n-                                if (size <= showLogLength) {\n-                                    bb = ByteBuffer.allocate((int) size);\n-                                    filechannel.read(bb, 0);\n-                                } else {\n-                                    int pos = (int) (size - showLogLength);\n-                                    bb = ByteBuffer.allocate(showLogLength);\n-                                    filechannel.read(bb, pos);\n-                                }\n-                                bb.flip();\n-                                String content = new String(bb.array()).replace(\"<\", \"&lt;\")\n-                                        .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\n-                                buf.append(\"\\r\\ncontent:\" + content);\n-\n-                                buf.append(\"\\r\\nmodified:\" + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n-                                        .format(new Date(file.lastModified()))));\n-                                buf.append(\"\\r\\nsize:\" + size + \"\\r\\n\");\n-                            }\n-                        }\n-                    } catch (Exception e) {\n-                        buf.append(e.getMessage());\n-                    }\n-                } else {\n-                    size = 0;\n-                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\n-                }\n-            }\n-        }\n-        buf.append(\"\\r\\nCURRENT LOG LEVEL:\" + LoggerFactory.getLevel())\n-                .append(\"\\r\\nCURRENT LOG APPENDER:\" + (file == null ? \"console\" : file.getAbsolutePath()));\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.telnet.support.command;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Level;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.nio.ByteBuffer;\r\n+import java.nio.channels.FileChannel;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+\r\n+/**\r\n+ * LogTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\r\n+public class LogTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.log\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        long size = 0;\r\n+        File file = LoggerFactory.getFile();\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (message == null || message.trim().length() == 0) {\r\n+            buf.append(\"EXAMPLE: log error / log 100\");\r\n+        } else {\r\n+            String[] str = message.split(\" \");\r\n+            if (!StringUtils.isInteger(str[0])) {\r\n+                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\r\n+            } else {\r\n+                int showLogLength = Integer.parseInt(str[0]);\r\n+\r\n+                if (file != null && file.exists()) {\r\n+                    try {\r\n+                        try (FileInputStream fis = new FileInputStream(file)) {\r\n+                            try (FileChannel filechannel = fis.getChannel()) {\r\n+                                size = filechannel.size();\r\n+                                ByteBuffer bb;\r\n+                                if (size <= showLogLength) {\r\n+                                    bb = ByteBuffer.allocate((int) size);\r\n+                                    filechannel.read(bb, 0);\r\n+                                } else {\r\n+                                    int pos = (int) (size - showLogLength);\r\n+                                    bb = ByteBuffer.allocate(showLogLength);\r\n+                                    filechannel.read(bb, pos);\r\n+                                }\r\n+                                bb.flip();\r\n+                                String content = new String(bb.array()).replace(\"<\", \"&lt;\")\r\n+                                        .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\r\n+                                buf.append(\"\\r\\ncontent:\" + content);\r\n+\r\n+                                buf.append(\"\\r\\nmodified:\" + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\r\n+                                        .format(new Date(file.lastModified()))));\r\n+                                buf.append(\"\\r\\nsize:\" + size + \"\\r\\n\");\r\n+                            }\r\n+                        }\r\n+                    } catch (Exception e) {\r\n+                        buf.append(e.getMessage());\r\n+                    }\r\n+                } else {\r\n+                    size = 0;\r\n+                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\r\n+                }\r\n+            }\r\n+        }\r\n+        buf.append(\"\\r\\nCURRENT LOG LEVEL:\" + LoggerFactory.getLevel())\r\n+                .append(\"\\r\\nCURRENT LOG APPENDER:\" + (file == null ? \"console\" : file.getAbsolutePath()));\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractClient.java", "source2": "org/apache/dubbo/remoting/transport/AbstractClient.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,343 +1,343 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\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.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Client;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-\n-import java.net.InetSocketAddress;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CLIENT_THREADPOOL;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-\n-/**\n- * AbstractClient\n- */\n-public abstract class AbstractClient extends AbstractEndpoint implements Client {\n-\n-    protected static final String CLIENT_THREAD_POOL_NAME = \"DubboClientHandler\";\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractClient.class);\n-    private final Lock connectLock = new ReentrantLock();\n-    private final boolean needReconnect;\n-    //issue-7054:Consumer's executor is sharing globally.\n-    protected volatile ExecutorService executor;\n-    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-\n-    public AbstractClient(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, handler);\n-\n-        needReconnect = url.getParameter(Constants.SEND_RECONNECT_KEY, false);\n-\n-        initExecutor(url);\n-\n-        try {\n-            doOpen();\n-        } catch (Throwable t) {\n-            close();\n-            throw new RemotingException(url.toInetSocketAddress(), null,\n-                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-\n-        try {\n-            // connect.\n-            connect();\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress() + \" connect to the server \" + getRemoteAddress());\n-            }\n-        } catch (RemotingException t) {\n-            if (url.getParameter(Constants.CHECK_KEY, true)) {\n-                close();\n-                throw t;\n-            } else {\n-                logger.warn(\"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                        + \" connect to the server \" + getRemoteAddress() + \" (check == false, ignore and retry later!), cause: \" + t.getMessage(), t);\n-            }\n-        } catch (Throwable t) {\n-            close();\n-            throw new RemotingException(url.toInetSocketAddress(), null,\n-                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private void initExecutor(URL url) {\n-        //issue-7054:Consumer's executor is sharing globally, thread name not require provider ip.\n-        url = url.addParameter(THREAD_NAME_KEY, CLIENT_THREAD_POOL_NAME);\n-        url = url.addParameterIfAbsent(THREADPOOL_KEY, DEFAULT_CLIENT_THREADPOOL);\n-        executor = executorRepository.createExecutorIfAbsent(url);\n-    }\n-\n-    protected static ChannelHandler wrapChannelHandler(URL url, ChannelHandler handler) {\n-        return ChannelHandlers.wrap(handler, url);\n-    }\n-\n-    public InetSocketAddress getConnectAddress() {\n-        return new InetSocketAddress(NetUtils.filterLocalHost(getUrl().getHost()), getUrl().getPort());\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return getUrl().toInetSocketAddress();\n-        }\n-        return channel.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\n-        }\n-        return channel.getLocalAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return false;\n-        }\n-        return channel.isConnected();\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return null;\n-        }\n-        return channel.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return;\n-        }\n-        channel.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return;\n-        }\n-        channel.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return false;\n-        }\n-        return channel.hasAttribute(key);\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        if (needReconnect && !isConnected()) {\n-            connect();\n-        }\n-        Channel channel = getChannel();\n-        //TODO Can the value returned by getChannel() be null? need improvement.\n-        if (channel == null || !channel.isConnected()) {\n-            throw new RemotingException(this, \"message can not send, because channel is closed . url:\" + getUrl());\n-        }\n-        channel.send(message, sent);\n-    }\n-\n-    protected void connect() throws RemotingException {\n-        connectLock.lock();\n-\n-        try {\n-            if (isConnected()) {\n-                return;\n-            }\n-\n-            if (isClosed() || isClosing()) {\n-                logger.warn(\"No need to connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: client status is closed or closing.\");\n-                return;\n-            }\n-\n-            doConnect();\n-\n-            if (!isConnected()) {\n-                throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                                + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                                + \", cause: Connect wait timeout: \" + getConnectTimeout() + \"ms.\");\n-\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Successed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                                    + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                                    + \", channel is \" + this.getChannel());\n-                }\n-            }\n-\n-        } catch (RemotingException e) {\n-            throw e;\n-\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                            + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                            + \", cause: \" + e.getMessage(), e);\n-\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    public void disconnect() {\n-        connectLock.lock();\n-        try {\n-            try {\n-                Channel channel = getChannel();\n-                if (channel != null) {\n-                    channel.close();\n-                }\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-            try {\n-                doDisConnect();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    @Override\n-    public void reconnect() throws RemotingException {\n-        if (!isConnected()) {\n-            connectLock.lock();\n-            try {\n-                if (!isConnected()) {\n-                    disconnect();\n-                    connect();\n-                }\n-            } finally {\n-                connectLock.unlock();\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (isClosed()) {\n-            logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\n-            return;\n-        }\n-\n-        connectLock.lock();\n-        try {\n-            if (isClosed()) {\n-                logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\n-                return;\n-            }\n-\n-            try {\n-                super.close();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-            try {\n-                disconnect();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-            try {\n-                doClose();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        close();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getClass().getName() + \" [\" + getLocalAddress() + \" -> \" + getRemoteAddress() + \"]\";\n-    }\n-\n-    /**\n-     * Open client.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doOpen() throws Throwable;\n-\n-    /**\n-     * Close client.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doClose() throws Throwable;\n-\n-    /**\n-     * Connect to server.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doConnect() throws Throwable;\n-\n-    /**\n-     * disConnect to server.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doDisConnect() throws Throwable;\n-\n-    /**\n-     * Get the connected channel.\n-     *\n-     * @return channel\n-     */\n-    protected abstract Channel getChannel();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\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.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Client;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CLIENT_THREADPOOL;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+\r\n+/**\r\n+ * AbstractClient\r\n+ */\r\n+public abstract class AbstractClient extends AbstractEndpoint implements Client {\r\n+\r\n+    protected static final String CLIENT_THREAD_POOL_NAME = \"DubboClientHandler\";\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractClient.class);\r\n+    private final Lock connectLock = new ReentrantLock();\r\n+    private final boolean needReconnect;\r\n+    //issue-7054:Consumer's executor is sharing globally.\r\n+    protected volatile ExecutorService executor;\r\n+    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+\r\n+    public AbstractClient(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, handler);\r\n+\r\n+        needReconnect = url.getParameter(Constants.SEND_RECONNECT_KEY, false);\r\n+\r\n+        initExecutor(url);\r\n+\r\n+        try {\r\n+            doOpen();\r\n+        } catch (Throwable t) {\r\n+            close();\r\n+            throw new RemotingException(url.toInetSocketAddress(), null,\r\n+                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+\r\n+        try {\r\n+            // connect.\r\n+            connect();\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress() + \" connect to the server \" + getRemoteAddress());\r\n+            }\r\n+        } catch (RemotingException t) {\r\n+            if (url.getParameter(Constants.CHECK_KEY, true)) {\r\n+                close();\r\n+                throw t;\r\n+            } else {\r\n+                logger.warn(\"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                        + \" connect to the server \" + getRemoteAddress() + \" (check == false, ignore and retry later!), cause: \" + t.getMessage(), t);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            close();\r\n+            throw new RemotingException(url.toInetSocketAddress(), null,\r\n+                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private void initExecutor(URL url) {\r\n+        //issue-7054:Consumer's executor is sharing globally, thread name not require provider ip.\r\n+        url = url.addParameter(THREAD_NAME_KEY, CLIENT_THREAD_POOL_NAME);\r\n+        url = url.addParameterIfAbsent(THREADPOOL_KEY, DEFAULT_CLIENT_THREADPOOL);\r\n+        executor = executorRepository.createExecutorIfAbsent(url);\r\n+    }\r\n+\r\n+    protected static ChannelHandler wrapChannelHandler(URL url, ChannelHandler handler) {\r\n+        return ChannelHandlers.wrap(handler, url);\r\n+    }\r\n+\r\n+    public InetSocketAddress getConnectAddress() {\r\n+        return new InetSocketAddress(NetUtils.filterLocalHost(getUrl().getHost()), getUrl().getPort());\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return getUrl().toInetSocketAddress();\r\n+        }\r\n+        return channel.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\r\n+        }\r\n+        return channel.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return false;\r\n+        }\r\n+        return channel.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return null;\r\n+        }\r\n+        return channel.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return;\r\n+        }\r\n+        channel.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return;\r\n+        }\r\n+        channel.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return false;\r\n+        }\r\n+        return channel.hasAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        if (needReconnect && !isConnected()) {\r\n+            connect();\r\n+        }\r\n+        Channel channel = getChannel();\r\n+        //TODO Can the value returned by getChannel() be null? need improvement.\r\n+        if (channel == null || !channel.isConnected()) {\r\n+            throw new RemotingException(this, \"message can not send, because channel is closed . url:\" + getUrl());\r\n+        }\r\n+        channel.send(message, sent);\r\n+    }\r\n+\r\n+    protected void connect() throws RemotingException {\r\n+        connectLock.lock();\r\n+\r\n+        try {\r\n+            if (isConnected()) {\r\n+                return;\r\n+            }\r\n+\r\n+            if (isClosed() || isClosing()) {\r\n+                logger.warn(\"No need to connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: client status is closed or closing.\");\r\n+                return;\r\n+            }\r\n+\r\n+            doConnect();\r\n+\r\n+            if (!isConnected()) {\r\n+                throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                                + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                                + \", cause: Connect wait timeout: \" + getConnectTimeout() + \"ms.\");\r\n+\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Successed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                                    + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                                    + \", channel is \" + this.getChannel());\r\n+                }\r\n+            }\r\n+\r\n+        } catch (RemotingException e) {\r\n+            throw e;\r\n+\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                            + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                            + \", cause: \" + e.getMessage(), e);\r\n+\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    public void disconnect() {\r\n+        connectLock.lock();\r\n+        try {\r\n+            try {\r\n+                Channel channel = getChannel();\r\n+                if (channel != null) {\r\n+                    channel.close();\r\n+                }\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+            try {\r\n+                doDisConnect();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reconnect() throws RemotingException {\r\n+        if (!isConnected()) {\r\n+            connectLock.lock();\r\n+            try {\r\n+                if (!isConnected()) {\r\n+                    disconnect();\r\n+                    connect();\r\n+                }\r\n+            } finally {\r\n+                connectLock.unlock();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (isClosed()) {\r\n+            logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\r\n+            return;\r\n+        }\r\n+\r\n+        connectLock.lock();\r\n+        try {\r\n+            if (isClosed()) {\r\n+                logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\r\n+                return;\r\n+            }\r\n+\r\n+            try {\r\n+                super.close();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                disconnect();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                doClose();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getClass().getName() + \" [\" + getLocalAddress() + \" -> \" + getRemoteAddress() + \"]\";\r\n+    }\r\n+\r\n+    /**\r\n+     * Open client.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doOpen() throws Throwable;\r\n+\r\n+    /**\r\n+     * Close client.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doClose() throws Throwable;\r\n+\r\n+    /**\r\n+     * Connect to server.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doConnect() throws Throwable;\r\n+\r\n+    /**\r\n+     * disConnect to server.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doDisConnect() throws Throwable;\r\n+\r\n+    /**\r\n+     * Get the connected channel.\r\n+     *\r\n+     * @return channel\r\n+     */\r\n+    protected abstract Channel getChannel();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractCodec.java", "source2": "org/apache/dubbo/remoting/transport/AbstractCodec.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\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.serialize.Serialization;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-import java.io.IOException;\n-import java.net.InetSocketAddress;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-\n-/**\n- * AbstractCodec\n- */\n-public abstract class AbstractCodec implements Codec2 {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractCodec.class);\n-\n-    private static final String CLIENT_SIDE = \"client\";\n-\n-    private static final String SERVER_SIDE = \"server\";\n-\n-    protected static void checkPayload(Channel channel, long size) throws IOException {\n-        int payload = getPayload(channel);\n-        boolean overPayload = isOverPayload(payload, size);\n-        if (overPayload) {\n-            ExceedPayloadLimitException e = new ExceedPayloadLimitException(\n-                    \"Data length too large: \" + size + \", max payload: \" + payload + \", channel: \" + channel);\n-            logger.error(e);\n-            throw e;\n-        }\n-    }\n-\n-    protected static int getPayload(Channel channel) {\n-        int payload = Constants.DEFAULT_PAYLOAD;\n-        if (channel != null && channel.getUrl() != null) {\n-            payload = channel.getUrl().getParameter(Constants.PAYLOAD_KEY, Constants.DEFAULT_PAYLOAD);\n-        }\n-        return payload;\n-    }\n-\n-    protected static boolean isOverPayload(int payload, long size) {\n-        if (payload > 0 && size > payload) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    protected Serialization getSerialization(Channel channel, Request req) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected Serialization getSerialization(Channel channel, Response res) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected Serialization getSerialization(Channel channel) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected boolean isClientSide(Channel channel) {\n-        String side = (String) channel.getAttribute(SIDE_KEY);\n-        if (CLIENT_SIDE.equals(side)) {\n-            return true;\n-        } else if (SERVER_SIDE.equals(side)) {\n-            return false;\n-        } else {\n-            InetSocketAddress address = channel.getRemoteAddress();\n-            URL url = channel.getUrl();\n-            boolean isClient = url.getPort() == address.getPort()\n-                && NetUtils.filterLocalHost(url.getIp()).equals(\n-                NetUtils.filterLocalHost(address.getAddress()\n-                    .getHostAddress()));\n-            channel.setAttribute(SIDE_KEY, isClient ? CLIENT_SIDE\n-                : SERVER_SIDE);\n-            return isClient;\n-        }\n-    }\n-\n-    protected boolean isServerSide(Channel channel) {\n-        return !isClientSide(channel);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\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.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+import java.io.IOException;\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+\r\n+/**\r\n+ * AbstractCodec\r\n+ */\r\n+public abstract class AbstractCodec implements Codec2 {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractCodec.class);\r\n+\r\n+    private static final String CLIENT_SIDE = \"client\";\r\n+\r\n+    private static final String SERVER_SIDE = \"server\";\r\n+\r\n+    protected static void checkPayload(Channel channel, long size) throws IOException {\r\n+        int payload = getPayload(channel);\r\n+        boolean overPayload = isOverPayload(payload, size);\r\n+        if (overPayload) {\r\n+            ExceedPayloadLimitException e = new ExceedPayloadLimitException(\r\n+                    \"Data length too large: \" + size + \", max payload: \" + payload + \", channel: \" + channel);\r\n+            logger.error(e);\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    protected static int getPayload(Channel channel) {\r\n+        int payload = Constants.DEFAULT_PAYLOAD;\r\n+        if (channel != null && channel.getUrl() != null) {\r\n+            payload = channel.getUrl().getParameter(Constants.PAYLOAD_KEY, Constants.DEFAULT_PAYLOAD);\r\n+        }\r\n+        return payload;\r\n+    }\r\n+\r\n+    protected static boolean isOverPayload(int payload, long size) {\r\n+        if (payload > 0 && size > payload) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel, Request req) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel, Response res) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected boolean isClientSide(Channel channel) {\r\n+        String side = (String) channel.getAttribute(SIDE_KEY);\r\n+        if (CLIENT_SIDE.equals(side)) {\r\n+            return true;\r\n+        } else if (SERVER_SIDE.equals(side)) {\r\n+            return false;\r\n+        } else {\r\n+            InetSocketAddress address = channel.getRemoteAddress();\r\n+            URL url = channel.getUrl();\r\n+            boolean isClient = url.getPort() == address.getPort()\r\n+                && NetUtils.filterLocalHost(url.getIp()).equals(\r\n+                NetUtils.filterLocalHost(address.getAddress()\r\n+                    .getHostAddress()));\r\n+            channel.setAttribute(SIDE_KEY, isClient ? CLIENT_SIDE\r\n+                : SERVER_SIDE);\r\n+            return isClient;\r\n+        }\r\n+    }\r\n+\r\n+    protected boolean isServerSide(Channel channel) {\r\n+        return !isClientSide(channel);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractEndpoint.java", "source2": "org/apache/dubbo/remoting/transport/AbstractEndpoint.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,115 +1,115 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.Resetable;\n-import org.apache.dubbo.common.URL;\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.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.transport.codec.CodecAdapter;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * AbstractEndpoint\n- */\n-public abstract class AbstractEndpoint extends AbstractPeer implements Resetable {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractEndpoint.class);\n-\n-    private Codec2 codec;\n-\n-    private int timeout;\n-\n-    private int connectTimeout;\n-\n-    public AbstractEndpoint(URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        this.codec = getChannelCodec(url);\n-        this.timeout = url.getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        this.connectTimeout = url.getPositiveParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT);\n-    }\n-\n-    protected static Codec2 getChannelCodec(URL url) {\n-        String codecName = url.getProtocol(); // codec extension name must stay the same with protocol name\n-        if (ExtensionLoader.getExtensionLoader(Codec2.class).hasExtension(codecName)) {\n-            return ExtensionLoader.getExtensionLoader(Codec2.class).getExtension(codecName);\n-        } else {\n-            return new CodecAdapter(ExtensionLoader.getExtensionLoader(Codec.class)\n-                    .getExtension(codecName));\n-        }\n-    }\n-\n-    @Override\n-    public void reset(URL url) {\n-        if (isClosed()) {\n-            throw new IllegalStateException(\"Failed to reset parameters \"\n-                    + url + \", cause: Channel closed. channel: \" + getLocalAddress());\n-        }\n-        try {\n-            if (url.hasParameter(TIMEOUT_KEY)) {\n-                int t = url.getParameter(TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.timeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(Constants.CONNECT_TIMEOUT_KEY)) {\n-                int t = url.getParameter(Constants.CONNECT_TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.connectTimeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(Constants.CODEC_KEY)) {\n-                this.codec = getChannelCodec(url);\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-    }\n-\n-    @Deprecated\n-    public void reset(org.apache.dubbo.common.Parameters parameters) {\n-        reset(getUrl().addParameters(parameters.getParameters()));\n-    }\n-\n-    protected Codec2 getCodec() {\n-        return codec;\n-    }\n-\n-    protected int getTimeout() {\n-        return timeout;\n-    }\n-\n-    protected int getConnectTimeout() {\n-        return connectTimeout;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.Resetable;\r\n+import org.apache.dubbo.common.URL;\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.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.transport.codec.CodecAdapter;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * AbstractEndpoint\r\n+ */\r\n+public abstract class AbstractEndpoint extends AbstractPeer implements Resetable {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractEndpoint.class);\r\n+\r\n+    private Codec2 codec;\r\n+\r\n+    private int timeout;\r\n+\r\n+    private int connectTimeout;\r\n+\r\n+    public AbstractEndpoint(URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        this.codec = getChannelCodec(url);\r\n+        this.timeout = url.getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        this.connectTimeout = url.getPositiveParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT);\r\n+    }\r\n+\r\n+    protected static Codec2 getChannelCodec(URL url) {\r\n+        String codecName = url.getProtocol(); // codec extension name must stay the same with protocol name\r\n+        if (ExtensionLoader.getExtensionLoader(Codec2.class).hasExtension(codecName)) {\r\n+            return ExtensionLoader.getExtensionLoader(Codec2.class).getExtension(codecName);\r\n+        } else {\r\n+            return new CodecAdapter(ExtensionLoader.getExtensionLoader(Codec.class)\r\n+                    .getExtension(codecName));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        if (isClosed()) {\r\n+            throw new IllegalStateException(\"Failed to reset parameters \"\r\n+                    + url + \", cause: Channel closed. channel: \" + getLocalAddress());\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.timeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(Constants.CONNECT_TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(Constants.CONNECT_TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.connectTimeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(Constants.CODEC_KEY)) {\r\n+                this.codec = getChannelCodec(url);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void reset(org.apache.dubbo.common.Parameters parameters) {\r\n+        reset(getUrl().addParameters(parameters.getParameters()));\r\n+    }\r\n+\r\n+    protected Codec2 getCodec() {\r\n+        return codec;\r\n+    }\r\n+\r\n+    protected int getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    protected int getConnectTimeout() {\r\n+        return connectTimeout;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractServer.java", "source2": "org/apache/dubbo/remoting/transport/AbstractServer.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,192 +1,192 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\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.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-import java.util.concurrent.ExecutorService;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_ACCEPTS;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IDLE_TIMEOUT;\n-import static org.apache.dubbo.remoting.Constants.IDLE_TIMEOUT_KEY;\n-\n-/**\n- * AbstractServer\n- */\n-public abstract class AbstractServer extends AbstractEndpoint implements RemotingServer {\n-\n-    protected static final String SERVER_THREAD_POOL_NAME = \"DubboServerHandler\";\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractServer.class);\n-    ExecutorService executor;\n-    private InetSocketAddress localAddress;\n-    private InetSocketAddress bindAddress;\n-    private int accepts;\n-    private int idleTimeout;\n-\n-    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-\n-    public AbstractServer(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, handler);\n-        localAddress = getUrl().toInetSocketAddress();\n-\n-        String bindIp = getUrl().getParameter(Constants.BIND_IP_KEY, getUrl().getHost());\n-        int bindPort = getUrl().getParameter(Constants.BIND_PORT_KEY, getUrl().getPort());\n-        if (url.getParameter(ANYHOST_KEY, false) || NetUtils.isInvalidLocalHost(bindIp)) {\n-            bindIp = ANYHOST_VALUE;\n-        }\n-        bindAddress = new InetSocketAddress(bindIp, bindPort);\n-        this.accepts = url.getParameter(ACCEPTS_KEY, DEFAULT_ACCEPTS);\n-        this.idleTimeout = url.getParameter(IDLE_TIMEOUT_KEY, DEFAULT_IDLE_TIMEOUT);\n-        try {\n-            doOpen();\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Start \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\n-            }\n-        } catch (Throwable t) {\n-            throw new RemotingException(url.toInetSocketAddress(), null, \"Failed to bind \" + getClass().getSimpleName()\n-                    + \" on \" + getLocalAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-        executor = executorRepository.createExecutorIfAbsent(url);\n-    }\n-\n-    protected abstract void doOpen() throws Throwable;\n-\n-    protected abstract void doClose() throws Throwable;\n-\n-    @Override\n-    public void reset(URL url) {\n-        if (url == null) {\n-            return;\n-        }\n-        try {\n-            if (url.hasParameter(ACCEPTS_KEY)) {\n-                int a = url.getParameter(ACCEPTS_KEY, 0);\n-                if (a > 0) {\n-                    this.accepts = a;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(IDLE_TIMEOUT_KEY)) {\n-                int t = url.getParameter(IDLE_TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.idleTimeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        executorRepository.updateThreadpool(url, executor);\n-        super.setUrl(getUrl().addParameters(url.getParameters()));\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        Collection<Channel> channels = getChannels();\n-        for (Channel channel : channels) {\n-            if (channel.isConnected()) {\n-                channel.send(message, sent);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Close \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\n-        }\n-        ExecutorUtil.shutdownNow(executor, 100);\n-        try {\n-            super.close();\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            doClose();\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        ExecutorUtil.gracefulShutdown(executor, timeout);\n-        close();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return localAddress;\n-    }\n-\n-    public InetSocketAddress getBindAddress() {\n-        return bindAddress;\n-    }\n-\n-    public int getAccepts() {\n-        return accepts;\n-    }\n-\n-    public int getIdleTimeout() {\n-        return idleTimeout;\n-    }\n-\n-    @Override\n-    public void connected(Channel ch) throws RemotingException {\n-        // If the server has entered the shutdown process, reject any new connection\n-        if (this.isClosing() || this.isClosed()) {\n-            logger.warn(\"Close new channel \" + ch + \", cause: server is closing or has been closed. For example, receive a new connect request while in shutdown process.\");\n-            ch.close();\n-            return;\n-        }\n-\n-        if (accepts > 0 && getChannels().size() > accepts) {\n-            logger.error(\"Close channel \" + ch + \", cause: The server \" + ch.getLocalAddress() + \" connections greater than max config \" + accepts);\n-            ch.close();\n-            return;\n-        }\n-        super.connected(ch);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel ch) throws RemotingException {\n-        Collection<Channel> channels = getChannels();\n-        if (channels.isEmpty()) {\n-            logger.warn(\"All clients has disconnected from \" + ch.getLocalAddress() + \". You can graceful shutdown now.\");\n-        }\n-        super.disconnected(ch);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\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.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_ACCEPTS;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IDLE_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.Constants.IDLE_TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * AbstractServer\r\n+ */\r\n+public abstract class AbstractServer extends AbstractEndpoint implements RemotingServer {\r\n+\r\n+    protected static final String SERVER_THREAD_POOL_NAME = \"DubboServerHandler\";\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractServer.class);\r\n+    ExecutorService executor;\r\n+    private InetSocketAddress localAddress;\r\n+    private InetSocketAddress bindAddress;\r\n+    private int accepts;\r\n+    private int idleTimeout;\r\n+\r\n+    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+\r\n+    public AbstractServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, handler);\r\n+        localAddress = getUrl().toInetSocketAddress();\r\n+\r\n+        String bindIp = getUrl().getParameter(Constants.BIND_IP_KEY, getUrl().getHost());\r\n+        int bindPort = getUrl().getParameter(Constants.BIND_PORT_KEY, getUrl().getPort());\r\n+        if (url.getParameter(ANYHOST_KEY, false) || NetUtils.isInvalidLocalHost(bindIp)) {\r\n+            bindIp = ANYHOST_VALUE;\r\n+        }\r\n+        bindAddress = new InetSocketAddress(bindIp, bindPort);\r\n+        this.accepts = url.getParameter(ACCEPTS_KEY, DEFAULT_ACCEPTS);\r\n+        this.idleTimeout = url.getParameter(IDLE_TIMEOUT_KEY, DEFAULT_IDLE_TIMEOUT);\r\n+        try {\r\n+            doOpen();\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Start \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            throw new RemotingException(url.toInetSocketAddress(), null, \"Failed to bind \" + getClass().getSimpleName()\r\n+                    + \" on \" + getLocalAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+        executor = executorRepository.createExecutorIfAbsent(url);\r\n+    }\r\n+\r\n+    protected abstract void doOpen() throws Throwable;\r\n+\r\n+    protected abstract void doClose() throws Throwable;\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        if (url == null) {\r\n+            return;\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(ACCEPTS_KEY)) {\r\n+                int a = url.getParameter(ACCEPTS_KEY, 0);\r\n+                if (a > 0) {\r\n+                    this.accepts = a;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(IDLE_TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(IDLE_TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.idleTimeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        executorRepository.updateThreadpool(url, executor);\r\n+        super.setUrl(getUrl().addParameters(url.getParameters()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        Collection<Channel> channels = getChannels();\r\n+        for (Channel channel : channels) {\r\n+            if (channel.isConnected()) {\r\n+                channel.send(message, sent);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Close \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\r\n+        }\r\n+        ExecutorUtil.shutdownNow(executor, 100);\r\n+        try {\r\n+            super.close();\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            doClose();\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        ExecutorUtil.gracefulShutdown(executor, timeout);\r\n+        close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return localAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getBindAddress() {\r\n+        return bindAddress;\r\n+    }\r\n+\r\n+    public int getAccepts() {\r\n+        return accepts;\r\n+    }\r\n+\r\n+    public int getIdleTimeout() {\r\n+        return idleTimeout;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel ch) throws RemotingException {\r\n+        // If the server has entered the shutdown process, reject any new connection\r\n+        if (this.isClosing() || this.isClosed()) {\r\n+            logger.warn(\"Close new channel \" + ch + \", cause: server is closing or has been closed. For example, receive a new connect request while in shutdown process.\");\r\n+            ch.close();\r\n+            return;\r\n+        }\r\n+\r\n+        if (accepts > 0 && getChannels().size() > accepts) {\r\n+            logger.error(\"Close channel \" + ch + \", cause: The server \" + ch.getLocalAddress() + \" connections greater than max config \" + accepts);\r\n+            ch.close();\r\n+            return;\r\n+        }\r\n+        super.connected(ch);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel ch) throws RemotingException {\r\n+        Collection<Channel> channels = getChannels();\r\n+        if (channels.isEmpty()) {\r\n+            logger.warn(\"All clients has disconnected from \" + ch.getLocalAddress() + \". You can graceful shutdown now.\");\r\n+        }\r\n+        super.disconnected(ch);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/CodecSupport.java", "source2": "org/apache/dubbo/remoting/transport/CodecSupport.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,181 +1,181 @@\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.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\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.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.io.ByteArrayOutputStream;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-public class CodecSupport {\n-    private static final Logger logger = LoggerFactory.getLogger(CodecSupport.class);\n-    private static Map<Byte, Serialization> ID_SERIALIZATION_MAP = new HashMap<Byte, Serialization>();\n-    private static Map<Byte, String> ID_SERIALIZATIONNAME_MAP = new HashMap<Byte, String>();\n-    private static Map<String, Byte> SERIALIZATIONNAME_ID_MAP = new HashMap<String, Byte>();\n-    // Cache null object serialize results, for heartbeat request/response serialize use.\n-    private static Map<Byte, byte[]> ID_NULLBYTES_MAP = new HashMap<Byte, byte[]>();\n-\n-    private static final ThreadLocal<byte[]> TL_BUFFER = ThreadLocal.withInitial(() -> new byte[1024]);\n-\n-    static {\n-        Set<String> supportedExtensions = ExtensionLoader.getExtensionLoader(Serialization.class).getSupportedExtensions();\n-        for (String name : supportedExtensions) {\n-            Serialization serialization = ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(name);\n-            byte idByte = serialization.getContentTypeId();\n-            if (ID_SERIALIZATION_MAP.containsKey(idByte)) {\n-                logger.error(\"Serialization extension \" + serialization.getClass().getName()\n-                        + \" has duplicate id to Serialization extension \"\n-                        + ID_SERIALIZATION_MAP.get(idByte).getClass().getName()\n-                        + \", ignore this Serialization extension\");\n-                continue;\n-            }\n-            ID_SERIALIZATION_MAP.put(idByte, serialization);\n-            ID_SERIALIZATIONNAME_MAP.put(idByte, name);\n-            SERIALIZATIONNAME_ID_MAP.put(name, idByte);\n-        }\n-    }\n-\n-    private CodecSupport() {\n-    }\n-\n-    public static Serialization getSerializationById(Byte id) {\n-        return ID_SERIALIZATION_MAP.get(id);\n-    }\n-\n-    public static Byte getIDByName(String name) {\n-        return SERIALIZATIONNAME_ID_MAP.get(name);\n-    }\n-\n-    public static Serialization getSerialization(URL url) {\n-        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\n-                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\n-    }\n-\n-    public static Serialization getSerialization(URL url, Byte id) throws IOException {\n-        Serialization result = getSerializationById(id);\n-        if (result == null) {\n-            throw new IOException(\"Unrecognized serialize type from consumer: \" + id);\n-        }\n-        return result;\n-    }\n-\n-    public static ObjectInput deserialize(URL url, InputStream is, byte proto) throws IOException {\n-        Serialization s = getSerialization(url, proto);\n-        return s.deserialize(url, is);\n-    }\n-\n-    /**\n-     * Get the null object serialize result byte[] of Serialization from the cache,\n-     * if not, generate it first.\n-     *\n-     * @param s Serialization Instances\n-     * @return serialize result of null object\n-     */\n-    public static byte[] getNullBytesOf(Serialization s) {\n-        return ID_NULLBYTES_MAP.computeIfAbsent(s.getContentTypeId(), k -> {\n-            //Pre-generated Null object bytes\n-            ByteArrayOutputStream baos = new ByteArrayOutputStream();\n-            byte[] nullBytes = new byte[0];\n-            try {\n-                ObjectOutput out = s.serialize(null, baos);\n-                out.writeObject(null);\n-                out.flushBuffer();\n-                nullBytes = baos.toByteArray();\n-                baos.close();\n-            } catch (Exception e) {\n-                logger.warn(\"Serialization extension \" + s.getClass().getName() + \" not support serializing null object, return an empty bytes instead.\");\n-            }\n-            return nullBytes;\n-        });\n-    }\n-\n-    /**\n-     * Read all payload to byte[]\n-     *\n-     * @param is\n-     * @return\n-     * @throws IOException\n-     */\n-    public static byte[] getPayload(InputStream is) throws IOException {\n-        ByteArrayOutputStream baos = new ByteArrayOutputStream();\n-        byte[] buffer = getBuffer(is.available());\n-        int len;\n-        while ((len = is.read(buffer)) > -1) {\n-            baos.write(buffer, 0, len);\n-        }\n-        baos.flush();\n-        return baos.toByteArray();\n-    }\n-\n-    private static byte[] getBuffer(int size) {\n-        byte[] bytes = TL_BUFFER.get();\n-        if (size <= bytes.length) {\n-            return bytes;\n-        }\n-        return new byte[size];\n-    }\n-\n-    /**\n-     * Check if payload is null object serialize result byte[] of serialization\n-     *\n-     * @param payload\n-     * @param proto\n-     * @return\n-     */\n-    public static boolean isHeartBeat(byte[] payload, byte proto) {\n-        return Arrays.equals(payload, getNullBytesOf(getSerializationById(proto)));\n-    }\n-\n-    public static void checkSerialization(String path, String version, Byte id) throws IOException {\n-        ServiceRepository repository = ApplicationModel.getServiceRepository();\n-        ProviderModel providerModel = repository.lookupExportedServiceWithoutGroup(path + \":\" + version);\n-        if (providerModel == null) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"Serialization security check is enabled but cannot work as expected because \" +\n-                        \"there's no matched provider model for path \" + path + \", version \" + version);\n-            }\n-        } else {\n-            List<URL> urls = providerModel.getServiceConfig().getExportedUrls();\n-            if (CollectionUtils.isNotEmpty(urls)) {\n-                URL url = urls.get(0);\n-                String serializationName = url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION);\n-                Byte localId = SERIALIZATIONNAME_ID_MAP.get(serializationName);\n-                if (localId != null && !localId.equals(id)) {\n-                    throw new IOException(\"Unexpected serialization id:\" + id + \" received from network, please check if the peer send the right id.\");\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+\r\n+package org.apache.dubbo.remoting.transport;\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.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.io.ByteArrayOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public class CodecSupport {\r\n+    private static final Logger logger = LoggerFactory.getLogger(CodecSupport.class);\r\n+    private static Map<Byte, Serialization> ID_SERIALIZATION_MAP = new HashMap<Byte, Serialization>();\r\n+    private static Map<Byte, String> ID_SERIALIZATIONNAME_MAP = new HashMap<Byte, String>();\r\n+    private static Map<String, Byte> SERIALIZATIONNAME_ID_MAP = new HashMap<String, Byte>();\r\n+    // Cache null object serialize results, for heartbeat request/response serialize use.\r\n+    private static Map<Byte, byte[]> ID_NULLBYTES_MAP = new HashMap<Byte, byte[]>();\r\n+\r\n+    private static final ThreadLocal<byte[]> TL_BUFFER = ThreadLocal.withInitial(() -> new byte[1024]);\r\n+\r\n+    static {\r\n+        Set<String> supportedExtensions = ExtensionLoader.getExtensionLoader(Serialization.class).getSupportedExtensions();\r\n+        for (String name : supportedExtensions) {\r\n+            Serialization serialization = ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(name);\r\n+            byte idByte = serialization.getContentTypeId();\r\n+            if (ID_SERIALIZATION_MAP.containsKey(idByte)) {\r\n+                logger.error(\"Serialization extension \" + serialization.getClass().getName()\r\n+                        + \" has duplicate id to Serialization extension \"\r\n+                        + ID_SERIALIZATION_MAP.get(idByte).getClass().getName()\r\n+                        + \", ignore this Serialization extension\");\r\n+                continue;\r\n+            }\r\n+            ID_SERIALIZATION_MAP.put(idByte, serialization);\r\n+            ID_SERIALIZATIONNAME_MAP.put(idByte, name);\r\n+            SERIALIZATIONNAME_ID_MAP.put(name, idByte);\r\n+        }\r\n+    }\r\n+\r\n+    private CodecSupport() {\r\n+    }\r\n+\r\n+    public static Serialization getSerializationById(Byte id) {\r\n+        return ID_SERIALIZATION_MAP.get(id);\r\n+    }\r\n+\r\n+    public static Byte getIDByName(String name) {\r\n+        return SERIALIZATIONNAME_ID_MAP.get(name);\r\n+    }\r\n+\r\n+    public static Serialization getSerialization(URL url) {\r\n+        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\r\n+                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\r\n+    }\r\n+\r\n+    public static Serialization getSerialization(URL url, Byte id) throws IOException {\r\n+        Serialization result = getSerializationById(id);\r\n+        if (result == null) {\r\n+            throw new IOException(\"Unrecognized serialize type from consumer: \" + id);\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public static ObjectInput deserialize(URL url, InputStream is, byte proto) throws IOException {\r\n+        Serialization s = getSerialization(url, proto);\r\n+        return s.deserialize(url, is);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the null object serialize result byte[] of Serialization from the cache,\r\n+     * if not, generate it first.\r\n+     *\r\n+     * @param s Serialization Instances\r\n+     * @return serialize result of null object\r\n+     */\r\n+    public static byte[] getNullBytesOf(Serialization s) {\r\n+        return ID_NULLBYTES_MAP.computeIfAbsent(s.getContentTypeId(), k -> {\r\n+            //Pre-generated Null object bytes\r\n+            ByteArrayOutputStream baos = new ByteArrayOutputStream();\r\n+            byte[] nullBytes = new byte[0];\r\n+            try {\r\n+                ObjectOutput out = s.serialize(null, baos);\r\n+                out.writeObject(null);\r\n+                out.flushBuffer();\r\n+                nullBytes = baos.toByteArray();\r\n+                baos.close();\r\n+            } catch (Exception e) {\r\n+                logger.warn(\"Serialization extension \" + s.getClass().getName() + \" not support serializing null object, return an empty bytes instead.\");\r\n+            }\r\n+            return nullBytes;\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Read all payload to byte[]\r\n+     *\r\n+     * @param is\r\n+     * @return\r\n+     * @throws IOException\r\n+     */\r\n+    public static byte[] getPayload(InputStream is) throws IOException {\r\n+        ByteArrayOutputStream baos = new ByteArrayOutputStream();\r\n+        byte[] buffer = getBuffer(is.available());\r\n+        int len;\r\n+        while ((len = is.read(buffer)) > -1) {\r\n+            baos.write(buffer, 0, len);\r\n+        }\r\n+        baos.flush();\r\n+        return baos.toByteArray();\r\n+    }\r\n+\r\n+    private static byte[] getBuffer(int size) {\r\n+        byte[] bytes = TL_BUFFER.get();\r\n+        if (size <= bytes.length) {\r\n+            return bytes;\r\n+        }\r\n+        return new byte[size];\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if payload is null object serialize result byte[] of serialization\r\n+     *\r\n+     * @param payload\r\n+     * @param proto\r\n+     * @return\r\n+     */\r\n+    public static boolean isHeartBeat(byte[] payload, byte proto) {\r\n+        return Arrays.equals(payload, getNullBytesOf(getSerializationById(proto)));\r\n+    }\r\n+\r\n+    public static void checkSerialization(String path, String version, Byte id) throws IOException {\r\n+        ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+        ProviderModel providerModel = repository.lookupExportedServiceWithoutGroup(path + \":\" + version);\r\n+        if (providerModel == null) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"Serialization security check is enabled but cannot work as expected because \" +\r\n+                        \"there's no matched provider model for path \" + path + \", version \" + version);\r\n+            }\r\n+        } else {\r\n+            List<URL> urls = providerModel.getServiceConfig().getExportedUrls();\r\n+            if (CollectionUtils.isNotEmpty(urls)) {\r\n+                URL url = urls.get(0);\r\n+                String serializationName = url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION);\r\n+                Byte localId = SERIALIZATIONNAME_ID_MAP.get(serializationName);\r\n+                if (localId != null && !localId.equals(id)) {\r\n+                    throw new IOException(\"Unexpected serialization id:\" + id + \" received from network, please check if the peer send the right id.\");\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/DecodeHandler.java", "source2": "org/apache/dubbo/remoting/transport/DecodeHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,69 +1,69 @@\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.remoting.transport;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Decodeable;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-public class DecodeHandler extends AbstractChannelHandlerDelegate {\n-\n-    private static final Logger log = LoggerFactory.getLogger(DecodeHandler.class);\n-\n-    public DecodeHandler(ChannelHandler handler) {\n-        super(handler);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        if (message instanceof Decodeable) {\n-            decode(message);\n-        }\n-\n-        if (message instanceof Request) {\n-            decode(((Request) message).getData());\n-        }\n-\n-        if (message instanceof Response) {\n-            decode(((Response) message).getResult());\n-        }\n-\n-        handler.received(channel, message);\n-    }\n-\n-    private void decode(Object message) {\n-        if (message instanceof Decodeable) {\n-            try {\n-                ((Decodeable) message).decode();\n-                if (log.isDebugEnabled()) {\n-                    log.debug(\"Decode decodeable message \" + message.getClass().getName());\n-                }\n-            } catch (Throwable e) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Call Decodeable.decode failed: \" + e.getMessage(), e);\n-                }\n-            } // ~ end of catch\n-        } // ~ end of if\n-    } // ~ end of method decode\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.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Decodeable;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+public class DecodeHandler extends AbstractChannelHandlerDelegate {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(DecodeHandler.class);\r\n+\r\n+    public DecodeHandler(ChannelHandler handler) {\r\n+        super(handler);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        if (message instanceof Decodeable) {\r\n+            decode(message);\r\n+        }\r\n+\r\n+        if (message instanceof Request) {\r\n+            decode(((Request) message).getData());\r\n+        }\r\n+\r\n+        if (message instanceof Response) {\r\n+            decode(((Response) message).getResult());\r\n+        }\r\n+\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    private void decode(Object message) {\r\n+        if (message instanceof Decodeable) {\r\n+            try {\r\n+                ((Decodeable) message).decode();\r\n+                if (log.isDebugEnabled()) {\r\n+                    log.debug(\"Decode decodeable message \" + message.getClass().getName());\r\n+                }\r\n+            } catch (Throwable e) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Call Decodeable.decode failed: \" + e.getMessage(), e);\r\n+                }\r\n+            } // ~ end of catch\r\n+        } // ~ end of if\r\n+    } // ~ end of method decode\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,149 +1,149 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher;\n-\n-import org.apache.dubbo.common.URL;\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.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.exchange.support.DefaultFuture;\n-import org.apache.dubbo.remoting.transport.ChannelHandlerDelegate;\n-\n-import java.util.concurrent.ExecutorService;\n-\n-public class WrappedChannelHandler implements ChannelHandlerDelegate {\n-\n-    protected static final Logger logger = LoggerFactory.getLogger(WrappedChannelHandler.class);\n-\n-    protected final ChannelHandler handler;\n-\n-    protected final URL url;\n-\n-    public WrappedChannelHandler(ChannelHandler handler, URL url) {\n-        this.handler = handler;\n-        this.url = url;\n-    }\n-\n-    public void close() {\n-\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        handler.connected(channel);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        handler.disconnected(channel);\n-    }\n-\n-    @Override\n-    public void sent(Channel channel, Object message) throws RemotingException {\n-        handler.sent(channel, message);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        handler.received(channel, message);\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        handler.caught(channel, exception);\n-    }\n-\n-    protected void sendFeedback(Channel channel, Request request, Throwable t) throws RemotingException {\n-        if (request.isTwoWay()) {\n-            String msg = \"Server side(\" + url.getIp() + \",\" + url.getPort()\n-                    + \") thread pool is exhausted, detail msg:\" + t.getMessage();\n-            Response response = new Response(request.getId(), request.getVersion());\n-            response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);\n-            response.setErrorMessage(msg);\n-            channel.send(response);\n-            return;\n-        }\n-    }\n-\n-    @Override\n-    public ChannelHandler getHandler() {\n-        if (handler instanceof ChannelHandlerDelegate) {\n-            return ((ChannelHandlerDelegate) handler).getHandler();\n-        } else {\n-            return handler;\n-        }\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    /**\n-     * Currently, this method is mainly customized to facilitate the thread model on consumer side.\n-     * 1. Use ThreadlessExecutor, aka., delegate callback directly to the thread initiating the call.\n-     * 2. Use shared executor to execute the callback.\n-     *\n-     * @param msg\n-     * @return\n-     */\n-    public ExecutorService getPreferredExecutorService(Object msg) {\n-        if (msg instanceof Response) {\n-            Response response = (Response) msg;\n-            DefaultFuture responseFuture = DefaultFuture.getFuture(response.getId());\n-            // a typical scenario is the response returned after timeout, the timeout response may has completed the future\n-            if (responseFuture == null) {\n-                return getSharedExecutorService();\n-            } else {\n-                ExecutorService executor = responseFuture.getExecutor();\n-                if (executor == null || executor.isShutdown()) {\n-                    executor = getSharedExecutorService();\n-                }\n-                return executor;\n-            }\n-        } else {\n-            return getSharedExecutorService();\n-        }\n-    }\n-\n-    /**\n-     * get the shared executor for current Server or Client\n-     *\n-     * @return\n-     */\n-    public ExecutorService getSharedExecutorService() {\n-        ExecutorRepository executorRepository =\n-                ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-        ExecutorService executor = executorRepository.getExecutor(url);\n-        if (executor == null) {\n-            executor = executorRepository.createExecutorIfAbsent(url);\n-        }\n-        return executor;\n-    }\n-\n-    @Deprecated\n-    public ExecutorService getExecutorService() {\n-        return getSharedExecutorService();\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher;\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.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.exchange.support.DefaultFuture;\r\n+import org.apache.dubbo.remoting.transport.ChannelHandlerDelegate;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+public class WrappedChannelHandler implements ChannelHandlerDelegate {\r\n+\r\n+    protected static final Logger logger = LoggerFactory.getLogger(WrappedChannelHandler.class);\r\n+\r\n+    protected final ChannelHandler handler;\r\n+\r\n+    protected final URL url;\r\n+\r\n+    public WrappedChannelHandler(ChannelHandler handler, URL url) {\r\n+        this.handler = handler;\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public void close() {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        handler.connected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        handler.disconnected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void sent(Channel channel, Object message) throws RemotingException {\r\n+        handler.sent(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        handler.caught(channel, exception);\r\n+    }\r\n+\r\n+    protected void sendFeedback(Channel channel, Request request, Throwable t) throws RemotingException {\r\n+        if (request.isTwoWay()) {\r\n+            String msg = \"Server side(\" + url.getIp() + \",\" + url.getPort()\r\n+                    + \") thread pool is exhausted, detail msg:\" + t.getMessage();\r\n+            Response response = new Response(request.getId(), request.getVersion());\r\n+            response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);\r\n+            response.setErrorMessage(msg);\r\n+            channel.send(response);\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelHandler getHandler() {\r\n+        if (handler instanceof ChannelHandlerDelegate) {\r\n+            return ((ChannelHandlerDelegate) handler).getHandler();\r\n+        } else {\r\n+            return handler;\r\n+        }\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    /**\r\n+     * Currently, this method is mainly customized to facilitate the thread model on consumer side.\r\n+     * 1. Use ThreadlessExecutor, aka., delegate callback directly to the thread initiating the call.\r\n+     * 2. Use shared executor to execute the callback.\r\n+     *\r\n+     * @param msg\r\n+     * @return\r\n+     */\r\n+    public ExecutorService getPreferredExecutorService(Object msg) {\r\n+        if (msg instanceof Response) {\r\n+            Response response = (Response) msg;\r\n+            DefaultFuture responseFuture = DefaultFuture.getFuture(response.getId());\r\n+            // a typical scenario is the response returned after timeout, the timeout response may has completed the future\r\n+            if (responseFuture == null) {\r\n+                return getSharedExecutorService();\r\n+            } else {\r\n+                ExecutorService executor = responseFuture.getExecutor();\r\n+                if (executor == null || executor.isShutdown()) {\r\n+                    executor = getSharedExecutorService();\r\n+                }\r\n+                return executor;\r\n+            }\r\n+        } else {\r\n+            return getSharedExecutorService();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get the shared executor for current Server or Client\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public ExecutorService getSharedExecutorService() {\r\n+        ExecutorRepository executorRepository =\r\n+                ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+        ExecutorService executor = executorRepository.getExecutor(url);\r\n+        if (executor == null) {\r\n+            executor = executorRepository.createExecutorIfAbsent(url);\r\n+        }\r\n+        return executor;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public ExecutorService getExecutorService() {\r\n+        return getSharedExecutorService();\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,81 +1,81 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.all;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-public class AllChannelHandler extends WrappedChannelHandler {\n-\n-    public AllChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"disconnect event\", channel, getClass() + \" error when process disconnected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-        \tif(message instanceof Request && t instanceof RejectedExecutionException){\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-        \t}\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.all;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+public class AllChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public AllChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"disconnect event\", channel, getClass() + \" error when process disconnected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+        \tif(message instanceof Request && t instanceof RejectedExecutionException){\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+        \t}\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,109 +1,109 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.connection;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.RejectedExecutionException;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_CAPACITY;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_WARNING_SIZE;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_QUEUE_WARNING_SIZE;\n-\n-public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {\n-\n-    protected final ThreadPoolExecutor connectionExecutor;\n-    private final int queuewarninglimit;\n-\n-    public ConnectionOrderedChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-        String threadName = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\n-        connectionExecutor = new ThreadPoolExecutor(1, 1,\n-                0L, TimeUnit.MILLISECONDS,\n-                new LinkedBlockingQueue<Runnable>(url.getPositiveParameter(CONNECT_QUEUE_CAPACITY, Integer.MAX_VALUE)),\n-                new NamedThreadFactory(threadName, true),\n-                new AbortPolicyWithReport(threadName, url)\n-        );  // FIXME There's no place to release connectionExecutor!\n-        queuewarninglimit = url.getParameter(CONNECT_QUEUE_WARNING_SIZE, DEFAULT_CONNECT_QUEUE_WARNING_SIZE);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        try {\n-            checkQueueLength();\n-            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        try {\n-            checkQueueLength();\n-            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"disconnected event\", channel, getClass() + \" error when process disconnected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-            if (message instanceof Request && t instanceof RejectedExecutionException) {\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-            }\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\n-        }\n-    }\n-\n-    private void checkQueueLength() {\n-        if (connectionExecutor.getQueue().size() > queuewarninglimit) {\n-            logger.warn(new IllegalThreadStateException(\"connectionordered channel handler `queue size: \" + connectionExecutor.getQueue().size() + \" exceed the warning limit number :\" + queuewarninglimit));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.connection;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_CAPACITY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_WARNING_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_QUEUE_WARNING_SIZE;\r\n+\r\n+public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    protected final ThreadPoolExecutor connectionExecutor;\r\n+    private final int queuewarninglimit;\r\n+\r\n+    public ConnectionOrderedChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+        String threadName = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\r\n+        connectionExecutor = new ThreadPoolExecutor(1, 1,\r\n+                0L, TimeUnit.MILLISECONDS,\r\n+                new LinkedBlockingQueue<Runnable>(url.getPositiveParameter(CONNECT_QUEUE_CAPACITY, Integer.MAX_VALUE)),\r\n+                new NamedThreadFactory(threadName, true),\r\n+                new AbortPolicyWithReport(threadName, url)\r\n+        );  // FIXME There's no place to release connectionExecutor!\r\n+        queuewarninglimit = url.getParameter(CONNECT_QUEUE_WARNING_SIZE, DEFAULT_CONNECT_QUEUE_WARNING_SIZE);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        try {\r\n+            checkQueueLength();\r\n+            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        try {\r\n+            checkQueueLength();\r\n+            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"disconnected event\", channel, getClass() + \" error when process disconnected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+            if (message instanceof Request && t instanceof RejectedExecutionException) {\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+            }\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    private void checkQueueLength() {\r\n+        if (connectionExecutor.getQueue().size() > queuewarninglimit) {\r\n+            logger.warn(new IllegalThreadStateException(\"connectionordered channel handler `queue size: \" + connectionExecutor.getQueue().size() + \" exceed the warning limit number :\" + queuewarninglimit));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.direct;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-\n-public class DirectChannelHandler extends WrappedChannelHandler {\n-\n-    public DirectChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        if (executor instanceof ThreadlessExecutor) {\n-            try {\n-                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-            } catch (Throwable t) {\n-                throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-            }\n-        } else {\n-            handler.received(channel, message);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.direct;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+public class DirectChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public DirectChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        if (executor instanceof ThreadlessExecutor) {\r\n+            try {\r\n+                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+            } catch (Throwable t) {\r\n+                throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+            }\r\n+        } else {\r\n+            handler.received(channel, message);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.direct;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Dispatcher;\n-\n-/**\n- * Direct dispatcher\n- */\n-public class DirectDispatcher implements Dispatcher {\n-\n-    public static final String NAME = \"direct\";\n-\n-    @Override\n-    public ChannelHandler dispatch(ChannelHandler handler, URL url) {\n-        return new DirectChannelHandler(handler, 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.remoting.transport.dispatcher.direct;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Dispatcher;\r\n+\r\n+/**\r\n+ * Direct dispatcher\r\n+ */\r\n+public class DirectDispatcher implements Dispatcher {\r\n+\r\n+    public static final String NAME = \"direct\";\r\n+\r\n+    @Override\r\n+    public ChannelHandler dispatch(ChannelHandler handler, URL url) {\r\n+        return new DirectChannelHandler(handler, url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.execution;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-/**\n- * Only request message will be dispatched to thread pool. Other messages like response, connect, disconnect,\n- * heartbeat will be directly executed by I/O thread.\n- */\n-public class ExecutionChannelHandler extends WrappedChannelHandler {\n-\n-    public ExecutionChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-\n-        if (message instanceof Request) {\n-            try {\n-                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-            } catch (Throwable t) {\n-                // FIXME: when the thread pool is full, SERVER_THREADPOOL_EXHAUSTED_ERROR cannot return properly,\n-                // therefore the consumer side has to wait until gets timeout. This is a temporary solution to prevent\n-                // this scenario from happening, but a better solution should be considered later.\n-                if (t instanceof RejectedExecutionException) {\n-                    sendFeedback(channel, (Request) message, t);\n-                }\n-                throw new ExecutionException(message, channel, getClass() + \" error when process received event.\", t);\n-            }\n-        } else if (executor instanceof ThreadlessExecutor) {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } else {\n-            handler.received(channel, message);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.execution;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+/**\r\n+ * Only request message will be dispatched to thread pool. Other messages like response, connect, disconnect,\r\n+ * heartbeat will be directly executed by I/O thread.\r\n+ */\r\n+public class ExecutionChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public ExecutionChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+\r\n+        if (message instanceof Request) {\r\n+            try {\r\n+                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+            } catch (Throwable t) {\r\n+                // FIXME: when the thread pool is full, SERVER_THREADPOOL_EXHAUSTED_ERROR cannot return properly,\r\n+                // therefore the consumer side has to wait until gets timeout. This is a temporary solution to prevent\r\n+                // this scenario from happening, but a better solution should be considered later.\r\n+                if (t instanceof RejectedExecutionException) {\r\n+                    sendFeedback(channel, (Request) message, t);\r\n+                }\r\n+                throw new ExecutionException(message, channel, getClass() + \" error when process received event.\", t);\r\n+            }\r\n+        } else if (executor instanceof ThreadlessExecutor) {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } else {\r\n+            handler.received(channel, message);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,52 +1,52 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.message;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-public class MessageOnlyChannelHandler extends WrappedChannelHandler {\n-\n-    public MessageOnlyChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-            if(message instanceof Request && t instanceof RejectedExecutionException){\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-            }\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.message;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+public class MessageOnlyChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public MessageOnlyChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+            if(message instanceof Request && t instanceof RejectedExecutionException){\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+            }\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/utils/PayloadDropper.java", "source2": "org/apache/dubbo/remoting/utils/PayloadDropper.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.utils;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-public class PayloadDropper {\n-    private static Logger logger = LoggerFactory.getLogger(PayloadDropper.class);\n-\n-    /**\n-     * only log body in debugger mode for size & security consideration.\n-     *\n-     * @param message\n-     * @return\n-     */\n-    public static Object getRequestWithoutData(Object message) {\n-        if (logger.isDebugEnabled()) {\n-            return message;\n-        }\n-        if (message instanceof Request) {\n-            Request request = (Request) message;\n-            request.setData(null);\n-            return request;\n-        } else if (message instanceof Response) {\n-            Response response = (Response) message;\n-            response.setResult(null);\n-            return response;\n-        }\n-        return message;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.utils;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+public class PayloadDropper {\r\n+    private static Logger logger = LoggerFactory.getLogger(PayloadDropper.class);\r\n+\r\n+    /**\r\n+     * only log body in debugger mode for size & security consideration.\r\n+     *\r\n+     * @param message\r\n+     * @return\r\n+     */\r\n+    public static Object getRequestWithoutData(Object message) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            return message;\r\n+        }\r\n+        if (message instanceof Request) {\r\n+            Request request = (Request) message;\r\n+            request.setData(null);\r\n+            return request;\r\n+        } else if (message instanceof Response) {\r\n+            Response response = (Response) message;\r\n+            response.setResult(null);\r\n+            return response;\r\n+        }\r\n+        return message;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/utils/UrlUtils.java", "source2": "org/apache/dubbo/remoting/utils/UrlUtils.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.remoting.utils;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Constants;\n-\n-public class UrlUtils {\n-    public static int getIdleTimeout(URL url) {\n-        int heartBeat = getHeartbeat(url);\n-        // idleTimeout should be at least more than twice heartBeat because possible retries of client.\n-        int idleTimeout = url.getParameter(Constants.HEARTBEAT_TIMEOUT_KEY, heartBeat * 3);\n-        if (idleTimeout < heartBeat * 2) {\n-            throw new IllegalStateException(\"idleTimeout < heartbeatInterval * 2\");\n-        }\n-        return idleTimeout;\n-    }\n-\n-    public static int getHeartbeat(URL url) {\n-        return url.getParameter(Constants.HEARTBEAT_KEY, Constants.DEFAULT_HEARTBEAT);\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.remoting.utils;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+\r\n+public class UrlUtils {\r\n+    public static int getIdleTimeout(URL url) {\r\n+        int heartBeat = getHeartbeat(url);\r\n+        // idleTimeout should be at least more than twice heartBeat because possible retries of client.\r\n+        int idleTimeout = url.getParameter(Constants.HEARTBEAT_TIMEOUT_KEY, heartBeat * 3);\r\n+        if (idleTimeout < heartBeat * 2) {\r\n+            throw new IllegalStateException(\"idleTimeout < heartbeatInterval * 2\");\r\n+        }\r\n+        return idleTimeout;\r\n+    }\r\n+\r\n+    public static int getHeartbeat(URL url) {\r\n+        return url.getParameter(Constants.HEARTBEAT_KEY, Constants.DEFAULT_HEARTBEAT);\r\n+    }\r\n+}\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-api/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,150 +1,146 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6170 693c 2f61  -remoting-api</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000560: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000570: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-00000580: 6520 7265 6d6f 7469 6e67 206d 6f64 756c  e remoting modul\n-00000590: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005a0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005b0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005c0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005d0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005e0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-000005f0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000600: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000610: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000620: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000630: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000640: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000650: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000660: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000670: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000680: 733e 0d0a 2020 3c70 726f 7065 7274 6965  s>..  <propertie\n-00000690: 733e 0d0a 2020 2020 3c73 6b69 705f 6d61  s>..    <skip_ma\n-000006a0: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n-000006b0: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n-000006c0: 6c6f 793e 0d0a 2020 3c2f 7072 6f70 6572  loy>..  </proper\n-000006d0: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-000006e0: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-000006f0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000700: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000710: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000720: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000730: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n-00000740: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n-00000750: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000760: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-00000770: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-00000780: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-00000790: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-000007a0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007b0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-000007c0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-000007d0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-000007e0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n-000007f0: 6572 6961 6c69 7a61 7469 6f6e 2d61 7069  erialization-api\n-00000800: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000810: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000820: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000830: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000840: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000850: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000860: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000870: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000880: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000890: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000008a0: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n-000008b0: 6c69 7a61 7469 6f6e 2d68 6573 7369 616e  lization-hessian\n-000008c0: 323c 2f61 7274 6966 6163 7449 643e 0d0a  2</artifactId>..\n-000008d0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-000008e0: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n-000008f0: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n-00000900: 6e3e 0d0a 2020 2020 2020 3c73 636f 7065  n>..      <scope\n-00000910: 3e74 6573 743c 2f73 636f 7065 3e0d 0a20  >test</scope>.. \n-00000920: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000930: 0d0a 2020 3c2f 6465 7065 6e64 656e 6369  ..  </dependenci\n-00000940: 6573 3e0d 0a3c 2f70 726f 6a65 6374 3e0d  es>..</project>.\n-00000950: 0a                                       .\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000540: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000550: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000560: 3e54 6865 2072 656d 6f74 696e 6720 6d6f  >The remoting mo\n+00000570: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000580: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+00000590: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005a0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005b0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005c0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005d0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005e0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+000005f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000600: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000610: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000620: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000630: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000640: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000650: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000660: 203c 7072 6f70 6572 7469 6573 3e0a 2020   <properties>.  \n+00000670: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n+00000680: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n+00000690: 5f6d 6176 656e 5f64 6570 6c6f 793e 0a20  _maven_deploy>. \n+000006a0: 203c 2f70 726f 7065 7274 6965 733e 0a20   </properties>. \n+000006b0: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+000006c0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+000006d0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006e0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000006f0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000700: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000710: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n+00000720: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000730: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000740: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000750: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000760: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000770: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000780: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000790: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000007a0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007b0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+000007c0: 6572 6961 6c69 7a61 7469 6f6e 2d61 7069  erialization-api\n+000007d0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000007e0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000007f0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+00000800: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000820: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000830: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000840: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000850: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000860: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000870: 6475 6262 6f2d 7365 7269 616c 697a 6174  dubbo-serializat\n+00000880: 696f 6e2d 6865 7373 6961 6e32 3c2f 6172  ion-hessian2</ar\n+00000890: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+000008a0: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+000008b0: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+000008c0: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+000008d0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+000008e0: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+000008f0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+00000900: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+00000910: 6a65 6374 3e0a                           ject>.\n"}]}
