From 8842566ee2c86216b84bd1a281011597a67d6a07 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sat, 15 Nov 2025 11:08:16 +0800 Subject: [PATCH] KLALB V3.4 --- .classpath | 6 +- KLALB软件说明书V3.4.docx | Bin 0 -> 1330215 bytes hs_err_pid28220.log | 2420 +++++++++++++++++ hs_err_pid28220.mdmp | 0 hs_err_pid29580.log | 2180 +++++++++++++++ hs_err_pid29580.mdmp | 0 klalb-config.json | 103 +- lib/KNElib1.0.jar | Bin 0 -> 431952 bytes src/assets/KLALB2.png | Bin 0 -> 9973 bytes src/assets/add.png | Bin 0 -> 2513 bytes src/assets/dashboard-3-fill.png | Bin 0 -> 4485 bytes src/assets/delete-bin-fill.png | Bin 0 -> 2996 bytes src/assets/edit-fill.png | Bin 0 -> 3146 bytes src/assets/graph.png | Bin 0 -> 53893 bytes src/assets/settings.png | Bin 0 -> 120400 bytes src/assets/speedtest.png | Bin 0 -> 6626 bytes src/assets/speedtest2.png | Bin 0 -> 17482 bytes src/assets/speedtest3.png | Bin 0 -> 18038 bytes src/klalb_en_US.properties | 34 +- src/klalb_zh_CN.properties | 34 +- .../kne/cloud/clock/HighAccuracyClock.java | 249 ++ src/org/kne/cloud/clock/NTPTimestamps.java | 367 +++ .../cloud/klalb/uitool/ListSettingItem.java | 15 +- src/org/kne/cloud/network/BufferedArena.java | 177 ++ .../kne/cloud/network/BufferedChannel.java | 445 +++ .../cloud/network/ByteBufferAllocator.java | 115 +- .../cloud/network/DatagramServerSocket.java | 12 +- .../kne/cloud/network/MemorySegmentPool.java | 83 + .../network/MultipurposeSocketAddress.java | 50 + src/org/kne/cloud/network/NetworkPacket.java | 2 +- src/org/kne/cloud/network/SpeedLimiter.java | 14 +- .../cloud/network/VirtualDatagramSocket.java | 18 + .../network/VirtualDatagramSocketImpl.java | 7 + .../congress/BBRCongressAlgorithm.java | 131 + .../congress/BBRVegasCongressAlgorithm.java | 150 + .../network/congress/CongressAlgorithm.java | 16 + .../congress/ECNCongressAlgorithm.java | 170 ++ .../congress/EmptyCongressAlgorithm.java | 66 + .../congress/LARCCongressAlgorithm.java | 138 + .../network/congress/MessageBatcher.java | 190 ++ .../ReceiveByteSlidingWindow.java} | 6 +- .../SendByteSlidingWindow.java} | 6 +- .../congress/SendPacketSlidingWindow.java | 203 ++ .../congress/VegasCongressAlgorithm.java | 132 + .../network/ipv6/AbstractIPv6NetworkLink.java | 43 + .../cloud/network/ipv6/ICMPv6EchoPacket.java | 85 + .../kne/cloud/network/ipv6/ICMPv6Packet.java | 284 ++ .../ipv6/ICMPv6TimeExceededPacket.java | 69 + .../cloud/network/ipv6/IPv6HopByHopTLV.java | 136 + .../network/ipv6/IPv6LinkStateListener.java | 9 + .../cloud/network/ipv6/IPv6NetworkLink.java | 8 +- .../kne/cloud/network/ipv6/IPv6Packet.java | 2037 ++++++++------ .../cloud/network/ipv6/IPv6RouteTableKey.java | 305 +++ .../ipv6/IPv6TUNLoopbackNetworkLink.java | 47 +- .../cloud/network/ipv6/Inet6AddressGroup.java | 18 + .../network/ipv6/LoopbackIPv6NetworkLink.java | 162 ++ src/org/kne/cloud/network/ipv6/Neighbor.java | 4 +- .../cloud/network/ipv6/Pad1HopByHopTLV.java | 26 + .../cloud/network/ipv6/PadNHopByHopTLV.java | 30 + src/org/kne/cloud/network/ipv6/TLV.java | 62 +- .../kne/cloud/network/klalb/ACKTPacket.java | 6 +- .../cloud/network/klalb/ADDLINESPacket.java | 2 +- .../klalb/AbstractKLALBPacketLink.java | 53 +- .../kne/cloud/network/klalb/BWINFPacket.java | 4 +- .../klalb/BindableKLALBPacketConsumer.java | 2 +- src/org/kne/cloud/network/klalb/CONST.java | 2 +- .../kne/cloud/network/klalb/DATATPacket.java | 11 +- .../kne/cloud/network/klalb/IPSequence.java | 12 +- .../network/klalb/IPv6OverKLALBPacket.java | 25 +- .../kne/cloud/network/klalb/KLALBConfig.java | 2 +- .../cloud/network/klalb/KLALBController.java | 1365 ++++++---- .../klalb/KLALBControllerConfigItem.java | 111 +- .../kne/cloud/network/klalb/KLALBMain.java | 31 +- .../network/klalb/KLALBOutputStream.java | 2 +- .../kne/cloud/network/klalb/KLALBPacket.java | 3 +- .../cloud/network/klalb/KLALBPacketLink.java | 11 +- .../cloud/network/klalb/KLALBProxySystem.java | 30 +- .../cloud/network/klalb/KLALBRemoteLine.java | 1182 ++++---- .../network/klalb/KLALBRemoteManagement.java | 11 +- .../kne/cloud/network/klalb/KLALBUtils.java | 63 +- ...ALBVirtualDatagramServerSocketFactory.java | 38 + .../klalb/KLALBVirtualDatagramSocket.java | 46 + .../KLALBVirtualDatagramSocketFactory.java | 58 + .../klalb/KLALBVirtualDatagramSocketImpl.java | 256 ++ .../network/klalb/KLALBVirtualRawSocket.java | 7 +- .../klalb/KLALBVirtualRawSocketImpl.java | 51 +- .../klalb/KLALBVirtualServerSocket.java | 2 +- .../network/klalb/KLALBVirtualSocket.java | 2 +- .../klalb/KLALBVirtualSocketChannel.java | 4 + .../network/klalb/KLALBVirtualSocketImpl.java | 312 +-- .../cloud/network/klalb/MonitoredChannel.java | 54 + .../network/klalb/MonitoredInputStream.java | 17 +- .../network/klalb/MonitoredOutputStream.java | 17 +- .../kne/cloud/network/klalb/NACKTPacket.java | 6 +- .../kne/cloud/network/klalb/PONGPacket.java | 2 +- ...acketConsumer.java => PacketConsumer.java} | 6 +- .../kne/cloud/network/klalb/PortBinder.java | 24 +- .../kne/cloud/network/klalb/PortPacket.java | 4 +- .../kne/cloud/network/klalb/RSTPacket.java | 6 +- src/org/kne/cloud/network/klalb/SendItem.java | 15 +- .../network/klalb/SimpleKLALBClient.java | 77 - .../network/klalb/SimpleKLALBServer.java | 181 -- .../klalb/StreamChannelKLALBPacketLink.java | 151 +- .../network/klalb/ui/ClosableTabbedPane.java | 27 + src/org/kne/cloud/network/klalb/ui/Dials.java | 7 + .../klalb/ui/DoubleBandwidthLabel.java | 54 + .../cloud/network/klalb/ui/GraphPanel.java | 131 +- .../cloud/network/klalb/ui/KLALBStateGUI.java | 8 +- .../network/klalb/ui/KLALBStateGUI2.java | 14 +- .../network/klalb/ui/KLALBStateGUI3.java | 306 ++- .../kne/cloud/network/klalb/ui/KperfGUI.java | 624 +++++ .../network/klalb/ui/LineMonitorGUI.java | 244 +- .../network/klalb/ui/NetworkGraphPanel.java | 116 +- .../ui/NetworkInterfaceListSettingItem.java | 36 + .../klalb/ui/NetworkInterfaceSelector.java | 87 + .../klalb/ui/NodeInformationPanel.java | 167 ++ .../kne/cloud/network/klalb/ui/TPanel2.java | 19 +- .../kne/cloud/network/klalb/ui/TabPanel.java | 60 + src/org/kne/cloud/network/klalb/ui/UIEnv.java | 2 +- .../kne/cloud/network/klalb/ui/UIUtils.java | 13 + .../minecraft/SimpleKLALBMinecraftClient.java | 90 - .../minecraft/SimpleKLALBMinecraftServer.java | 194 -- .../monitor/ArrayListTimestampMonitor.java | 460 ++++ .../monitor/HashMapTimestampMonitor.java | 275 ++ .../network/monitor/MonitorDataImpl.java | 2 - .../cloud/network/monitor/NanoTimeSeries.java | 5 - ...peedAndTrafficAndDelayMonitorDataImpl.java | 10 +- .../monitor/SpeedAndTrafficMonitorData.java | 9 +- .../SpeedAndTrafficMonitorDataImpl.java | 93 +- .../network/monitor/TimestampMonitor.java | 156 ++ .../network/monitor/TimestampMonitorKey.java | 31 + .../monitor/TimestampMonitorValue.java | 60 + .../cloud/network/monitor/TrafficStats.java | 46 + src/org/kne/cloud/network/ntp/NTPContext.java | 429 +++ .../kne/cloud/network/ntp/NTPv4Packet.java | 513 ++++ .../kne/cloud/network/ntp/NTPv4Protocol.java | 408 +++ src/org/kne/cloud/network/ntp/TestNTP1.java | 19 + src/org/kne/cloud/network/ntp/TestNTP2.java | 20 + src/org/kne/cloud/network/perf/Kperf.java | 159 +- .../kne/cloud/network/perf/KperfReports.java | 15 + .../kne/cloud/network/perf/TEST1Packet.java | 2 +- .../kne/cloud/network/perf/TESTNPacket.java | 9 +- .../network/srv6/IPv6SegmentRoutingTLV.java | 106 +- .../cloud/network/srv6/JsonDataPacket.java | 118 + .../network/srv6/KLALBRoutingProtocol.java | 84 +- .../srv6/KLALBRoutingProtocolAPIClient.java | 105 + .../srv6/KLALBRoutingProtocolAPIServer.java | 81 + .../srv6/KLALBRoutingProtocolJsonData.java | 66 + .../srv6/KLALBRoutingProtocolPacket.java | 7 +- .../network/srv6/PADNSegmentRoutingTLV.java | 13 - .../cloud/network/srv6/PacketConsumer.java | 2 +- .../kne/cloud/network/srv6/RouterInfo.java | 7 +- .../cloud/network/srv6/RouterInfoPacket.java | 4 +- .../cloud/network/srv6/SRv6PacketReorder.java | 13 +- .../kne/cloud/network/srv6/SRv6Router.java | 1117 ++++---- .../network/srv6/SRv6RouterListener.java | 7 + .../kne/cloud/network/tcp/TCPOptionTLV.java | 402 +-- src/org/kne/cloud/network/tcp/TCPPacket.java | 649 +++-- src/org/kne/cloud/network/tcp/UDPPacket.java | 218 ++ src/org/kne/io/KNEChannels.java | 5 + 160 files changed, 18540 insertions(+), 4512 deletions(-) create mode 100644 KLALB软件说明书V3.4.docx create mode 100644 hs_err_pid28220.log create mode 100644 hs_err_pid28220.mdmp create mode 100644 hs_err_pid29580.log create mode 100644 hs_err_pid29580.mdmp create mode 100644 lib/KNElib1.0.jar create mode 100644 src/assets/KLALB2.png create mode 100644 src/assets/add.png create mode 100644 src/assets/dashboard-3-fill.png create mode 100644 src/assets/delete-bin-fill.png create mode 100644 src/assets/edit-fill.png create mode 100644 src/assets/graph.png create mode 100644 src/assets/settings.png create mode 100644 src/assets/speedtest.png create mode 100644 src/assets/speedtest2.png create mode 100644 src/assets/speedtest3.png create mode 100644 src/org/kne/cloud/clock/HighAccuracyClock.java create mode 100644 src/org/kne/cloud/clock/NTPTimestamps.java create mode 100644 src/org/kne/cloud/network/BufferedArena.java create mode 100644 src/org/kne/cloud/network/BufferedChannel.java create mode 100644 src/org/kne/cloud/network/MemorySegmentPool.java create mode 100644 src/org/kne/cloud/network/VirtualDatagramSocket.java create mode 100644 src/org/kne/cloud/network/VirtualDatagramSocketImpl.java create mode 100644 src/org/kne/cloud/network/congress/BBRCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/BBRVegasCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/CongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/ECNCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/EmptyCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/LARCCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/congress/MessageBatcher.java rename src/org/kne/cloud/network/{klalb/ReceiveSlidingWindow.java => congress/ReceiveByteSlidingWindow.java} (85%) rename src/org/kne/cloud/network/{klalb/SendSlidingWindow.java => congress/SendByteSlidingWindow.java} (88%) create mode 100644 src/org/kne/cloud/network/congress/SendPacketSlidingWindow.java create mode 100644 src/org/kne/cloud/network/congress/VegasCongressAlgorithm.java create mode 100644 src/org/kne/cloud/network/ipv6/AbstractIPv6NetworkLink.java create mode 100644 src/org/kne/cloud/network/ipv6/ICMPv6EchoPacket.java create mode 100644 src/org/kne/cloud/network/ipv6/ICMPv6Packet.java create mode 100644 src/org/kne/cloud/network/ipv6/ICMPv6TimeExceededPacket.java create mode 100644 src/org/kne/cloud/network/ipv6/IPv6HopByHopTLV.java create mode 100644 src/org/kne/cloud/network/ipv6/IPv6LinkStateListener.java create mode 100644 src/org/kne/cloud/network/ipv6/IPv6RouteTableKey.java create mode 100644 src/org/kne/cloud/network/ipv6/LoopbackIPv6NetworkLink.java create mode 100644 src/org/kne/cloud/network/ipv6/Pad1HopByHopTLV.java create mode 100644 src/org/kne/cloud/network/ipv6/PadNHopByHopTLV.java create mode 100644 src/org/kne/cloud/network/klalb/KLALBVirtualDatagramServerSocketFactory.java create mode 100644 src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocket.java create mode 100644 src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketFactory.java create mode 100644 src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketImpl.java create mode 100644 src/org/kne/cloud/network/klalb/MonitoredChannel.java rename src/org/kne/cloud/network/klalb/{KLALBPacketConsumer.java => PacketConsumer.java} (50%) delete mode 100644 src/org/kne/cloud/network/klalb/SimpleKLALBClient.java delete mode 100644 src/org/kne/cloud/network/klalb/SimpleKLALBServer.java create mode 100644 src/org/kne/cloud/network/klalb/ui/ClosableTabbedPane.java create mode 100644 src/org/kne/cloud/network/klalb/ui/Dials.java create mode 100644 src/org/kne/cloud/network/klalb/ui/DoubleBandwidthLabel.java create mode 100644 src/org/kne/cloud/network/klalb/ui/KperfGUI.java create mode 100644 src/org/kne/cloud/network/klalb/ui/NetworkInterfaceListSettingItem.java create mode 100644 src/org/kne/cloud/network/klalb/ui/NetworkInterfaceSelector.java create mode 100644 src/org/kne/cloud/network/klalb/ui/NodeInformationPanel.java create mode 100644 src/org/kne/cloud/network/klalb/ui/TabPanel.java create mode 100644 src/org/kne/cloud/network/klalb/ui/UIUtils.java delete mode 100644 src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftClient.java delete mode 100644 src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftServer.java create mode 100644 src/org/kne/cloud/network/monitor/ArrayListTimestampMonitor.java create mode 100644 src/org/kne/cloud/network/monitor/HashMapTimestampMonitor.java delete mode 100644 src/org/kne/cloud/network/monitor/NanoTimeSeries.java create mode 100644 src/org/kne/cloud/network/monitor/TimestampMonitor.java create mode 100644 src/org/kne/cloud/network/monitor/TimestampMonitorKey.java create mode 100644 src/org/kne/cloud/network/monitor/TimestampMonitorValue.java create mode 100644 src/org/kne/cloud/network/monitor/TrafficStats.java create mode 100644 src/org/kne/cloud/network/ntp/NTPContext.java create mode 100644 src/org/kne/cloud/network/ntp/NTPv4Packet.java create mode 100644 src/org/kne/cloud/network/ntp/NTPv4Protocol.java create mode 100644 src/org/kne/cloud/network/ntp/TestNTP1.java create mode 100644 src/org/kne/cloud/network/ntp/TestNTP2.java create mode 100644 src/org/kne/cloud/network/perf/KperfReports.java create mode 100644 src/org/kne/cloud/network/srv6/JsonDataPacket.java create mode 100644 src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIClient.java create mode 100644 src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIServer.java create mode 100644 src/org/kne/cloud/network/srv6/KLALBRoutingProtocolJsonData.java create mode 100644 src/org/kne/cloud/network/srv6/SRv6RouterListener.java create mode 100644 src/org/kne/cloud/network/tcp/UDPPacket.java diff --git a/.classpath b/.classpath index 5830d28..57e97d1 100644 --- a/.classpath +++ b/.classpath @@ -1,12 +1,11 @@ - - - + + @@ -30,5 +29,6 @@ + diff --git a/KLALB软件说明书V3.4.docx b/KLALB软件说明书V3.4.docx new file mode 100644 index 0000000000000000000000000000000000000000..ed5e47873145615bf056cb81121cd98946c87f74 GIT binary patch literal 1330215 zcmb5U1B`7^(>B<*ZQC|(+qR9{ylvaIZQHhOTeorAwvFlc{WHn;O(v7fPWIV#YCXxR z^Hj2S)l*AB8Uz#?=s#De+@8RHp8xj+^8Y(#0+Bq^P{J>Cu9FYHog^EHY!& zasUPbLj0dFeLFjPH*2fx_O{2n3Y3pqG2@>g_CI>_7n-jaQ}w(uN)%+du^8YQ5^|00Qs zZWz=VWSqtX)AdWPdQJI2N8)=S6R?vA%Z*)9nYpH1q!6=_2v?`{dOy*MXkJsmB4RX74|)PV!C|>iOj8 z54391BeM;BIAo1om?w=539O1jmrN1km~14%H_SSM33!tnYVG*t!!)3?Vfj$pd)BS> z2J*jiK@)1UDEyNP%b#2z{m)z&+Bz8jCmG%eTGE5RF+;AwzJB5|dL)bk7KX!?xk)2O{jU3!_2df=JC0SZ z%E1CiAL%%@p^DiRx$e&BYq3sb!?AGsr1H_?=R**WPCmVs0-|=L3b{

jN1pL#f+$ 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

(M_x2crL?NjQBr^-DV{M7L}G_% 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%0ADXwSm+_3hGp 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 z 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

r{5HbB=iSc?vx}?Ec%>YM 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�^A2c2@QZoi&Ulh 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
r$>*1ari5=t*1jNGCh_69eh@EFW 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

*q?C}Sindj!BtrR?sU(xK81P-P0nny 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 ^UV zxVreWs~)4VOEeFBuOvaPDj|)md%IT|iKSlc!x9NPa>L*ajWc@-w^`K5t1hRtvk9kT znh8f^n%)E)H*rFKV#fi2s?8k@SjTSs&r#Fp98*UkkUDvW6O?|th zyzV;AJ?Vf1y5QE?!ED0PqGe6OwGW$5gNP-TLvFr$^5aYR*;YC3wTznJwr zk|bs}f4?EIRTlR~n}mgl-jO+Ad}EL${wBcmj!|09v=R4_iIW|#OyJQ3J>l?MWQLCI zg<|7kwTxnqOdRjcJFll=Z_w2mb^Dt;uA*2}Znm|@ykPQG2oDZO`+@GOZ&05?MLKm$ zH-@?3zEQEBJJ#V$;@KVayZv5ZuMoDJ}ag~qhb>xM=OxC6& zH+6Pi%=3TxQJEdrZ|Ui)7@nGY-!zb?xG~Eq6M{NUoJANzUIa*73T2_kkGFx>?qZo9piiJ2XQiZ8>ef%0>Jj zQLhin-~D0ImehZk`ta+&Js*9^Hg9;+mqvAyIGyauR?FKL4M?p`-PADwuNo^lgX{uR z=P_AA{LCNd%sr~g^2esTHnFiK{w#a9vmTY;Mj&0D+x9zeA;E&u$~!c)h}Z7mpm+Th znedv|%p}h&%aQ*|5PGWcJ@WW8b=~D|4-&K$XX(ARC>qeXQP{saVg0&nAU0w0-e0xf zHE$+=u8pHG6+QZ8{*h*oIGQ}1Vs~|DKh!3vAqVyQfc?XOsOp~{KXATC=qxJITU?L1_)g-zbY5H$aeYb(ms(f=cjSe(1TIp(7C?aTO|a(Bpb=TF55A~VGM@H>u-=IzjX8XQVVNJRHG}!4CGurj65;8H@^=B7h_xxY8 z%zrmnj?H9>6joFDl2e8rr}T-ulk*Ot!ef^j>~Ha-vxF~V?{a6J`_xBMtTn)s%9&O7 zSX8%5^AI}lz04*F^L*ekj)aXafS*I2FSl&m=DM-bXr-)pj~$~rRGeXofp-OSn(nM`KVh~%r(z){pi?&eWO&{ zBw^k5KaD%Lu&}^Vr=`UsiOUEFLF^u=c1@lP4$h_v(5AbLG#!$gJ>}>lEnO*>6XWKg zYjR#cX=FWX>2^JE$@?$EK3Bqg{3RyFSr4O-Ie*HgwSBNGfxCxoKAGiymzC9sRhqcz zkY#F^(^#=~=)X*LkJ-Ja_>Y8QSqRv3nDigTc+t{VEbTrf5)q3yWWnIRS6aKX<$f?J=_Q{wzIy%0g*-|+wjXktV zC*ZUB-v#`KvD_V!Nq?XolOKCp+&Mv^URSc~P~-ilPun5vi|#f&_yRF~fo5~K+_Gg~ z@qbxY6|;L{4gy zC&o53d3)Sa8NOOI^Eb*W!rsDW;8fT!&^SzP+2z^ya2Or(Kk?^oid`CGqO)?%#Q zJt!$B#qKuFB)uGKwPkC_DxE9++i9V$da3_S+Yud-IEB?2kI}1{F zd!ek(Ut{gcdKNaN-KX=)yp4)dZa6e!OC5cax4U-Q8AP4hKfAD2e)vPXW;JJ(lgFl3 z`5y_Lww!1lHAF=x#_kmZe{r_AT3Z*X2UQ=RRdA@kCf0MLi9CoQP!`K*Zhmq$<-GoB zQ@CrN<3Cfy$&wsVgi+crsXpOaXTB;c#=ZN0W$E`nH$N!pXK$}s=T&}#=&G2%Z}j`W zdo%VpVWsxV$FWbM{Hs~HqOv=`hA$_?#KfFNvNkqv$#NX4Qtqat{)g;Y#&hidmU=ex zMEkRK85ywI)i0;YvFoJ&=+Q5f;|Cr`M*0=&b~D_v|ETmfXauipfLztZOHG|2= z6E;;w4%wH_;dGTdf?eSI*4CYo&w`Y@{f0aa2Me4N`=$SzQ`@iPFv&2UN(yrlV?v14 z;lM3=j{mK+nQ=#O3jpEL@%q0buAr||z2BwnGJB}?@t*`Zj|~0<^oLVs-|b)jQkLYu zbeDcxjeOI$e!9c!v`{!$L6I7-_CJ76Zdv?x{G>koN!*gyEiVwq!~a2bIhp)cn@gJZ zms@WAUrfnE9rZml?yaimBDl=S|6Inb&TNc-M+CPVKAroYPa)+oB6YKTYp*O}UH?BK z@x*`S77(M{Rd{XgetbM>+kB`6_eEq!mX~I3kMpMh?WBUscY`Yam80U<760WzMFJvz%owJJ^w>GvkjbmG;S;M;ESy$_#YMGE+1rx+7pF9 zF!c9*8g_5IFbEefLyn_~QqPyMR|rH`pTg?PkMq74eFJ}Ul4jGnjfgE!@Wczw-&e~0nLqqY#n zJB)1iy8YDr-qe^#+;n7@f``qW7-(7yosnL*k1G|KG#^5MD(JsJeyt!}rjZCBniOGr|G5DXms@;}+TQ#Rzq) z9{7b_j@oX_yd=lPi5%rO;p$HbFRt+dE6R(uRHOun!uZd{X)RM8E^@Tb(XM!SUUnPb zV8Sl_EeI=6A-ed%SEL>IBmd=>WmFJvNKGzACCqvM#6o(Dad}rqAWq1TA8m>nQkb62 z1H{1Cw}^*&<$rnEJ;bWIF4yq=zLO8qcjJHGLM-kx_T?p2l7T39E+5^){VU>)@8u|- zzzcE-n<0qean29x!@$41v%7UAeD9U-CB1I_HX}~Tzkx&(e9`~<)Uz6&NRAfi>8;Bz zBbHD7?@uUR@Oh{ja$@FrY1PHqN8im51Rjz@AzbDjZ5ppf(0K~q%E`yik_~C<-amrf zy`zrwls@{yEz~=NSf^oYYr%-`QJBNEU&#KlS?<5y&M!&xRS!WLjV`?-VQTae1P8si&4-}Rjal9dKv9-|vtYIlx&xnk9E)aP zAxJMfI2<8`IDWOibvzky5(OM+NMjm|>r+0*gv91|abu+4gyF@%H4APaedf(lv}(PW zRd3@9~L{D6RuG!ZGw>L#F2EcF=|;OJsgu zMPiJSAZw4g-1Z3x1Jqzz#Lf`J3BV7L&fXz@Nx~T?ka=WLWz2y1%nuECLxwB6kk*7y zpvG{t{NKlS5FeXfZpQ{I;)zJJm0Aa2l!FX%!Jl*+)&PWvc&s3Ju2D3-Pj#aI|Jat? zD;L~J%g!wz_p|X%1~9P{AK&|b(&7=~0}FYZm>#dD=P19LYl&D0#hn{irN47b&@oEk zvY#(ltJ=FS1B(fsK*r(nkw`_}DZAbTzP#83k4OajV!Xek!o53_u$H%&oj*R@@ z6SLnJL0lLk@v5^Af(evm?SXOR)206DjYY)T{rD~po|qa&Fh%NgG=fkbkq8;_dvtk| zTh#gar1T(kU;kXLiYq)8pJ>Df>FYs{C}M(|11*9)wBIh4%=G{W_fd7wqvB*=rpxN^$-2yVpRoBXrn* z%;SdG0@h1LKmC&Hs-24&`et3 z;+@QM1S`xMjd24Rk-mC{^zjR1-az8wn2w*6;wkUaR71`{jhC37#B4uhJV`ht}B0T<6Fiu2ef~W zKNk)h;D9xF!6AO4@4RU39{XGeMwv3cWLCdx2r0L^Wb3gY#FLU;3YuUbyrGc&_qB*v zah_2@#DiR#qVI9o)}1NgrMknj5i|7J`>wBf0q6 zrMddPi+B_A>2mdBh_9{xBk40B;#beh?Jp1Mz$Y5@L;)4DfqOwfj~RqigOE!0cH!nnmE@cLX9kxdnxR>-Fi(a{rrUqn2TgKpYitoO9^@L5{zQO=nE2repdNg;>dN$#R5p$rrr14rv^MbEFWi2~ySN%K7HvOoHc1 z5a%qGUVQRZ0O5*Z;^BpXUj@65w8eM%TkIjY4aSWN^1X0F+>_1kVh_Z=ouH^+yuXw? zF(L#31idf*_=*6rqQ#5dc;Sm+)2|{ID(gk7+$&UBE$|7E^m@ykfme|{3V*%04%Ya> zE0cMTU=oU(7u1uv&|4Jvmt5+Outif3`Vrdbs{lfG$e3QN{rfROOH)W)ehoomjZ3C; zU$gw5I4z45 z1KxNL@m;WIHNs6mV!dPz3&fLsuep$l{~lBJ!db~fctzh=FW2YHHVzB)K>0@jow5KQ z#717e_lW#_sT*bPUVi&Af&w!4FDOnyiQoqe)QdM84u}6UF_48;sxn04UR(yutJIg3W75Gmy`*TeT5p_|3Yt62%+|6 zVlN*}91N44GCa{&whLN#7$UZDit_TW*ANf>&%#WRBCh|>NKt6M;}&q#+>Js|?cZ}G zwf-e6L}=nEy31$Ty!gSLi)W$0Ml9u@DY|o^-S{tWcniTqUte7O!ALT9 z5QO|^ZMpbi>A-2%ip_&qXw zZ*LgEqA_mC0S#`LJX+>8JS2-;kGRnLs!q2*Qy*ym+p+s28O7 zySO#R?I>=6(vk~p=BFJ=r@1xxl!{91Y~sR}d#nHh5rHm{@i_^lyq~IeX>2ff5m&eq zrYzRjqu~GaLY5=j>+%J~O5Q#JnqM6zQ;HQSxilvfM2@>?qT~Ds%7(Qv*34*R3g(L; z4ja>G*Z8dySxl2Vp2c$w=_{HPxoXGdZQBt{?s0Kp51mkDpeB;m$BTW{;75@D!j8e- zUr_tPDj^wMD#JMhyM$3_T<9dPaQD~#o(L|znwpZ*p<3HIUscjo3jd*`qRONQybg<4 zFA+GJjIR$odvv(}aFOiq&+dBaWOrBI>|Ss%5)z(HdME`&OV_eK z{1RTD>!nIbNxcTz&!*=BBlnC!c z7nd%$JA-(d!p+g^g9-*O53b*gQOLg)$Rr`|jG=YAt<+|zR}dK;6LWs&Can9?LBpH5 zGK^J7f`su?vCixuXC5!ITU|n;!+z4$ezqyV50g4qtz>f^#2qhDWt{gUy%8QX12{fof;q~LY^N9)C|)YQ})*RMafm~ff; z{w|zaxfEcb#{xX*lMndzNU#NI@J1Ggiwt>BHeh%m&VvUb(a}`fXiDc8BUXp%)Ct(( zQBf6cr$_J*q@<)#yco3%~-IT3zM$XqQv$OZ3YW&Jb^6f!3K9wOA9Mx5u zSDUAPQ|T%?iXb6gn{0^g^jkB3wbT8&lA9lXcT!EV}*R}46JQ^mrqY(!qX?ucduzjUrnH}W?7r8qxbx^WP>Ytr7ln?5HBh; z^dSZY1|FWv{@QrGH)?Z3gQvImP>#Ct!k6tRvl|>Xe|~jDG2OfQp{~vy))*2JvbQ$w zJl7HogdNIK?yinH+4q%@sv{*~B(I>*nf}8wl&ksXIqsyxY`~RkH@RF6WEP6VBI)9W z_#Zubgh{Ow#*4(h0lAj^t9(AO8oJZ= zg*HnenpJjY!-XXqRaEb!jHTkX*fFzwYv!z%B94?kQq^zCmdL1|y}}SmX1GHr6oyYY zu05zws%2hdP|>+OH)tH+S1oEDI`gDfnGnm5k1gzjii#!MXrW;@{*rfgcJ|6p-uhUD zb$2{>mU3P$+$x5}Y;K*Lmey=*u2oc2w8nXVZ75Is?c01bB04(riE78d`>h?X7-Atq z^ed4crazqT^hv{ymUnWI$OQxiZU6jwy)pG;AWIpWPou(0|7d54)qG5)#%cFYPx2~{ z{y?T8JiHx&T7ixroV{KD@gDEtTP=$Y=%2 zV`pc-Un2qH!v46o{rpdIkXo@(@VVuiflOvNN%?4Z1%*&fUcT;N#=kFJnqI4#jf+cT zp#?TE^>DkJ*RV4>JSK+Ir2ku_mXm05kDj4no?3}XUz#M7L5B*+US3{aacalDFCOeA zO>692l8;yNakbNKCK>?lv@!Tvy1OjKP0ndHTY`xb+>VyiEow;Jk*wynlYZ9MTTE0B zgG9H6l1EZ2(=jn^x6{{+)wx6ey?d=r5}XGHIM4%*P8WQXmDFSdouE*?)bzULnvG(s$ufo zuP7TuNyV%MrJN9X!NugPcy&!=^oI}SL6tS*J4+x3CrMQpS4O2sR_4^kQOT`mtu>qI zNE=IuI&ZKZmbIAmwEi;I7-VCueSykHgW>g-;#NV6_x4KZ!Qmk@XquNFZoYf>?lFt$ z?^3fE{^1DFY@}plfw;_>%6VD~oPZstJ#T1ji)FWlGoJUReq38hlS-%FprnaI8p37N zYk8AbV^FJ_r&VJ=;b_>KA`0?b6k}H5usH+Yk9S(mfc+WeaXLA$By4~&#;JF_z_+lR zZK^rl8zq;D%^&Mn3hD(ad!gY57=U8CuXw%1C8=Zha~BEdSoJB(#qI= zJa^mfWTn@xrLq2f*j?IdI#w>5H?+Uh*NmqWC&lV=umQR>mdkN#W4gYZdq38u?%x)7 z=t)`0HvIH;HPF|;O&FVnRH(y%6G5XY2d8tvGO^q&3=XTm!H@B{ot`r=yoLOmoPB&< z-TA@hEHD=i0Rh3ohugsU;_6sD*&Zny!x5?CkCg+l%I4%I2nWlnTU^vs)?D9b3##m#35 z=Z-4Y2j3R{ke?-Z;_y4IIM*3DY%ay7k8e4JcW4%%@uA&UcX=N6A?PC>oeJsxe5Ce7 z{_A?U%N#E$NEi4a#(ilKi{1~mhr<*ts%?O>lYb}c>TINylm>f}g*z)AWc*1pAFl+{ z2+HhmUHG%!OZ0pRI*|@9oYKcDyGQKS3r5eQVK49DK5w!604=110wpE`9s44JM7^gE z*a=dr|JYPQcDd$gISVv|{U1Dug@^iGANxf~7C#LwW8S!NnCq zv~9$}{sGw+O#Ng3f4X+>0KhUqzP`Q>$s}6N@p=gl>%I{S2O<+z+O3*YpoQe+S%4Qg zn5}BPH79Can)>0bkhMx-VSE{v z-(b;7R40fjfjQCU^yaJEEB)kM+}ET5qq>BiPw@=QQEwG6SUb~r3cEhn_-qy|6`E4_ zxB1f}>-n~DFBI&N+?2QAoxr|;xw4=B=>-Ot0XKlY?!=0xikY|4Y?NiY(`k2kyuw%ttRTRWk!lD@t<3M7|qYw5gjKb#CJ>LBKQ(dW@$h+ugFVvdXy{qLPvW zOEy7VTOwfdt87=u%%*nK`Q)ZZ+9xFzs$0j>SHIA@caNq`p~O;9gQ)^dXf&7|rFfhf z%NpLd?YPuSO6X};ZwmI?3+?=L-Mw?4?eyJ^Yz)Rc%LAF6;%-A!e6&*ImB8v!$F(Sy zUfG4NsNo{}$#)-aq7YWvFO^eMjhNs}M4AmRSJ{?=gt@qFqw`b{?Tem zMd0%E^r^mj2kUlkrXuy?!j*j6sqa?^1wP!om%WA%Wgnk!idjktJg!?#YnSc?0X{yD zIB^n}8~Lht}yI|`96UhnwFbr=%Bt~*Yy z;B-SR%W3D&>oc{92(7$2`}GOmhvZ6mTADd(CBS%#ylR9NrIYUGu1l$kxf&HNhg-LA z-v&P)Owqw|Rvt|DmCXvE*R0$*J6`8?Imm}?09RW|LgM5Q%=_8lV%daK7KqnEr}@4``ao|!t;jn2j@h&Ca-`|&(mJSLED&wdO)2X#zk3Ym`Uw=p_ z;N%2eQeSFF6kHq@ff)A#nyV6gKXzXPbGF3jMa8rxutpshKe1jNDe*#s5M&{tb50^G z8~|HDq`$<(P*3kS9VY#v&=Ds@AqTL=z zubp8_Y8(?xEF3LCX1%Myqa3GRX=BXOTWc2OOzGt=~XdQL3?s#{+jC%4+X@6B{ zGT^xQc+X^?rPGXq)Vi(cl&hkFn`AVE!;aA0K$+ zZcwcOO|tsa3uV3b*j&rIZ^;HW*U#4%ozLa`bl%%3At*c0*%h zj(V9?s+?-cAqhEoH$)v-15)u^!_Cd)dFkNTTfl}u!3|7Lp-qrfIVJKO)X4PIjDsS<~L2?j}37GyEi(1uM z7e_(?Fu)M-41wGMe?q(}iapWQ(Gkn2FD54^S7o;<^a+Phvy`2a^SGJ79h}LWf%|5{ zVBPtbT%3P;-i}ZQM?&+&0+5}c4SS3b&O0b=0@s}$*i;tdUI7koPy&MxJx313{#N`V z8c`I*zfESHP^t^!UvMxvDte?k(;zTj=g!N>SSXt;B+a$yIlylud2=5T$yPs@=ty1d9IT)zVGtle$63Jzu zyBbh;bTX1Ik-1Ye~mf%fNTr@(96PCK8^{#3i4yP2D>!F_?OJw=An z;Or&$l!NVq-#dZPkmlZ1&^qNQGU$B3(#fNAt-Yf|Awxl_;ELaH6q6wjFmXpm2Sk4= zO4c}cKX$_hz_Gebp9+rT#@jk$SV5rTVH%NA*0pQbpew(qs7N_m1sxRo8K3%s@Dey? zborw#bm<93qECDg-!!XAdyG0-TFN0% zgD41m;gh{lix|UtyW%ZF=Y@`_2-Xs{)z5_ddw++m&rTdi10Z}cZf`#YcOTp|3T|#! zP}Jz?=yIj{qormLz#9){4@0@RQ@eZFrV>^jNhxpe zGp56}&HXXwGg63-XRhs9pL8G-7j3exxu#nIm1Q;h}TafPZ0=KN0M!1D4ymh=~fM97!He%jr#pyLNk`U92&9LHld*RrwkcGN40gwaqv zBs|;}5-|v&*jpV1iwCxM#yvnv$rKw2i?15=5$sKk!)B7rHiYebKKc0!qmzPQ)vFZ; zzbl23NrGq;zvlx^lidy?-=xe(F_Y+x>dFwS;zGVV^84I)A`EOYK|xnQH08 zd#9L*Q4;RwV3A$0LTIEQgms+_V0H2A&N@=Anp~MMam)H7&6Ff2yh>fR9+z!D(dr^h zUOgT8Nx0$vW&y#Y`mW~Y=I-u1r5rV|y~i-DUH{NqGn`5h5zKFdEhX?cH7T{f5PWhTi(XzE4G-N@a0DGiVO*1g#6(4 zV)v~ZHzdIVS>016YyjSYZBforqRrYvQ-{oql%(X7XF8tqH$1f6Pi+Ys+Q0|NQ6sgz zjoB#N>a~>+P`&ean2CspPfebfUcW7DX&@^SQdSNQ2VffCC<;6c<{c#qUGgSy`)-&nPy{BQL_VdUxc^*p64l#{Yd*xn%E64+aW z`yCT=+(H~wz3~%8GKK}>b&Jkn(x~-^#xDtsPZfqj*ju-B3Ed~=*5!GG$*DLvIGCAj z!ErCGAoQM4Fxb)#tE;Qi%5&eCdZ)+~d?KECEzn9-OLxB43)`LBkm1iH{>bEV;#`9O zVZ+htxxMZC&Z_&j37zcSg^pex4JQwo4bN1~$H}ehWinDfqL%EAtu^=+4e85ON2{Qn z_3~9Qi8USekYOf6ayp4v8H4xB+yh+W)o<%II%{K;c~lM^)@IG|UQauU(OjRFkpmal zN{5h(1n<6~dI}2d;yUQvz<_}9TGy&DGv802F!-t=E4*+IO4+lsv$WV6pGCCmmv^0n zg-Ja@t8Bv#Jja!U{1t7?7Z06>1O&Xsy(#d59EDW$^VU5MPS`grK12|**H$}|FeKy~ z5P-?Yb)3CxA`Oys0(&SO$3Z$y;};Z?g~9gNG599^;?*Yb7Lid=>)uYk9~YkQ-h;>n z#J%eC=g*Mzg%s^Kh%e=g`L!hd?eezXl<0&#Ka8N|H6RNev;F|#UX-$Ka4e^NmmXu( zkZt54PcT_u=}O9mo>ZZL6wO?B%*jEU!xMLFnvY;&?yGI7_%&Lz*f=DfB0hDy^_i(J ze_(zLava)%!x*UIW6U1O7<@NhH4kOD*NVSoxzL;{nVRrrR{+xL5DwHpc7>{l1Ywau z(}4pbJo#idmrj1)X>Vmc%xTeQPb9rCj;G~hidXd<3Yl?pz6EHW{GvWyNfhjObme5h zIasu63g9GziGoDL%a<>~Sy#+dFrKKcaQpy{O+$0@`DQag@6}rda^WS#8!5>&^xuP{ zqS%3UhVhO~dqn7v?GO&cgJ9#}XeBR>?apWH?dABq+9O0pb2a|+V#%Ekt0l52f^=r~ zM6^+m&nLXtB=MH0fNBvzlhStgkr2C>p^Ac&;Rwc`;6?@O3x_=SE=_4nH06|}gLIUq z!(6a%N(>~@K!8pm0cqxKdAw(q?$3}q_O8N3df_;Q&+888T|~P0cYdOEbEp3aLQ|eN zQqLu>S{WsQW80O$tDP?OWQp;G5}uQMRI9se5cl41;5#~v@>k3Xl!t$|UR+E1x;H`r ztA^;Q7o^P8wjczu5-5ZwgV~hhHZ#czTyq^CNjN!2spRQ2?G{_f6N;;usHxlc_;hWZG3PS!XpBg^KfF}HW7kaGPUDR~n)5FQRT8$2v8G|<<?#edaf2HLX_k10ncLg9t2_2ZVUcB~!-XKAkC+U~?IfuWLuss; z4!4zB_($h|3BUw20Vlt4;U}*0qH}fMpg@Fhshp^z#ot+3S*3)B`#TPBgrNxy+dA3> z;GWl_&A6#8hx;$mpI9B$)oEuaR+%@`ojZNmd}_5_d8q9&HkT1$`*I*7?mXdjhV8gW`m@Y|BP=V0##cG!t5vBJ%y)DNToW8o7mZhp$Z2Er zq@tx`*`OJxM@}~V>b)l%I~9xZDEID#o0CE1D=ke*NqWt$ZuE06f0uFB0KKyN?1z8= zYt6|FH4H8eEC}*$7sz0cdMAI22w5G>iBZbphPu#FUwSGErYaAj1orFKuZQGP*(wEm zl{W8tjK&Ido8eRNpDIu(=;*p!q81^aj>xPpj}g;@r1SaUGMgY1GBPohnT;Co%u_37 z_CrQOKYkTyOLVa;m!oxQxF{V>rzc4eQemHQDN_9J(W;k9Aivh)kzWuthAn{XU|1o} zeaj=?EkoUoFVDcG57*MQv)h9WCMF_sadqunITQPcN>FPt$z$yttd%!e?YRB^28sez zxXsJrpP!V}By}M{1^NSySVyE zIZ9c{NlCRZEyI}d9-)AV$uhXb;3K~&;jbbl;B`9zdG5%whfD#1+d(3fA?8a8^lPPm z{`}bnJ|l#ol=5jJ;-MllGc!Dga}T{2+LlBkS`!^ZMbExGiKfU1Xs4nzBHKp9{wzQ( zQ0rypTiq)4`+stz>@=yvghR1ttmdC6;qwT z=NYP1=Jid|QfGR5%|+NsIrvUHulg6|$=x2FRrDCC71`G9&=5B49JVW&j+D5ZcE!K8 zzzIm}vDjHX?=9+^IF?@7dxFBAk`!N@aV9@Wxf{sfdx*M7-=;EWxV62x83ikH`~dk4 z%0oOMM6&a0ZR5il8i zvPnx+%7Q}IB%;2xIwHFAH&cNsv{mnHW~h`_TMbWvsuC1baq-_7NUIHl)dmyJ(ch2M zLNb3~&=t#W*o9a1SS0QSBam?uSOv-gCy-8D?2J){n#o96yPKeB`wZLz4-XGW-jk7%KDv7|M~U#K5H^CB zSO(+)|F^ZZ75-Jru^TJ51UHLz&Zz$9Ptb@(j@t|0zENaEl2B8>fnsOGd9TXyWZgM< z{dMPO$MEb?5@}HLL?&#Dq(29Z8l8uw0P!MZljv0o^&kWpEwhO1s(JX}fdp9}R9LWS z)$}TW3xoXqA2S(9c-_H-EXjk15AWUNfAQiw*jFg7=}!nP9FwrI9e@oxhia_u#R~%0 z_HgP*ILA9Wdij^YJhK9}mC=M=2(Q86L;dHtP$BsSLFt=6D#3?oR!%&MR4{R&W-M5Ux)=5i*4i6F#JMlhesPiKit;2j1nIJQ4gLe4nh%ge`h@_Mx6^x>t& z;jc{EpQCs0{xIa6p*UH|f> z96U50*CUmj_^(5VK)hPF`Tk~I9v+bWd`R1U7otWD1yqb18NE>R7GWmy+8kJ9kV*ij85HX&&AQsjyyL`&}>#EDBx+Bn&{cm_z*os;8+BO8Ejyp>_vw1ds&y zz7rqcPhIdQM&9I=81)e4nYKgG{!RZkh#W0Xk8G2BRKOIon2qeLjgKz#F+d$SS3bQ9 z^6s7JrttW1O%MaqaOQl@t;6j__x*8ui27YNrd~pUR~_tcx-`M)ys2KT^zvX%6=bbe zN6Qe}4lV$jk4dFq)SKd)JS1i36fz&mYr)9=+#u>9q@Z%3CJmOMI^tf)VH#D3%g2u& z>7ddJ7fqK=fUN7?+qWGTq71d1SD72>bZ$v2-wl7thfEMKD4g7Rt};)pK-ERaPRJkL zQzkK46kQawz*D*VV-UROs(b4b71qsbq^n&0u#bq;4oSLb{jGb>kxQq(=j6tj#rsT? z_WR}8;hz8bFJt)k!xdb3Ox1SOPZKg9hsm4XqWc61S9i!b9$NH4$rlXTD6MYmc?eo* z8vW!1W51K21VAK1rse`V>SZ~P_EuLA@EUO9$?g`pY1W+`Wt~v}7;RI~ua#Q}-{x72 zS$wV?S&&=YdQ|ytf?Vp!zRq`l%H=TDqREq)Y3#05l00L22{y4;Gy<|8p>mgeU_>F- z<27s2Hc3h|%9>Yn#F~oyM%_I6^gS<)Zsn%*oa8xR_!@04PTFbo@lXIdjZItiI=U^DHOu%j5XZ{vBr^o z=K4)-2k$lkfbwC8J{2MoA|j$RiKwlk)1j&xHtI8FDIpoX-?C-b@RdbB{U?i>Ad7Dh zJwo5#V4Ot@+&Sqkk$;}sUydUw;U9~YMUXv+ENNt9B+BM3o1uWn=O!d*3(7aP+zOum zG|#hl?hv|8wjY?O*Mtb<0rD`D`}Pw3cI6XU=>F;A&qLKr^`qqVAY1DdDc`81hom+I z%b87?+6^w#hFiz>OYRB%u{J{tK3<-P%D7C}%-zfWAdK&;wiIHyX1;?$?kdamg=vLZ zYq@HNoo!%LDoncLFOUw&=0aRPGBN$9?K{#+q}b;;K3o^UwN<1Zjd9qhNF~$Lr(ZXm_XHNO zC$uN)B5Q|86T}ma+|^8l$+47>y{*8oQg;1En6cU>KgJ=m!>08Z6dr6X$Ah**=`KS< zLu@zi2|_}`#G_BkiA}#qD@hHX8~QDNZ6KoeziJ*pTwI6*Ol{2zB(|MU@lt>5Ua4@!Tsk6A0| zB%l+F`tQLA@$}U13^Mjlj`IVl-ag*lrmu8H76T4oE0J;EpW<{6b%!v5)9&w|HFV0x zV&guj+$vW`?oMdbRcxOcO0=Dniv)?#Y`sK4T`0t!c_!=Wt5e7VL%r>v{`O=IpHJ49 zCp*ttdTgqSQ0j@Yz4o}DBDG&;?vt>6Bim}lIP&7xgeVWJITRSV)CGhIu^7?s&p*ZT zle3woP#wm4nF!rd9>gj1Ss&|$C&#Z@)}&6lu8%$JQ(Rh)bmCon-Bl647`@0s0J&tS zhe6_Vc4XSI7<8osm~tYbq-pWYO7#KUI!9E$g|HBnmVfJ%_5N_tS|x)-P||jMX6?lC z^Yo|W&*z7ObB5~NG2qETNCAF{fq@+VDWaHKY(CBb`JSwS(%X+R>j=^|D^hy!==^li z{jdI8@ZD(&%S)K0!fUICS_|>Z6L-e_ZdTkA^8SQ>I{OD+0JwqF)yQPR)#W;72y4JQ z0@Zy4WpywWW{jt#0(u#8^6Qhlb0gQ#QP}@6&d2{4r=|1@?S}eS^k`Hj-Y|2>c5Xrd zt)V;+qLwoOdGn>-)YKR<`NQmN`;!waqmrt-AJ^!(&%c%>(248 z@!zY=5vzxDf9>#CemQ`>f`xJ!clvPv7Xkag^$dkDLd*`O_T%z4;-Z;%0m}nkRdV~{ z@bMU=E@8wSRQ5W$@Dr8JGkRhz2jYFbG~F}Ka21?n0>0zc9h_KktnO5MZ_^Nv;4?_-EOTvbit1rW40$OmV z*WNjhgi@;Hx&Iilj})^V(#w=-sX<2(Uv%k`q+>p;?sg<>czXJ^8{aJrbL1r90^vpB z_ojaOqbVdKqI{W1Q*Ei9()}>AN@*wR7F$*&Qle;ad4>?*QOo5 zfPJDSOcXyoy5;Ixre|2Eh`3cN-D>XAS>O4}_N0cqIk9fCBB~O%j*CFo!`l~%#L|rI zPFE=c>jfbdpU({xto|%z`n=9SeC|qMBk-rw($kNRj(E0Oh`YJA5tZ4k5h$D{&~N;L z0I8&sJi$dwK|w+5_>-@1YfH;FuvI$MiQhk5&Bu81up@?XIkc2^GcuqTy@1vYxHDt}~Qn`}q zrap>d((0)r+FrU;z~wA>e8}OgdJp*S#$cT)ou@C~od0e9%zjN{sUZVM55SoG@u%eE zh7dhKmaG(Ym{vTv>&~1)_HT1`*CU(lZiG`MEsdxv0MyhIjlgB&rPeVdkCorP-GCGw zn0C`gZE_tR8sH3u@OVJB4Psv~Q+z()q(M9~98W$8M9a#n^@HRlBhM6IG~EF>l=?)? zjOP3+1ZeVU5(s>OTF(9Z_mwgfAh>}7K13=j=@s}tP^)xA9fD|UE35bK-xsSvRA?U{lq{8w zf{F@>7<1XbtKrI9C)cQniIV}xg7852bwlf-RC%6Bii?9X)^KsD#_)n{EtG9xlig2u zhaguMh_A4~DR8!PwPmvPag=wmokRlL7(&OR8qmivWakaUfq=XL;D;IO#Gfk5%JUry zrdl&VSgHsu#+{thg0QEiuQTAjQJ+W{Djuz=BWWhm46prVG0ib)>zgT1BSv6!$K}Vy z&kk=U@hCC&0#@&zKZKJ-HhW|+ynk9U&#ym-SdAG{J&lojVI~f!0D#d#))E0ZhB^*9 zvC!{$9njL0kXfgo_>)sMVFDXhVKon8fankf&y;h!ZA)J&1K^ENr3NS96$A&kos)S) z92^LY0X!qHB_l5>n00RM8mK_i5!{{HO-f1v(PDsN5yX-xgaCtJbUoSuGG#+p3mKq= zPRKqG5fj5TLqm1Rb>9p@+?EommyQ}85y9fPH3x)*-P>OoqGw}M!ELQ}JXdk%<>Eqk z`?PAsU$`8tV3m-$se{7O>G3`SHUYR@nXG}W{XIZYbVV~$v$ERvf0L!J*$EL!Ztd#Q z0y_j=vq8s~0*H6CwY9gK;1gUv)A?m=x$JfGe9<8*^8gJ!- zG8ZBRGpK$p(t%yh>dnH`PM!ug^9c&F_?Ni-eIkf7~K~lqD$zg-DK)@;8}8_=-O^eV1Xkre4e95`dU*en^C3$ASU` zs!)i2z^5`0t6k$XuqTCNb@vgY9xy;Jdk$I>Y}tDCb|Bge#MKco0eI|kR7j85-hPc8 zhf=;J_)gN?`sdnLqi$)InyTvP%s?UllolnauqPT|0ZX}P>j1z9Kp=?m0RW+vtHDm_ zc?o<3a^YP7A7_6}u$Yg18(MLOm;-eE5-VUN9`m?3K#suzBK(7m*X`4tki8argiLt# z+BF193WX5z;u-?ZMeVN`XjBVR0C^5xoQ;mf{U^`Qzu@z_X&^td`>T=>0u(R;8_nkf z*+Di-8TNHF?=)-=yb2+C!gFy^QO!E@@zdhsMGoGWZuj1%$UKcF0MN?q>9165ueSTr z&ChrqdcIYpIQ%U7%i7Tzm259(=ABj}7X@VZ9G2cC?y&DF8haIZN@RbBJq+D9P6@T1 zSYR|k?wi2S&E?No;?EQ{s17{4A0cEDwmM z9tod>gob*dm6puAxw#$w9jmZa??`DP&5DEk=p97H+1N2X%q#;6g73Vqy_zo>(kiNK z*06cym@bvR(x1@>YEuo$%gk>E=jxwUU=R! zA#X*t+DoCTMaRQa3#93_3IQ7osB$*vy}t+~T!ktEGCn&ioxn2=;l|;ucs5I&ccXLR zW&rl%2Cf3f4436Zn1z*;R1o=f$w6wESwR&M8ImvnTC|a0=bn8Q5D;itZwF<700w=$ z_gE=a3^N_o3D9ZDJqKIu^o!>W;7;8pjAk)2v90U3I0SspP-2ZJ`8Fn%iuN6;whe%0 za3?Irvs*)YQ}t+iq-I!5T6z*NIEa#lcI`vwcK4#Ix@zG4T*4@81^uylxj`fPA81FU zZ0HubdSe(kUHPrpQr+~{YsM=Y3BOc7xz#=Gf-P+{=U|ptGO=XWmi=JPEw-632!=oD2TPx~g9a%@XBPMjwElj-N^Jlor@@PF}`#)JE!Zo?5R zEh2;hpt4e8z|v@g8qw2BQ7labSpe@Yp2<*3Nhu=M0%cyihdmEbK8%OH3K$;-Ipf^I zY_n%k5+FQ%M$aQAGp@cJ0i))L2GEoIYI(OzfR>X%R0J*`SRBfZmx$D%Tt@VBW2?Wv z3n2R`>KF>e@LH%iLzvBM0jM3?%{s(1(4XRRalldAPV- zAi98cmA{?-32A?*26*3nB=@BtYPgm^_KOzMA+?^?>_*}rn9hs9^J-fO9>P&~lk$2)2zV4aebk(AIXZ6pY=L5Q6vgpaV<$jsFFWROQQI}k&%-SSd{3hlN?FO-s2?q>Tf;WlU$;k!l$gS%AmY|h33f;uvd;>_euQ?7H>X*Gv=Pq zFXF8Nm-|iVZenpV>y7J}D(Js4EkY8H(7gY8(CCTr&!BxPKqX>i4C!7}S68Q|I&0FsN_*WZGV`If60)qW=IQ%*|P0Y3XjrH$!DL8!A~pF`-98Y{M4fBz^sP zaGh_2`_ofU__ze^9Iw|Ad&1|}rGp8SmEw{jqM}644r@;ZzNAE6L;4J{;nM1Arye6* zg_f~Y5Kn_{XmqryxVV3KSXEiMZ0(^*jghf2WkNSEI88H+{?O9Jmnvt8S7*H#2q+T; zg?`8#x0>s0NiqkJ9Z{k=dbZDtDU1T9HG$jN4h-g2fGap2D0l9FZLsO{QdohP50m%#U&-AHQ#)q-S|jqYLGlQn3d|9TDJ+Ax%F91*c>r~2BRBCJo= zl@&3i_E`)iFAPQs-Xzt1tULO!g8VSdg=YqZm(+WXW9A9#GgirI3FD+Je!RkKg`X+! zed7OmRL6Gc!c$T2^9mOoeAzYdroe{>JMiEPCsZu8D~hRkaBvR@2{|1{kR%9xTJ~w* zGeXElS|=hZdI%e~ySoc=NM&pd3Ef=nIw`jr$kOk;v4A6?9wl_=?KMCfOenE75>m)d zOD>2801$TlWd{UPfb-k^*3jKe&(7}H;Dc^U7ev%0s7iwsh=3zwc4#HaP?VOI!sEdO zf_!|Q9t(q?!G?D~p&Q%fg&2{$Y)gB)xB>$1j|B;R(8Az@K-uY~nLifoo%{E5N9<{S zN9I&lpMZ@4khDsno^L_|K}DJaNZF_M`H$Y-Z;XwjV*G1)gNsW?K*)?=zWf1hA~h9N z1f3=abgS^Nzij^i+1v5@;ga86szb@p2S5*tJ&tPozr~kOw-eo>Fvu{pKPyj z5+Hl_Cp2OIr7FM4`^_=;*v*v%$F8CMGwc1>hL62_Y` z0#b~H`T1z<6QDG(u_K`;5RmH}R8-60Q-hQEoQdfnr5&)W=P%ful^zXuclUeu0)X93 z5;SX^Y$eHawQ6vk)RDeeYuh2ZAqN$1S}9Ez~Re`ufh!&d|0AJ()lhXr)N|Ci#?uqq4l*0XBxnRbn?QCk^Bd zu}u*F0bm%#;0Txlfv!PLgf1=+ZY2g~@sm>DZC%y6Q52+aqRBgNrr0K`f-FZC`*jVo z9!(RKU-uF_Hp@<(Dz6!@n@zSD^A+smDV;}|M?oq0SWKW(AheS=d450pn@>pa%g&as zwXk;w!6Bg^!XtI(=Y2YxRA>ayJgd3nEtAw&oS^bUieW| zbLd}giIo4ulkaXmT&V&Sw#`+yl&%wb;+9txvHkzHP~5?R?c-}j@5xX$ zJShhUhk*&KkdGgmz|{cUh!qeDNUOYR=6HI<%qPO&TqgyQ^ZRGZ07_9(Pym=*(U-+L zWvadMNJx+m!NjFXeoz!S&dUmQ>7u1d^kDDd+Wlar?} zTj9@9-2Smr<9fUYZMU$$*h^-Id#jHhsBtTIjELO4d6THF7JNxbG|zYMUIt9^@*xw7 zi;MH})&EwRuatKrYzunWt?7Cr43i+;1tI zOtZ)xq5a8E{46iA7*i)KkrhBahlXy0u7HxYv!kP;b6{2$bp`wLiXK$&`ix5AR>=NB z+fRIOu_lIJQbUU*;@7HY{yU$Lm-ieXm)hlT2|o^; z^PWXx?TUztKXg>;@COaaL{3f)-A_Qv0|zZFd_IxZ9 zRMjP0q>`dJzTRkAPfgSM+muNQR|OXs!1^Tnnh!$1m_4K;b4!~OQ&&tTNlyme5a}AH@dd}>bcUh1V*V%`$yYbg>i}qW~x1Q8WF=>3Ouw?81bXQF1CNrgPbeO>D$sTh0Nf;KibA|gI5Thepy<-zlxO){HDX)Oooz@ z(u0AInJXHQB-jO&1@&=iE_Sa*9ZK+LirLA?ZW5AIqe#yV3iF!|xX1Cau_tq_55bL^4gr}!PJ~>GXg|xQJ56JC4HD8bjmDq3|6u`Ok7gT!U7v8+ zYgRhN#p0R$l0o6V#;?5|ux$3cTtiAqX+Z}YwZ8UL*7gbYd-|-G6t~ z(DG97ekvD&4w=Zv$o=i@Hy^24II>ebL*k`6J5p*L`6Z>&^bB>w!+jcm9=IrI1wPAi zJg5HzlGERheD7Xv3A6pr>+!y~A2?gQM2ENqGNYB1l`*XCuT^&auk|N2>IVzAZW}lV zw+k-HZ&moHmw0dyPI~>BQJ!XvWvxDp+5c|`-&rF2?3Kc?74Z0_#(how{l#h4**Q7a zu3iN*UG{dGk0TE7-qymx%>Y1CQB#BA0>G`+U|Rs+jnFXd(Nq}^BilRM+xvRZ%lvcq z2$?!6&#L9$G$V}zvAXccn!A+fP| zXlPIA=`GC60$$?;&O%O@)9r+fPsG7X(~^$rEGYF0D8Z*>u|_g=O}zu|gq~vJe)1s` zHSXIp?TcY+l}E%)zZI3jytVI5)V;B;dzW@pb8Pc>ti*cAoGR1gr?N(ggVb7?spAbV zU->83Z}F1Vr1t!|XBz(Hz$Z`Wo7wNWcX-X)>B>9+6F`U(g!f;FP>@#5lZ&o`ixFk=&sUOOaCx4HeEK@7$o!v1p5wB()R094O zI2{0D!{>5f052PY>{^FSqNj+L2VdgUxx~WX(Xw^Go~?`*0&ryG5aGZ1tJcCk+um2Y zh2+!H+WHdt@ZbP6YWm34>FMd-N{VnXz+EOoizSo;AiF$T@@5|lV__j9ZotCQ5~a%L z8}<1J(1u3E7T{5!DQ#qA1UyR`tSs18*#7q%jo^!fMMNz8{R^R}`i&c2)zw^dky%Me zg_g5I!IKJL0QX_iMwPthMppXU%>3qMG z_`3IS1mHZI0sjM%Ko9_rm02XDr5V5v*{k{{CbS$}AN`*@U;QIlMC!)hc9CN}JyRW) zF{iEs>g&{wk8x33x{uFxWOtIi_j~1dad#h2t(9z_1k~M79;-cP`$&izAjP8F`2JC& zATJsp7O@%b1eN6mx^}osYL5}~st`R&d3d;hLRhIkN^Xj$qLSS5ZaV$TWOQ6y5m8@5 z(~c;Pa6@C!=X*SbHXLyp{z%OO%bUKI{w+i_w5DFucQUz3zNl%)KeFW;_po?dJY%F> z{l>afvcaA3{)6N3s+j`^8m?;oS5LM7-uM{Z=T7d=`j^%4!0_k5&xek_%bu0RG4eIw zjXoV2v$F%}4!oc|FM}tpUQnLF^Ho0LKJz1@> zv2kutP!W3=6V3fzWKt553Lq0i3sh)4(IVUDt+E~+Q0@9J|M`OlRcvrwA+Ofi+6wKn zkDv$P!-o$oPEb$afHqGE7+p7K1hur{!DfVq55TO9dG}Kf5YRoS13}dZ3IkhPR#x35 z&|23d{DX;!$;4E2`yrXnryuBxNi*l3J_viOV{$+dawx7esPI~S zb#Hd{Nz*9jTfmG*5}))Buj~u9S^T#3s5fYDZ!a4#pS-K9{@X|LB?fa+{7M6BP}}?W zudKJd!oyYcNlOal3PUL|s?F3>zO@Vu%#Vy(3kNm;^G6$;y?+`;iP6e(*9={?L9g+; z%l&VEl;6p3nxM20Rs=c-)2BspH`hjuD)|rM3hTeT(%B*s#rIk!!wfyCP~~LOogNj1 zcx2GpKg!^jTG7Gx!&jO*lE%_M`kzH`p%Ci5R4Fgiz%F=PsrNE8QyA|j!~3UbeEy|^ z=j_lP{@Ah^izNw4Ht_f$4PXi>sHw9uGq)V7cXn*Uv4-=HDdb}v?Z-M$u ze-gY;|KN~IMu>IWM(9-pq=)+71H><#g2DgM@Eo+Min%#^4PE(?wCiWT( zE*Ck(?WOxDICqG)cLl%JHAk7s$$`m?N8*~@4y!+*E$JDaCyUD-UMUgYL8 z%k~njBpdgG+mlwgzHbrG2c4FZvT^8w*UbFs}K*#T@4Q4_>0t-^ar#apx_tw-_*_93B?iUU*h!vG}{a!6kPv?gqgk zft&5YuRr`{Y-Q%H<3FGExJ|o=ohcp-T(7v!8ZnBuhnMkOPUYGx8rkUt7W%H%vS33j zdvEt`#N&OnHHsg1*ZYh|=uJHKHSdRnYt&=XIG4?&_mxhl>gx9s2#k%4cx;Tk^BLO8 zEZ9C4%+D{yac@UfAK}SJ* z7U})DUkhJ}cSIb1+;*&S=qdi=LUT@jW{u&lfW-77^jDajxL`>e+x3tS?{`*L=W*_y zY#YY%B`Q2R6l`sm*QkmJiE4$mXewHa!O9}GqlG`!Jlk{gbH^BaKR9&1Rlde_Y3NSU zGkayqM(Vz7)F|s(>sG|Ntqtj?FCDvxnTzmJ-A;Hi$|tCRH*NZfcJ-rAo7>K}sa5qX z%_?L(_i}@P+L{_D|20x8%XM^alS!JCxp9k^4&6wX5kuxvO_JAR@aLyT)sN7NFX0qV z?oFx{h;y@d@*cRaX{*^FFund$+Kp>?sB)bp)vVXtU|dZY?`j7DZ!NDo&(ZfQ@1Oph zn_tz?4FB+fvLcBXBmXC#*N0n_j~;~|?-NTXeSA_F41DXe=F0gJ-?8(pEXpGZ1k;}ox<8@ulayw^k({WRviet;q@ZR^P#}XG5Ny2 z)XOjzF*gA0f)f(6L*}2yM!Pz`)Q2@Oas8!$vy&YGtCZoK2!0G=HW>Zc*@*KVTH(k5 z*hcGvjp;96aPFj{H8YcNYuXjQ+WOMIPOF@nb)6Xh{{1AR%e&v*3k$I?p zG{0c>w+gM{Z+L!JRSIyfKw-Gm4H`{;bl*zOa+dx~Vp3kaEstWLv z#3ju+RG;|HcKsC@`o*Syt9Q4PCi0Xaua;+F9vvK18oBopnUKeO`_-;V`xDMNMa9`N z^MSP?X^Y+zu<6HibPHNq(KXKERqt$NA*H2+S{j3=>H|}S@Q%QC)?30 zb)ix2?mZXUQzwIyN0^mjE_Npqi_TAuIdbu<)%-d`MW}uFuP3y-I&Y;&zCa4k=HFAZf$$1BqqGqzRsP5M2!}8 zSJ5w=tc_GkCW;}L(~{ac>uTaJ(*TQCcvl%N#ttGO^}k%6l}TYMO{JbFL83P59i^@{ zLJfM?)s?AP#k097yWW#L^yv|4RMdWKobbUxi<`1Pl2?fDXQDvy6W@aVBDRyQw+?Ct z##MbZ_-~XNXk71|en>_wbo`6CuOyHv9GCFc?ft}cN|rn~HFG@08g{3ChaMuo*s;(! z&Rdn0ZO?GlyW{%)j#t(5#&B;3d=k^ug;79LYIRb&gviV3(p0m}@{`rUd{yT?(S^TH zZOXi(Zt=CO1P?7t$IMe$)pom>Ise8jWyYWzj4-PDP%-PcWKEx@j9M)`Ao+Eh!qITP z`@Z}WEGbms&a4T`6Lo&#Qp6-cB&1?7Ic;4*zm?KI(@xik+VTs@YU*bkO6@I%(1}M- zal^{pdHLo0jQ0NiOiB4t@}?P&CwrtMt5}`<3e_&t%U3RL_M*~ZI#?3;eTVTycQo~b zcH^ljm05U3$}Q$EI1ewRh3Aw=NkOL|{Hl z{+c_H>wdo89e;YTk=Q*}Q5TlnL*?p9{r>%1O-+*hb_G;1rHCy8_g_g#(Iw-2YLZye zwcN&e{k1V_WlZZ`D)uF7nIp_6*5!DD=GAKlChhGHx5S6VABsP?Ms@YmVH1(FgC#oa zhmh&aKPKrqhUq$yqOGP87D;E8$R~>i54hX)#HucA8WL^CX$ylf>r0bQ2SRrnkN|f; zh`$fftlYOx0X7793jwN5ks7;u_4)Bos-uFCFnL$Kn1Y;e8Z_6c@5AS*SleWi0|U(D z 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 s7P|GO3dW%Hq>d9%?(rX6a=oB(xzjBKQy zO}8jTDzJ8{kwFku&E`%gZTF?ZHpmJID1@D#>Wa9eCvxnp#YNKc{lqB-+p;Hv4``g( z4$|={eE4^)kwN_Pd__c*;$KvKl>&l>}@bE&Oo(oFuS5m z6Djd|P-DUFgK_7F%q}ak8x5lu>p8&hS7>)gp}l`LSNZXp@@*~;WvaMeY}G-sjm1<$ zsQL85d+vGWhzcpa)vTzCeek78-j@4L-yCb^=;|pcz#U$E@*=jk}V`M_Sx7NwunpM~kExlHknvD^tIg%WyD;J&m+t|Yx#Bfbe@o24l4KLI4^z+9&gA{O$=lQ7mX zkyO_~0g7YmRch=bE(_DE!W(MvpuE6woPpaO>0Ssj4FmY@J?ewXZYzf!c2-!p&o+&s zFhXk}fxIt7*;VEKob6GCXQ@ZN3Jof~6HUry#rFZfiV}PGS5wo~IZ1AFROkPCVhD&# z)KiSk;j5%(KG-{pv4YX!%PPs}<{w2#${Dm8hD}M^RPwL!m)L{KR-LsT=4ZI`xCu)V z0nDNO9HM+f7xk=a09TZFla*aSFv1Pg^#GJ>o3AOg4fg;h`F3?pm|Ti{107Gg8hIIp z*y=VM14!`*X4-U+TWhUQ&^il0#ZfwU27VZ6f-#IoB;f5m>y@IF_s`F_&bdsaHa`nI zF*q7}bv;>@MJ6*G^;m~klU-4>()1Te#y1Kca#dtQpA%;VQZt|p{0v1)7{@OqaM+r* z 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

EXcuU*@Mo_LwSIF(HWhbKocTg6e8l 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

tYCl9ks8ddLPY-G+ATRBCq+o=^=&L_z1~a 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 z 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�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

y;)hJ{HTHbLEcDxqtajyo7He^ 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 z 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�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 R0?2@0jnDvqn&1x&{vUoCvV;Ht literal 0 HcmV?d00001 diff --git a/hs_err_pid28220.log b/hs_err_pid28220.log new file mode 100644 index 0000000..37b03ef --- /dev/null +++ b/hs_err_pid28220.log @@ -0,0 +1,2420 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (mmap) failed to map 855638016 bytes. Error detail: G1 virtual space +# Possible reasons: +# The system is out of physical RAM or swap space +# This process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Zero Based Compressed Oops mode in which the Java heap is +# placed in the first 32GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 32GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (os_windows.cpp:3703), pid=28220, tid=13556 +# +# JRE version: Java(TM) SE Runtime Environment Oracle GraalVM 23.0.1+11.1 (23.0.1+11) (build 23.0.1+11-jvmci-b01) +# Java VM: Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 23.0.1+11.1 (23.0.1+11-jvmci-b01, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Core dump will be written. Default location: C:\KNEļ\coding\java\KLALB\hs_err_pid28220.mdmp +# + +--------------- S U M M A R Y ------------ + +Command Line: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions --add-exports=java.base/jdk.internal.misc=jdk.graal.compiler -XX:+ShowCodeDetailsInExceptionMessages --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/jdk.internal.foreign=ALL-UNNAMED org.kne.cloud.network.monitor.TimestampMonitor + +Host: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 56 cores, 63G, Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) +Time: Wed Oct 29 17:48:51 2025 Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) elapsed time: 261.462283 seconds (0d 0h 4m 21s) + +--------------- T H R E A D --------------- + +Current thread (0x0000016c7e80d430): VMThread "VM Thread" [id=13556, stack(0x0000000f5c200000,0x0000000f5c300000) (1024K)] + +Stack: [0x0000000f5c200000,0x0000000f5c300000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x6e08b9] (no source info available) +V [jvm.dll+0x87dc83] (no source info available) +V [jvm.dll+0x88010e] (no source info available) +V [jvm.dll+0x8807e3] (no source info available) +V [jvm.dll+0x27aee6] (no source info available) +V [jvm.dll+0x6dd1c5] (no source info available) +V [jvm.dll+0x6d104a] (no source info available) +V [jvm.dll+0x35b3ea] (no source info available) +V [jvm.dll+0x3637f6] (no source info available) +V [jvm.dll+0x34fd5e] (no source info available) +V [jvm.dll+0x34fff8] (no source info available) +V [jvm.dll+0x3289cc] (no source info available) +V [jvm.dll+0x328a5a] (no source info available) +V [jvm.dll+0x374c92] (no source info available) +V [jvm.dll+0x373392] (no source info available) +V [jvm.dll+0x3281a7] (no source info available) +V [jvm.dll+0x372b44] (no source info available) +V [jvm.dll+0x886720] (no source info available) +V [jvm.dll+0x887a47] (no source info available) +V [jvm.dll+0x887f78] (no source info available) +V [jvm.dll+0x888213] (no source info available) +V [jvm.dll+0x824f8b] (no source info available) +V [jvm.dll+0x6df065] (no source info available) +C [ucrtbase.dll+0x26b4c] (no source info available) +C [KERNEL32.DLL+0x14de0] (no source info available) +C [ntdll.dll+0x7e3db] (no source info available) + +VM_Operation (0x0000000f5d1fefe0): G1CollectForAllocation, mode: safepoint, requested by thread 0x0000016c582cb070 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x0000016c5de0b5d0, length=67, elements={ +0x0000016c60b2eec0, 0x0000016c580e9e50, 0x0000016c580eca70, 0x0000016c580edef0, +0x0000016c580ee950, 0x0000016c580fb990, 0x0000016c580fc800, 0x0000016c58109860, +0x0000016c5810ad60, 0x0000016c582310e0, 0x0000016c582c6690, 0x0000016c582cb070, +0x0000016c58357a60, 0x0000016c5836cf60, 0x0000016c583588f0, 0x0000016c58359370, +0x0000016c58361f70, 0x0000016c58363210, 0x0000016c5835f150, 0x0000016c58373510, +0x0000016c58370090, 0x0000016c583727f0, 0x0000016c58372e80, 0x0000016c58370720, +0x0000016c58370db0, 0x0000016c58371ad0, 0x0000016c58371440, 0x0000016c58372160, +0x0000016c58392620, 0x0000016c58392cb0, 0x0000016c583939d0, 0x0000016c5838f830, +0x0000016c5838f1a0, 0x0000016c5838eb10, 0x0000016c58390be0, 0x0000016c5838fec0, +0x0000016c58394060, 0x0000016c58393340, 0x0000016c583946f0, 0x0000016c58391270, +0x0000016c58390550, 0x0000016c58391900, 0x0000016c58391f90, 0x0000016c58394d80, +0x0000016c58395410, 0x0000016c58395aa0, 0x0000016c58396130, 0x0000016c583dbe00, +0x0000016c583dc490, 0x0000016c583de560, 0x0000016c583dcb20, 0x0000016c583dded0, +0x0000016c583e0cc0, 0x0000016c583e0630, 0x0000016c583debf0, 0x0000016c583db770, +0x0000016c583e1350, 0x0000016c583dd1b0, 0x0000016c583df280, 0x0000016c583df910, +0x0000016c583dd840, 0x0000016c583dffa0, 0x0000016c583e19e0, 0x0000016c583e2070, +0x0000016c583e2700, 0x0000016c583e2d90, 0x0000016c5851ebf0 +} + +Java Threads: ( => current thread ) + 0x0000016c60b2eec0 JavaThread "main" [_thread_blocked, id=45052, stack(0x0000000f5bb00000,0x0000000f5bc00000) (1024K)] + 0x0000016c580e9e50 JavaThread "Reference Handler" daemon [_thread_blocked, id=29176, stack(0x0000000f5c300000,0x0000000f5c400000) (1024K)] + 0x0000016c580eca70 JavaThread "Finalizer" daemon [_thread_blocked, id=28088, stack(0x0000000f5c400000,0x0000000f5c500000) (1024K)] + 0x0000016c580edef0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=50360, stack(0x0000000f5c500000,0x0000000f5c600000) (1024K)] + 0x0000016c580ee950 JavaThread "Attach Listener" daemon [_thread_blocked, id=60964, stack(0x0000000f5c600000,0x0000000f5c700000) (1024K)] + 0x0000016c580fb990 JavaThread "Service Thread" daemon [_thread_blocked, id=83544, stack(0x0000000f5c700000,0x0000000f5c800000) (1024K)] + 0x0000016c580fc800 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=85920, stack(0x0000000f5c800000,0x0000000f5c900000) (1024K)] + 0x0000016c58109860 JavaThread "JVMCI-native CompilerThread0" daemon [_thread_blocked, id=68060, stack(0x0000000f5c900000,0x0000000f5ca00000) (1024K)] + 0x0000016c5810ad60 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=83524, stack(0x0000000f5ca00000,0x0000000f5cb00000) (1024K)] + 0x0000016c582310e0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=62252, stack(0x0000000f5cb00000,0x0000000f5cc00000) (1024K)] + 0x0000016c582c6690 JavaThread "Notification Thread" daemon [_thread_blocked, id=60032, stack(0x0000000f5d000000,0x0000000f5d100000) (1024K)] + 0x0000016c582cb070 JavaThread "Thread-0" [_thread_blocked, id=82844, stack(0x0000000f5d100000,0x0000000f5d200000) (1024K)] + 0x0000016c58357a60 JavaThread "ForkJoinPool.commonPool-worker-1" daemon [_thread_blocked, id=81496, stack(0x0000000f5d500000,0x0000000f5d600000) (1024K)] + 0x0000016c5836cf60 JavaThread "ForkJoinPool.commonPool-worker-2" daemon [_thread_blocked, id=35456, stack(0x0000000f5d600000,0x0000000f5d700000) (1024K)] + 0x0000016c583588f0 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=87132, stack(0x0000000f5d700000,0x0000000f5d800000) (1024K)] + 0x0000016c58359370 JavaThread "ForkJoinPool.commonPool-worker-4" daemon [_thread_blocked, id=63832, stack(0x0000000f5d800000,0x0000000f5d900000) (1024K)] + 0x0000016c58361f70 JavaThread "ForkJoinPool.commonPool-worker-5" daemon [_thread_blocked, id=77160, stack(0x0000000f5d900000,0x0000000f5da00000) (1024K)] + 0x0000016c58363210 JavaThread "ForkJoinPool.commonPool-worker-6" daemon [_thread_blocked, id=54012, stack(0x0000000f5da00000,0x0000000f5db00000) (1024K)] + 0x0000016c5835f150 JavaThread "ForkJoinPool.commonPool-worker-7" daemon [_thread_blocked, id=44532, stack(0x0000000f5db00000,0x0000000f5dc00000) (1024K)] + 0x0000016c58373510 JavaThread "ForkJoinPool.commonPool-worker-8" daemon [_thread_blocked, id=75220, stack(0x0000000f5dc00000,0x0000000f5dd00000) (1024K)] + 0x0000016c58370090 JavaThread "ForkJoinPool.commonPool-worker-9" daemon [_thread_blocked, id=49776, stack(0x0000000f5dd00000,0x0000000f5de00000) (1024K)] + 0x0000016c583727f0 JavaThread "ForkJoinPool.commonPool-worker-11" daemon [_thread_blocked, id=68244, stack(0x0000000f5de00000,0x0000000f5df00000) (1024K)] + 0x0000016c58372e80 JavaThread "ForkJoinPool.commonPool-worker-10" daemon [_thread_blocked, id=57564, stack(0x0000000f5df00000,0x0000000f5e000000) (1024K)] + 0x0000016c58370720 JavaThread "ForkJoinPool.commonPool-worker-12" daemon [_thread_blocked, id=32800, stack(0x0000000f5e000000,0x0000000f5e100000) (1024K)] + 0x0000016c58370db0 JavaThread "ForkJoinPool.commonPool-worker-13" daemon [_thread_blocked, id=51912, stack(0x0000000f5e100000,0x0000000f5e200000) (1024K)] + 0x0000016c58371ad0 JavaThread "ForkJoinPool.commonPool-worker-18" daemon [_thread_blocked, id=65772, stack(0x0000000f5e200000,0x0000000f5e300000) (1024K)] + 0x0000016c58371440 JavaThread "ForkJoinPool.commonPool-worker-15" daemon [_thread_blocked, id=37880, stack(0x0000000f5e300000,0x0000000f5e400000) (1024K)] + 0x0000016c58372160 JavaThread "ForkJoinPool.commonPool-worker-24" daemon [_thread_blocked, id=59420, stack(0x0000000f5e400000,0x0000000f5e500000) (1024K)] + 0x0000016c58392620 JavaThread "ForkJoinPool.commonPool-worker-17" daemon [_thread_blocked, id=72856, stack(0x0000000f5e500000,0x0000000f5e600000) (1024K)] + 0x0000016c58392cb0 JavaThread "ForkJoinPool.commonPool-worker-31" daemon [_thread_blocked, id=35700, stack(0x0000000f5e600000,0x0000000f5e700000) (1024K)] + 0x0000016c583939d0 JavaThread "ForkJoinPool.commonPool-worker-19" daemon [_thread_blocked, id=88756, stack(0x0000000f5e700000,0x0000000f5e800000) (1024K)] + 0x0000016c5838f830 JavaThread "ForkJoinPool.commonPool-worker-20" daemon [_thread_blocked, id=39544, stack(0x0000000f5e800000,0x0000000f5e900000) (1024K)] + 0x0000016c5838f1a0 JavaThread "ForkJoinPool.commonPool-worker-21" daemon [_thread_blocked, id=58320, stack(0x0000000f5e900000,0x0000000f5ea00000) (1024K)] + 0x0000016c5838eb10 JavaThread "ForkJoinPool.commonPool-worker-22" daemon [_thread_blocked, id=82040, stack(0x0000000f5ea00000,0x0000000f5eb00000) (1024K)] + 0x0000016c58390be0 JavaThread "ForkJoinPool.commonPool-worker-38" daemon [_thread_blocked, id=15096, stack(0x0000000f5eb00000,0x0000000f5ec00000) (1024K)] + 0x0000016c5838fec0 JavaThread "ForkJoinPool.commonPool-worker-25" daemon [_thread_blocked, id=52120, stack(0x0000000f5ec00000,0x0000000f5ed00000) (1024K)] + 0x0000016c58394060 JavaThread "ForkJoinPool.commonPool-worker-16" daemon [_thread_blocked, id=64948, stack(0x0000000f5ed00000,0x0000000f5ee00000) (1024K)] + 0x0000016c58393340 JavaThread "ForkJoinPool.commonPool-worker-26" daemon [_thread_blocked, id=31312, stack(0x0000000f5ee00000,0x0000000f5ef00000) (1024K)] + 0x0000016c583946f0 JavaThread "ForkJoinPool.commonPool-worker-27" daemon [_thread_blocked, id=34228, stack(0x0000000f5ef00000,0x0000000f5f000000) (1024K)] + 0x0000016c58391270 JavaThread "ForkJoinPool.commonPool-worker-47" daemon [_thread_blocked, id=62248, stack(0x0000000f5f000000,0x0000000f5f100000) (1024K)] + 0x0000016c58390550 JavaThread "ForkJoinPool.commonPool-worker-29" daemon [_thread_blocked, id=46784, stack(0x0000000f5f100000,0x0000000f5f200000) (1024K)] + 0x0000016c58391900 JavaThread "ForkJoinPool.commonPool-worker-30" daemon [_thread_blocked, id=70156, stack(0x0000000f5f200000,0x0000000f5f300000) (1024K)] + 0x0000016c58391f90 JavaThread "ForkJoinPool.commonPool-worker-14" daemon [_thread_blocked, id=39676, stack(0x0000000f5f300000,0x0000000f5f400000) (1024K)] + 0x0000016c58394d80 JavaThread "ForkJoinPool.commonPool-worker-32" daemon [_thread_blocked, id=67984, stack(0x0000000f5f400000,0x0000000f5f500000) (1024K)] + 0x0000016c58395410 JavaThread "ForkJoinPool.commonPool-worker-33" daemon [_thread_blocked, id=89172, stack(0x0000000f5f500000,0x0000000f5f600000) (1024K)] + 0x0000016c58395aa0 JavaThread "ForkJoinPool.commonPool-worker-34" daemon [_thread_blocked, id=33356, stack(0x0000000f5f600000,0x0000000f5f700000) (1024K)] + 0x0000016c58396130 JavaThread "ForkJoinPool.commonPool-worker-35" daemon [_thread_blocked, id=59928, stack(0x0000000f5f700000,0x0000000f5f800000) (1024K)] + 0x0000016c583dbe00 JavaThread "ForkJoinPool.commonPool-worker-36" daemon [_thread_blocked, id=87112, stack(0x0000000f5f800000,0x0000000f5f900000) (1024K)] + 0x0000016c583dc490 JavaThread "ForkJoinPool.commonPool-worker-37" daemon [_thread_blocked, id=53964, stack(0x0000000f5f900000,0x0000000f5fa00000) (1024K)] + 0x0000016c583de560 JavaThread "ForkJoinPool.commonPool-worker-23" daemon [_thread_blocked, id=90448, stack(0x0000000f5fa00000,0x0000000f5fb00000) (1024K)] + 0x0000016c583dcb20 JavaThread "ForkJoinPool.commonPool-worker-39" daemon [_thread_blocked, id=39784, stack(0x0000000f5fb00000,0x0000000f5fc00000) (1024K)] + 0x0000016c583dded0 JavaThread "ForkJoinPool.commonPool-worker-40" daemon [_thread_blocked, id=42380, stack(0x0000000f5fc00000,0x0000000f5fd00000) (1024K)] + 0x0000016c583e0cc0 JavaThread "ForkJoinPool.commonPool-worker-41" daemon [_thread_blocked, id=47440, stack(0x0000000f5fd00000,0x0000000f5fe00000) (1024K)] + 0x0000016c583e0630 JavaThread "ForkJoinPool.commonPool-worker-42" daemon [_thread_blocked, id=65756, stack(0x0000000f5fe00000,0x0000000f5ff00000) (1024K)] + 0x0000016c583debf0 JavaThread "ForkJoinPool.commonPool-worker-43" daemon [_thread_blocked, id=32812, stack(0x0000000f5ff00000,0x0000000f60000000) (1024K)] + 0x0000016c583db770 JavaThread "ForkJoinPool.commonPool-worker-44" daemon [_thread_blocked, id=75164, stack(0x0000000f60000000,0x0000000f60100000) (1024K)] + 0x0000016c583e1350 JavaThread "ForkJoinPool.commonPool-worker-45" daemon [_thread_blocked, id=80228, stack(0x0000000f60100000,0x0000000f60200000) (1024K)] + 0x0000016c583dd1b0 JavaThread "ForkJoinPool.commonPool-worker-46" daemon [_thread_blocked, id=55348, stack(0x0000000f60200000,0x0000000f60300000) (1024K)] + 0x0000016c583df280 JavaThread "ForkJoinPool.commonPool-worker-28" daemon [_thread_blocked, id=49808, stack(0x0000000f60300000,0x0000000f60400000) (1024K)] + 0x0000016c583df910 JavaThread "ForkJoinPool.commonPool-worker-48" daemon [_thread_blocked, id=70976, stack(0x0000000f60400000,0x0000000f60500000) (1024K)] + 0x0000016c583dd840 JavaThread "ForkJoinPool.commonPool-worker-49" daemon [_thread_blocked, id=49336, stack(0x0000000f60500000,0x0000000f60600000) (1024K)] + 0x0000016c583dffa0 JavaThread "ForkJoinPool.commonPool-worker-51" daemon [_thread_blocked, id=42120, stack(0x0000000f60600000,0x0000000f60700000) (1024K)] + 0x0000016c583e19e0 JavaThread "ForkJoinPool.commonPool-worker-50" daemon [_thread_blocked, id=63056, stack(0x0000000f60700000,0x0000000f60800000) (1024K)] + 0x0000016c583e2070 JavaThread "ForkJoinPool.commonPool-worker-54" daemon [_thread_blocked, id=74800, stack(0x0000000f62000000,0x0000000f62100000) (1024K)] + 0x0000016c583e2700 JavaThread "ForkJoinPool.commonPool-worker-53" daemon [_thread_blocked, id=76732, stack(0x0000000f62100000,0x0000000f62200000) (1024K)] + 0x0000016c583e2d90 JavaThread "ForkJoinPool.commonPool-worker-52" daemon [_thread_blocked, id=42632, stack(0x0000000f62200000,0x0000000f62300000) (1024K)] + 0x0000016c5851ebf0 JavaThread "ForkJoinPool.commonPool-worker-55" daemon [_thread_blocked, id=76168, stack(0x0000000f62300000,0x0000000f62400000) (1024K)] +Total: 67 + +Other Threads: +=>0x0000016c7e80d430 VMThread "VM Thread" [id=13556, stack(0x0000000f5c200000,0x0000000f5c300000) (1024K)] + 0x0000016c7e7f9320 WatcherThread "VM Periodic Task Thread" [id=86444, stack(0x0000000f5c100000,0x0000000f5c200000) (1024K)] + 0x0000016c7e65f990 WorkerThread "GC Thread#0" [id=85180, stack(0x0000000f5bc00000,0x0000000f5bd00000) (1024K)] + 0x0000016c58410060 WorkerThread "GC Thread#1" [id=87232, stack(0x0000000f60900000,0x0000000f60a00000) (1024K)] + 0x0000016c58410410 WorkerThread "GC Thread#2" [id=80928, stack(0x0000000f60a00000,0x0000000f60b00000) (1024K)] + 0x0000016c58427ac0 WorkerThread "GC Thread#3" [id=63364, stack(0x0000000f60b00000,0x0000000f60c00000) (1024K)] + 0x0000016c58428280 WorkerThread "GC Thread#4" [id=43376, stack(0x0000000f60c00000,0x0000000f60d00000) (1024K)] + 0x0000016c58428630 WorkerThread "GC Thread#5" [id=15080, stack(0x0000000f60d00000,0x0000000f60e00000) (1024K)] + 0x0000016c5842ca00 WorkerThread "GC Thread#6" [id=60944, stack(0x0000000f60e00000,0x0000000f60f00000) (1024K)] + 0x0000016c58432dd0 WorkerThread "GC Thread#7" [id=89204, stack(0x0000000f60f00000,0x0000000f61000000) (1024K)] + 0x0000016c584375a0 WorkerThread "GC Thread#8" [id=90976, stack(0x0000000f61000000,0x0000000f61100000) (1024K)] + 0x0000016c58437950 WorkerThread "GC Thread#9" [id=85512, stack(0x0000000f61100000,0x0000000f61200000) (1024K)] + 0x0000016c58438110 WorkerThread "GC Thread#10" [id=63540, stack(0x0000000f61200000,0x0000000f61300000) (1024K)] + 0x0000016c584384c0 WorkerThread "GC Thread#11" [id=69832, stack(0x0000000f61300000,0x0000000f61400000) (1024K)] + 0x0000016c58438870 WorkerThread "GC Thread#12" [id=62144, stack(0x0000000f61400000,0x0000000f61500000) (1024K)] + 0x0000016c58439c40 WorkerThread "GC Thread#13" [id=41324, stack(0x0000000f61500000,0x0000000f61600000) (1024K)] + 0x0000016c5843b310 WorkerThread "GC Thread#14" [id=83940, stack(0x0000000f61600000,0x0000000f61700000) (1024K)] + 0x0000016c5843ba70 WorkerThread "GC Thread#15" [id=40028, stack(0x0000000f61700000,0x0000000f61800000) (1024K)] + 0x0000016c5843abb0 WorkerThread "GC Thread#16" [id=43160, stack(0x0000000f61800000,0x0000000f61900000) (1024K)] + 0x0000016c5843be20 WorkerThread "GC Thread#17" [id=25296, stack(0x0000000f61900000,0x0000000f61a00000) (1024K)] + 0x0000016c5843af60 WorkerThread "GC Thread#18" [id=33380, stack(0x0000000f61a00000,0x0000000f61b00000) (1024K)] + 0x0000016c5843a450 WorkerThread "GC Thread#19" [id=92308, stack(0x0000000f61b00000,0x0000000f61c00000) (1024K)] + 0x0000016c5843a800 WorkerThread "GC Thread#20" [id=53060, stack(0x0000000f61c00000,0x0000000f61d00000) (1024K)] + 0x0000016c5843b6c0 WorkerThread "GC Thread#21" [id=29380, stack(0x0000000f61d00000,0x0000000f61e00000) (1024K)] + 0x0000016c58447870 WorkerThread "GC Thread#22" [id=44248, stack(0x0000000f61e00000,0x0000000f61f00000) (1024K)] + 0x0000016c584499a0 WorkerThread "GC Thread#23" [id=45408, stack(0x0000000f61f00000,0x0000000f62000000) (1024K)] + 0x0000016c584495f0 WorkerThread "GC Thread#24" [id=56948, stack(0x0000000f62400000,0x0000000f62500000) (1024K)] + 0x0000016c58447fd0 WorkerThread "GC Thread#25" [id=76872, stack(0x0000000f62500000,0x0000000f62600000) (1024K)] + 0x0000016c58449d50 WorkerThread "GC Thread#26" [id=42688, stack(0x0000000f62600000,0x0000000f62700000) (1024K)] + 0x0000016c5844ac10 WorkerThread "GC Thread#27" [id=63104, stack(0x0000000f62700000,0x0000000f62800000) (1024K)] + 0x0000016c58448730 WorkerThread "GC Thread#28" [id=93524, stack(0x0000000f62800000,0x0000000f62900000) (1024K)] + 0x0000016c58448ae0 WorkerThread "GC Thread#29" [id=63168, stack(0x0000000f62900000,0x0000000f62a00000) (1024K)] + 0x0000016c58448e90 WorkerThread "GC Thread#30" [id=28124, stack(0x0000000f62a00000,0x0000000f62b00000) (1024K)] + 0x0000016c58449240 WorkerThread "GC Thread#31" [id=42284, stack(0x0000000f62b00000,0x0000000f62c00000) (1024K)] + 0x0000016c58447c20 WorkerThread "GC Thread#32" [id=73652, stack(0x0000000f62c00000,0x0000000f62d00000) (1024K)] + 0x0000016c58448380 WorkerThread "GC Thread#33" [id=35496, stack(0x0000000f62d00000,0x0000000f62e00000) (1024K)] + 0x0000016c5844a100 WorkerThread "GC Thread#34" [id=90164, stack(0x0000000f62e00000,0x0000000f62f00000) (1024K)] + 0x0000016c5844a860 WorkerThread "GC Thread#35" [id=24140, stack(0x0000000f62f00000,0x0000000f63000000) (1024K)] + 0x0000016c5844afc0 WorkerThread "GC Thread#36" [id=38588, stack(0x0000000f63000000,0x0000000f63100000) (1024K)] + 0x0000016c584474c0 WorkerThread "GC Thread#37" [id=31728, stack(0x0000000f63100000,0x0000000f63200000) (1024K)] + 0x0000016c6304e650 ConcurrentGCThread "G1 Main Marker" [id=43984, stack(0x0000000f5bd00000,0x0000000f5be00000) (1024K)] + 0x0000016c7e6a2270 WorkerThread "G1 Conc#0" [id=28056, stack(0x0000000f5be00000,0x0000000f5bf00000) (1024K)] + 0x0000016c581fa9b0 WorkerThread "G1 Conc#1" [id=54488, stack(0x0000000f5cd00000,0x0000000f5ce00000) (1024K)] + 0x0000016c581fa250 WorkerThread "G1 Conc#2" [id=81244, stack(0x0000000f5ce00000,0x0000000f5cf00000) (1024K)] + 0x0000016c581fa600 WorkerThread "G1 Conc#3" [id=992, stack(0x0000000f5cf00000,0x0000000f5d000000) (1024K)] + 0x0000016c581f9ea0 WorkerThread "G1 Conc#4" [id=34860, stack(0x0000000f5d200000,0x0000000f5d300000) (1024K)] + 0x0000016c5d8bce90 WorkerThread "G1 Conc#5" [id=33132, stack(0x0000000f5d300000,0x0000000f5d400000) (1024K)] + 0x0000016c5d8bd5f0 WorkerThread "G1 Conc#6" [id=77912, stack(0x0000000f5d400000,0x0000000f5d500000) (1024K)] + 0x0000016c5d8bcae0 WorkerThread "G1 Conc#7" [id=75244, stack(0x0000000f60800000,0x0000000f60900000) (1024K)] + 0x0000016c5d8bd240 WorkerThread "G1 Conc#8" [id=57480, stack(0x0000000f63200000,0x0000000f63300000) (1024K)] + 0x0000016c5daef090 WorkerThread "G1 Conc#9" [id=52160, stack(0x0000000f63300000,0x0000000f63400000) (1024K)] + 0x0000016c7e79d3f0 ConcurrentGCThread "G1 Refine#0" [id=66872, stack(0x0000000f5bf00000,0x0000000f5c000000) (1024K)] + 0x0000016c5d8c9660 ConcurrentGCThread "G1 Refine#1" [id=70168, stack(0x0000000f5cc00000,0x0000000f5cd00000) (1024K)] + 0x0000016c7e79e420 ConcurrentGCThread "G1 Service" [id=31352, stack(0x0000000f5c000000,0x0000000f5c100000) (1024K)] +Total: 54 + +Threads with active compile tasks: +Total: 0 + +VM state: at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x00007ffdace33910] Threads_lock - owner thread: 0x0000016c7e80d430 +[0x00007ffdace33a10] Heap_lock - owner thread: 0x0000016c582cb070 + +Heap address: 0x0000000407000000, size: 16272 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000016c17000000-0x0000016c17d80000-0x0000016c17d80000), size 14155776, SharedBaseAddress: 0x0000016c17000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x0000016c18000000-0x0000016c58000000, reserved size: 1073741824 +Narrow klass base: 0x0000016c17000000, Narrow klass shift: 0, Narrow klass range: 0x41000000 + +GC Precious Log: + CardTable entry size: 512 + Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 64 size 144 Howl #buckets 8 coarsen threshold 14745 Howl Bitmap #cards 2048 size 272 coarsen threshold 1843 Card regions per heap region 1 cards per card region 16384 + CPUs: 56 total, 56 available + Memory: 65072M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 8M + Heap Min Capacity: 8M + Heap Initial Capacity: 1G + Heap Max Capacity: 16272M + Pre-touch: Disabled + Parallel Workers: 38 + Concurrent Workers: 10 + Concurrent Refinement Workers: 38 + Periodic GC: Disabled + +Heap: + garbage-first heap total reserved 16662528K, committed 13565952K, used 8408821K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 11 young (90112K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x0000000407000000, 0x0000000407800000, 0x0000000407800000|100%| O| |TAMS 0x0000000407000000| PB 0x0000000407000000| Untracked | 0 +| 1|0x0000000407800000, 0x0000000408000000, 0x0000000408000000|100%| O| |TAMS 0x0000000407800000| PB 0x0000000407800000| Untracked | 0 +| 2|0x0000000408000000, 0x0000000408800000, 0x0000000408800000|100%| O| |TAMS 0x0000000408000000| PB 0x0000000408000000| Untracked | 0 +| 3|0x0000000408800000, 0x0000000409000000, 0x0000000409000000|100%| O| |TAMS 0x0000000408800000| PB 0x0000000408800000| Untracked | 0 +| 4|0x0000000409000000, 0x0000000409800000, 0x0000000409800000|100%| O| |TAMS 0x0000000409000000| PB 0x0000000409000000| Untracked | 0 +| 5|0x0000000409800000, 0x000000040a000000, 0x000000040a000000|100%| O| |TAMS 0x0000000409800000| PB 0x0000000409800000| Untracked | 0 +| 6|0x000000040a000000, 0x000000040a800000, 0x000000040a800000|100%| O| |TAMS 0x000000040a000000| PB 0x000000040a000000| Untracked | 0 +| 7|0x000000040a800000, 0x000000040b000000, 0x000000040b000000|100%| O| |TAMS 0x000000040a800000| PB 0x000000040a800000| Untracked | 0 +| 8|0x000000040b000000, 0x000000040b800000, 0x000000040b800000|100%| O| |TAMS 0x000000040b000000| PB 0x000000040b000000| Untracked | 0 +| 9|0x000000040b800000, 0x000000040c000000, 0x000000040c000000|100%| O| |TAMS 0x000000040b800000| PB 0x000000040b800000| Untracked | 0 +| 10|0x000000040c000000, 0x000000040c800000, 0x000000040c800000|100%| O| |TAMS 0x000000040c000000| PB 0x000000040c000000| Untracked | 0 +| 11|0x000000040c800000, 0x000000040d000000, 0x000000040d000000|100%| O| |TAMS 0x000000040c800000| PB 0x000000040c800000| Untracked | 0 +| 12|0x000000040d000000, 0x000000040d800000, 0x000000040d800000|100%| O| |TAMS 0x000000040d000000| PB 0x000000040d000000| Untracked | 0 +| 13|0x000000040d800000, 0x000000040e000000, 0x000000040e000000|100%| O| |TAMS 0x000000040d800000| PB 0x000000040d800000| Untracked | 0 +| 14|0x000000040e000000, 0x000000040e800000, 0x000000040e800000|100%| O| |TAMS 0x000000040e000000| PB 0x000000040e000000| Untracked | 0 +| 15|0x000000040e800000, 0x000000040f000000, 0x000000040f000000|100%| O| |TAMS 0x000000040e800000| PB 0x000000040e800000| Untracked | 0 +| 16|0x000000040f000000, 0x000000040f800000, 0x000000040f800000|100%| O| |TAMS 0x000000040f000000| PB 0x000000040f000000| Untracked | 0 +| 17|0x000000040f800000, 0x0000000410000000, 0x0000000410000000|100%| O| |TAMS 0x000000040f800000| PB 0x000000040f800000| Untracked | 0 +| 18|0x0000000410000000, 0x0000000410800000, 0x0000000410800000|100%| O| |TAMS 0x0000000410000000| PB 0x0000000410000000| Untracked | 0 +| 19|0x0000000410800000, 0x0000000411000000, 0x0000000411000000|100%| O| |TAMS 0x0000000410800000| PB 0x0000000410800000| Untracked | 0 +| 20|0x0000000411000000, 0x0000000411800000, 0x0000000411800000|100%| O| |TAMS 0x0000000411000000| PB 0x0000000411000000| Untracked | 0 +| 21|0x0000000411800000, 0x0000000412000000, 0x0000000412000000|100%| O| |TAMS 0x0000000411800000| PB 0x0000000411800000| Untracked | 0 +| 22|0x0000000412000000, 0x0000000412800000, 0x0000000412800000|100%| O| |TAMS 0x0000000412000000| PB 0x0000000412000000| Untracked | 0 +| 23|0x0000000412800000, 0x0000000413000000, 0x0000000413000000|100%| O| |TAMS 0x0000000412800000| PB 0x0000000412800000| Untracked | 0 +| 24|0x0000000413000000, 0x0000000413800000, 0x0000000413800000|100%| O| |TAMS 0x0000000413000000| PB 0x0000000413000000| Untracked | 0 +| 25|0x0000000413800000, 0x0000000414000000, 0x0000000414000000|100%| O| |TAMS 0x0000000413800000| PB 0x0000000413800000| Untracked | 0 +| 26|0x0000000414000000, 0x0000000414800000, 0x0000000414800000|100%| O| |TAMS 0x0000000414000000| PB 0x0000000414000000| Untracked | 0 +| 27|0x0000000414800000, 0x0000000415000000, 0x0000000415000000|100%| O| |TAMS 0x0000000414800000| PB 0x0000000414800000| Untracked | 0 +| 28|0x0000000415000000, 0x0000000415800000, 0x0000000415800000|100%| O| |TAMS 0x0000000415000000| PB 0x0000000415000000| Untracked | 0 +| 29|0x0000000415800000, 0x0000000416000000, 0x0000000416000000|100%| O| |TAMS 0x0000000415800000| PB 0x0000000415800000| Untracked | 0 +| 30|0x0000000416000000, 0x0000000416800000, 0x0000000416800000|100%| O| |TAMS 0x0000000416000000| PB 0x0000000416000000| Untracked | 0 +| 31|0x0000000416800000, 0x0000000417000000, 0x0000000417000000|100%| O| |TAMS 0x0000000416800000| PB 0x0000000416800000| Untracked | 0 +| 32|0x0000000417000000, 0x0000000417800000, 0x0000000417800000|100%| O| |TAMS 0x0000000417000000| PB 0x0000000417000000| Untracked | 0 +| 33|0x0000000417800000, 0x0000000418000000, 0x0000000418000000|100%| O| |TAMS 0x0000000417800000| PB 0x0000000417800000| Untracked | 0 +| 34|0x0000000418000000, 0x0000000418800000, 0x0000000418800000|100%| O| |TAMS 0x0000000418000000| PB 0x0000000418000000| Untracked | 0 +| 35|0x0000000418800000, 0x0000000419000000, 0x0000000419000000|100%| O| |TAMS 0x0000000418800000| PB 0x0000000418800000| Untracked | 0 +| 36|0x0000000419000000, 0x0000000419800000, 0x0000000419800000|100%| O| |TAMS 0x0000000419000000| PB 0x0000000419000000| Untracked | 0 +| 37|0x0000000419800000, 0x000000041a000000, 0x000000041a000000|100%| O| |TAMS 0x0000000419800000| PB 0x0000000419800000| Untracked | 0 +| 38|0x000000041a000000, 0x000000041a800000, 0x000000041a800000|100%| O| |TAMS 0x000000041a000000| PB 0x000000041a000000| Untracked | 0 +| 39|0x000000041a800000, 0x000000041b000000, 0x000000041b000000|100%| O| |TAMS 0x000000041a800000| PB 0x000000041a800000| Untracked | 0 +| 40|0x000000041b000000, 0x000000041b800000, 0x000000041b800000|100%| O| |TAMS 0x000000041b000000| PB 0x000000041b000000| Untracked | 0 +| 41|0x000000041b800000, 0x000000041c000000, 0x000000041c000000|100%| O| |TAMS 0x000000041b800000| PB 0x000000041b800000| Untracked | 0 +| 42|0x000000041c000000, 0x000000041c800000, 0x000000041c800000|100%| O| |TAMS 0x000000041c000000| PB 0x000000041c000000| Untracked | 0 +| 43|0x000000041c800000, 0x000000041d000000, 0x000000041d000000|100%| O| |TAMS 0x000000041c800000| PB 0x000000041c800000| Untracked | 0 +| 44|0x000000041d000000, 0x000000041d800000, 0x000000041d800000|100%| O| |TAMS 0x000000041d000000| PB 0x000000041d000000| Untracked | 0 +| 45|0x000000041d800000, 0x000000041e000000, 0x000000041e000000|100%| O| |TAMS 0x000000041d800000| PB 0x000000041d800000| Untracked | 0 +| 46|0x000000041e000000, 0x000000041e800000, 0x000000041e800000|100%| O| |TAMS 0x000000041e000000| PB 0x000000041e000000| Untracked | 0 +| 47|0x000000041e800000, 0x000000041f000000, 0x000000041f000000|100%| O| |TAMS 0x000000041e800000| PB 0x000000041e800000| Untracked | 0 +| 48|0x000000041f000000, 0x000000041f800000, 0x000000041f800000|100%| O| |TAMS 0x000000041f000000| PB 0x000000041f000000| Untracked | 0 +| 49|0x000000041f800000, 0x0000000420000000, 0x0000000420000000|100%| O| |TAMS 0x000000041f800000| PB 0x000000041f800000| Untracked | 0 +| 50|0x0000000420000000, 0x0000000420800000, 0x0000000420800000|100%| O| |TAMS 0x0000000420000000| PB 0x0000000420000000| Untracked | 0 +| 51|0x0000000420800000, 0x0000000421000000, 0x0000000421000000|100%| O| |TAMS 0x0000000420800000| PB 0x0000000420800000| Untracked | 0 +| 52|0x0000000421000000, 0x0000000421800000, 0x0000000421800000|100%| O| |TAMS 0x0000000421000000| PB 0x0000000421000000| Untracked | 0 +| 53|0x0000000421800000, 0x0000000422000000, 0x0000000422000000|100%| O| |TAMS 0x0000000421800000| PB 0x0000000421800000| Untracked | 0 +| 54|0x0000000422000000, 0x0000000422800000, 0x0000000422800000|100%| O| |TAMS 0x0000000422000000| PB 0x0000000422000000| Untracked | 0 +| 55|0x0000000422800000, 0x0000000423000000, 0x0000000423000000|100%| O| |TAMS 0x0000000422800000| PB 0x0000000422800000| Untracked | 0 +| 56|0x0000000423000000, 0x0000000423800000, 0x0000000423800000|100%| O| |TAMS 0x0000000423000000| PB 0x0000000423000000| Untracked | 0 +| 57|0x0000000423800000, 0x0000000424000000, 0x0000000424000000|100%| O| |TAMS 0x0000000423800000| PB 0x0000000423800000| Untracked | 0 +| 58|0x0000000424000000, 0x0000000424800000, 0x0000000424800000|100%| O| |TAMS 0x0000000424000000| PB 0x0000000424000000| Untracked | 0 +| 59|0x0000000424800000, 0x0000000425000000, 0x0000000425000000|100%| O| |TAMS 0x0000000424800000| PB 0x0000000424800000| Untracked | 0 +| 60|0x0000000425000000, 0x0000000425800000, 0x0000000425800000|100%| O| |TAMS 0x0000000425000000| PB 0x0000000425000000| Untracked | 0 +| 61|0x0000000425800000, 0x0000000426000000, 0x0000000426000000|100%| O| |TAMS 0x0000000425800000| PB 0x0000000425800000| Untracked | 0 +| 62|0x0000000426000000, 0x0000000426800000, 0x0000000426800000|100%| O| |TAMS 0x0000000426000000| PB 0x0000000426000000| Untracked | 0 +| 63|0x0000000426800000, 0x0000000427000000, 0x0000000427000000|100%| O| |TAMS 0x0000000426800000| PB 0x0000000426800000| Untracked | 0 +| 64|0x0000000427000000, 0x0000000427800000, 0x0000000427800000|100%| O| |TAMS 0x0000000427000000| PB 0x0000000427000000| Untracked | 0 +| 65|0x0000000427800000, 0x0000000428000000, 0x0000000428000000|100%| O| |TAMS 0x0000000427800000| PB 0x0000000427800000| Untracked | 0 +| 66|0x0000000428000000, 0x0000000428800000, 0x0000000428800000|100%| O| |TAMS 0x0000000428000000| PB 0x0000000428000000| Untracked | 0 +| 67|0x0000000428800000, 0x0000000429000000, 0x0000000429000000|100%| O| |TAMS 0x0000000428800000| PB 0x0000000428800000| Untracked | 0 +| 68|0x0000000429000000, 0x0000000429800000, 0x0000000429800000|100%| O| |TAMS 0x0000000429000000| PB 0x0000000429000000| Untracked | 0 +| 69|0x0000000429800000, 0x000000042a000000, 0x000000042a000000|100%| O| |TAMS 0x0000000429800000| PB 0x0000000429800000| Untracked | 0 +| 70|0x000000042a000000, 0x000000042a800000, 0x000000042a800000|100%| O| |TAMS 0x000000042a000000| PB 0x000000042a000000| Untracked | 0 +| 71|0x000000042a800000, 0x000000042b000000, 0x000000042b000000|100%| O| |TAMS 0x000000042a800000| PB 0x000000042a800000| Untracked | 0 +| 72|0x000000042b000000, 0x000000042b800000, 0x000000042b800000|100%| O| |TAMS 0x000000042b000000| PB 0x000000042b000000| Untracked | 0 +| 73|0x000000042b800000, 0x000000042c000000, 0x000000042c000000|100%| O| |TAMS 0x000000042b800000| PB 0x000000042b800000| Untracked | 0 +| 74|0x000000042c000000, 0x000000042c800000, 0x000000042c800000|100%| O| |TAMS 0x000000042c000000| PB 0x000000042c000000| Untracked | 0 +| 75|0x000000042c800000, 0x000000042d000000, 0x000000042d000000|100%| O| |TAMS 0x000000042c800000| PB 0x000000042c800000| Untracked | 0 +| 76|0x000000042d000000, 0x000000042d800000, 0x000000042d800000|100%| O| |TAMS 0x000000042d000000| PB 0x000000042d000000| Untracked | 0 +| 77|0x000000042d800000, 0x000000042e000000, 0x000000042e000000|100%| O| |TAMS 0x000000042d800000| PB 0x000000042d800000| Untracked | 0 +| 78|0x000000042e000000, 0x000000042e800000, 0x000000042e800000|100%| O| |TAMS 0x000000042e000000| PB 0x000000042e000000| Untracked | 0 +| 79|0x000000042e800000, 0x000000042f000000, 0x000000042f000000|100%| O| |TAMS 0x000000042e800000| PB 0x000000042e800000| Untracked | 0 +| 80|0x000000042f000000, 0x000000042f800000, 0x000000042f800000|100%| O| |TAMS 0x000000042f000000| PB 0x000000042f000000| Untracked | 0 +| 81|0x000000042f800000, 0x0000000430000000, 0x0000000430000000|100%| O| |TAMS 0x000000042f800000| PB 0x000000042f800000| Untracked | 0 +| 82|0x0000000430000000, 0x0000000430800000, 0x0000000430800000|100%| O| |TAMS 0x0000000430000000| PB 0x0000000430000000| Untracked | 0 +| 83|0x0000000430800000, 0x0000000431000000, 0x0000000431000000|100%| O| |TAMS 0x0000000430800000| PB 0x0000000430800000| Untracked | 0 +| 84|0x0000000431000000, 0x0000000431800000, 0x0000000431800000|100%| O| |TAMS 0x0000000431000000| PB 0x0000000431000000| Untracked | 0 +| 85|0x0000000431800000, 0x0000000432000000, 0x0000000432000000|100%| O| |TAMS 0x0000000431800000| PB 0x0000000431800000| Untracked | 0 +| 86|0x0000000432000000, 0x0000000432800000, 0x0000000432800000|100%| O| |TAMS 0x0000000432000000| PB 0x0000000432000000| Untracked | 0 +| 87|0x0000000432800000, 0x0000000433000000, 0x0000000433000000|100%| O| |TAMS 0x0000000432800000| PB 0x0000000432800000| Untracked | 0 +| 88|0x0000000433000000, 0x0000000433800000, 0x0000000433800000|100%| O| |TAMS 0x0000000433000000| PB 0x0000000433000000| Untracked | 0 +| 89|0x0000000433800000, 0x0000000434000000, 0x0000000434000000|100%| O| |TAMS 0x0000000433800000| PB 0x0000000433800000| Untracked | 0 +| 90|0x0000000434000000, 0x0000000434800000, 0x0000000434800000|100%| O| |TAMS 0x0000000434000000| PB 0x0000000434000000| Untracked | 0 +| 91|0x0000000434800000, 0x0000000435000000, 0x0000000435000000|100%| O| |TAMS 0x0000000434800000| PB 0x0000000434800000| Untracked | 0 +| 92|0x0000000435000000, 0x0000000435800000, 0x0000000435800000|100%| O| |TAMS 0x0000000435000000| PB 0x0000000435000000| Untracked | 0 +| 93|0x0000000435800000, 0x0000000436000000, 0x0000000436000000|100%| O| |TAMS 0x0000000435800000| PB 0x0000000435800000| Untracked | 0 +| 94|0x0000000436000000, 0x0000000436800000, 0x0000000436800000|100%| O| |TAMS 0x0000000436000000| PB 0x0000000436000000| Untracked | 0 +| 95|0x0000000436800000, 0x0000000437000000, 0x0000000437000000|100%| O| |TAMS 0x0000000436800000| PB 0x0000000436800000| Untracked | 0 +| 96|0x0000000437000000, 0x0000000437800000, 0x0000000437800000|100%|HS| |TAMS 0x0000000437000000| PB 0x0000000437000000| Untracked | 0 +| 97|0x0000000437800000, 0x0000000438000000, 0x0000000438000000|100%|HC| |TAMS 0x0000000437800000| PB 0x0000000437800000| Untracked | 0 +| 98|0x0000000438000000, 0x0000000438800000, 0x0000000438800000|100%|HC| |TAMS 0x0000000438000000| PB 0x0000000438000000| Untracked | 0 +| 99|0x0000000438800000, 0x0000000439000000, 0x0000000439000000|100%|HC| |TAMS 0x0000000438800000| PB 0x0000000438800000| Untracked | 0 +| 100|0x0000000439000000, 0x0000000439800000, 0x0000000439800000|100%|HC| |TAMS 0x0000000439000000| PB 0x0000000439000000| Untracked | 0 +| 101|0x0000000439800000, 0x000000043a000000, 0x000000043a000000|100%| O| |TAMS 0x0000000439800000| PB 0x0000000439800000| Untracked | 0 +| 102|0x000000043a000000, 0x000000043a800000, 0x000000043a800000|100%| O| |TAMS 0x000000043a000000| PB 0x000000043a000000| Untracked | 0 +| 103|0x000000043a800000, 0x000000043b000000, 0x000000043b000000|100%| O| |TAMS 0x000000043a800000| PB 0x000000043a800000| Untracked | 0 +| 104|0x000000043b000000, 0x000000043b800000, 0x000000043b800000|100%| O| |TAMS 0x000000043b000000| PB 0x000000043b000000| Untracked | 0 +| 105|0x000000043b800000, 0x000000043c000000, 0x000000043c000000|100%| O| |TAMS 0x000000043b800000| PB 0x000000043b800000| Untracked | 0 +| 106|0x000000043c000000, 0x000000043c800000, 0x000000043c800000|100%| O| |TAMS 0x000000043c000000| PB 0x000000043c000000| Untracked | 0 +| 107|0x000000043c800000, 0x000000043d000000, 0x000000043d000000|100%| O| |TAMS 0x000000043c800000| PB 0x000000043c800000| Untracked | 0 +| 108|0x000000043d000000, 0x000000043d800000, 0x000000043d800000|100%| O| |TAMS 0x000000043d000000| PB 0x000000043d000000| Untracked | 0 +| 109|0x000000043d800000, 0x000000043e000000, 0x000000043e000000|100%| O| |TAMS 0x000000043d800000| PB 0x000000043d800000| Untracked | 0 +| 110|0x000000043e000000, 0x000000043e800000, 0x000000043e800000|100%| O| |TAMS 0x000000043e000000| PB 0x000000043e000000| Untracked | 0 +| 111|0x000000043e800000, 0x000000043f000000, 0x000000043f000000|100%| O| |TAMS 0x000000043e800000| PB 0x000000043e800000| Untracked | 0 +| 112|0x000000043f000000, 0x000000043f800000, 0x000000043f800000|100%| O| |TAMS 0x000000043f000000| PB 0x000000043f000000| Untracked | 0 +| 113|0x000000043f800000, 0x0000000440000000, 0x0000000440000000|100%| O| |TAMS 0x000000043f800000| PB 0x000000043f800000| Untracked | 0 +| 114|0x0000000440000000, 0x0000000440800000, 0x0000000440800000|100%| O| |TAMS 0x0000000440000000| PB 0x0000000440000000| Untracked | 0 +| 115|0x0000000440800000, 0x0000000441000000, 0x0000000441000000|100%| O| |TAMS 0x0000000440800000| PB 0x0000000440800000| Untracked | 0 +| 116|0x0000000441000000, 0x0000000441800000, 0x0000000441800000|100%| O| |TAMS 0x0000000441000000| PB 0x0000000441000000| Untracked | 0 +| 117|0x0000000441800000, 0x0000000442000000, 0x0000000442000000|100%| O| |TAMS 0x0000000441800000| PB 0x0000000441800000| Untracked | 0 +| 118|0x0000000442000000, 0x0000000442800000, 0x0000000442800000|100%| O| |TAMS 0x0000000442000000| PB 0x0000000442000000| Untracked | 0 +| 119|0x0000000442800000, 0x0000000443000000, 0x0000000443000000|100%| O| |TAMS 0x0000000442800000| PB 0x0000000442800000| Untracked | 0 +| 120|0x0000000443000000, 0x0000000443800000, 0x0000000443800000|100%| O| |TAMS 0x0000000443000000| PB 0x0000000443000000| Untracked | 0 +| 121|0x0000000443800000, 0x0000000444000000, 0x0000000444000000|100%| O| |TAMS 0x0000000443800000| PB 0x0000000443800000| Untracked | 0 +| 122|0x0000000444000000, 0x0000000444800000, 0x0000000444800000|100%| O| |TAMS 0x0000000444000000| PB 0x0000000444000000| Untracked | 0 +| 123|0x0000000444800000, 0x0000000445000000, 0x0000000445000000|100%| O| |TAMS 0x0000000444800000| PB 0x0000000444800000| Untracked | 0 +| 124|0x0000000445000000, 0x0000000445800000, 0x0000000445800000|100%| O| |TAMS 0x0000000445000000| PB 0x0000000445000000| Untracked | 0 +| 125|0x0000000445800000, 0x0000000446000000, 0x0000000446000000|100%| O| |TAMS 0x0000000445800000| PB 0x0000000445800000| Untracked | 0 +| 126|0x0000000446000000, 0x0000000446800000, 0x0000000446800000|100%| O| |TAMS 0x0000000446000000| PB 0x0000000446000000| Untracked | 0 +| 127|0x0000000446800000, 0x0000000447000000, 0x0000000447000000|100%| O| |TAMS 0x0000000446800000| PB 0x0000000446800000| Untracked | 0 +| 128|0x0000000447000000, 0x0000000447800000, 0x0000000447800000|100%| O| |TAMS 0x0000000447000000| PB 0x0000000447000000| Untracked | 0 +| 129|0x0000000447800000, 0x0000000448000000, 0x0000000448000000|100%| O| |TAMS 0x0000000447800000| PB 0x0000000447800000| Untracked | 0 +| 130|0x0000000448000000, 0x0000000448800000, 0x0000000448800000|100%| O| |TAMS 0x0000000448000000| PB 0x0000000448000000| Untracked | 0 +| 131|0x0000000448800000, 0x0000000449000000, 0x0000000449000000|100%| O| |TAMS 0x0000000448800000| PB 0x0000000448800000| Untracked | 0 +| 132|0x0000000449000000, 0x0000000449800000, 0x0000000449800000|100%| O| |TAMS 0x0000000449000000| PB 0x0000000449000000| Untracked | 0 +| 133|0x0000000449800000, 0x000000044a000000, 0x000000044a000000|100%| O| |TAMS 0x0000000449800000| PB 0x0000000449800000| Untracked | 0 +| 134|0x000000044a000000, 0x000000044a800000, 0x000000044a800000|100%| O| |TAMS 0x000000044a000000| PB 0x000000044a000000| Untracked | 0 +| 135|0x000000044a800000, 0x000000044b000000, 0x000000044b000000|100%| O| |TAMS 0x000000044a800000| PB 0x000000044a800000| Untracked | 0 +| 136|0x000000044b000000, 0x000000044b800000, 0x000000044b800000|100%| O| |TAMS 0x000000044b000000| PB 0x000000044b000000| Untracked | 0 +| 137|0x000000044b800000, 0x000000044c000000, 0x000000044c000000|100%| O| |TAMS 0x000000044b800000| PB 0x000000044b800000| Untracked | 0 +| 138|0x000000044c000000, 0x000000044c800000, 0x000000044c800000|100%| O| |TAMS 0x000000044c000000| PB 0x000000044c000000| Untracked | 0 +| 139|0x000000044c800000, 0x000000044d000000, 0x000000044d000000|100%| O| |TAMS 0x000000044c800000| PB 0x000000044c800000| Untracked | 0 +| 140|0x000000044d000000, 0x000000044d800000, 0x000000044d800000|100%| O| |TAMS 0x000000044d000000| PB 0x000000044d000000| Untracked | 0 +| 141|0x000000044d800000, 0x000000044e000000, 0x000000044e000000|100%| O| |TAMS 0x000000044d800000| PB 0x000000044d800000| Untracked | 0 +| 142|0x000000044e000000, 0x000000044e800000, 0x000000044e800000|100%| O| |TAMS 0x000000044e000000| PB 0x000000044e000000| Untracked | 0 +| 143|0x000000044e800000, 0x000000044f000000, 0x000000044f000000|100%| O| |TAMS 0x000000044e800000| PB 0x000000044e800000| Untracked | 0 +| 144|0x000000044f000000, 0x000000044f800000, 0x000000044f800000|100%| O| |TAMS 0x000000044f000000| PB 0x000000044f000000| Untracked | 0 +| 145|0x000000044f800000, 0x0000000450000000, 0x0000000450000000|100%| O| |TAMS 0x000000044f800000| PB 0x000000044f800000| Untracked | 0 +| 146|0x0000000450000000, 0x0000000450800000, 0x0000000450800000|100%| O| |TAMS 0x0000000450000000| PB 0x0000000450000000| Untracked | 0 +| 147|0x0000000450800000, 0x0000000451000000, 0x0000000451000000|100%| O| |TAMS 0x0000000450800000| PB 0x0000000450800000| Untracked | 0 +| 148|0x0000000451000000, 0x0000000451800000, 0x0000000451800000|100%| O| |TAMS 0x0000000451000000| PB 0x0000000451000000| Untracked | 0 +| 149|0x0000000451800000, 0x0000000452000000, 0x0000000452000000|100%| O| |TAMS 0x0000000451800000| PB 0x0000000451800000| Untracked | 0 +| 150|0x0000000452000000, 0x0000000452800000, 0x0000000452800000|100%| O| |TAMS 0x0000000452000000| PB 0x0000000452000000| Untracked | 0 +| 151|0x0000000452800000, 0x0000000453000000, 0x0000000453000000|100%| O| |TAMS 0x0000000452800000| PB 0x0000000452800000| Untracked | 0 +| 152|0x0000000453000000, 0x0000000453800000, 0x0000000453800000|100%| O| |TAMS 0x0000000453000000| PB 0x0000000453000000| Untracked | 0 +| 153|0x0000000453800000, 0x0000000454000000, 0x0000000454000000|100%| O| |TAMS 0x0000000453800000| PB 0x0000000453800000| Untracked | 0 +| 154|0x0000000454000000, 0x0000000454800000, 0x0000000454800000|100%| O| |TAMS 0x0000000454000000| PB 0x0000000454000000| Untracked | 0 +| 155|0x0000000454800000, 0x0000000455000000, 0x0000000455000000|100%| O| |TAMS 0x0000000454800000| PB 0x0000000454800000| Untracked | 0 +| 156|0x0000000455000000, 0x0000000455800000, 0x0000000455800000|100%| O| |TAMS 0x0000000455000000| PB 0x0000000455000000| Untracked | 0 +| 157|0x0000000455800000, 0x0000000456000000, 0x0000000456000000|100%| O| |TAMS 0x0000000455800000| PB 0x0000000455800000| Untracked | 0 +| 158|0x0000000456000000, 0x0000000456800000, 0x0000000456800000|100%| O| |TAMS 0x0000000456000000| PB 0x0000000456000000| Untracked | 0 +| 159|0x0000000456800000, 0x0000000457000000, 0x0000000457000000|100%| O| |TAMS 0x0000000456800000| PB 0x0000000456800000| Untracked | 0 +| 160|0x0000000457000000, 0x0000000457800000, 0x0000000457800000|100%| O| |TAMS 0x0000000457000000| PB 0x0000000457000000| Untracked | 0 +| 161|0x0000000457800000, 0x0000000458000000, 0x0000000458000000|100%| O| |TAMS 0x0000000457800000| PB 0x0000000457800000| Untracked | 0 +| 162|0x0000000458000000, 0x0000000458800000, 0x0000000458800000|100%| O| |TAMS 0x0000000458000000| PB 0x0000000458000000| Untracked | 0 +| 163|0x0000000458800000, 0x0000000459000000, 0x0000000459000000|100%| O| |TAMS 0x0000000458800000| PB 0x0000000458800000| Untracked | 0 +| 164|0x0000000459000000, 0x0000000459800000, 0x0000000459800000|100%| O| |TAMS 0x0000000459000000| PB 0x0000000459000000| Untracked | 0 +| 165|0x0000000459800000, 0x000000045a000000, 0x000000045a000000|100%| O| |TAMS 0x0000000459800000| PB 0x0000000459800000| Untracked | 0 +| 166|0x000000045a000000, 0x000000045a800000, 0x000000045a800000|100%| O| |TAMS 0x000000045a000000| PB 0x000000045a000000| Untracked | 0 +| 167|0x000000045a800000, 0x000000045b000000, 0x000000045b000000|100%| O| |TAMS 0x000000045a800000| PB 0x000000045a800000| Untracked | 0 +| 168|0x000000045b000000, 0x000000045b800000, 0x000000045b800000|100%| O| |TAMS 0x000000045b000000| PB 0x000000045b000000| Untracked | 0 +| 169|0x000000045b800000, 0x000000045c000000, 0x000000045c000000|100%| O| |TAMS 0x000000045b800000| PB 0x000000045b800000| Untracked | 0 +| 170|0x000000045c000000, 0x000000045c800000, 0x000000045c800000|100%| O| |TAMS 0x000000045c000000| PB 0x000000045c000000| Untracked | 0 +| 171|0x000000045c800000, 0x000000045d000000, 0x000000045d000000|100%| O| |TAMS 0x000000045c800000| PB 0x000000045c800000| Untracked | 0 +| 172|0x000000045d000000, 0x000000045d800000, 0x000000045d800000|100%| O| |TAMS 0x000000045d000000| PB 0x000000045d000000| Untracked | 0 +| 173|0x000000045d800000, 0x000000045e000000, 0x000000045e000000|100%| O| |TAMS 0x000000045d800000| PB 0x000000045d800000| Untracked | 0 +| 174|0x000000045e000000, 0x000000045e800000, 0x000000045e800000|100%| O| |TAMS 0x000000045e000000| PB 0x000000045e000000| Untracked | 0 +| 175|0x000000045e800000, 0x000000045f000000, 0x000000045f000000|100%| O| |TAMS 0x000000045e800000| PB 0x000000045e800000| Untracked | 0 +| 176|0x000000045f000000, 0x000000045f800000, 0x000000045f800000|100%| O| |TAMS 0x000000045f000000| PB 0x000000045f000000| Untracked | 0 +| 177|0x000000045f800000, 0x0000000460000000, 0x0000000460000000|100%| O| |TAMS 0x000000045f800000| PB 0x000000045f800000| Untracked | 0 +| 178|0x0000000460000000, 0x0000000460800000, 0x0000000460800000|100%| O| |TAMS 0x0000000460000000| PB 0x0000000460000000| Untracked | 0 +| 179|0x0000000460800000, 0x0000000461000000, 0x0000000461000000|100%| O| |TAMS 0x0000000460800000| PB 0x0000000460800000| Untracked | 0 +| 180|0x0000000461000000, 0x0000000461800000, 0x0000000461800000|100%| O| |TAMS 0x0000000461000000| PB 0x0000000461000000| Untracked | 0 +| 181|0x0000000461800000, 0x0000000462000000, 0x0000000462000000|100%| O| |TAMS 0x0000000461800000| PB 0x0000000461800000| Untracked | 0 +| 182|0x0000000462000000, 0x0000000462800000, 0x0000000462800000|100%| O| |TAMS 0x0000000462000000| PB 0x0000000462000000| Untracked | 0 +| 183|0x0000000462800000, 0x0000000463000000, 0x0000000463000000|100%| O| |TAMS 0x0000000462800000| PB 0x0000000462800000| Untracked | 0 +| 184|0x0000000463000000, 0x0000000463800000, 0x0000000463800000|100%| O| |TAMS 0x0000000463000000| PB 0x0000000463000000| Untracked | 0 +| 185|0x0000000463800000, 0x0000000464000000, 0x0000000464000000|100%| O| |TAMS 0x0000000463800000| PB 0x0000000463800000| Untracked | 0 +| 186|0x0000000464000000, 0x0000000464800000, 0x0000000464800000|100%| O| |TAMS 0x0000000464000000| PB 0x0000000464000000| Untracked | 0 +| 187|0x0000000464800000, 0x0000000465000000, 0x0000000465000000|100%| O| |TAMS 0x0000000464800000| PB 0x0000000464800000| Untracked | 0 +| 188|0x0000000465000000, 0x0000000465800000, 0x0000000465800000|100%| O| |TAMS 0x0000000465000000| PB 0x0000000465000000| Untracked | 0 +| 189|0x0000000465800000, 0x0000000466000000, 0x0000000466000000|100%| O| |TAMS 0x0000000465800000| PB 0x0000000465800000| Untracked | 0 +| 190|0x0000000466000000, 0x0000000466800000, 0x0000000466800000|100%| O| |TAMS 0x0000000466000000| PB 0x0000000466000000| Untracked | 0 +| 191|0x0000000466800000, 0x0000000467000000, 0x0000000467000000|100%| O| |TAMS 0x0000000466800000| PB 0x0000000466800000| Untracked | 0 +| 192|0x0000000467000000, 0x0000000467800000, 0x0000000467800000|100%| O| |TAMS 0x0000000467000000| PB 0x0000000467000000| Untracked | 0 +| 193|0x0000000467800000, 0x0000000468000000, 0x0000000468000000|100%| O| |TAMS 0x0000000467800000| PB 0x0000000467800000| Untracked | 0 +| 194|0x0000000468000000, 0x0000000468800000, 0x0000000468800000|100%| O| |TAMS 0x0000000468000000| PB 0x0000000468000000| Untracked | 0 +| 195|0x0000000468800000, 0x0000000469000000, 0x0000000469000000|100%| O| |TAMS 0x0000000468800000| PB 0x0000000468800000| Untracked | 0 +| 196|0x0000000469000000, 0x0000000469800000, 0x0000000469800000|100%| O| |TAMS 0x0000000469000000| PB 0x0000000469000000| Untracked | 0 +| 197|0x0000000469800000, 0x000000046a000000, 0x000000046a000000|100%| O| |TAMS 0x0000000469800000| PB 0x0000000469800000| Untracked | 0 +| 198|0x000000046a000000, 0x000000046a800000, 0x000000046a800000|100%| O| |TAMS 0x000000046a000000| PB 0x000000046a000000| Untracked | 0 +| 199|0x000000046a800000, 0x000000046b000000, 0x000000046b000000|100%| O| |TAMS 0x000000046a800000| PB 0x000000046a800000| Untracked | 0 +| 200|0x000000046b000000, 0x000000046b800000, 0x000000046b800000|100%| O| |TAMS 0x000000046b000000| PB 0x000000046b000000| Untracked | 0 +| 201|0x000000046b800000, 0x000000046c000000, 0x000000046c000000|100%| O| |TAMS 0x000000046b800000| PB 0x000000046b800000| Untracked | 0 +| 202|0x000000046c000000, 0x000000046c800000, 0x000000046c800000|100%| O| |TAMS 0x000000046c000000| PB 0x000000046c000000| Untracked | 0 +| 203|0x000000046c800000, 0x000000046d000000, 0x000000046d000000|100%| O| |TAMS 0x000000046c800000| PB 0x000000046c800000| Untracked | 0 +| 204|0x000000046d000000, 0x000000046d800000, 0x000000046d800000|100%| O| |TAMS 0x000000046d000000| PB 0x000000046d000000| Untracked | 0 +| 205|0x000000046d800000, 0x000000046e000000, 0x000000046e000000|100%| O| |TAMS 0x000000046d800000| PB 0x000000046d800000| Untracked | 0 +| 206|0x000000046e000000, 0x000000046e800000, 0x000000046e800000|100%| O| |TAMS 0x000000046e000000| PB 0x000000046e000000| Untracked | 0 +| 207|0x000000046e800000, 0x000000046f000000, 0x000000046f000000|100%| O| |TAMS 0x000000046e800000| PB 0x000000046e800000| Untracked | 0 +| 208|0x000000046f000000, 0x000000046f800000, 0x000000046f800000|100%| O| |TAMS 0x000000046f000000| PB 0x000000046f000000| Untracked | 0 +| 209|0x000000046f800000, 0x0000000470000000, 0x0000000470000000|100%| O| |TAMS 0x000000046f800000| PB 0x000000046f800000| Untracked | 0 +| 210|0x0000000470000000, 0x0000000470800000, 0x0000000470800000|100%| O| |TAMS 0x0000000470000000| PB 0x0000000470000000| Untracked | 0 +| 211|0x0000000470800000, 0x0000000471000000, 0x0000000471000000|100%| O| |TAMS 0x0000000470800000| PB 0x0000000470800000| Untracked | 0 +| 212|0x0000000471000000, 0x0000000471800000, 0x0000000471800000|100%| O| |TAMS 0x0000000471000000| PB 0x0000000471000000| Untracked | 0 +| 213|0x0000000471800000, 0x0000000472000000, 0x0000000472000000|100%| O| |TAMS 0x0000000471800000| PB 0x0000000471800000| Untracked | 0 +| 214|0x0000000472000000, 0x0000000472800000, 0x0000000472800000|100%| O| |TAMS 0x0000000472000000| PB 0x0000000472000000| Untracked | 0 +| 215|0x0000000472800000, 0x0000000473000000, 0x0000000473000000|100%| O| |TAMS 0x0000000472800000| PB 0x0000000472800000| Untracked | 0 +| 216|0x0000000473000000, 0x0000000473800000, 0x0000000473800000|100%| O| |TAMS 0x0000000473000000| PB 0x0000000473000000| Untracked | 0 +| 217|0x0000000473800000, 0x0000000474000000, 0x0000000474000000|100%| O| |TAMS 0x0000000473800000| PB 0x0000000473800000| Untracked | 0 +| 218|0x0000000474000000, 0x0000000474800000, 0x0000000474800000|100%| O| |TAMS 0x0000000474000000| PB 0x0000000474000000| Untracked | 0 +| 219|0x0000000474800000, 0x0000000475000000, 0x0000000475000000|100%| O| |TAMS 0x0000000474800000| PB 0x0000000474800000| Untracked | 0 +| 220|0x0000000475000000, 0x0000000475800000, 0x0000000475800000|100%| O| |TAMS 0x0000000475000000| PB 0x0000000475000000| Untracked | 0 +| 221|0x0000000475800000, 0x0000000476000000, 0x0000000476000000|100%| O| |TAMS 0x0000000475800000| PB 0x0000000475800000| Untracked | 0 +| 222|0x0000000476000000, 0x0000000476800000, 0x0000000476800000|100%| O| |TAMS 0x0000000476000000| PB 0x0000000476000000| Untracked | 0 +| 223|0x0000000476800000, 0x0000000477000000, 0x0000000477000000|100%| O| |TAMS 0x0000000476800000| PB 0x0000000476800000| Untracked | 0 +| 224|0x0000000477000000, 0x0000000477800000, 0x0000000477800000|100%| O| |TAMS 0x0000000477000000| PB 0x0000000477000000| Untracked | 0 +| 225|0x0000000477800000, 0x0000000478000000, 0x0000000478000000|100%| O| |TAMS 0x0000000477800000| PB 0x0000000477800000| Untracked | 0 +| 226|0x0000000478000000, 0x0000000478800000, 0x0000000478800000|100%| O| |TAMS 0x0000000478000000| PB 0x0000000478000000| Untracked | 0 +| 227|0x0000000478800000, 0x0000000479000000, 0x0000000479000000|100%| O| |TAMS 0x0000000478800000| PB 0x0000000478800000| Untracked | 0 +| 228|0x0000000479000000, 0x0000000479800000, 0x0000000479800000|100%| O| |TAMS 0x0000000479000000| PB 0x0000000479000000| Untracked | 0 +| 229|0x0000000479800000, 0x000000047a000000, 0x000000047a000000|100%| O| |TAMS 0x0000000479800000| PB 0x0000000479800000| Untracked | 0 +| 230|0x000000047a000000, 0x000000047a800000, 0x000000047a800000|100%| O| |TAMS 0x000000047a000000| PB 0x000000047a000000| Untracked | 0 +| 231|0x000000047a800000, 0x000000047b000000, 0x000000047b000000|100%| O| |TAMS 0x000000047a800000| PB 0x000000047a800000| Untracked | 0 +| 232|0x000000047b000000, 0x000000047b800000, 0x000000047b800000|100%| O| |TAMS 0x000000047b000000| PB 0x000000047b000000| Untracked | 0 +| 233|0x000000047b800000, 0x000000047c000000, 0x000000047c000000|100%| O| |TAMS 0x000000047b800000| PB 0x000000047b800000| Untracked | 0 +| 234|0x000000047c000000, 0x000000047c800000, 0x000000047c800000|100%| O| |TAMS 0x000000047c000000| PB 0x000000047c000000| Untracked | 0 +| 235|0x000000047c800000, 0x000000047d000000, 0x000000047d000000|100%| O| |TAMS 0x000000047c800000| PB 0x000000047c800000| Untracked | 0 +| 236|0x000000047d000000, 0x000000047d800000, 0x000000047d800000|100%| O| |TAMS 0x000000047d000000| PB 0x000000047d000000| Untracked | 0 +| 237|0x000000047d800000, 0x000000047e000000, 0x000000047e000000|100%| O| |TAMS 0x000000047d800000| PB 0x000000047d800000| Untracked | 0 +| 238|0x000000047e000000, 0x000000047e800000, 0x000000047e800000|100%| O| |TAMS 0x000000047e000000| PB 0x000000047e000000| Untracked | 0 +| 239|0x000000047e800000, 0x000000047f000000, 0x000000047f000000|100%| O| |TAMS 0x000000047e800000| PB 0x000000047e800000| Untracked | 0 +| 240|0x000000047f000000, 0x000000047f800000, 0x000000047f800000|100%| O| |TAMS 0x000000047f000000| PB 0x000000047f000000| Untracked | 0 +| 241|0x000000047f800000, 0x0000000480000000, 0x0000000480000000|100%| O| |TAMS 0x000000047f800000| PB 0x000000047f800000| Untracked | 0 +| 242|0x0000000480000000, 0x0000000480800000, 0x0000000480800000|100%| O| |TAMS 0x0000000480000000| PB 0x0000000480000000| Untracked | 0 +| 243|0x0000000480800000, 0x0000000481000000, 0x0000000481000000|100%| O| |TAMS 0x0000000480800000| PB 0x0000000480800000| Untracked | 0 +| 244|0x0000000481000000, 0x0000000481800000, 0x0000000481800000|100%| O| |TAMS 0x0000000481000000| PB 0x0000000481000000| Untracked | 0 +| 245|0x0000000481800000, 0x0000000482000000, 0x0000000482000000|100%| O| |TAMS 0x0000000481800000| PB 0x0000000481800000| Untracked | 0 +| 246|0x0000000482000000, 0x0000000482800000, 0x0000000482800000|100%| O| |TAMS 0x0000000482000000| PB 0x0000000482000000| Untracked | 0 +| 247|0x0000000482800000, 0x0000000483000000, 0x0000000483000000|100%| O| |TAMS 0x0000000482800000| PB 0x0000000482800000| Untracked | 0 +| 248|0x0000000483000000, 0x0000000483800000, 0x0000000483800000|100%| O| |TAMS 0x0000000483000000| PB 0x0000000483000000| Untracked | 0 +| 249|0x0000000483800000, 0x0000000484000000, 0x0000000484000000|100%| O| |TAMS 0x0000000483800000| PB 0x0000000483800000| Untracked | 0 +| 250|0x0000000484000000, 0x0000000484800000, 0x0000000484800000|100%| O| |TAMS 0x0000000484000000| PB 0x0000000484000000| Untracked | 0 +| 251|0x0000000484800000, 0x0000000485000000, 0x0000000485000000|100%| O| |TAMS 0x0000000484800000| PB 0x0000000484800000| Untracked | 0 +| 252|0x0000000485000000, 0x0000000485800000, 0x0000000485800000|100%| O| |TAMS 0x0000000485000000| PB 0x0000000485000000| Untracked | 0 +| 253|0x0000000485800000, 0x0000000486000000, 0x0000000486000000|100%| O| |TAMS 0x0000000485800000| PB 0x0000000485800000| Untracked | 0 +| 254|0x0000000486000000, 0x0000000486800000, 0x0000000486800000|100%| O| |TAMS 0x0000000486000000| PB 0x0000000486000000| Untracked | 0 +| 255|0x0000000486800000, 0x0000000487000000, 0x0000000487000000|100%| O| |TAMS 0x0000000486800000| PB 0x0000000486800000| Untracked | 0 +| 256|0x0000000487000000, 0x0000000487800000, 0x0000000487800000|100%| O| |TAMS 0x0000000487000000| PB 0x0000000487000000| Untracked | 0 +| 257|0x0000000487800000, 0x0000000488000000, 0x0000000488000000|100%| O| |TAMS 0x0000000487800000| PB 0x0000000487800000| Untracked | 0 +| 258|0x0000000488000000, 0x0000000488800000, 0x0000000488800000|100%| O| |TAMS 0x0000000488000000| PB 0x0000000488000000| Untracked | 0 +| 259|0x0000000488800000, 0x0000000489000000, 0x0000000489000000|100%| O| |TAMS 0x0000000488800000| PB 0x0000000488800000| Untracked | 0 +| 260|0x0000000489000000, 0x0000000489800000, 0x0000000489800000|100%| O| |TAMS 0x0000000489000000| PB 0x0000000489000000| Untracked | 0 +| 261|0x0000000489800000, 0x000000048a000000, 0x000000048a000000|100%| O| |TAMS 0x0000000489800000| PB 0x0000000489800000| Untracked | 0 +| 262|0x000000048a000000, 0x000000048a800000, 0x000000048a800000|100%| O| |TAMS 0x000000048a000000| PB 0x000000048a000000| Untracked | 0 +| 263|0x000000048a800000, 0x000000048b000000, 0x000000048b000000|100%| O| |TAMS 0x000000048a800000| PB 0x000000048a800000| Untracked | 0 +| 264|0x000000048b000000, 0x000000048b800000, 0x000000048b800000|100%| O| |TAMS 0x000000048b000000| PB 0x000000048b000000| Untracked | 0 +| 265|0x000000048b800000, 0x000000048c000000, 0x000000048c000000|100%| O| |TAMS 0x000000048b800000| PB 0x000000048b800000| Untracked | 0 +| 266|0x000000048c000000, 0x000000048c800000, 0x000000048c800000|100%| O| |TAMS 0x000000048c000000| PB 0x000000048c000000| Untracked | 0 +| 267|0x000000048c800000, 0x000000048d000000, 0x000000048d000000|100%| O| |TAMS 0x000000048c800000| PB 0x000000048c800000| Untracked | 0 +| 268|0x000000048d000000, 0x000000048d800000, 0x000000048d800000|100%| O| |TAMS 0x000000048d000000| PB 0x000000048d000000| Untracked | 0 +| 269|0x000000048d800000, 0x000000048e000000, 0x000000048e000000|100%| O| |TAMS 0x000000048d800000| PB 0x000000048d800000| Untracked | 0 +| 270|0x000000048e000000, 0x000000048e800000, 0x000000048e800000|100%| O| |TAMS 0x000000048e000000| PB 0x000000048e000000| Untracked | 0 +| 271|0x000000048e800000, 0x000000048f000000, 0x000000048f000000|100%| O| |TAMS 0x000000048e800000| PB 0x000000048e800000| Untracked | 0 +| 272|0x000000048f000000, 0x000000048f800000, 0x000000048f800000|100%| O| |TAMS 0x000000048f000000| PB 0x000000048f000000| Untracked | 0 +| 273|0x000000048f800000, 0x0000000490000000, 0x0000000490000000|100%| O| |TAMS 0x000000048f800000| PB 0x000000048f800000| Untracked | 0 +| 274|0x0000000490000000, 0x0000000490800000, 0x0000000490800000|100%| O| |TAMS 0x0000000490000000| PB 0x0000000490000000| Untracked | 0 +| 275|0x0000000490800000, 0x0000000491000000, 0x0000000491000000|100%| O| |TAMS 0x0000000490800000| PB 0x0000000490800000| Untracked | 0 +| 276|0x0000000491000000, 0x0000000491800000, 0x0000000491800000|100%| O| |TAMS 0x0000000491000000| PB 0x0000000491000000| Untracked | 0 +| 277|0x0000000491800000, 0x0000000492000000, 0x0000000492000000|100%| O| |TAMS 0x0000000491800000| PB 0x0000000491800000| Untracked | 0 +| 278|0x0000000492000000, 0x0000000492800000, 0x0000000492800000|100%| O| |TAMS 0x0000000492000000| PB 0x0000000492000000| Untracked | 0 +| 279|0x0000000492800000, 0x0000000493000000, 0x0000000493000000|100%| O| |TAMS 0x0000000492800000| PB 0x0000000492800000| Untracked | 0 +| 280|0x0000000493000000, 0x0000000493800000, 0x0000000493800000|100%| O| |TAMS 0x0000000493000000| PB 0x0000000493000000| Untracked | 0 +| 281|0x0000000493800000, 0x0000000494000000, 0x0000000494000000|100%| O| |TAMS 0x0000000493800000| PB 0x0000000493800000| Untracked | 0 +| 282|0x0000000494000000, 0x0000000494800000, 0x0000000494800000|100%| O| |TAMS 0x0000000494000000| PB 0x0000000494000000| Untracked | 0 +| 283|0x0000000494800000, 0x0000000495000000, 0x0000000495000000|100%| O| |TAMS 0x0000000494800000| PB 0x0000000494800000| Untracked | 0 +| 284|0x0000000495000000, 0x0000000495800000, 0x0000000495800000|100%| O| |TAMS 0x0000000495000000| PB 0x0000000495000000| Untracked | 0 +| 285|0x0000000495800000, 0x0000000496000000, 0x0000000496000000|100%| O| |TAMS 0x0000000495800000| PB 0x0000000495800000| Untracked | 0 +| 286|0x0000000496000000, 0x0000000496800000, 0x0000000496800000|100%| O| |TAMS 0x0000000496000000| PB 0x0000000496000000| Untracked | 0 +| 287|0x0000000496800000, 0x0000000497000000, 0x0000000497000000|100%| O| |TAMS 0x0000000496800000| PB 0x0000000496800000| Untracked | 0 +| 288|0x0000000497000000, 0x0000000497800000, 0x0000000497800000|100%| O| |TAMS 0x0000000497000000| PB 0x0000000497000000| Untracked | 0 +| 289|0x0000000497800000, 0x0000000498000000, 0x0000000498000000|100%| O| |TAMS 0x0000000497800000| PB 0x0000000497800000| Untracked | 0 +| 290|0x0000000498000000, 0x0000000498800000, 0x0000000498800000|100%| O| |TAMS 0x0000000498000000| PB 0x0000000498000000| Untracked | 0 +| 291|0x0000000498800000, 0x0000000499000000, 0x0000000499000000|100%| O| |TAMS 0x0000000498800000| PB 0x0000000498800000| Untracked | 0 +| 292|0x0000000499000000, 0x0000000499800000, 0x0000000499800000|100%| O| |TAMS 0x0000000499000000| PB 0x0000000499000000| Untracked | 0 +| 293|0x0000000499800000, 0x000000049a000000, 0x000000049a000000|100%| O| |TAMS 0x0000000499800000| PB 0x0000000499800000| Untracked | 0 +| 294|0x000000049a000000, 0x000000049a800000, 0x000000049a800000|100%| O| |TAMS 0x000000049a000000| PB 0x000000049a000000| Untracked | 0 +| 295|0x000000049a800000, 0x000000049b000000, 0x000000049b000000|100%| O| |TAMS 0x000000049a800000| PB 0x000000049a800000| Untracked | 0 +| 296|0x000000049b000000, 0x000000049b800000, 0x000000049b800000|100%| O| |TAMS 0x000000049b000000| PB 0x000000049b000000| Untracked | 0 +| 297|0x000000049b800000, 0x000000049c000000, 0x000000049c000000|100%| O| |TAMS 0x000000049b800000| PB 0x000000049b800000| Untracked | 0 +| 298|0x000000049c000000, 0x000000049c800000, 0x000000049c800000|100%| O| |TAMS 0x000000049c000000| PB 0x000000049c000000| Untracked | 0 +| 299|0x000000049c800000, 0x000000049d000000, 0x000000049d000000|100%| O| |TAMS 0x000000049c800000| PB 0x000000049c800000| Untracked | 0 +| 300|0x000000049d000000, 0x000000049d800000, 0x000000049d800000|100%| O| |TAMS 0x000000049d000000| PB 0x000000049d000000| Untracked | 0 +| 301|0x000000049d800000, 0x000000049e000000, 0x000000049e000000|100%| O| |TAMS 0x000000049d800000| PB 0x000000049d800000| Untracked | 0 +| 302|0x000000049e000000, 0x000000049e800000, 0x000000049e800000|100%| O| |TAMS 0x000000049e000000| PB 0x000000049e000000| Untracked | 0 +| 303|0x000000049e800000, 0x000000049f000000, 0x000000049f000000|100%| O| |TAMS 0x000000049e800000| PB 0x000000049e800000| Untracked | 0 +| 304|0x000000049f000000, 0x000000049f800000, 0x000000049f800000|100%| O| |TAMS 0x000000049f000000| PB 0x000000049f000000| Untracked | 0 +| 305|0x000000049f800000, 0x00000004a0000000, 0x00000004a0000000|100%| O| |TAMS 0x000000049f800000| PB 0x000000049f800000| Untracked | 0 +| 306|0x00000004a0000000, 0x00000004a0800000, 0x00000004a0800000|100%| O| |TAMS 0x00000004a0000000| PB 0x00000004a0000000| Untracked | 0 +| 307|0x00000004a0800000, 0x00000004a1000000, 0x00000004a1000000|100%| O| |TAMS 0x00000004a0800000| PB 0x00000004a0800000| Untracked | 0 +| 308|0x00000004a1000000, 0x00000004a1800000, 0x00000004a1800000|100%| O| |TAMS 0x00000004a1000000| PB 0x00000004a1000000| Untracked | 0 +| 309|0x00000004a1800000, 0x00000004a2000000, 0x00000004a2000000|100%| O| |TAMS 0x00000004a1800000| PB 0x00000004a1800000| Untracked | 0 +| 310|0x00000004a2000000, 0x00000004a2800000, 0x00000004a2800000|100%| O| |TAMS 0x00000004a2000000| PB 0x00000004a2000000| Untracked | 0 +| 311|0x00000004a2800000, 0x00000004a3000000, 0x00000004a3000000|100%| O| |TAMS 0x00000004a2800000| PB 0x00000004a2800000| Untracked | 0 +| 312|0x00000004a3000000, 0x00000004a3800000, 0x00000004a3800000|100%| O| |TAMS 0x00000004a3000000| PB 0x00000004a3000000| Untracked | 0 +| 313|0x00000004a3800000, 0x00000004a4000000, 0x00000004a4000000|100%| O| |TAMS 0x00000004a3800000| PB 0x00000004a3800000| Untracked | 0 +| 314|0x00000004a4000000, 0x00000004a4800000, 0x00000004a4800000|100%| O| |TAMS 0x00000004a4000000| PB 0x00000004a4000000| Untracked | 0 +| 315|0x00000004a4800000, 0x00000004a5000000, 0x00000004a5000000|100%| O| |TAMS 0x00000004a4800000| PB 0x00000004a4800000| Untracked | 0 +| 316|0x00000004a5000000, 0x00000004a5800000, 0x00000004a5800000|100%| O| |TAMS 0x00000004a5000000| PB 0x00000004a5000000| Untracked | 0 +| 317|0x00000004a5800000, 0x00000004a6000000, 0x00000004a6000000|100%| O| |TAMS 0x00000004a5800000| PB 0x00000004a5800000| Untracked | 0 +| 318|0x00000004a6000000, 0x00000004a6800000, 0x00000004a6800000|100%| O| |TAMS 0x00000004a6000000| PB 0x00000004a6000000| Untracked | 0 +| 319|0x00000004a6800000, 0x00000004a7000000, 0x00000004a7000000|100%| O| |TAMS 0x00000004a6800000| PB 0x00000004a6800000| Untracked | 0 +| 320|0x00000004a7000000, 0x00000004a7800000, 0x00000004a7800000|100%| O| |TAMS 0x00000004a7000000| PB 0x00000004a7000000| Untracked | 0 +| 321|0x00000004a7800000, 0x00000004a8000000, 0x00000004a8000000|100%| O| |TAMS 0x00000004a7800000| PB 0x00000004a7800000| Untracked | 0 +| 322|0x00000004a8000000, 0x00000004a8800000, 0x00000004a8800000|100%| O| |TAMS 0x00000004a8000000| PB 0x00000004a8000000| Untracked | 0 +| 323|0x00000004a8800000, 0x00000004a9000000, 0x00000004a9000000|100%| O| |TAMS 0x00000004a8800000| PB 0x00000004a8800000| Untracked | 0 +| 324|0x00000004a9000000, 0x00000004a9800000, 0x00000004a9800000|100%| O| |TAMS 0x00000004a9000000| PB 0x00000004a9000000| Untracked | 0 +| 325|0x00000004a9800000, 0x00000004aa000000, 0x00000004aa000000|100%| O| |TAMS 0x00000004a9800000| PB 0x00000004a9800000| Untracked | 0 +| 326|0x00000004aa000000, 0x00000004aa800000, 0x00000004aa800000|100%| O| |TAMS 0x00000004aa000000| PB 0x00000004aa000000| Untracked | 0 +| 327|0x00000004aa800000, 0x00000004ab000000, 0x00000004ab000000|100%| O| |TAMS 0x00000004aa800000| PB 0x00000004aa800000| Untracked | 0 +| 328|0x00000004ab000000, 0x00000004ab800000, 0x00000004ab800000|100%| O| |TAMS 0x00000004ab000000| PB 0x00000004ab000000| Untracked | 0 +| 329|0x00000004ab800000, 0x00000004ac000000, 0x00000004ac000000|100%| O| |TAMS 0x00000004ab800000| PB 0x00000004ab800000| Untracked | 0 +| 330|0x00000004ac000000, 0x00000004ac800000, 0x00000004ac800000|100%| O| |TAMS 0x00000004ac000000| PB 0x00000004ac000000| Untracked | 0 +| 331|0x00000004ac800000, 0x00000004ad000000, 0x00000004ad000000|100%| O| |TAMS 0x00000004ac800000| PB 0x00000004ac800000| Untracked | 0 +| 332|0x00000004ad000000, 0x00000004ad800000, 0x00000004ad800000|100%| O| |TAMS 0x00000004ad000000| PB 0x00000004ad000000| Untracked | 0 +| 333|0x00000004ad800000, 0x00000004ae000000, 0x00000004ae000000|100%| O| |TAMS 0x00000004ad800000| PB 0x00000004ad800000| Untracked | 0 +| 334|0x00000004ae000000, 0x00000004ae800000, 0x00000004ae800000|100%| O| |TAMS 0x00000004ae000000| PB 0x00000004ae000000| Untracked | 0 +| 335|0x00000004ae800000, 0x00000004af000000, 0x00000004af000000|100%| O| |TAMS 0x00000004ae800000| PB 0x00000004ae800000| Untracked | 0 +| 336|0x00000004af000000, 0x00000004af800000, 0x00000004af800000|100%| O| |TAMS 0x00000004af000000| PB 0x00000004af000000| Untracked | 0 +| 337|0x00000004af800000, 0x00000004b0000000, 0x00000004b0000000|100%| O| |TAMS 0x00000004af800000| PB 0x00000004af800000| Untracked | 0 +| 338|0x00000004b0000000, 0x00000004b0800000, 0x00000004b0800000|100%| O| |TAMS 0x00000004b0000000| PB 0x00000004b0000000| Untracked | 0 +| 339|0x00000004b0800000, 0x00000004b1000000, 0x00000004b1000000|100%| O| |TAMS 0x00000004b0800000| PB 0x00000004b0800000| Untracked | 0 +| 340|0x00000004b1000000, 0x00000004b1800000, 0x00000004b1800000|100%| O| |TAMS 0x00000004b1000000| PB 0x00000004b1000000| Untracked | 0 +| 341|0x00000004b1800000, 0x00000004b2000000, 0x00000004b2000000|100%| O| |TAMS 0x00000004b1800000| PB 0x00000004b1800000| Untracked | 0 +| 342|0x00000004b2000000, 0x00000004b2800000, 0x00000004b2800000|100%| O| |TAMS 0x00000004b2000000| PB 0x00000004b2000000| Untracked | 0 +| 343|0x00000004b2800000, 0x00000004b3000000, 0x00000004b3000000|100%| O| |TAMS 0x00000004b2800000| PB 0x00000004b2800000| Untracked | 0 +| 344|0x00000004b3000000, 0x00000004b3800000, 0x00000004b3800000|100%| O| |TAMS 0x00000004b3000000| PB 0x00000004b3000000| Untracked | 0 +| 345|0x00000004b3800000, 0x00000004b4000000, 0x00000004b4000000|100%| O| |TAMS 0x00000004b3800000| PB 0x00000004b3800000| Untracked | 0 +| 346|0x00000004b4000000, 0x00000004b4800000, 0x00000004b4800000|100%| O| |TAMS 0x00000004b4000000| PB 0x00000004b4000000| Untracked | 0 +| 347|0x00000004b4800000, 0x00000004b5000000, 0x00000004b5000000|100%| O| |TAMS 0x00000004b4800000| PB 0x00000004b4800000| Untracked | 0 +| 348|0x00000004b5000000, 0x00000004b5800000, 0x00000004b5800000|100%| O| |TAMS 0x00000004b5000000| PB 0x00000004b5000000| Untracked | 0 +| 349|0x00000004b5800000, 0x00000004b6000000, 0x00000004b6000000|100%| O| |TAMS 0x00000004b5800000| PB 0x00000004b5800000| Untracked | 0 +| 350|0x00000004b6000000, 0x00000004b6800000, 0x00000004b6800000|100%| O| |TAMS 0x00000004b6000000| PB 0x00000004b6000000| Untracked | 0 +| 351|0x00000004b6800000, 0x00000004b7000000, 0x00000004b7000000|100%| O| |TAMS 0x00000004b6800000| PB 0x00000004b6800000| Untracked | 0 +| 352|0x00000004b7000000, 0x00000004b7800000, 0x00000004b7800000|100%| O| |TAMS 0x00000004b7000000| PB 0x00000004b7000000| Untracked | 0 +| 353|0x00000004b7800000, 0x00000004b8000000, 0x00000004b8000000|100%| O| |TAMS 0x00000004b7800000| PB 0x00000004b7800000| Untracked | 0 +| 354|0x00000004b8000000, 0x00000004b8800000, 0x00000004b8800000|100%| O| |TAMS 0x00000004b8000000| PB 0x00000004b8000000| Untracked | 0 +| 355|0x00000004b8800000, 0x00000004b9000000, 0x00000004b9000000|100%| O| |TAMS 0x00000004b8800000| PB 0x00000004b8800000| Untracked | 0 +| 356|0x00000004b9000000, 0x00000004b9800000, 0x00000004b9800000|100%| O| |TAMS 0x00000004b9000000| PB 0x00000004b9000000| Untracked | 0 +| 357|0x00000004b9800000, 0x00000004ba000000, 0x00000004ba000000|100%| O| |TAMS 0x00000004b9800000| PB 0x00000004b9800000| Untracked | 0 +| 358|0x00000004ba000000, 0x00000004ba800000, 0x00000004ba800000|100%| O| |TAMS 0x00000004ba000000| PB 0x00000004ba000000| Untracked | 0 +| 359|0x00000004ba800000, 0x00000004bb000000, 0x00000004bb000000|100%| O| |TAMS 0x00000004ba800000| PB 0x00000004ba800000| Untracked | 0 +| 360|0x00000004bb000000, 0x00000004bb800000, 0x00000004bb800000|100%| O| |TAMS 0x00000004bb000000| PB 0x00000004bb000000| Untracked | 0 +| 361|0x00000004bb800000, 0x00000004bc000000, 0x00000004bc000000|100%| O| |TAMS 0x00000004bb800000| PB 0x00000004bb800000| Untracked | 0 +| 362|0x00000004bc000000, 0x00000004bc800000, 0x00000004bc800000|100%| O| |TAMS 0x00000004bc000000| PB 0x00000004bc000000| Untracked | 0 +| 363|0x00000004bc800000, 0x00000004bd000000, 0x00000004bd000000|100%| O| |TAMS 0x00000004bc800000| PB 0x00000004bc800000| Untracked | 0 +| 364|0x00000004bd000000, 0x00000004bd800000, 0x00000004bd800000|100%| O| |TAMS 0x00000004bd000000| PB 0x00000004bd000000| Untracked | 0 +| 365|0x00000004bd800000, 0x00000004be000000, 0x00000004be000000|100%| O| |TAMS 0x00000004bd800000| PB 0x00000004bd800000| Untracked | 0 +| 366|0x00000004be000000, 0x00000004be800000, 0x00000004be800000|100%| O| |TAMS 0x00000004be000000| PB 0x00000004be000000| Untracked | 0 +| 367|0x00000004be800000, 0x00000004bf000000, 0x00000004bf000000|100%| O| |TAMS 0x00000004be800000| PB 0x00000004be800000| Untracked | 0 +| 368|0x00000004bf000000, 0x00000004bf800000, 0x00000004bf800000|100%| O| |TAMS 0x00000004bf000000| PB 0x00000004bf000000| Untracked | 0 +| 369|0x00000004bf800000, 0x00000004c0000000, 0x00000004c0000000|100%| O| |TAMS 0x00000004bf800000| PB 0x00000004bf800000| Untracked | 0 +| 370|0x00000004c0000000, 0x00000004c0800000, 0x00000004c0800000|100%| O| |TAMS 0x00000004c0000000| PB 0x00000004c0000000| Untracked | 0 +| 371|0x00000004c0800000, 0x00000004c1000000, 0x00000004c1000000|100%| O| |TAMS 0x00000004c0800000| PB 0x00000004c0800000| Untracked | 0 +| 372|0x00000004c1000000, 0x00000004c1800000, 0x00000004c1800000|100%| O| |TAMS 0x00000004c1000000| PB 0x00000004c1000000| Untracked | 0 +| 373|0x00000004c1800000, 0x00000004c2000000, 0x00000004c2000000|100%| O| |TAMS 0x00000004c1800000| PB 0x00000004c1800000| Untracked | 0 +| 374|0x00000004c2000000, 0x00000004c2800000, 0x00000004c2800000|100%| O| |TAMS 0x00000004c2000000| PB 0x00000004c2000000| Untracked | 0 +| 375|0x00000004c2800000, 0x00000004c3000000, 0x00000004c3000000|100%| O| |TAMS 0x00000004c2800000| PB 0x00000004c2800000| Untracked | 0 +| 376|0x00000004c3000000, 0x00000004c3800000, 0x00000004c3800000|100%| O| |TAMS 0x00000004c3000000| PB 0x00000004c3000000| Untracked | 0 +| 377|0x00000004c3800000, 0x00000004c4000000, 0x00000004c4000000|100%| O| |TAMS 0x00000004c3800000| PB 0x00000004c3800000| Untracked | 0 +| 378|0x00000004c4000000, 0x00000004c4800000, 0x00000004c4800000|100%| O| |TAMS 0x00000004c4000000| PB 0x00000004c4000000| Untracked | 0 +| 379|0x00000004c4800000, 0x00000004c5000000, 0x00000004c5000000|100%| O| |TAMS 0x00000004c4800000| PB 0x00000004c4800000| Untracked | 0 +| 380|0x00000004c5000000, 0x00000004c5800000, 0x00000004c5800000|100%| O| |TAMS 0x00000004c5000000| PB 0x00000004c5000000| Untracked | 0 +| 381|0x00000004c5800000, 0x00000004c6000000, 0x00000004c6000000|100%| O| |TAMS 0x00000004c5800000| PB 0x00000004c5800000| Untracked | 0 +| 382|0x00000004c6000000, 0x00000004c6800000, 0x00000004c6800000|100%| O| |TAMS 0x00000004c6000000| PB 0x00000004c6000000| Untracked | 0 +| 383|0x00000004c6800000, 0x00000004c7000000, 0x00000004c7000000|100%| O| |TAMS 0x00000004c6800000| PB 0x00000004c6800000| Untracked | 0 +| 384|0x00000004c7000000, 0x00000004c7800000, 0x00000004c7800000|100%| O| |TAMS 0x00000004c7000000| PB 0x00000004c7000000| Untracked | 0 +| 385|0x00000004c7800000, 0x00000004c8000000, 0x00000004c8000000|100%| O| |TAMS 0x00000004c7800000| PB 0x00000004c7800000| Untracked | 0 +| 386|0x00000004c8000000, 0x00000004c8800000, 0x00000004c8800000|100%| O| |TAMS 0x00000004c8000000| PB 0x00000004c8000000| Untracked | 0 +| 387|0x00000004c8800000, 0x00000004c9000000, 0x00000004c9000000|100%| O| |TAMS 0x00000004c8800000| PB 0x00000004c8800000| Untracked | 0 +| 388|0x00000004c9000000, 0x00000004c9800000, 0x00000004c9800000|100%| O| |TAMS 0x00000004c9000000| PB 0x00000004c9000000| Untracked | 0 +| 389|0x00000004c9800000, 0x00000004ca000000, 0x00000004ca000000|100%| O| |TAMS 0x00000004c9800000| PB 0x00000004c9800000| Untracked | 0 +| 390|0x00000004ca000000, 0x00000004ca800000, 0x00000004ca800000|100%| O| |TAMS 0x00000004ca000000| PB 0x00000004ca000000| Untracked | 0 +| 391|0x00000004ca800000, 0x00000004cb000000, 0x00000004cb000000|100%| O| |TAMS 0x00000004ca800000| PB 0x00000004ca800000| Untracked | 0 +| 392|0x00000004cb000000, 0x00000004cb800000, 0x00000004cb800000|100%| O| |TAMS 0x00000004cb000000| PB 0x00000004cb000000| Untracked | 0 +| 393|0x00000004cb800000, 0x00000004cc000000, 0x00000004cc000000|100%| O| |TAMS 0x00000004cb800000| PB 0x00000004cb800000| Untracked | 0 +| 394|0x00000004cc000000, 0x00000004cc800000, 0x00000004cc800000|100%| O| |TAMS 0x00000004cc000000| PB 0x00000004cc000000| Untracked | 0 +| 395|0x00000004cc800000, 0x00000004cd000000, 0x00000004cd000000|100%| O| |TAMS 0x00000004cc800000| PB 0x00000004cc800000| Untracked | 0 +| 396|0x00000004cd000000, 0x00000004cd800000, 0x00000004cd800000|100%| O| |TAMS 0x00000004cd000000| PB 0x00000004cd000000| Untracked | 0 +| 397|0x00000004cd800000, 0x00000004ce000000, 0x00000004ce000000|100%| O| |TAMS 0x00000004cd800000| PB 0x00000004cd800000| Untracked | 0 +| 398|0x00000004ce000000, 0x00000004ce800000, 0x00000004ce800000|100%| O| |TAMS 0x00000004ce000000| PB 0x00000004ce000000| Untracked | 0 +| 399|0x00000004ce800000, 0x00000004cf000000, 0x00000004cf000000|100%| O| |TAMS 0x00000004ce800000| PB 0x00000004ce800000| Untracked | 0 +| 400|0x00000004cf000000, 0x00000004cf800000, 0x00000004cf800000|100%| O| |TAMS 0x00000004cf000000| PB 0x00000004cf000000| Untracked | 0 +| 401|0x00000004cf800000, 0x00000004d0000000, 0x00000004d0000000|100%| O| |TAMS 0x00000004cf800000| PB 0x00000004cf800000| Untracked | 0 +| 402|0x00000004d0000000, 0x00000004d0800000, 0x00000004d0800000|100%| O| |TAMS 0x00000004d0000000| PB 0x00000004d0000000| Untracked | 0 +| 403|0x00000004d0800000, 0x00000004d1000000, 0x00000004d1000000|100%| O| |TAMS 0x00000004d0800000| PB 0x00000004d0800000| Untracked | 0 +| 404|0x00000004d1000000, 0x00000004d1800000, 0x00000004d1800000|100%| O| |TAMS 0x00000004d1000000| PB 0x00000004d1000000| Untracked | 0 +| 405|0x00000004d1800000, 0x00000004d2000000, 0x00000004d2000000|100%| O| |TAMS 0x00000004d1800000| PB 0x00000004d1800000| Untracked | 0 +| 406|0x00000004d2000000, 0x00000004d2800000, 0x00000004d2800000|100%| O| |TAMS 0x00000004d2000000| PB 0x00000004d2000000| Untracked | 0 +| 407|0x00000004d2800000, 0x00000004d3000000, 0x00000004d3000000|100%| O| |TAMS 0x00000004d2800000| PB 0x00000004d2800000| Untracked | 0 +| 408|0x00000004d3000000, 0x00000004d3800000, 0x00000004d3800000|100%| O| |TAMS 0x00000004d3000000| PB 0x00000004d3000000| Untracked | 0 +| 409|0x00000004d3800000, 0x00000004d4000000, 0x00000004d4000000|100%| O| |TAMS 0x00000004d3800000| PB 0x00000004d3800000| Untracked | 0 +| 410|0x00000004d4000000, 0x00000004d4800000, 0x00000004d4800000|100%| O| |TAMS 0x00000004d4000000| PB 0x00000004d4000000| Untracked | 0 +| 411|0x00000004d4800000, 0x00000004d5000000, 0x00000004d5000000|100%| O| |TAMS 0x00000004d4800000| PB 0x00000004d4800000| Untracked | 0 +| 412|0x00000004d5000000, 0x00000004d5800000, 0x00000004d5800000|100%| O| |TAMS 0x00000004d5000000| PB 0x00000004d5000000| Untracked | 0 +| 413|0x00000004d5800000, 0x00000004d6000000, 0x00000004d6000000|100%| O| |TAMS 0x00000004d5800000| PB 0x00000004d5800000| Untracked | 0 +| 414|0x00000004d6000000, 0x00000004d6800000, 0x00000004d6800000|100%| O| |TAMS 0x00000004d6000000| PB 0x00000004d6000000| Untracked | 0 +| 415|0x00000004d6800000, 0x00000004d7000000, 0x00000004d7000000|100%| O| |TAMS 0x00000004d6800000| PB 0x00000004d6800000| Untracked | 0 +| 416|0x00000004d7000000, 0x00000004d7800000, 0x00000004d7800000|100%| O| |TAMS 0x00000004d7000000| PB 0x00000004d7000000| Untracked | 0 +| 417|0x00000004d7800000, 0x00000004d8000000, 0x00000004d8000000|100%| O| |TAMS 0x00000004d7800000| PB 0x00000004d7800000| Untracked | 0 +| 418|0x00000004d8000000, 0x00000004d8800000, 0x00000004d8800000|100%| O| |TAMS 0x00000004d8000000| PB 0x00000004d8000000| Untracked | 0 +| 419|0x00000004d8800000, 0x00000004d9000000, 0x00000004d9000000|100%| O| |TAMS 0x00000004d8800000| PB 0x00000004d8800000| Untracked | 0 +| 420|0x00000004d9000000, 0x00000004d9800000, 0x00000004d9800000|100%| O| |TAMS 0x00000004d9000000| PB 0x00000004d9000000| Untracked | 0 +| 421|0x00000004d9800000, 0x00000004da000000, 0x00000004da000000|100%| O| |TAMS 0x00000004d9800000| PB 0x00000004d9800000| Untracked | 0 +| 422|0x00000004da000000, 0x00000004da800000, 0x00000004da800000|100%| O| |TAMS 0x00000004da000000| PB 0x00000004da000000| Untracked | 0 +| 423|0x00000004da800000, 0x00000004db000000, 0x00000004db000000|100%| O| |TAMS 0x00000004da800000| PB 0x00000004da800000| Untracked | 0 +| 424|0x00000004db000000, 0x00000004db800000, 0x00000004db800000|100%| O| |TAMS 0x00000004db000000| PB 0x00000004db000000| Untracked | 0 +| 425|0x00000004db800000, 0x00000004dc000000, 0x00000004dc000000|100%| O| |TAMS 0x00000004db800000| PB 0x00000004db800000| Untracked | 0 +| 426|0x00000004dc000000, 0x00000004dc800000, 0x00000004dc800000|100%| O| |TAMS 0x00000004dc000000| PB 0x00000004dc000000| Untracked | 0 +| 427|0x00000004dc800000, 0x00000004dd000000, 0x00000004dd000000|100%| O| |TAMS 0x00000004dc800000| PB 0x00000004dc800000| Untracked | 0 +| 428|0x00000004dd000000, 0x00000004dd800000, 0x00000004dd800000|100%| O| |TAMS 0x00000004dd000000| PB 0x00000004dd000000| Untracked | 0 +| 429|0x00000004dd800000, 0x00000004de000000, 0x00000004de000000|100%| O| |TAMS 0x00000004dd800000| PB 0x00000004dd800000| Untracked | 0 +| 430|0x00000004de000000, 0x00000004de800000, 0x00000004de800000|100%| O| |TAMS 0x00000004de000000| PB 0x00000004de000000| Untracked | 0 +| 431|0x00000004de800000, 0x00000004df000000, 0x00000004df000000|100%| O| |TAMS 0x00000004de800000| PB 0x00000004de800000| Untracked | 0 +| 432|0x00000004df000000, 0x00000004df800000, 0x00000004df800000|100%| O| |TAMS 0x00000004df000000| PB 0x00000004df000000| Untracked | 0 +| 433|0x00000004df800000, 0x00000004e0000000, 0x00000004e0000000|100%| O| |TAMS 0x00000004df800000| PB 0x00000004df800000| Untracked | 0 +| 434|0x00000004e0000000, 0x00000004e0800000, 0x00000004e0800000|100%| O| |TAMS 0x00000004e0000000| PB 0x00000004e0000000| Untracked | 0 +| 435|0x00000004e0800000, 0x00000004e1000000, 0x00000004e1000000|100%| O| |TAMS 0x00000004e0800000| PB 0x00000004e0800000| Untracked | 0 +| 436|0x00000004e1000000, 0x00000004e1800000, 0x00000004e1800000|100%| O| |TAMS 0x00000004e1000000| PB 0x00000004e1000000| Untracked | 0 +| 437|0x00000004e1800000, 0x00000004e2000000, 0x00000004e2000000|100%| O| |TAMS 0x00000004e1800000| PB 0x00000004e1800000| Untracked | 0 +| 438|0x00000004e2000000, 0x00000004e2800000, 0x00000004e2800000|100%| O| |TAMS 0x00000004e2000000| PB 0x00000004e2000000| Untracked | 0 +| 439|0x00000004e2800000, 0x00000004e3000000, 0x00000004e3000000|100%| O| |TAMS 0x00000004e2800000| PB 0x00000004e2800000| Untracked | 0 +| 440|0x00000004e3000000, 0x00000004e3800000, 0x00000004e3800000|100%| O| |TAMS 0x00000004e3000000| PB 0x00000004e3000000| Untracked | 0 +| 441|0x00000004e3800000, 0x00000004e4000000, 0x00000004e4000000|100%| O| |TAMS 0x00000004e3800000| PB 0x00000004e3800000| Untracked | 0 +| 442|0x00000004e4000000, 0x00000004e4800000, 0x00000004e4800000|100%| O| |TAMS 0x00000004e4000000| PB 0x00000004e4000000| Untracked | 0 +| 443|0x00000004e4800000, 0x00000004e5000000, 0x00000004e5000000|100%| O| |TAMS 0x00000004e4800000| PB 0x00000004e4800000| Untracked | 0 +| 444|0x00000004e5000000, 0x00000004e5800000, 0x00000004e5800000|100%| O| |TAMS 0x00000004e5000000| PB 0x00000004e5000000| Untracked | 0 +| 445|0x00000004e5800000, 0x00000004e6000000, 0x00000004e6000000|100%| O| |TAMS 0x00000004e5800000| PB 0x00000004e5800000| Untracked | 0 +| 446|0x00000004e6000000, 0x00000004e6800000, 0x00000004e6800000|100%| O| |TAMS 0x00000004e6000000| PB 0x00000004e6000000| Untracked | 0 +| 447|0x00000004e6800000, 0x00000004e7000000, 0x00000004e7000000|100%| O| |TAMS 0x00000004e6800000| PB 0x00000004e6800000| Untracked | 0 +| 448|0x00000004e7000000, 0x00000004e7800000, 0x00000004e7800000|100%| O| |TAMS 0x00000004e7000000| PB 0x00000004e7000000| Untracked | 0 +| 449|0x00000004e7800000, 0x00000004e8000000, 0x00000004e8000000|100%| O| |TAMS 0x00000004e7800000| PB 0x00000004e7800000| Untracked | 0 +| 450|0x00000004e8000000, 0x00000004e8800000, 0x00000004e8800000|100%| O| |TAMS 0x00000004e8000000| PB 0x00000004e8000000| Untracked | 0 +| 451|0x00000004e8800000, 0x00000004e9000000, 0x00000004e9000000|100%| O| |TAMS 0x00000004e8800000| PB 0x00000004e8800000| Untracked | 0 +| 452|0x00000004e9000000, 0x00000004e9800000, 0x00000004e9800000|100%| O| |TAMS 0x00000004e9000000| PB 0x00000004e9000000| Untracked | 0 +| 453|0x00000004e9800000, 0x00000004ea000000, 0x00000004ea000000|100%| O| |TAMS 0x00000004e9800000| PB 0x00000004e9800000| Untracked | 0 +| 454|0x00000004ea000000, 0x00000004ea800000, 0x00000004ea800000|100%| O| |TAMS 0x00000004ea000000| PB 0x00000004ea000000| Untracked | 0 +| 455|0x00000004ea800000, 0x00000004eb000000, 0x00000004eb000000|100%| O| |TAMS 0x00000004ea800000| PB 0x00000004ea800000| Untracked | 0 +| 456|0x00000004eb000000, 0x00000004eb800000, 0x00000004eb800000|100%| O| |TAMS 0x00000004eb000000| PB 0x00000004eb000000| Untracked | 0 +| 457|0x00000004eb800000, 0x00000004ec000000, 0x00000004ec000000|100%| O| |TAMS 0x00000004eb800000| PB 0x00000004eb800000| Untracked | 0 +| 458|0x00000004ec000000, 0x00000004ec800000, 0x00000004ec800000|100%| O| |TAMS 0x00000004ec000000| PB 0x00000004ec000000| Untracked | 0 +| 459|0x00000004ec800000, 0x00000004ed000000, 0x00000004ed000000|100%| O| |TAMS 0x00000004ec800000| PB 0x00000004ec800000| Untracked | 0 +| 460|0x00000004ed000000, 0x00000004ed800000, 0x00000004ed800000|100%| O| |TAMS 0x00000004ed000000| PB 0x00000004ed000000| Untracked | 0 +| 461|0x00000004ed800000, 0x00000004ee000000, 0x00000004ee000000|100%| O| |TAMS 0x00000004ed800000| PB 0x00000004ed800000| Untracked | 0 +| 462|0x00000004ee000000, 0x00000004ee800000, 0x00000004ee800000|100%| O| |TAMS 0x00000004ee000000| PB 0x00000004ee000000| Untracked | 0 +| 463|0x00000004ee800000, 0x00000004ef000000, 0x00000004ef000000|100%| O| |TAMS 0x00000004ee800000| PB 0x00000004ee800000| Untracked | 0 +| 464|0x00000004ef000000, 0x00000004ef800000, 0x00000004ef800000|100%| O| |TAMS 0x00000004ef000000| PB 0x00000004ef000000| Untracked | 0 +| 465|0x00000004ef800000, 0x00000004f0000000, 0x00000004f0000000|100%| O| |TAMS 0x00000004ef800000| PB 0x00000004ef800000| Untracked | 0 +| 466|0x00000004f0000000, 0x00000004f0800000, 0x00000004f0800000|100%| O| |TAMS 0x00000004f0000000| PB 0x00000004f0000000| Untracked | 0 +| 467|0x00000004f0800000, 0x00000004f1000000, 0x00000004f1000000|100%| O| |TAMS 0x00000004f0800000| PB 0x00000004f0800000| Untracked | 0 +| 468|0x00000004f1000000, 0x00000004f1800000, 0x00000004f1800000|100%| O| |TAMS 0x00000004f1000000| PB 0x00000004f1000000| Untracked | 0 +| 469|0x00000004f1800000, 0x00000004f2000000, 0x00000004f2000000|100%| O| |TAMS 0x00000004f1800000| PB 0x00000004f1800000| Untracked | 0 +| 470|0x00000004f2000000, 0x00000004f2800000, 0x00000004f2800000|100%| O| |TAMS 0x00000004f2000000| PB 0x00000004f2000000| Untracked | 0 +| 471|0x00000004f2800000, 0x00000004f3000000, 0x00000004f3000000|100%| O| |TAMS 0x00000004f2800000| PB 0x00000004f2800000| Untracked | 0 +| 472|0x00000004f3000000, 0x00000004f3800000, 0x00000004f3800000|100%| O| |TAMS 0x00000004f3000000| PB 0x00000004f3000000| Untracked | 0 +| 473|0x00000004f3800000, 0x00000004f4000000, 0x00000004f4000000|100%| O| |TAMS 0x00000004f3800000| PB 0x00000004f3800000| Untracked | 0 +| 474|0x00000004f4000000, 0x00000004f4800000, 0x00000004f4800000|100%| O| |TAMS 0x00000004f4000000| PB 0x00000004f4000000| Untracked | 0 +| 475|0x00000004f4800000, 0x00000004f5000000, 0x00000004f5000000|100%| O| |TAMS 0x00000004f4800000| PB 0x00000004f4800000| Untracked | 0 +| 476|0x00000004f5000000, 0x00000004f5800000, 0x00000004f5800000|100%| O| |TAMS 0x00000004f5000000| PB 0x00000004f5000000| Untracked | 0 +| 477|0x00000004f5800000, 0x00000004f6000000, 0x00000004f6000000|100%| O| |TAMS 0x00000004f5800000| PB 0x00000004f5800000| Untracked | 0 +| 478|0x00000004f6000000, 0x00000004f6800000, 0x00000004f6800000|100%| O| |TAMS 0x00000004f6000000| PB 0x00000004f6000000| Untracked | 0 +| 479|0x00000004f6800000, 0x00000004f7000000, 0x00000004f7000000|100%| O| |TAMS 0x00000004f6800000| PB 0x00000004f6800000| Untracked | 0 +| 480|0x00000004f7000000, 0x00000004f7800000, 0x00000004f7800000|100%| O| |TAMS 0x00000004f7000000| PB 0x00000004f7000000| Untracked | 0 +| 481|0x00000004f7800000, 0x00000004f8000000, 0x00000004f8000000|100%| O| |TAMS 0x00000004f7800000| PB 0x00000004f7800000| Untracked | 0 +| 482|0x00000004f8000000, 0x00000004f8800000, 0x00000004f8800000|100%| O| |TAMS 0x00000004f8000000| PB 0x00000004f8000000| Untracked | 0 +| 483|0x00000004f8800000, 0x00000004f9000000, 0x00000004f9000000|100%| O| |TAMS 0x00000004f8800000| PB 0x00000004f8800000| Untracked | 0 +| 484|0x00000004f9000000, 0x00000004f9800000, 0x00000004f9800000|100%| O| |TAMS 0x00000004f9000000| PB 0x00000004f9000000| Untracked | 0 +| 485|0x00000004f9800000, 0x00000004fa000000, 0x00000004fa000000|100%| O| |TAMS 0x00000004f9800000| PB 0x00000004f9800000| Untracked | 0 +| 486|0x00000004fa000000, 0x00000004fa800000, 0x00000004fa800000|100%| O| |TAMS 0x00000004fa000000| PB 0x00000004fa000000| Untracked | 0 +| 487|0x00000004fa800000, 0x00000004fb000000, 0x00000004fb000000|100%| O| |TAMS 0x00000004fa800000| PB 0x00000004fa800000| Untracked | 0 +| 488|0x00000004fb000000, 0x00000004fb800000, 0x00000004fb800000|100%| O| |TAMS 0x00000004fb000000| PB 0x00000004fb000000| Untracked | 0 +| 489|0x00000004fb800000, 0x00000004fc000000, 0x00000004fc000000|100%| O| |TAMS 0x00000004fb800000| PB 0x00000004fb800000| Untracked | 0 +| 490|0x00000004fc000000, 0x00000004fc800000, 0x00000004fc800000|100%| O| |TAMS 0x00000004fc000000| PB 0x00000004fc000000| Untracked | 0 +| 491|0x00000004fc800000, 0x00000004fd000000, 0x00000004fd000000|100%| O| |TAMS 0x00000004fc800000| PB 0x00000004fc800000| Untracked | 0 +| 492|0x00000004fd000000, 0x00000004fd800000, 0x00000004fd800000|100%| O| |TAMS 0x00000004fd000000| PB 0x00000004fd000000| Untracked | 0 +| 493|0x00000004fd800000, 0x00000004fe000000, 0x00000004fe000000|100%| O| |TAMS 0x00000004fd800000| PB 0x00000004fd800000| Untracked | 0 +| 494|0x00000004fe000000, 0x00000004fe800000, 0x00000004fe800000|100%| O| |TAMS 0x00000004fe000000| PB 0x00000004fe000000| Untracked | 0 +| 495|0x00000004fe800000, 0x00000004ff000000, 0x00000004ff000000|100%| O| |TAMS 0x00000004fe800000| PB 0x00000004fe800000| Untracked | 0 +| 496|0x00000004ff000000, 0x00000004ff800000, 0x00000004ff800000|100%| O| |TAMS 0x00000004ff000000| PB 0x00000004ff000000| Untracked | 0 +| 497|0x00000004ff800000, 0x0000000500000000, 0x0000000500000000|100%| O| |TAMS 0x00000004ff800000| PB 0x00000004ff800000| Untracked | 0 +| 498|0x0000000500000000, 0x0000000500800000, 0x0000000500800000|100%| O| |TAMS 0x0000000500000000| PB 0x0000000500000000| Untracked | 0 +| 499|0x0000000500800000, 0x0000000501000000, 0x0000000501000000|100%| O| |TAMS 0x0000000500800000| PB 0x0000000500800000| Untracked | 0 +| 500|0x0000000501000000, 0x0000000501800000, 0x0000000501800000|100%| O| |TAMS 0x0000000501000000| PB 0x0000000501000000| Untracked | 0 +| 501|0x0000000501800000, 0x0000000502000000, 0x0000000502000000|100%| O| |TAMS 0x0000000501800000| PB 0x0000000501800000| Untracked | 0 +| 502|0x0000000502000000, 0x0000000502800000, 0x0000000502800000|100%| O| |TAMS 0x0000000502000000| PB 0x0000000502000000| Untracked | 0 +| 503|0x0000000502800000, 0x0000000503000000, 0x0000000503000000|100%| O| |TAMS 0x0000000502800000| PB 0x0000000502800000| Untracked | 0 +| 504|0x0000000503000000, 0x0000000503800000, 0x0000000503800000|100%| O| |TAMS 0x0000000503000000| PB 0x0000000503000000| Untracked | 0 +| 505|0x0000000503800000, 0x0000000504000000, 0x0000000504000000|100%| O| |TAMS 0x0000000503800000| PB 0x0000000503800000| Untracked | 0 +| 506|0x0000000504000000, 0x0000000504800000, 0x0000000504800000|100%| O| |TAMS 0x0000000504000000| PB 0x0000000504000000| Untracked | 0 +| 507|0x0000000504800000, 0x0000000505000000, 0x0000000505000000|100%| O| |TAMS 0x0000000504800000| PB 0x0000000504800000| Untracked | 0 +| 508|0x0000000505000000, 0x0000000505800000, 0x0000000505800000|100%| O| |TAMS 0x0000000505000000| PB 0x0000000505000000| Untracked | 0 +| 509|0x0000000505800000, 0x0000000506000000, 0x0000000506000000|100%| O| |TAMS 0x0000000505800000| PB 0x0000000505800000| Untracked | 0 +| 510|0x0000000506000000, 0x0000000506800000, 0x0000000506800000|100%| O| |TAMS 0x0000000506000000| PB 0x0000000506000000| Untracked | 0 +| 511|0x0000000506800000, 0x0000000507000000, 0x0000000507000000|100%| O| |TAMS 0x0000000506800000| PB 0x0000000506800000| Untracked | 0 +| 512|0x0000000507000000, 0x0000000507800000, 0x0000000507800000|100%| O| |TAMS 0x0000000507000000| PB 0x0000000507000000| Untracked | 0 +| 513|0x0000000507800000, 0x0000000508000000, 0x0000000508000000|100%| O| |TAMS 0x0000000507800000| PB 0x0000000507800000| Untracked | 0 +| 514|0x0000000508000000, 0x0000000508800000, 0x0000000508800000|100%| O| |TAMS 0x0000000508000000| PB 0x0000000508000000| Untracked | 0 +| 515|0x0000000508800000, 0x0000000509000000, 0x0000000509000000|100%| O| |TAMS 0x0000000508800000| PB 0x0000000508800000| Untracked | 0 +| 516|0x0000000509000000, 0x0000000509800000, 0x0000000509800000|100%| O| |TAMS 0x0000000509000000| PB 0x0000000509000000| Untracked | 0 +| 517|0x0000000509800000, 0x000000050a000000, 0x000000050a000000|100%| O| |TAMS 0x0000000509800000| PB 0x0000000509800000| Untracked | 0 +| 518|0x000000050a000000, 0x000000050a800000, 0x000000050a800000|100%| O| |TAMS 0x000000050a000000| PB 0x000000050a000000| Untracked | 0 +| 519|0x000000050a800000, 0x000000050b000000, 0x000000050b000000|100%| O| |TAMS 0x000000050a800000| PB 0x000000050a800000| Untracked | 0 +| 520|0x000000050b000000, 0x000000050b800000, 0x000000050b800000|100%| O| |TAMS 0x000000050b000000| PB 0x000000050b000000| Untracked | 0 +| 521|0x000000050b800000, 0x000000050c000000, 0x000000050c000000|100%| O| |TAMS 0x000000050b800000| PB 0x000000050b800000| Untracked | 0 +| 522|0x000000050c000000, 0x000000050c800000, 0x000000050c800000|100%| O| |TAMS 0x000000050c000000| PB 0x000000050c000000| Untracked | 0 +| 523|0x000000050c800000, 0x000000050d000000, 0x000000050d000000|100%| O| |TAMS 0x000000050c800000| PB 0x000000050c800000| Untracked | 0 +| 524|0x000000050d000000, 0x000000050d800000, 0x000000050d800000|100%| O| |TAMS 0x000000050d000000| PB 0x000000050d000000| Untracked | 0 +| 525|0x000000050d800000, 0x000000050e000000, 0x000000050e000000|100%| O| |TAMS 0x000000050d800000| PB 0x000000050d800000| Untracked | 0 +| 526|0x000000050e000000, 0x000000050e800000, 0x000000050e800000|100%| O| |TAMS 0x000000050e000000| PB 0x000000050e000000| Untracked | 0 +| 527|0x000000050e800000, 0x000000050f000000, 0x000000050f000000|100%| O| |TAMS 0x000000050e800000| PB 0x000000050e800000| Untracked | 0 +| 528|0x000000050f000000, 0x000000050f800000, 0x000000050f800000|100%| O| |TAMS 0x000000050f000000| PB 0x000000050f000000| Untracked | 0 +| 529|0x000000050f800000, 0x0000000510000000, 0x0000000510000000|100%| O| |TAMS 0x000000050f800000| PB 0x000000050f800000| Untracked | 0 +| 530|0x0000000510000000, 0x0000000510800000, 0x0000000510800000|100%| O| |TAMS 0x0000000510000000| PB 0x0000000510000000| Untracked | 0 +| 531|0x0000000510800000, 0x0000000511000000, 0x0000000511000000|100%| O| |TAMS 0x0000000510800000| PB 0x0000000510800000| Untracked | 0 +| 532|0x0000000511000000, 0x0000000511800000, 0x0000000511800000|100%| O| |TAMS 0x0000000511000000| PB 0x0000000511000000| Untracked | 0 +| 533|0x0000000511800000, 0x0000000512000000, 0x0000000512000000|100%| O| |TAMS 0x0000000511800000| PB 0x0000000511800000| Untracked | 0 +| 534|0x0000000512000000, 0x0000000512800000, 0x0000000512800000|100%| O| |TAMS 0x0000000512000000| PB 0x0000000512000000| Untracked | 0 +| 535|0x0000000512800000, 0x0000000513000000, 0x0000000513000000|100%| O| |TAMS 0x0000000512800000| PB 0x0000000512800000| Untracked | 0 +| 536|0x0000000513000000, 0x0000000513800000, 0x0000000513800000|100%| O| |TAMS 0x0000000513000000| PB 0x0000000513000000| Untracked | 0 +| 537|0x0000000513800000, 0x0000000514000000, 0x0000000514000000|100%| O| |TAMS 0x0000000513800000| PB 0x0000000513800000| Untracked | 0 +| 538|0x0000000514000000, 0x0000000514800000, 0x0000000514800000|100%| O| |TAMS 0x0000000514000000| PB 0x0000000514000000| Untracked | 0 +| 539|0x0000000514800000, 0x0000000515000000, 0x0000000515000000|100%| O| |TAMS 0x0000000514800000| PB 0x0000000514800000| Untracked | 0 +| 540|0x0000000515000000, 0x0000000515800000, 0x0000000515800000|100%| O| |TAMS 0x0000000515000000| PB 0x0000000515000000| Untracked | 0 +| 541|0x0000000515800000, 0x0000000516000000, 0x0000000516000000|100%| O| |TAMS 0x0000000515800000| PB 0x0000000515800000| Untracked | 0 +| 542|0x0000000516000000, 0x0000000516800000, 0x0000000516800000|100%| O| |TAMS 0x0000000516000000| PB 0x0000000516000000| Untracked | 0 +| 543|0x0000000516800000, 0x0000000517000000, 0x0000000517000000|100%| O| |TAMS 0x0000000516800000| PB 0x0000000516800000| Untracked | 0 +| 544|0x0000000517000000, 0x0000000517800000, 0x0000000517800000|100%| O| |TAMS 0x0000000517000000| PB 0x0000000517000000| Untracked | 0 +| 545|0x0000000517800000, 0x0000000518000000, 0x0000000518000000|100%| O| |TAMS 0x0000000517800000| PB 0x0000000517800000| Untracked | 0 +| 546|0x0000000518000000, 0x0000000518800000, 0x0000000518800000|100%| O| |TAMS 0x0000000518000000| PB 0x0000000518000000| Untracked | 0 +| 547|0x0000000518800000, 0x0000000519000000, 0x0000000519000000|100%| O| |TAMS 0x0000000518800000| PB 0x0000000518800000| Untracked | 0 +| 548|0x0000000519000000, 0x0000000519800000, 0x0000000519800000|100%| O| |TAMS 0x0000000519000000| PB 0x0000000519000000| Untracked | 0 +| 549|0x0000000519800000, 0x000000051a000000, 0x000000051a000000|100%| O| |TAMS 0x0000000519800000| PB 0x0000000519800000| Untracked | 0 +| 550|0x000000051a000000, 0x000000051a800000, 0x000000051a800000|100%| O| |TAMS 0x000000051a000000| PB 0x000000051a000000| Untracked | 0 +| 551|0x000000051a800000, 0x000000051b000000, 0x000000051b000000|100%| O| |TAMS 0x000000051a800000| PB 0x000000051a800000| Untracked | 0 +| 552|0x000000051b000000, 0x000000051b800000, 0x000000051b800000|100%| O| |TAMS 0x000000051b000000| PB 0x000000051b000000| Untracked | 0 +| 553|0x000000051b800000, 0x000000051c000000, 0x000000051c000000|100%| O| |TAMS 0x000000051b800000| PB 0x000000051b800000| Untracked | 0 +| 554|0x000000051c000000, 0x000000051c800000, 0x000000051c800000|100%| O| |TAMS 0x000000051c000000| PB 0x000000051c000000| Untracked | 0 +| 555|0x000000051c800000, 0x000000051d000000, 0x000000051d000000|100%| O| |TAMS 0x000000051c800000| PB 0x000000051c800000| Untracked | 0 +| 556|0x000000051d000000, 0x000000051d800000, 0x000000051d800000|100%| O| |TAMS 0x000000051d000000| PB 0x000000051d000000| Untracked | 0 +| 557|0x000000051d800000, 0x000000051e000000, 0x000000051e000000|100%| O| |TAMS 0x000000051d800000| PB 0x000000051d800000| Untracked | 0 +| 558|0x000000051e000000, 0x000000051e800000, 0x000000051e800000|100%| O| |TAMS 0x000000051e000000| PB 0x000000051e000000| Untracked | 0 +| 559|0x000000051e800000, 0x000000051f000000, 0x000000051f000000|100%| O| |TAMS 0x000000051e800000| PB 0x000000051e800000| Untracked | 0 +| 560|0x000000051f000000, 0x000000051f800000, 0x000000051f800000|100%| O| |TAMS 0x000000051f000000| PB 0x000000051f000000| Untracked | 0 +| 561|0x000000051f800000, 0x0000000520000000, 0x0000000520000000|100%| O| |TAMS 0x000000051f800000| PB 0x000000051f800000| Untracked | 0 +| 562|0x0000000520000000, 0x0000000520800000, 0x0000000520800000|100%| O| |TAMS 0x0000000520000000| PB 0x0000000520000000| Untracked | 0 +| 563|0x0000000520800000, 0x0000000521000000, 0x0000000521000000|100%| O| |TAMS 0x0000000520800000| PB 0x0000000520800000| Untracked | 0 +| 564|0x0000000521000000, 0x0000000521800000, 0x0000000521800000|100%| O| |TAMS 0x0000000521000000| PB 0x0000000521000000| Untracked | 0 +| 565|0x0000000521800000, 0x0000000522000000, 0x0000000522000000|100%| O| |TAMS 0x0000000521800000| PB 0x0000000521800000| Untracked | 0 +| 566|0x0000000522000000, 0x0000000522800000, 0x0000000522800000|100%| O| |TAMS 0x0000000522000000| PB 0x0000000522000000| Untracked | 0 +| 567|0x0000000522800000, 0x0000000523000000, 0x0000000523000000|100%| O| |TAMS 0x0000000522800000| PB 0x0000000522800000| Untracked | 0 +| 568|0x0000000523000000, 0x0000000523800000, 0x0000000523800000|100%| O| |TAMS 0x0000000523000000| PB 0x0000000523000000| Untracked | 0 +| 569|0x0000000523800000, 0x0000000524000000, 0x0000000524000000|100%| O| |TAMS 0x0000000523800000| PB 0x0000000523800000| Untracked | 0 +| 570|0x0000000524000000, 0x0000000524800000, 0x0000000524800000|100%| O| |TAMS 0x0000000524000000| PB 0x0000000524000000| Untracked | 0 +| 571|0x0000000524800000, 0x0000000525000000, 0x0000000525000000|100%| O| |TAMS 0x0000000524800000| PB 0x0000000524800000| Untracked | 0 +| 572|0x0000000525000000, 0x0000000525800000, 0x0000000525800000|100%| O| |TAMS 0x0000000525000000| PB 0x0000000525000000| Untracked | 0 +| 573|0x0000000525800000, 0x0000000526000000, 0x0000000526000000|100%| O| |TAMS 0x0000000525800000| PB 0x0000000525800000| Untracked | 0 +| 574|0x0000000526000000, 0x0000000526800000, 0x0000000526800000|100%| O| |TAMS 0x0000000526000000| PB 0x0000000526000000| Untracked | 0 +| 575|0x0000000526800000, 0x0000000527000000, 0x0000000527000000|100%| O| |TAMS 0x0000000526800000| PB 0x0000000526800000| Untracked | 0 +| 576|0x0000000527000000, 0x0000000527800000, 0x0000000527800000|100%| O| |TAMS 0x0000000527000000| PB 0x0000000527000000| Untracked | 0 +| 577|0x0000000527800000, 0x0000000528000000, 0x0000000528000000|100%| O| |TAMS 0x0000000527800000| PB 0x0000000527800000| Untracked | 0 +| 578|0x0000000528000000, 0x0000000528800000, 0x0000000528800000|100%| O| |TAMS 0x0000000528000000| PB 0x0000000528000000| Untracked | 0 +| 579|0x0000000528800000, 0x0000000529000000, 0x0000000529000000|100%| O| |TAMS 0x0000000528800000| PB 0x0000000528800000| Untracked | 0 +| 580|0x0000000529000000, 0x0000000529800000, 0x0000000529800000|100%| O| |TAMS 0x0000000529000000| PB 0x0000000529000000| Untracked | 0 +| 581|0x0000000529800000, 0x000000052a000000, 0x000000052a000000|100%| O| |TAMS 0x0000000529800000| PB 0x0000000529800000| Untracked | 0 +| 582|0x000000052a000000, 0x000000052a800000, 0x000000052a800000|100%| O| |TAMS 0x000000052a000000| PB 0x000000052a000000| Untracked | 0 +| 583|0x000000052a800000, 0x000000052b000000, 0x000000052b000000|100%| O| |TAMS 0x000000052a800000| PB 0x000000052a800000| Untracked | 0 +| 584|0x000000052b000000, 0x000000052b800000, 0x000000052b800000|100%| O| |TAMS 0x000000052b000000| PB 0x000000052b000000| Untracked | 0 +| 585|0x000000052b800000, 0x000000052c000000, 0x000000052c000000|100%| O| |TAMS 0x000000052b800000| PB 0x000000052b800000| Untracked | 0 +| 586|0x000000052c000000, 0x000000052c800000, 0x000000052c800000|100%| O| |TAMS 0x000000052c000000| PB 0x000000052c000000| Untracked | 0 +| 587|0x000000052c800000, 0x000000052d000000, 0x000000052d000000|100%| O| |TAMS 0x000000052c800000| PB 0x000000052c800000| Untracked | 0 +| 588|0x000000052d000000, 0x000000052d800000, 0x000000052d800000|100%| O| |TAMS 0x000000052d000000| PB 0x000000052d000000| Untracked | 0 +| 589|0x000000052d800000, 0x000000052e000000, 0x000000052e000000|100%| O| |TAMS 0x000000052d800000| PB 0x000000052d800000| Untracked | 0 +| 590|0x000000052e000000, 0x000000052e800000, 0x000000052e800000|100%| O| |TAMS 0x000000052e000000| PB 0x000000052e000000| Untracked | 0 +| 591|0x000000052e800000, 0x000000052f000000, 0x000000052f000000|100%| O| |TAMS 0x000000052e800000| PB 0x000000052e800000| Untracked | 0 +| 592|0x000000052f000000, 0x000000052f800000, 0x000000052f800000|100%| O| |TAMS 0x000000052f000000| PB 0x000000052f000000| Untracked | 0 +| 593|0x000000052f800000, 0x0000000530000000, 0x0000000530000000|100%| O| |TAMS 0x000000052f800000| PB 0x000000052f800000| Untracked | 0 +| 594|0x0000000530000000, 0x0000000530800000, 0x0000000530800000|100%| O| |TAMS 0x0000000530000000| PB 0x0000000530000000| Untracked | 0 +| 595|0x0000000530800000, 0x0000000531000000, 0x0000000531000000|100%| O| |TAMS 0x0000000530800000| PB 0x0000000530800000| Untracked | 0 +| 596|0x0000000531000000, 0x0000000531800000, 0x0000000531800000|100%| O| |TAMS 0x0000000531000000| PB 0x0000000531000000| Untracked | 0 +| 597|0x0000000531800000, 0x0000000532000000, 0x0000000532000000|100%| O| |TAMS 0x0000000531800000| PB 0x0000000531800000| Untracked | 0 +| 598|0x0000000532000000, 0x0000000532800000, 0x0000000532800000|100%| O| |TAMS 0x0000000532000000| PB 0x0000000532000000| Untracked | 0 +| 599|0x0000000532800000, 0x0000000533000000, 0x0000000533000000|100%| O| |TAMS 0x0000000532800000| PB 0x0000000532800000| Untracked | 0 +| 600|0x0000000533000000, 0x0000000533800000, 0x0000000533800000|100%| O| |TAMS 0x0000000533000000| PB 0x0000000533000000| Untracked | 0 +| 601|0x0000000533800000, 0x0000000534000000, 0x0000000534000000|100%| O| |TAMS 0x0000000533800000| PB 0x0000000533800000| Untracked | 0 +| 602|0x0000000534000000, 0x0000000534800000, 0x0000000534800000|100%| O| |TAMS 0x0000000534000000| PB 0x0000000534000000| Untracked | 0 +| 603|0x0000000534800000, 0x0000000535000000, 0x0000000535000000|100%| O| |TAMS 0x0000000534800000| PB 0x0000000534800000| Untracked | 0 +| 604|0x0000000535000000, 0x0000000535800000, 0x0000000535800000|100%| O| |TAMS 0x0000000535000000| PB 0x0000000535000000| Untracked | 0 +| 605|0x0000000535800000, 0x0000000536000000, 0x0000000536000000|100%| O| |TAMS 0x0000000535800000| PB 0x0000000535800000| Untracked | 0 +| 606|0x0000000536000000, 0x0000000536800000, 0x0000000536800000|100%| O| |TAMS 0x0000000536000000| PB 0x0000000536000000| Untracked | 0 +| 607|0x0000000536800000, 0x0000000537000000, 0x0000000537000000|100%| O| |TAMS 0x0000000536800000| PB 0x0000000536800000| Untracked | 0 +| 608|0x0000000537000000, 0x0000000537800000, 0x0000000537800000|100%| O| |TAMS 0x0000000537000000| PB 0x0000000537000000| Untracked | 0 +| 609|0x0000000537800000, 0x0000000538000000, 0x0000000538000000|100%| O| |TAMS 0x0000000537800000| PB 0x0000000537800000| Untracked | 0 +| 610|0x0000000538000000, 0x0000000538800000, 0x0000000538800000|100%| O| |TAMS 0x0000000538000000| PB 0x0000000538000000| Untracked | 0 +| 611|0x0000000538800000, 0x0000000539000000, 0x0000000539000000|100%| O| |TAMS 0x0000000538800000| PB 0x0000000538800000| Untracked | 0 +| 612|0x0000000539000000, 0x0000000539800000, 0x0000000539800000|100%| O| |TAMS 0x0000000539000000| PB 0x0000000539000000| Untracked | 0 +| 613|0x0000000539800000, 0x000000053a000000, 0x000000053a000000|100%| O| |TAMS 0x0000000539800000| PB 0x0000000539800000| Untracked | 0 +| 614|0x000000053a000000, 0x000000053a800000, 0x000000053a800000|100%| O| |TAMS 0x000000053a000000| PB 0x000000053a000000| Untracked | 0 +| 615|0x000000053a800000, 0x000000053b000000, 0x000000053b000000|100%| O| |TAMS 0x000000053a800000| PB 0x000000053a800000| Untracked | 0 +| 616|0x000000053b000000, 0x000000053b800000, 0x000000053b800000|100%| O| |TAMS 0x000000053b000000| PB 0x000000053b000000| Untracked | 0 +| 617|0x000000053b800000, 0x000000053c000000, 0x000000053c000000|100%| O| |TAMS 0x000000053b800000| PB 0x000000053b800000| Untracked | 0 +| 618|0x000000053c000000, 0x000000053c800000, 0x000000053c800000|100%| O| |TAMS 0x000000053c000000| PB 0x000000053c000000| Untracked | 0 +| 619|0x000000053c800000, 0x000000053d000000, 0x000000053d000000|100%| O| |TAMS 0x000000053c800000| PB 0x000000053c800000| Untracked | 0 +| 620|0x000000053d000000, 0x000000053d800000, 0x000000053d800000|100%| O| |TAMS 0x000000053d000000| PB 0x000000053d000000| Untracked | 0 +| 621|0x000000053d800000, 0x000000053e000000, 0x000000053e000000|100%| O| |TAMS 0x000000053d800000| PB 0x000000053d800000| Untracked | 0 +| 622|0x000000053e000000, 0x000000053e800000, 0x000000053e800000|100%| O| |TAMS 0x000000053e000000| PB 0x000000053e000000| Untracked | 0 +| 623|0x000000053e800000, 0x000000053f000000, 0x000000053f000000|100%| O| |TAMS 0x000000053e800000| PB 0x000000053e800000| Untracked | 0 +| 624|0x000000053f000000, 0x000000053f800000, 0x000000053f800000|100%| O| |TAMS 0x000000053f000000| PB 0x000000053f000000| Untracked | 0 +| 625|0x000000053f800000, 0x0000000540000000, 0x0000000540000000|100%| O| |TAMS 0x000000053f800000| PB 0x000000053f800000| Untracked | 0 +| 626|0x0000000540000000, 0x0000000540800000, 0x0000000540800000|100%| O| |TAMS 0x0000000540000000| PB 0x0000000540000000| Untracked | 0 +| 627|0x0000000540800000, 0x0000000541000000, 0x0000000541000000|100%| O| |TAMS 0x0000000540800000| PB 0x0000000540800000| Untracked | 0 +| 628|0x0000000541000000, 0x0000000541800000, 0x0000000541800000|100%| O| |TAMS 0x0000000541000000| PB 0x0000000541000000| Untracked | 0 +| 629|0x0000000541800000, 0x0000000542000000, 0x0000000542000000|100%| O| |TAMS 0x0000000541800000| PB 0x0000000541800000| Untracked | 0 +| 630|0x0000000542000000, 0x0000000542800000, 0x0000000542800000|100%| O| |TAMS 0x0000000542000000| PB 0x0000000542000000| Untracked | 0 +| 631|0x0000000542800000, 0x0000000543000000, 0x0000000543000000|100%| O| |TAMS 0x0000000542800000| PB 0x0000000542800000| Untracked | 0 +| 632|0x0000000543000000, 0x0000000543800000, 0x0000000543800000|100%| O| |TAMS 0x0000000543000000| PB 0x0000000543000000| Untracked | 0 +| 633|0x0000000543800000, 0x0000000544000000, 0x0000000544000000|100%| O| |TAMS 0x0000000543800000| PB 0x0000000543800000| Untracked | 0 +| 634|0x0000000544000000, 0x0000000544800000, 0x0000000544800000|100%| O| |TAMS 0x0000000544000000| PB 0x0000000544000000| Untracked | 0 +| 635|0x0000000544800000, 0x0000000545000000, 0x0000000545000000|100%| O| |TAMS 0x0000000544800000| PB 0x0000000544800000| Untracked | 0 +| 636|0x0000000545000000, 0x0000000545800000, 0x0000000545800000|100%| O| |TAMS 0x0000000545000000| PB 0x0000000545000000| Untracked | 0 +| 637|0x0000000545800000, 0x0000000546000000, 0x0000000546000000|100%| O| |TAMS 0x0000000545800000| PB 0x0000000545800000| Untracked | 0 +| 638|0x0000000546000000, 0x0000000546800000, 0x0000000546800000|100%| O| |TAMS 0x0000000546000000| PB 0x0000000546000000| Untracked | 0 +| 639|0x0000000546800000, 0x0000000547000000, 0x0000000547000000|100%| O| |TAMS 0x0000000546800000| PB 0x0000000546800000| Untracked | 0 +| 640|0x0000000547000000, 0x0000000547800000, 0x0000000547800000|100%| O| |TAMS 0x0000000547000000| PB 0x0000000547000000| Untracked | 0 +| 641|0x0000000547800000, 0x0000000548000000, 0x0000000548000000|100%| O| |TAMS 0x0000000547800000| PB 0x0000000547800000| Untracked | 0 +| 642|0x0000000548000000, 0x0000000548800000, 0x0000000548800000|100%| O| |TAMS 0x0000000548000000| PB 0x0000000548000000| Untracked | 0 +| 643|0x0000000548800000, 0x0000000549000000, 0x0000000549000000|100%| O| |TAMS 0x0000000548800000| PB 0x0000000548800000| Untracked | 0 +| 644|0x0000000549000000, 0x0000000549800000, 0x0000000549800000|100%| O| |TAMS 0x0000000549000000| PB 0x0000000549000000| Untracked | 0 +| 645|0x0000000549800000, 0x000000054a000000, 0x000000054a000000|100%| O| |TAMS 0x0000000549800000| PB 0x0000000549800000| Untracked | 0 +| 646|0x000000054a000000, 0x000000054a800000, 0x000000054a800000|100%| O| |TAMS 0x000000054a000000| PB 0x000000054a000000| Untracked | 0 +| 647|0x000000054a800000, 0x000000054b000000, 0x000000054b000000|100%| O| |TAMS 0x000000054a800000| PB 0x000000054a800000| Untracked | 0 +| 648|0x000000054b000000, 0x000000054b800000, 0x000000054b800000|100%| O| |TAMS 0x000000054b000000| PB 0x000000054b000000| Untracked | 0 +| 649|0x000000054b800000, 0x000000054c000000, 0x000000054c000000|100%| O| |TAMS 0x000000054b800000| PB 0x000000054b800000| Untracked | 0 +| 650|0x000000054c000000, 0x000000054c800000, 0x000000054c800000|100%| O| |TAMS 0x000000054c000000| PB 0x000000054c000000| Untracked | 0 +| 651|0x000000054c800000, 0x000000054d000000, 0x000000054d000000|100%| O| |TAMS 0x000000054c800000| PB 0x000000054c800000| Untracked | 0 +| 652|0x000000054d000000, 0x000000054d800000, 0x000000054d800000|100%| O| |TAMS 0x000000054d000000| PB 0x000000054d000000| Untracked | 0 +| 653|0x000000054d800000, 0x000000054e000000, 0x000000054e000000|100%| O| |TAMS 0x000000054d800000| PB 0x000000054d800000| Untracked | 0 +| 654|0x000000054e000000, 0x000000054e800000, 0x000000054e800000|100%| O| |TAMS 0x000000054e000000| PB 0x000000054e000000| Untracked | 0 +| 655|0x000000054e800000, 0x000000054f000000, 0x000000054f000000|100%| O| |TAMS 0x000000054e800000| PB 0x000000054e800000| Untracked | 0 +| 656|0x000000054f000000, 0x000000054f800000, 0x000000054f800000|100%| O| |TAMS 0x000000054f000000| PB 0x000000054f000000| Untracked | 0 +| 657|0x000000054f800000, 0x0000000550000000, 0x0000000550000000|100%| O| |TAMS 0x000000054f800000| PB 0x000000054f800000| Untracked | 0 +| 658|0x0000000550000000, 0x0000000550800000, 0x0000000550800000|100%| O| |TAMS 0x0000000550000000| PB 0x0000000550000000| Untracked | 0 +| 659|0x0000000550800000, 0x0000000551000000, 0x0000000551000000|100%| O| |TAMS 0x0000000550800000| PB 0x0000000550800000| Untracked | 0 +| 660|0x0000000551000000, 0x0000000551800000, 0x0000000551800000|100%| O| |TAMS 0x0000000551000000| PB 0x0000000551000000| Untracked | 0 +| 661|0x0000000551800000, 0x0000000552000000, 0x0000000552000000|100%| O| |TAMS 0x0000000551800000| PB 0x0000000551800000| Untracked | 0 +| 662|0x0000000552000000, 0x0000000552800000, 0x0000000552800000|100%| O| |TAMS 0x0000000552000000| PB 0x0000000552000000| Untracked | 0 +| 663|0x0000000552800000, 0x0000000553000000, 0x0000000553000000|100%| O| |TAMS 0x0000000552800000| PB 0x0000000552800000| Untracked | 0 +| 664|0x0000000553000000, 0x0000000553800000, 0x0000000553800000|100%| O| |TAMS 0x0000000553000000| PB 0x0000000553000000| Untracked | 0 +| 665|0x0000000553800000, 0x0000000554000000, 0x0000000554000000|100%| O| |TAMS 0x0000000553800000| PB 0x0000000553800000| Untracked | 0 +| 666|0x0000000554000000, 0x0000000554800000, 0x0000000554800000|100%| O| |TAMS 0x0000000554000000| PB 0x0000000554000000| Untracked | 0 +| 667|0x0000000554800000, 0x0000000555000000, 0x0000000555000000|100%| O| |TAMS 0x0000000554800000| PB 0x0000000554800000| Untracked | 0 +| 668|0x0000000555000000, 0x0000000555800000, 0x0000000555800000|100%| O| |TAMS 0x0000000555000000| PB 0x0000000555000000| Untracked | 0 +| 669|0x0000000555800000, 0x0000000556000000, 0x0000000556000000|100%| O| |TAMS 0x0000000555800000| PB 0x0000000555800000| Untracked | 0 +| 670|0x0000000556000000, 0x0000000556800000, 0x0000000556800000|100%| O| |TAMS 0x0000000556000000| PB 0x0000000556000000| Untracked | 0 +| 671|0x0000000556800000, 0x0000000557000000, 0x0000000557000000|100%| O| |TAMS 0x0000000556800000| PB 0x0000000556800000| Untracked | 0 +| 672|0x0000000557000000, 0x0000000557800000, 0x0000000557800000|100%| O| |TAMS 0x0000000557000000| PB 0x0000000557000000| Untracked | 0 +| 673|0x0000000557800000, 0x0000000558000000, 0x0000000558000000|100%| O| |TAMS 0x0000000557800000| PB 0x0000000557800000| Untracked | 0 +| 674|0x0000000558000000, 0x0000000558800000, 0x0000000558800000|100%| O| |TAMS 0x0000000558000000| PB 0x0000000558000000| Untracked | 0 +| 675|0x0000000558800000, 0x0000000559000000, 0x0000000559000000|100%| O| |TAMS 0x0000000558800000| PB 0x0000000558800000| Untracked | 0 +| 676|0x0000000559000000, 0x0000000559800000, 0x0000000559800000|100%| O| |TAMS 0x0000000559000000| PB 0x0000000559000000| Untracked | 0 +| 677|0x0000000559800000, 0x000000055a000000, 0x000000055a000000|100%| O| |TAMS 0x0000000559800000| PB 0x0000000559800000| Untracked | 0 +| 678|0x000000055a000000, 0x000000055a800000, 0x000000055a800000|100%| O| |TAMS 0x000000055a000000| PB 0x000000055a000000| Untracked | 0 +| 679|0x000000055a800000, 0x000000055b000000, 0x000000055b000000|100%| O| |TAMS 0x000000055a800000| PB 0x000000055a800000| Untracked | 0 +| 680|0x000000055b000000, 0x000000055b800000, 0x000000055b800000|100%| O| |TAMS 0x000000055b000000| PB 0x000000055b000000| Untracked | 0 +| 681|0x000000055b800000, 0x000000055c000000, 0x000000055c000000|100%| O| |TAMS 0x000000055b800000| PB 0x000000055b800000| Untracked | 0 +| 682|0x000000055c000000, 0x000000055c800000, 0x000000055c800000|100%| O| |TAMS 0x000000055c000000| PB 0x000000055c000000| Untracked | 0 +| 683|0x000000055c800000, 0x000000055d000000, 0x000000055d000000|100%| O| |TAMS 0x000000055c800000| PB 0x000000055c800000| Untracked | 0 +| 684|0x000000055d000000, 0x000000055d800000, 0x000000055d800000|100%| O| |TAMS 0x000000055d000000| PB 0x000000055d000000| Untracked | 0 +| 685|0x000000055d800000, 0x000000055e000000, 0x000000055e000000|100%| O| |TAMS 0x000000055d800000| PB 0x000000055d800000| Untracked | 0 +| 686|0x000000055e000000, 0x000000055e800000, 0x000000055e800000|100%| O| |TAMS 0x000000055e000000| PB 0x000000055e000000| Untracked | 0 +| 687|0x000000055e800000, 0x000000055f000000, 0x000000055f000000|100%| O| |TAMS 0x000000055e800000| PB 0x000000055e800000| Untracked | 0 +| 688|0x000000055f000000, 0x000000055f800000, 0x000000055f800000|100%| O| |TAMS 0x000000055f000000| PB 0x000000055f000000| Untracked | 0 +| 689|0x000000055f800000, 0x0000000560000000, 0x0000000560000000|100%| O| |TAMS 0x000000055f800000| PB 0x000000055f800000| Untracked | 0 +| 690|0x0000000560000000, 0x0000000560800000, 0x0000000560800000|100%| O| |TAMS 0x0000000560000000| PB 0x0000000560000000| Untracked | 0 +| 691|0x0000000560800000, 0x0000000561000000, 0x0000000561000000|100%| O| |TAMS 0x0000000560800000| PB 0x0000000560800000| Untracked | 0 +| 692|0x0000000561000000, 0x0000000561800000, 0x0000000561800000|100%| O| |TAMS 0x0000000561000000| PB 0x0000000561000000| Untracked | 0 +| 693|0x0000000561800000, 0x0000000562000000, 0x0000000562000000|100%| O| |TAMS 0x0000000561800000| PB 0x0000000561800000| Untracked | 0 +| 694|0x0000000562000000, 0x0000000562800000, 0x0000000562800000|100%| O| |TAMS 0x0000000562000000| PB 0x0000000562000000| Untracked | 0 +| 695|0x0000000562800000, 0x0000000563000000, 0x0000000563000000|100%| O| |TAMS 0x0000000562800000| PB 0x0000000562800000| Untracked | 0 +| 696|0x0000000563000000, 0x0000000563800000, 0x0000000563800000|100%| O| |TAMS 0x0000000563000000| PB 0x0000000563000000| Untracked | 0 +| 697|0x0000000563800000, 0x0000000564000000, 0x0000000564000000|100%| O| |TAMS 0x0000000563800000| PB 0x0000000563800000| Untracked | 0 +| 698|0x0000000564000000, 0x0000000564800000, 0x0000000564800000|100%| O| |TAMS 0x0000000564000000| PB 0x0000000564000000| Untracked | 0 +| 699|0x0000000564800000, 0x0000000565000000, 0x0000000565000000|100%| O| |TAMS 0x0000000564800000| PB 0x0000000564800000| Untracked | 0 +| 700|0x0000000565000000, 0x0000000565800000, 0x0000000565800000|100%| O| |TAMS 0x0000000565000000| PB 0x0000000565000000| Untracked | 0 +| 701|0x0000000565800000, 0x0000000566000000, 0x0000000566000000|100%| O| |TAMS 0x0000000565800000| PB 0x0000000565800000| Untracked | 0 +| 702|0x0000000566000000, 0x0000000566800000, 0x0000000566800000|100%| O| |TAMS 0x0000000566000000| PB 0x0000000566000000| Untracked | 0 +| 703|0x0000000566800000, 0x0000000567000000, 0x0000000567000000|100%| O| |TAMS 0x0000000566800000| PB 0x0000000566800000| Untracked | 0 +| 704|0x0000000567000000, 0x0000000567800000, 0x0000000567800000|100%| O| |TAMS 0x0000000567000000| PB 0x0000000567000000| Untracked | 0 +| 705|0x0000000567800000, 0x0000000568000000, 0x0000000568000000|100%| O| |TAMS 0x0000000567800000| PB 0x0000000567800000| Untracked | 0 +| 706|0x0000000568000000, 0x0000000568800000, 0x0000000568800000|100%| O| |TAMS 0x0000000568000000| PB 0x0000000568000000| Untracked | 0 +| 707|0x0000000568800000, 0x0000000569000000, 0x0000000569000000|100%| O| |TAMS 0x0000000568800000| PB 0x0000000568800000| Untracked | 0 +| 708|0x0000000569000000, 0x0000000569800000, 0x0000000569800000|100%| O| |TAMS 0x0000000569000000| PB 0x0000000569000000| Untracked | 0 +| 709|0x0000000569800000, 0x000000056a000000, 0x000000056a000000|100%| O| |TAMS 0x0000000569800000| PB 0x0000000569800000| Untracked | 0 +| 710|0x000000056a000000, 0x000000056a800000, 0x000000056a800000|100%| O| |TAMS 0x000000056a000000| PB 0x000000056a000000| Untracked | 0 +| 711|0x000000056a800000, 0x000000056b000000, 0x000000056b000000|100%| O| |TAMS 0x000000056a800000| PB 0x000000056a800000| Untracked | 0 +| 712|0x000000056b000000, 0x000000056b800000, 0x000000056b800000|100%| O| |TAMS 0x000000056b000000| PB 0x000000056b000000| Untracked | 0 +| 713|0x000000056b800000, 0x000000056c000000, 0x000000056c000000|100%| O| |TAMS 0x000000056b800000| PB 0x000000056b800000| Untracked | 0 +| 714|0x000000056c000000, 0x000000056c800000, 0x000000056c800000|100%| O| |TAMS 0x000000056c000000| PB 0x000000056c000000| Untracked | 0 +| 715|0x000000056c800000, 0x000000056d000000, 0x000000056d000000|100%| O| |TAMS 0x000000056c800000| PB 0x000000056c800000| Untracked | 0 +| 716|0x000000056d000000, 0x000000056d800000, 0x000000056d800000|100%| O| |TAMS 0x000000056d000000| PB 0x000000056d000000| Untracked | 0 +| 717|0x000000056d800000, 0x000000056e000000, 0x000000056e000000|100%| O| |TAMS 0x000000056d800000| PB 0x000000056d800000| Untracked | 0 +| 718|0x000000056e000000, 0x000000056e800000, 0x000000056e800000|100%| O| |TAMS 0x000000056e000000| PB 0x000000056e000000| Untracked | 0 +| 719|0x000000056e800000, 0x000000056f000000, 0x000000056f000000|100%| O| |TAMS 0x000000056e800000| PB 0x000000056e800000| Untracked | 0 +| 720|0x000000056f000000, 0x000000056f800000, 0x000000056f800000|100%| O| |TAMS 0x000000056f000000| PB 0x000000056f000000| Untracked | 0 +| 721|0x000000056f800000, 0x0000000570000000, 0x0000000570000000|100%| O| |TAMS 0x000000056f800000| PB 0x000000056f800000| Untracked | 0 +| 722|0x0000000570000000, 0x0000000570800000, 0x0000000570800000|100%| O| |TAMS 0x0000000570000000| PB 0x0000000570000000| Untracked | 0 +| 723|0x0000000570800000, 0x0000000571000000, 0x0000000571000000|100%| O| |TAMS 0x0000000570800000| PB 0x0000000570800000| Untracked | 0 +| 724|0x0000000571000000, 0x0000000571800000, 0x0000000571800000|100%| O| |TAMS 0x0000000571000000| PB 0x0000000571000000| Untracked | 0 +| 725|0x0000000571800000, 0x0000000572000000, 0x0000000572000000|100%| O| |TAMS 0x0000000571800000| PB 0x0000000571800000| Untracked | 0 +| 726|0x0000000572000000, 0x0000000572800000, 0x0000000572800000|100%| O| |TAMS 0x0000000572000000| PB 0x0000000572000000| Untracked | 0 +| 727|0x0000000572800000, 0x0000000573000000, 0x0000000573000000|100%| O| |TAMS 0x0000000572800000| PB 0x0000000572800000| Untracked | 0 +| 728|0x0000000573000000, 0x0000000573800000, 0x0000000573800000|100%| O| |TAMS 0x0000000573000000| PB 0x0000000573000000| Untracked | 0 +| 729|0x0000000573800000, 0x0000000574000000, 0x0000000574000000|100%| O| |TAMS 0x0000000573800000| PB 0x0000000573800000| Untracked | 0 +| 730|0x0000000574000000, 0x0000000574800000, 0x0000000574800000|100%| O| |TAMS 0x0000000574000000| PB 0x0000000574000000| Untracked | 0 +| 731|0x0000000574800000, 0x0000000575000000, 0x0000000575000000|100%| O| |TAMS 0x0000000574800000| PB 0x0000000574800000| Untracked | 0 +| 732|0x0000000575000000, 0x0000000575800000, 0x0000000575800000|100%| O| |TAMS 0x0000000575000000| PB 0x0000000575000000| Untracked | 0 +| 733|0x0000000575800000, 0x0000000576000000, 0x0000000576000000|100%| O| |TAMS 0x0000000575800000| PB 0x0000000575800000| Untracked | 0 +| 734|0x0000000576000000, 0x0000000576800000, 0x0000000576800000|100%| O| |TAMS 0x0000000576000000| PB 0x0000000576000000| Untracked | 0 +| 735|0x0000000576800000, 0x0000000577000000, 0x0000000577000000|100%| O| |TAMS 0x0000000576800000| PB 0x0000000576800000| Untracked | 0 +| 736|0x0000000577000000, 0x0000000577800000, 0x0000000577800000|100%| O| |TAMS 0x0000000577000000| PB 0x0000000577000000| Untracked | 0 +| 737|0x0000000577800000, 0x0000000578000000, 0x0000000578000000|100%| O| |TAMS 0x0000000577800000| PB 0x0000000577800000| Untracked | 0 +| 738|0x0000000578000000, 0x0000000578800000, 0x0000000578800000|100%| O| |TAMS 0x0000000578000000| PB 0x0000000578000000| Untracked | 0 +| 739|0x0000000578800000, 0x0000000579000000, 0x0000000579000000|100%| O| |TAMS 0x0000000578800000| PB 0x0000000578800000| Untracked | 0 +| 740|0x0000000579000000, 0x0000000579800000, 0x0000000579800000|100%| O| |TAMS 0x0000000579000000| PB 0x0000000579000000| Untracked | 0 +| 741|0x0000000579800000, 0x000000057a000000, 0x000000057a000000|100%| O| |TAMS 0x0000000579800000| PB 0x0000000579800000| Untracked | 0 +| 742|0x000000057a000000, 0x000000057a800000, 0x000000057a800000|100%| O| |TAMS 0x000000057a000000| PB 0x000000057a000000| Untracked | 0 +| 743|0x000000057a800000, 0x000000057b000000, 0x000000057b000000|100%| O| |TAMS 0x000000057a800000| PB 0x000000057a800000| Untracked | 0 +| 744|0x000000057b000000, 0x000000057b800000, 0x000000057b800000|100%| O| |TAMS 0x000000057b000000| PB 0x000000057b000000| Untracked | 0 +| 745|0x000000057b800000, 0x000000057c000000, 0x000000057c000000|100%| O| |TAMS 0x000000057b800000| PB 0x000000057b800000| Untracked | 0 +| 746|0x000000057c000000, 0x000000057c800000, 0x000000057c800000|100%| O| |TAMS 0x000000057c000000| PB 0x000000057c000000| Untracked | 0 +| 747|0x000000057c800000, 0x000000057d000000, 0x000000057d000000|100%| O| |TAMS 0x000000057c800000| PB 0x000000057c800000| Untracked | 0 +| 748|0x000000057d000000, 0x000000057d800000, 0x000000057d800000|100%| O| |TAMS 0x000000057d000000| PB 0x000000057d000000| Untracked | 0 +| 749|0x000000057d800000, 0x000000057e000000, 0x000000057e000000|100%| O| |TAMS 0x000000057d800000| PB 0x000000057d800000| Untracked | 0 +| 750|0x000000057e000000, 0x000000057e800000, 0x000000057e800000|100%| O| |TAMS 0x000000057e000000| PB 0x000000057e000000| Untracked | 0 +| 751|0x000000057e800000, 0x000000057f000000, 0x000000057f000000|100%| O| |TAMS 0x000000057e800000| PB 0x000000057e800000| Untracked | 0 +| 752|0x000000057f000000, 0x000000057f800000, 0x000000057f800000|100%| O| |TAMS 0x000000057f000000| PB 0x000000057f000000| Untracked | 0 +| 753|0x000000057f800000, 0x0000000580000000, 0x0000000580000000|100%| O| |TAMS 0x000000057f800000| PB 0x000000057f800000| Untracked | 0 +| 754|0x0000000580000000, 0x0000000580800000, 0x0000000580800000|100%| O| |TAMS 0x0000000580000000| PB 0x0000000580000000| Untracked | 0 +| 755|0x0000000580800000, 0x0000000581000000, 0x0000000581000000|100%| O| |TAMS 0x0000000580800000| PB 0x0000000580800000| Untracked | 0 +| 756|0x0000000581000000, 0x0000000581800000, 0x0000000581800000|100%| O| |TAMS 0x0000000581000000| PB 0x0000000581000000| Untracked | 0 +| 757|0x0000000581800000, 0x0000000582000000, 0x0000000582000000|100%| O| |TAMS 0x0000000581800000| PB 0x0000000581800000| Untracked | 0 +| 758|0x0000000582000000, 0x0000000582800000, 0x0000000582800000|100%| O| |TAMS 0x0000000582000000| PB 0x0000000582000000| Untracked | 0 +| 759|0x0000000582800000, 0x0000000583000000, 0x0000000583000000|100%| O| |TAMS 0x0000000582800000| PB 0x0000000582800000| Untracked | 0 +| 760|0x0000000583000000, 0x0000000583800000, 0x0000000583800000|100%| O| |TAMS 0x0000000583000000| PB 0x0000000583000000| Untracked | 0 +| 761|0x0000000583800000, 0x0000000584000000, 0x0000000584000000|100%| O| |TAMS 0x0000000583800000| PB 0x0000000583800000| Untracked | 0 +| 762|0x0000000584000000, 0x0000000584800000, 0x0000000584800000|100%| O| |TAMS 0x0000000584000000| PB 0x0000000584000000| Untracked | 0 +| 763|0x0000000584800000, 0x0000000585000000, 0x0000000585000000|100%| O| |TAMS 0x0000000584800000| PB 0x0000000584800000| Untracked | 0 +| 764|0x0000000585000000, 0x0000000585800000, 0x0000000585800000|100%| O| |TAMS 0x0000000585000000| PB 0x0000000585000000| Untracked | 0 +| 765|0x0000000585800000, 0x0000000586000000, 0x0000000586000000|100%| O| |TAMS 0x0000000585800000| PB 0x0000000585800000| Untracked | 0 +| 766|0x0000000586000000, 0x0000000586800000, 0x0000000586800000|100%| O| |TAMS 0x0000000586000000| PB 0x0000000586000000| Untracked | 0 +| 767|0x0000000586800000, 0x0000000587000000, 0x0000000587000000|100%| O| |TAMS 0x0000000586800000| PB 0x0000000586800000| Untracked | 0 +| 768|0x0000000587000000, 0x0000000587800000, 0x0000000587800000|100%| O| |TAMS 0x0000000587000000| PB 0x0000000587000000| Untracked | 0 +| 769|0x0000000587800000, 0x0000000588000000, 0x0000000588000000|100%| O| |TAMS 0x0000000587800000| PB 0x0000000587800000| Untracked | 0 +| 770|0x0000000588000000, 0x0000000588800000, 0x0000000588800000|100%| O| |TAMS 0x0000000588000000| PB 0x0000000588000000| Untracked | 0 +| 771|0x0000000588800000, 0x0000000589000000, 0x0000000589000000|100%| O| |TAMS 0x0000000588800000| PB 0x0000000588800000| Untracked | 0 +| 772|0x0000000589000000, 0x0000000589800000, 0x0000000589800000|100%| O| |TAMS 0x0000000589000000| PB 0x0000000589000000| Untracked | 0 +| 773|0x0000000589800000, 0x000000058a000000, 0x000000058a000000|100%| O| |TAMS 0x0000000589800000| PB 0x0000000589800000| Untracked | 0 +| 774|0x000000058a000000, 0x000000058a800000, 0x000000058a800000|100%| O| |TAMS 0x000000058a000000| PB 0x000000058a000000| Untracked | 0 +| 775|0x000000058a800000, 0x000000058b000000, 0x000000058b000000|100%| O| |TAMS 0x000000058a800000| PB 0x000000058a800000| Untracked | 0 +| 776|0x000000058b000000, 0x000000058b800000, 0x000000058b800000|100%| O| |TAMS 0x000000058b000000| PB 0x000000058b000000| Untracked | 0 +| 777|0x000000058b800000, 0x000000058c000000, 0x000000058c000000|100%| O| |TAMS 0x000000058b800000| PB 0x000000058b800000| Untracked | 0 +| 778|0x000000058c000000, 0x000000058c800000, 0x000000058c800000|100%| O| |TAMS 0x000000058c000000| PB 0x000000058c000000| Untracked | 0 +| 779|0x000000058c800000, 0x000000058d000000, 0x000000058d000000|100%| O| |TAMS 0x000000058c800000| PB 0x000000058c800000| Untracked | 0 +| 780|0x000000058d000000, 0x000000058d800000, 0x000000058d800000|100%| O| |TAMS 0x000000058d000000| PB 0x000000058d000000| Untracked | 0 +| 781|0x000000058d800000, 0x000000058e000000, 0x000000058e000000|100%| O| |TAMS 0x000000058d800000| PB 0x000000058d800000| Untracked | 0 +| 782|0x000000058e000000, 0x000000058e800000, 0x000000058e800000|100%| O| |TAMS 0x000000058e000000| PB 0x000000058e000000| Untracked | 0 +| 783|0x000000058e800000, 0x000000058f000000, 0x000000058f000000|100%| O| |TAMS 0x000000058e800000| PB 0x000000058e800000| Untracked | 0 +| 784|0x000000058f000000, 0x000000058f800000, 0x000000058f800000|100%| O| |TAMS 0x000000058f000000| PB 0x000000058f000000| Untracked | 0 +| 785|0x000000058f800000, 0x0000000590000000, 0x0000000590000000|100%| O| |TAMS 0x000000058f800000| PB 0x000000058f800000| Untracked | 0 +| 786|0x0000000590000000, 0x0000000590800000, 0x0000000590800000|100%| O| |TAMS 0x0000000590000000| PB 0x0000000590000000| Untracked | 0 +| 787|0x0000000590800000, 0x0000000591000000, 0x0000000591000000|100%| O| |TAMS 0x0000000590800000| PB 0x0000000590800000| Untracked | 0 +| 788|0x0000000591000000, 0x0000000591800000, 0x0000000591800000|100%| O| |TAMS 0x0000000591000000| PB 0x0000000591000000| Untracked | 0 +| 789|0x0000000591800000, 0x0000000592000000, 0x0000000592000000|100%| O| |TAMS 0x0000000591800000| PB 0x0000000591800000| Untracked | 0 +| 790|0x0000000592000000, 0x0000000592800000, 0x0000000592800000|100%| O| |TAMS 0x0000000592000000| PB 0x0000000592000000| Untracked | 0 +| 791|0x0000000592800000, 0x0000000593000000, 0x0000000593000000|100%| O| |TAMS 0x0000000592800000| PB 0x0000000592800000| Untracked | 0 +| 792|0x0000000593000000, 0x0000000593800000, 0x0000000593800000|100%| O| |TAMS 0x0000000593000000| PB 0x0000000593000000| Untracked | 0 +| 793|0x0000000593800000, 0x0000000594000000, 0x0000000594000000|100%| O| |TAMS 0x0000000593800000| PB 0x0000000593800000| Untracked | 0 +| 794|0x0000000594000000, 0x0000000594800000, 0x0000000594800000|100%| O| |TAMS 0x0000000594000000| PB 0x0000000594000000| Untracked | 0 +| 795|0x0000000594800000, 0x0000000595000000, 0x0000000595000000|100%| O| |TAMS 0x0000000594800000| PB 0x0000000594800000| Untracked | 0 +| 796|0x0000000595000000, 0x0000000595800000, 0x0000000595800000|100%| O| |TAMS 0x0000000595000000| PB 0x0000000595000000| Untracked | 0 +| 797|0x0000000595800000, 0x0000000596000000, 0x0000000596000000|100%| O| |TAMS 0x0000000595800000| PB 0x0000000595800000| Untracked | 0 +| 798|0x0000000596000000, 0x0000000596800000, 0x0000000596800000|100%| O| |TAMS 0x0000000596000000| PB 0x0000000596000000| Untracked | 0 +| 799|0x0000000596800000, 0x0000000597000000, 0x0000000597000000|100%| O| |TAMS 0x0000000596800000| PB 0x0000000596800000| Untracked | 0 +| 800|0x0000000597000000, 0x0000000597800000, 0x0000000597800000|100%| O| |TAMS 0x0000000597000000| PB 0x0000000597000000| Untracked | 0 +| 801|0x0000000597800000, 0x0000000598000000, 0x0000000598000000|100%| O| |TAMS 0x0000000597800000| PB 0x0000000597800000| Untracked | 0 +| 802|0x0000000598000000, 0x0000000598800000, 0x0000000598800000|100%| O| |TAMS 0x0000000598000000| PB 0x0000000598000000| Untracked | 0 +| 803|0x0000000598800000, 0x0000000599000000, 0x0000000599000000|100%| O| |TAMS 0x0000000598800000| PB 0x0000000598800000| Untracked | 0 +| 804|0x0000000599000000, 0x0000000599800000, 0x0000000599800000|100%| O| |TAMS 0x0000000599000000| PB 0x0000000599000000| Untracked | 0 +| 805|0x0000000599800000, 0x000000059a000000, 0x000000059a000000|100%| O| |TAMS 0x0000000599800000| PB 0x0000000599800000| Untracked | 0 +| 806|0x000000059a000000, 0x000000059a800000, 0x000000059a800000|100%| O| |TAMS 0x000000059a000000| PB 0x000000059a000000| Untracked | 0 +| 807|0x000000059a800000, 0x000000059b000000, 0x000000059b000000|100%| O| |TAMS 0x000000059a800000| PB 0x000000059a800000| Untracked | 0 +| 808|0x000000059b000000, 0x000000059b800000, 0x000000059b800000|100%| O| |TAMS 0x000000059b000000| PB 0x000000059b000000| Untracked | 0 +| 809|0x000000059b800000, 0x000000059c000000, 0x000000059c000000|100%| O| |TAMS 0x000000059b800000| PB 0x000000059b800000| Untracked | 0 +| 810|0x000000059c000000, 0x000000059c800000, 0x000000059c800000|100%| O| |TAMS 0x000000059c000000| PB 0x000000059c000000| Untracked | 0 +| 811|0x000000059c800000, 0x000000059d000000, 0x000000059d000000|100%| O| |TAMS 0x000000059c800000| PB 0x000000059c800000| Untracked | 0 +| 812|0x000000059d000000, 0x000000059d800000, 0x000000059d800000|100%| O| |TAMS 0x000000059d000000| PB 0x000000059d000000| Untracked | 0 +| 813|0x000000059d800000, 0x000000059e000000, 0x000000059e000000|100%| O| |TAMS 0x000000059d800000| PB 0x000000059d800000| Untracked | 0 +| 814|0x000000059e000000, 0x000000059e800000, 0x000000059e800000|100%| O| |TAMS 0x000000059e000000| PB 0x000000059e000000| Untracked | 0 +| 815|0x000000059e800000, 0x000000059f000000, 0x000000059f000000|100%| O| |TAMS 0x000000059e800000| PB 0x000000059e800000| Untracked | 0 +| 816|0x000000059f000000, 0x000000059f800000, 0x000000059f800000|100%| O| |TAMS 0x000000059f000000| PB 0x000000059f000000| Untracked | 0 +| 817|0x000000059f800000, 0x00000005a0000000, 0x00000005a0000000|100%| O| |TAMS 0x000000059f800000| PB 0x000000059f800000| Untracked | 0 +| 818|0x00000005a0000000, 0x00000005a0800000, 0x00000005a0800000|100%| O| |TAMS 0x00000005a0000000| PB 0x00000005a0000000| Untracked | 0 +| 819|0x00000005a0800000, 0x00000005a1000000, 0x00000005a1000000|100%| O| |TAMS 0x00000005a0800000| PB 0x00000005a0800000| Untracked | 0 +| 820|0x00000005a1000000, 0x00000005a1800000, 0x00000005a1800000|100%| O| |TAMS 0x00000005a1000000| PB 0x00000005a1000000| Untracked | 0 +| 821|0x00000005a1800000, 0x00000005a2000000, 0x00000005a2000000|100%| O| |TAMS 0x00000005a1800000| PB 0x00000005a1800000| Untracked | 0 +| 822|0x00000005a2000000, 0x00000005a2800000, 0x00000005a2800000|100%| O| |TAMS 0x00000005a2000000| PB 0x00000005a2000000| Untracked | 0 +| 823|0x00000005a2800000, 0x00000005a3000000, 0x00000005a3000000|100%| O| |TAMS 0x00000005a2800000| PB 0x00000005a2800000| Untracked | 0 +| 824|0x00000005a3000000, 0x00000005a3800000, 0x00000005a3800000|100%| O| |TAMS 0x00000005a3000000| PB 0x00000005a3000000| Untracked | 0 +| 825|0x00000005a3800000, 0x00000005a4000000, 0x00000005a4000000|100%| O| |TAMS 0x00000005a3800000| PB 0x00000005a3800000| Untracked | 0 +| 826|0x00000005a4000000, 0x00000005a4800000, 0x00000005a4800000|100%| O| |TAMS 0x00000005a4000000| PB 0x00000005a4000000| Untracked | 0 +| 827|0x00000005a4800000, 0x00000005a5000000, 0x00000005a5000000|100%| O| |TAMS 0x00000005a4800000| PB 0x00000005a4800000| Untracked | 0 +| 828|0x00000005a5000000, 0x00000005a5800000, 0x00000005a5800000|100%| O| |TAMS 0x00000005a5000000| PB 0x00000005a5000000| Untracked | 0 +| 829|0x00000005a5800000, 0x00000005a6000000, 0x00000005a6000000|100%| O| |TAMS 0x00000005a5800000| PB 0x00000005a5800000| Untracked | 0 +| 830|0x00000005a6000000, 0x00000005a6800000, 0x00000005a6800000|100%| O| |TAMS 0x00000005a6000000| PB 0x00000005a6000000| Untracked | 0 +| 831|0x00000005a6800000, 0x00000005a7000000, 0x00000005a7000000|100%| O| |TAMS 0x00000005a6800000| PB 0x00000005a6800000| Untracked | 0 +| 832|0x00000005a7000000, 0x00000005a7800000, 0x00000005a7800000|100%| O| |TAMS 0x00000005a7000000| PB 0x00000005a7000000| Untracked | 0 +| 833|0x00000005a7800000, 0x00000005a8000000, 0x00000005a8000000|100%| O| |TAMS 0x00000005a7800000| PB 0x00000005a7800000| Untracked | 0 +| 834|0x00000005a8000000, 0x00000005a8800000, 0x00000005a8800000|100%| O| |TAMS 0x00000005a8000000| PB 0x00000005a8000000| Untracked | 0 +| 835|0x00000005a8800000, 0x00000005a9000000, 0x00000005a9000000|100%| O| |TAMS 0x00000005a8800000| PB 0x00000005a8800000| Untracked | 0 +| 836|0x00000005a9000000, 0x00000005a9800000, 0x00000005a9800000|100%| O| |TAMS 0x00000005a9000000| PB 0x00000005a9000000| Untracked | 0 +| 837|0x00000005a9800000, 0x00000005aa000000, 0x00000005aa000000|100%| O| |TAMS 0x00000005a9800000| PB 0x00000005a9800000| Untracked | 0 +| 838|0x00000005aa000000, 0x00000005aa800000, 0x00000005aa800000|100%| O| |TAMS 0x00000005aa000000| PB 0x00000005aa000000| Untracked | 0 +| 839|0x00000005aa800000, 0x00000005ab000000, 0x00000005ab000000|100%| O| |TAMS 0x00000005aa800000| PB 0x00000005aa800000| Untracked | 0 +| 840|0x00000005ab000000, 0x00000005ab800000, 0x00000005ab800000|100%| O| |TAMS 0x00000005ab000000| PB 0x00000005ab000000| Untracked | 0 +| 841|0x00000005ab800000, 0x00000005ac000000, 0x00000005ac000000|100%| O| |TAMS 0x00000005ab800000| PB 0x00000005ab800000| Untracked | 0 +| 842|0x00000005ac000000, 0x00000005ac800000, 0x00000005ac800000|100%| O| |TAMS 0x00000005ac000000| PB 0x00000005ac000000| Untracked | 0 +| 843|0x00000005ac800000, 0x00000005ad000000, 0x00000005ad000000|100%| O| |TAMS 0x00000005ac800000| PB 0x00000005ac800000| Untracked | 0 +| 844|0x00000005ad000000, 0x00000005ad800000, 0x00000005ad800000|100%| O| |TAMS 0x00000005ad000000| PB 0x00000005ad000000| Untracked | 0 +| 845|0x00000005ad800000, 0x00000005ae000000, 0x00000005ae000000|100%| O| |TAMS 0x00000005ad800000| PB 0x00000005ad800000| Untracked | 0 +| 846|0x00000005ae000000, 0x00000005ae800000, 0x00000005ae800000|100%| O| |TAMS 0x00000005ae000000| PB 0x00000005ae000000| Untracked | 0 +| 847|0x00000005ae800000, 0x00000005af000000, 0x00000005af000000|100%| O| |TAMS 0x00000005ae800000| PB 0x00000005ae800000| Untracked | 0 +| 848|0x00000005af000000, 0x00000005af800000, 0x00000005af800000|100%| O| |TAMS 0x00000005af000000| PB 0x00000005af000000| Untracked | 0 +| 849|0x00000005af800000, 0x00000005b0000000, 0x00000005b0000000|100%| O| |TAMS 0x00000005af800000| PB 0x00000005af800000| Untracked | 0 +| 850|0x00000005b0000000, 0x00000005b0800000, 0x00000005b0800000|100%| O| |TAMS 0x00000005b0000000| PB 0x00000005b0000000| Untracked | 0 +| 851|0x00000005b0800000, 0x00000005b1000000, 0x00000005b1000000|100%| O| |TAMS 0x00000005b0800000| PB 0x00000005b0800000| Untracked | 0 +| 852|0x00000005b1000000, 0x00000005b1800000, 0x00000005b1800000|100%| O| |TAMS 0x00000005b1000000| PB 0x00000005b1000000| Untracked | 0 +| 853|0x00000005b1800000, 0x00000005b2000000, 0x00000005b2000000|100%| O| |TAMS 0x00000005b1800000| PB 0x00000005b1800000| Untracked | 0 +| 854|0x00000005b2000000, 0x00000005b2800000, 0x00000005b2800000|100%| O| |TAMS 0x00000005b2000000| PB 0x00000005b2000000| Untracked | 0 +| 855|0x00000005b2800000, 0x00000005b3000000, 0x00000005b3000000|100%| O| |TAMS 0x00000005b2800000| PB 0x00000005b2800000| Untracked | 0 +| 856|0x00000005b3000000, 0x00000005b3800000, 0x00000005b3800000|100%| O| |TAMS 0x00000005b3000000| PB 0x00000005b3000000| Untracked | 0 +| 857|0x00000005b3800000, 0x00000005b4000000, 0x00000005b4000000|100%| O| |TAMS 0x00000005b3800000| PB 0x00000005b3800000| Untracked | 0 +| 858|0x00000005b4000000, 0x00000005b4800000, 0x00000005b4800000|100%| O| |TAMS 0x00000005b4000000| PB 0x00000005b4000000| Untracked | 0 +| 859|0x00000005b4800000, 0x00000005b5000000, 0x00000005b5000000|100%| O| |TAMS 0x00000005b4800000| PB 0x00000005b4800000| Untracked | 0 +| 860|0x00000005b5000000, 0x00000005b5800000, 0x00000005b5800000|100%| O| |TAMS 0x00000005b5000000| PB 0x00000005b5000000| Untracked | 0 +| 861|0x00000005b5800000, 0x00000005b6000000, 0x00000005b6000000|100%| O| |TAMS 0x00000005b5800000| PB 0x00000005b5800000| Untracked | 0 +| 862|0x00000005b6000000, 0x00000005b6800000, 0x00000005b6800000|100%| O| |TAMS 0x00000005b6000000| PB 0x00000005b6000000| Untracked | 0 +| 863|0x00000005b6800000, 0x00000005b7000000, 0x00000005b7000000|100%| O| |TAMS 0x00000005b6800000| PB 0x00000005b6800000| Untracked | 0 +| 864|0x00000005b7000000, 0x00000005b7800000, 0x00000005b7800000|100%| O| |TAMS 0x00000005b7000000| PB 0x00000005b7000000| Untracked | 0 +| 865|0x00000005b7800000, 0x00000005b8000000, 0x00000005b8000000|100%| O| |TAMS 0x00000005b7800000| PB 0x00000005b7800000| Untracked | 0 +| 866|0x00000005b8000000, 0x00000005b8800000, 0x00000005b8800000|100%| O| |TAMS 0x00000005b8000000| PB 0x00000005b8000000| Untracked | 0 +| 867|0x00000005b8800000, 0x00000005b89a1208, 0x00000005b9000000| 20%| O| |TAMS 0x00000005b8800000| PB 0x00000005b8800000| Untracked | 0 +| 868|0x00000005b9000000, 0x00000005b9000000, 0x00000005b9800000| 0%| F| |TAMS 0x00000005b9000000| PB 0x00000005b9000000| Untracked | 0 +| 869|0x00000005b9800000, 0x00000005b9800000, 0x00000005ba000000| 0%| F| |TAMS 0x00000005b9800000| PB 0x00000005b9800000| Untracked | 0 +| 870|0x00000005ba000000, 0x00000005ba000000, 0x00000005ba800000| 0%| F| |TAMS 0x00000005ba000000| PB 0x00000005ba000000| Untracked | 0 +| 871|0x00000005ba800000, 0x00000005ba800000, 0x00000005bb000000| 0%| F| |TAMS 0x00000005ba800000| PB 0x00000005ba800000| Untracked | 0 +| 872|0x00000005bb000000, 0x00000005bb000000, 0x00000005bb800000| 0%| F| |TAMS 0x00000005bb000000| PB 0x00000005bb000000| Untracked | 0 +| 873|0x00000005bb800000, 0x00000005bb800000, 0x00000005bc000000| 0%| F| |TAMS 0x00000005bb800000| PB 0x00000005bb800000| Untracked | 0 +| 874|0x00000005bc000000, 0x00000005bc000000, 0x00000005bc800000| 0%| F| |TAMS 0x00000005bc000000| PB 0x00000005bc000000| Untracked | 0 +| 875|0x00000005bc800000, 0x00000005bc800000, 0x00000005bd000000| 0%| F| |TAMS 0x00000005bc800000| PB 0x00000005bc800000| Untracked | 0 +| 876|0x00000005bd000000, 0x00000005bd000000, 0x00000005bd800000| 0%| F| |TAMS 0x00000005bd000000| PB 0x00000005bd000000| Untracked | 0 +| 877|0x00000005bd800000, 0x00000005bd800000, 0x00000005be000000| 0%| F| |TAMS 0x00000005bd800000| PB 0x00000005bd800000| Untracked | 0 +| 878|0x00000005be000000, 0x00000005be000000, 0x00000005be800000| 0%| F| |TAMS 0x00000005be000000| PB 0x00000005be000000| Untracked | 0 +| 879|0x00000005be800000, 0x00000005be800000, 0x00000005bf000000| 0%| F| |TAMS 0x00000005be800000| PB 0x00000005be800000| Untracked | 0 +| 880|0x00000005bf000000, 0x00000005bf000000, 0x00000005bf800000| 0%| F| |TAMS 0x00000005bf000000| PB 0x00000005bf000000| Untracked | 0 +| 881|0x00000005bf800000, 0x00000005bf800000, 0x00000005c0000000| 0%| F| |TAMS 0x00000005bf800000| PB 0x00000005bf800000| Untracked | 0 +| 882|0x00000005c0000000, 0x00000005c0000000, 0x00000005c0800000| 0%| F| |TAMS 0x00000005c0000000| PB 0x00000005c0000000| Untracked | 0 +| 883|0x00000005c0800000, 0x00000005c0800000, 0x00000005c1000000| 0%| F| |TAMS 0x00000005c0800000| PB 0x00000005c0800000| Untracked | 0 +| 884|0x00000005c1000000, 0x00000005c1000000, 0x00000005c1800000| 0%| F| |TAMS 0x00000005c1000000| PB 0x00000005c1000000| Untracked | 0 +| 885|0x00000005c1800000, 0x00000005c1800000, 0x00000005c2000000| 0%| F| |TAMS 0x00000005c1800000| PB 0x00000005c1800000| Untracked | 0 +| 886|0x00000005c2000000, 0x00000005c2000000, 0x00000005c2800000| 0%| F| |TAMS 0x00000005c2000000| PB 0x00000005c2000000| Untracked | 0 +| 887|0x00000005c2800000, 0x00000005c2800000, 0x00000005c3000000| 0%| F| |TAMS 0x00000005c2800000| PB 0x00000005c2800000| Untracked | 0 +| 888|0x00000005c3000000, 0x00000005c3000000, 0x00000005c3800000| 0%| F| |TAMS 0x00000005c3000000| PB 0x00000005c3000000| Untracked | 0 +| 889|0x00000005c3800000, 0x00000005c3800000, 0x00000005c4000000| 0%| F| |TAMS 0x00000005c3800000| PB 0x00000005c3800000| Untracked | 0 +| 890|0x00000005c4000000, 0x00000005c4000000, 0x00000005c4800000| 0%| F| |TAMS 0x00000005c4000000| PB 0x00000005c4000000| Untracked | 0 +| 891|0x00000005c4800000, 0x00000005c4800000, 0x00000005c5000000| 0%| F| |TAMS 0x00000005c4800000| PB 0x00000005c4800000| Untracked | 0 +| 892|0x00000005c5000000, 0x00000005c5000000, 0x00000005c5800000| 0%| F| |TAMS 0x00000005c5000000| PB 0x00000005c5000000| Untracked | 0 +| 893|0x00000005c5800000, 0x00000005c5800000, 0x00000005c6000000| 0%| F| |TAMS 0x00000005c5800000| PB 0x00000005c5800000| Untracked | 0 +| 894|0x00000005c6000000, 0x00000005c6000000, 0x00000005c6800000| 0%| F| |TAMS 0x00000005c6000000| PB 0x00000005c6000000| Untracked | 0 +| 895|0x00000005c6800000, 0x00000005c6800000, 0x00000005c7000000| 0%| F| |TAMS 0x00000005c6800000| PB 0x00000005c6800000| Untracked | 0 +| 896|0x00000005c7000000, 0x00000005c7000000, 0x00000005c7800000| 0%| F| |TAMS 0x00000005c7000000| PB 0x00000005c7000000| Untracked | 0 +| 897|0x00000005c7800000, 0x00000005c7800000, 0x00000005c8000000| 0%| F| |TAMS 0x00000005c7800000| PB 0x00000005c7800000| Untracked | 0 +| 898|0x00000005c8000000, 0x00000005c8000000, 0x00000005c8800000| 0%| F| |TAMS 0x00000005c8000000| PB 0x00000005c8000000| Untracked | 0 +| 899|0x00000005c8800000, 0x00000005c8800000, 0x00000005c9000000| 0%| F| |TAMS 0x00000005c8800000| PB 0x00000005c8800000| Untracked | 0 +| 900|0x00000005c9000000, 0x00000005c9000000, 0x00000005c9800000| 0%| F| |TAMS 0x00000005c9000000| PB 0x00000005c9000000| Untracked | 0 +| 901|0x00000005c9800000, 0x00000005c9800000, 0x00000005ca000000| 0%| F| |TAMS 0x00000005c9800000| PB 0x00000005c9800000| Untracked | 0 +| 902|0x00000005ca000000, 0x00000005ca000000, 0x00000005ca800000| 0%| F| |TAMS 0x00000005ca000000| PB 0x00000005ca000000| Untracked | 0 +| 903|0x00000005ca800000, 0x00000005ca800000, 0x00000005cb000000| 0%| F| |TAMS 0x00000005ca800000| PB 0x00000005ca800000| Untracked | 0 +| 904|0x00000005cb000000, 0x00000005cb000000, 0x00000005cb800000| 0%| F| |TAMS 0x00000005cb000000| PB 0x00000005cb000000| Untracked | 0 +| 905|0x00000005cb800000, 0x00000005cb800000, 0x00000005cc000000| 0%| F| |TAMS 0x00000005cb800000| PB 0x00000005cb800000| Untracked | 0 +| 906|0x00000005cc000000, 0x00000005cc000000, 0x00000005cc800000| 0%| F| |TAMS 0x00000005cc000000| PB 0x00000005cc000000| Untracked | 0 +| 907|0x00000005cc800000, 0x00000005cc800000, 0x00000005cd000000| 0%| F| |TAMS 0x00000005cc800000| PB 0x00000005cc800000| Untracked | 0 +| 908|0x00000005cd000000, 0x00000005cd000000, 0x00000005cd800000| 0%| F| |TAMS 0x00000005cd000000| PB 0x00000005cd000000| Untracked | 0 +| 909|0x00000005cd800000, 0x00000005cd800000, 0x00000005ce000000| 0%| F| |TAMS 0x00000005cd800000| PB 0x00000005cd800000| Untracked | 0 +| 910|0x00000005ce000000, 0x00000005ce000000, 0x00000005ce800000| 0%| F| |TAMS 0x00000005ce000000| PB 0x00000005ce000000| Untracked | 0 +| 911|0x00000005ce800000, 0x00000005ce800000, 0x00000005cf000000| 0%| F| |TAMS 0x00000005ce800000| PB 0x00000005ce800000| Untracked | 0 +| 912|0x00000005cf000000, 0x00000005cf000000, 0x00000005cf800000| 0%| F| |TAMS 0x00000005cf000000| PB 0x00000005cf000000| Untracked | 0 +| 913|0x00000005cf800000, 0x00000005cf800000, 0x00000005d0000000| 0%| F| |TAMS 0x00000005cf800000| PB 0x00000005cf800000| Untracked | 0 +| 914|0x00000005d0000000, 0x00000005d0000000, 0x00000005d0800000| 0%| F| |TAMS 0x00000005d0000000| PB 0x00000005d0000000| Untracked | 0 +| 915|0x00000005d0800000, 0x00000005d0800000, 0x00000005d1000000| 0%| F| |TAMS 0x00000005d0800000| PB 0x00000005d0800000| Untracked | 0 +| 916|0x00000005d1000000, 0x00000005d1000000, 0x00000005d1800000| 0%| F| |TAMS 0x00000005d1000000| PB 0x00000005d1000000| Untracked | 0 +| 917|0x00000005d1800000, 0x00000005d1800000, 0x00000005d2000000| 0%| F| |TAMS 0x00000005d1800000| PB 0x00000005d1800000| Untracked | 0 +| 918|0x00000005d2000000, 0x00000005d2000000, 0x00000005d2800000| 0%| F| |TAMS 0x00000005d2000000| PB 0x00000005d2000000| Untracked | 0 +| 919|0x00000005d2800000, 0x00000005d2800000, 0x00000005d3000000| 0%| F| |TAMS 0x00000005d2800000| PB 0x00000005d2800000| Untracked | 0 +| 920|0x00000005d3000000, 0x00000005d3000000, 0x00000005d3800000| 0%| F| |TAMS 0x00000005d3000000| PB 0x00000005d3000000| Untracked | 0 +| 921|0x00000005d3800000, 0x00000005d3800000, 0x00000005d4000000| 0%| F| |TAMS 0x00000005d3800000| PB 0x00000005d3800000| Untracked | 0 +| 922|0x00000005d4000000, 0x00000005d4000000, 0x00000005d4800000| 0%| F| |TAMS 0x00000005d4000000| PB 0x00000005d4000000| Untracked | 0 +| 923|0x00000005d4800000, 0x00000005d4800000, 0x00000005d5000000| 0%| F| |TAMS 0x00000005d4800000| PB 0x00000005d4800000| Untracked | 0 +| 924|0x00000005d5000000, 0x00000005d5000000, 0x00000005d5800000| 0%| F| |TAMS 0x00000005d5000000| PB 0x00000005d5000000| Untracked | 0 +| 925|0x00000005d5800000, 0x00000005d5800000, 0x00000005d6000000| 0%| F| |TAMS 0x00000005d5800000| PB 0x00000005d5800000| Untracked | 0 +| 926|0x00000005d6000000, 0x00000005d6000000, 0x00000005d6800000| 0%| F| |TAMS 0x00000005d6000000| PB 0x00000005d6000000| Untracked | 0 +| 927|0x00000005d6800000, 0x00000005d6800000, 0x00000005d7000000| 0%| F| |TAMS 0x00000005d6800000| PB 0x00000005d6800000| Untracked | 0 +| 928|0x00000005d7000000, 0x00000005d7000000, 0x00000005d7800000| 0%| F| |TAMS 0x00000005d7000000| PB 0x00000005d7000000| Untracked | 0 +| 929|0x00000005d7800000, 0x00000005d7800000, 0x00000005d8000000| 0%| F| |TAMS 0x00000005d7800000| PB 0x00000005d7800000| Untracked | 0 +| 930|0x00000005d8000000, 0x00000005d8000000, 0x00000005d8800000| 0%| F| |TAMS 0x00000005d8000000| PB 0x00000005d8000000| Untracked | 0 +| 931|0x00000005d8800000, 0x00000005d8800000, 0x00000005d9000000| 0%| F| |TAMS 0x00000005d8800000| PB 0x00000005d8800000| Untracked | 0 +| 932|0x00000005d9000000, 0x00000005d9000000, 0x00000005d9800000| 0%| F| |TAMS 0x00000005d9000000| PB 0x00000005d9000000| Untracked | 0 +| 933|0x00000005d9800000, 0x00000005d9800000, 0x00000005da000000| 0%| F| |TAMS 0x00000005d9800000| PB 0x00000005d9800000| Untracked | 0 +| 934|0x00000005da000000, 0x00000005da000000, 0x00000005da800000| 0%| F| |TAMS 0x00000005da000000| PB 0x00000005da000000| Untracked | 0 +| 935|0x00000005da800000, 0x00000005da800000, 0x00000005db000000| 0%| F| |TAMS 0x00000005da800000| PB 0x00000005da800000| Untracked | 0 +| 936|0x00000005db000000, 0x00000005db000000, 0x00000005db800000| 0%| F| |TAMS 0x00000005db000000| PB 0x00000005db000000| Untracked | 0 +| 937|0x00000005db800000, 0x00000005db800000, 0x00000005dc000000| 0%| F| |TAMS 0x00000005db800000| PB 0x00000005db800000| Untracked | 0 +| 938|0x00000005dc000000, 0x00000005dc000000, 0x00000005dc800000| 0%| F| |TAMS 0x00000005dc000000| PB 0x00000005dc000000| Untracked | 0 +| 939|0x00000005dc800000, 0x00000005dc800000, 0x00000005dd000000| 0%| F| |TAMS 0x00000005dc800000| PB 0x00000005dc800000| Untracked | 0 +| 940|0x00000005dd000000, 0x00000005dd000000, 0x00000005dd800000| 0%| F| |TAMS 0x00000005dd000000| PB 0x00000005dd000000| Untracked | 0 +| 941|0x00000005dd800000, 0x00000005dd800000, 0x00000005de000000| 0%| F| |TAMS 0x00000005dd800000| PB 0x00000005dd800000| Untracked | 0 +| 942|0x00000005de000000, 0x00000005de000000, 0x00000005de800000| 0%| F| |TAMS 0x00000005de000000| PB 0x00000005de000000| Untracked | 0 +| 943|0x00000005de800000, 0x00000005de800000, 0x00000005df000000| 0%| F| |TAMS 0x00000005de800000| PB 0x00000005de800000| Untracked | 0 +| 944|0x00000005df000000, 0x00000005df000000, 0x00000005df800000| 0%| F| |TAMS 0x00000005df000000| PB 0x00000005df000000| Untracked | 0 +| 945|0x00000005df800000, 0x00000005df800000, 0x00000005e0000000| 0%| F| |TAMS 0x00000005df800000| PB 0x00000005df800000| Untracked | 0 +| 946|0x00000005e0000000, 0x00000005e0000000, 0x00000005e0800000| 0%| F| |TAMS 0x00000005e0000000| PB 0x00000005e0000000| Untracked | 0 +| 947|0x00000005e0800000, 0x00000005e0800000, 0x00000005e1000000| 0%| F| |TAMS 0x00000005e0800000| PB 0x00000005e0800000| Untracked | 0 +| 948|0x00000005e1000000, 0x00000005e1000000, 0x00000005e1800000| 0%| F| |TAMS 0x00000005e1000000| PB 0x00000005e1000000| Untracked | 0 +| 949|0x00000005e1800000, 0x00000005e1800000, 0x00000005e2000000| 0%| F| |TAMS 0x00000005e1800000| PB 0x00000005e1800000| Untracked | 0 +| 950|0x00000005e2000000, 0x00000005e2000000, 0x00000005e2800000| 0%| F| |TAMS 0x00000005e2000000| PB 0x00000005e2000000| Untracked | 0 +| 951|0x00000005e2800000, 0x00000005e2800000, 0x00000005e3000000| 0%| F| |TAMS 0x00000005e2800000| PB 0x00000005e2800000| Untracked | 0 +| 952|0x00000005e3000000, 0x00000005e3000000, 0x00000005e3800000| 0%| F| |TAMS 0x00000005e3000000| PB 0x00000005e3000000| Untracked | 0 +| 953|0x00000005e3800000, 0x00000005e3800000, 0x00000005e4000000| 0%| F| |TAMS 0x00000005e3800000| PB 0x00000005e3800000| Untracked | 0 +| 954|0x00000005e4000000, 0x00000005e4000000, 0x00000005e4800000| 0%| F| |TAMS 0x00000005e4000000| PB 0x00000005e4000000| Untracked | 0 +| 955|0x00000005e4800000, 0x00000005e4800000, 0x00000005e5000000| 0%| F| |TAMS 0x00000005e4800000| PB 0x00000005e4800000| Untracked | 0 +| 956|0x00000005e5000000, 0x00000005e5000000, 0x00000005e5800000| 0%| F| |TAMS 0x00000005e5000000| PB 0x00000005e5000000| Untracked | 0 +| 957|0x00000005e5800000, 0x00000005e5800000, 0x00000005e6000000| 0%| F| |TAMS 0x00000005e5800000| PB 0x00000005e5800000| Untracked | 0 +| 958|0x00000005e6000000, 0x00000005e6000000, 0x00000005e6800000| 0%| F| |TAMS 0x00000005e6000000| PB 0x00000005e6000000| Untracked | 0 +| 959|0x00000005e6800000, 0x00000005e6800000, 0x00000005e7000000| 0%| F| |TAMS 0x00000005e6800000| PB 0x00000005e6800000| Untracked | 0 +| 960|0x00000005e7000000, 0x00000005e7000000, 0x00000005e7800000| 0%| F| |TAMS 0x00000005e7000000| PB 0x00000005e7000000| Untracked | 0 +| 961|0x00000005e7800000, 0x00000005e7800000, 0x00000005e8000000| 0%| F| |TAMS 0x00000005e7800000| PB 0x00000005e7800000| Untracked | 0 +| 962|0x00000005e8000000, 0x00000005e8000000, 0x00000005e8800000| 0%| F| |TAMS 0x00000005e8000000| PB 0x00000005e8000000| Untracked | 0 +| 963|0x00000005e8800000, 0x00000005e8800000, 0x00000005e9000000| 0%| F| |TAMS 0x00000005e8800000| PB 0x00000005e8800000| Untracked | 0 +| 964|0x00000005e9000000, 0x00000005e9000000, 0x00000005e9800000| 0%| F| |TAMS 0x00000005e9000000| PB 0x00000005e9000000| Untracked | 0 +| 965|0x00000005e9800000, 0x00000005e9800000, 0x00000005ea000000| 0%| F| |TAMS 0x00000005e9800000| PB 0x00000005e9800000| Untracked | 0 +| 966|0x00000005ea000000, 0x00000005ea000000, 0x00000005ea800000| 0%| F| |TAMS 0x00000005ea000000| PB 0x00000005ea000000| Untracked | 0 +| 967|0x00000005ea800000, 0x00000005ea800000, 0x00000005eb000000| 0%| F| |TAMS 0x00000005ea800000| PB 0x00000005ea800000| Untracked | 0 +| 968|0x00000005eb000000, 0x00000005eb000000, 0x00000005eb800000| 0%| F| |TAMS 0x00000005eb000000| PB 0x00000005eb000000| Untracked | 0 +| 969|0x00000005eb800000, 0x00000005eb800000, 0x00000005ec000000| 0%| F| |TAMS 0x00000005eb800000| PB 0x00000005eb800000| Untracked | 0 +| 970|0x00000005ec000000, 0x00000005ec000000, 0x00000005ec800000| 0%| F| |TAMS 0x00000005ec000000| PB 0x00000005ec000000| Untracked | 0 +| 971|0x00000005ec800000, 0x00000005ec800000, 0x00000005ed000000| 0%| F| |TAMS 0x00000005ec800000| PB 0x00000005ec800000| Untracked | 0 +| 972|0x00000005ed000000, 0x00000005ed000000, 0x00000005ed800000| 0%| F| |TAMS 0x00000005ed000000| PB 0x00000005ed000000| Untracked | 0 +| 973|0x00000005ed800000, 0x00000005ed800000, 0x00000005ee000000| 0%| F| |TAMS 0x00000005ed800000| PB 0x00000005ed800000| Untracked | 0 +| 974|0x00000005ee000000, 0x00000005ee000000, 0x00000005ee800000| 0%| F| |TAMS 0x00000005ee000000| PB 0x00000005ee000000| Untracked | 0 +| 975|0x00000005ee800000, 0x00000005ee800000, 0x00000005ef000000| 0%| F| |TAMS 0x00000005ee800000| PB 0x00000005ee800000| Untracked | 0 +| 976|0x00000005ef000000, 0x00000005ef000000, 0x00000005ef800000| 0%| F| |TAMS 0x00000005ef000000| PB 0x00000005ef000000| Untracked | 0 +| 977|0x00000005ef800000, 0x00000005ef800000, 0x00000005f0000000| 0%| F| |TAMS 0x00000005ef800000| PB 0x00000005ef800000| Untracked | 0 +| 978|0x00000005f0000000, 0x00000005f0000000, 0x00000005f0800000| 0%| F| |TAMS 0x00000005f0000000| PB 0x00000005f0000000| Untracked | 0 +| 979|0x00000005f0800000, 0x00000005f0800000, 0x00000005f1000000| 0%| F| |TAMS 0x00000005f0800000| PB 0x00000005f0800000| Untracked | 0 +| 980|0x00000005f1000000, 0x00000005f1000000, 0x00000005f1800000| 0%| F| |TAMS 0x00000005f1000000| PB 0x00000005f1000000| Untracked | 0 +| 981|0x00000005f1800000, 0x00000005f1800000, 0x00000005f2000000| 0%| F| |TAMS 0x00000005f1800000| PB 0x00000005f1800000| Untracked | 0 +| 982|0x00000005f2000000, 0x00000005f2000000, 0x00000005f2800000| 0%| F| |TAMS 0x00000005f2000000| PB 0x00000005f2000000| Untracked | 0 +| 983|0x00000005f2800000, 0x00000005f2800000, 0x00000005f3000000| 0%| F| |TAMS 0x00000005f2800000| PB 0x00000005f2800000| Untracked | 0 +| 984|0x00000005f3000000, 0x00000005f3000000, 0x00000005f3800000| 0%| F| |TAMS 0x00000005f3000000| PB 0x00000005f3000000| Untracked | 0 +| 985|0x00000005f3800000, 0x00000005f3800000, 0x00000005f4000000| 0%| F| |TAMS 0x00000005f3800000| PB 0x00000005f3800000| Untracked | 0 +| 986|0x00000005f4000000, 0x00000005f4000000, 0x00000005f4800000| 0%| F| |TAMS 0x00000005f4000000| PB 0x00000005f4000000| Untracked | 0 +| 987|0x00000005f4800000, 0x00000005f4800000, 0x00000005f5000000| 0%| F| |TAMS 0x00000005f4800000| PB 0x00000005f4800000| Untracked | 0 +| 988|0x00000005f5000000, 0x00000005f5000000, 0x00000005f5800000| 0%| F| |TAMS 0x00000005f5000000| PB 0x00000005f5000000| Untracked | 0 +| 989|0x00000005f5800000, 0x00000005f5800000, 0x00000005f6000000| 0%| F| |TAMS 0x00000005f5800000| PB 0x00000005f5800000| Untracked | 0 +| 990|0x00000005f6000000, 0x00000005f6000000, 0x00000005f6800000| 0%| F| |TAMS 0x00000005f6000000| PB 0x00000005f6000000| Untracked | 0 +| 991|0x00000005f6800000, 0x00000005f6800000, 0x00000005f7000000| 0%| F| |TAMS 0x00000005f6800000| PB 0x00000005f6800000| Untracked | 0 +| 992|0x00000005f7000000, 0x00000005f7000000, 0x00000005f7800000| 0%| F| |TAMS 0x00000005f7000000| PB 0x00000005f7000000| Untracked | 0 +| 993|0x00000005f7800000, 0x00000005f7800000, 0x00000005f8000000| 0%| F| |TAMS 0x00000005f7800000| PB 0x00000005f7800000| Untracked | 0 +| 994|0x00000005f8000000, 0x00000005f8000000, 0x00000005f8800000| 0%| F| |TAMS 0x00000005f8000000| PB 0x00000005f8000000| Untracked | 0 +| 995|0x00000005f8800000, 0x00000005f8800000, 0x00000005f9000000| 0%| F| |TAMS 0x00000005f8800000| PB 0x00000005f8800000| Untracked | 0 +| 996|0x00000005f9000000, 0x00000005f9000000, 0x00000005f9800000| 0%| F| |TAMS 0x00000005f9000000| PB 0x00000005f9000000| Untracked | 0 +| 997|0x00000005f9800000, 0x00000005f9800000, 0x00000005fa000000| 0%| F| |TAMS 0x00000005f9800000| PB 0x00000005f9800000| Untracked | 0 +| 998|0x00000005fa000000, 0x00000005fa000000, 0x00000005fa800000| 0%| F| |TAMS 0x00000005fa000000| PB 0x00000005fa000000| Untracked | 0 +| 999|0x00000005fa800000, 0x00000005fa800000, 0x00000005fb000000| 0%| F| |TAMS 0x00000005fa800000| PB 0x00000005fa800000| Untracked | 0 +|1000|0x00000005fb000000, 0x00000005fb000000, 0x00000005fb800000| 0%| F| |TAMS 0x00000005fb000000| PB 0x00000005fb000000| Untracked | 0 +|1001|0x00000005fb800000, 0x00000005fb800000, 0x00000005fc000000| 0%| F| |TAMS 0x00000005fb800000| PB 0x00000005fb800000| Untracked | 0 +|1002|0x00000005fc000000, 0x00000005fc000000, 0x00000005fc800000| 0%| F| |TAMS 0x00000005fc000000| PB 0x00000005fc000000| Untracked | 0 +|1003|0x00000005fc800000, 0x00000005fc800000, 0x00000005fd000000| 0%| F| |TAMS 0x00000005fc800000| PB 0x00000005fc800000| Untracked | 0 +|1004|0x00000005fd000000, 0x00000005fd000000, 0x00000005fd800000| 0%| F| |TAMS 0x00000005fd000000| PB 0x00000005fd000000| Untracked | 0 +|1005|0x00000005fd800000, 0x00000005fd800000, 0x00000005fe000000| 0%| F| |TAMS 0x00000005fd800000| PB 0x00000005fd800000| Untracked | 0 +|1006|0x00000005fe000000, 0x00000005fe000000, 0x00000005fe800000| 0%| F| |TAMS 0x00000005fe000000| PB 0x00000005fe000000| Untracked | 0 +|1007|0x00000005fe800000, 0x00000005fe800000, 0x00000005ff000000| 0%| F| |TAMS 0x00000005fe800000| PB 0x00000005fe800000| Untracked | 0 +|1008|0x00000005ff000000, 0x00000005ff000000, 0x00000005ff800000| 0%| F| |TAMS 0x00000005ff000000| PB 0x00000005ff000000| Untracked | 0 +|1009|0x00000005ff800000, 0x00000005ff800000, 0x0000000600000000| 0%| F| |TAMS 0x00000005ff800000| PB 0x00000005ff800000| Untracked | 0 +|1010|0x0000000600000000, 0x0000000600000000, 0x0000000600800000| 0%| F| |TAMS 0x0000000600000000| PB 0x0000000600000000| Untracked | 0 +|1011|0x0000000600800000, 0x0000000600800000, 0x0000000601000000| 0%| F| |TAMS 0x0000000600800000| PB 0x0000000600800000| Untracked | 0 +|1012|0x0000000601000000, 0x0000000601000000, 0x0000000601800000| 0%| F| |TAMS 0x0000000601000000| PB 0x0000000601000000| Untracked | 0 +|1013|0x0000000601800000, 0x0000000601800000, 0x0000000602000000| 0%| F| |TAMS 0x0000000601800000| PB 0x0000000601800000| Untracked | 0 +|1014|0x0000000602000000, 0x0000000602000000, 0x0000000602800000| 0%| F| |TAMS 0x0000000602000000| PB 0x0000000602000000| Untracked | 0 +|1015|0x0000000602800000, 0x0000000602800000, 0x0000000603000000| 0%| F| |TAMS 0x0000000602800000| PB 0x0000000602800000| Untracked | 0 +|1016|0x0000000603000000, 0x0000000603000000, 0x0000000603800000| 0%| F| |TAMS 0x0000000603000000| PB 0x0000000603000000| Untracked | 0 +|1017|0x0000000603800000, 0x0000000603800000, 0x0000000604000000| 0%| F| |TAMS 0x0000000603800000| PB 0x0000000603800000| Untracked | 0 +|1018|0x0000000604000000, 0x0000000604000000, 0x0000000604800000| 0%| F| |TAMS 0x0000000604000000| PB 0x0000000604000000| Untracked | 0 +|1019|0x0000000604800000, 0x0000000604800000, 0x0000000605000000| 0%| F| |TAMS 0x0000000604800000| PB 0x0000000604800000| Untracked | 0 +|1020|0x0000000605000000, 0x0000000605000000, 0x0000000605800000| 0%| F| |TAMS 0x0000000605000000| PB 0x0000000605000000| Untracked | 0 +|1021|0x0000000605800000, 0x0000000605800000, 0x0000000606000000| 0%| F| |TAMS 0x0000000605800000| PB 0x0000000605800000| Untracked | 0 +|1022|0x0000000606000000, 0x0000000606000000, 0x0000000606800000| 0%| F| |TAMS 0x0000000606000000| PB 0x0000000606000000| Untracked | 0 +|1023|0x0000000606800000, 0x0000000606800000, 0x0000000607000000| 0%| F| |TAMS 0x0000000606800000| PB 0x0000000606800000| Untracked | 0 +|1024|0x0000000607000000, 0x0000000607000000, 0x0000000607800000| 0%| F| |TAMS 0x0000000607000000| PB 0x0000000607000000| Untracked | 0 +|1025|0x0000000607800000, 0x0000000607800000, 0x0000000608000000| 0%| F| |TAMS 0x0000000607800000| PB 0x0000000607800000| Untracked | 0 +|1026|0x0000000608000000, 0x0000000608000000, 0x0000000608800000| 0%| F| |TAMS 0x0000000608000000| PB 0x0000000608000000| Untracked | 0 +|1027|0x0000000608800000, 0x0000000608800000, 0x0000000609000000| 0%| F| |TAMS 0x0000000608800000| PB 0x0000000608800000| Untracked | 0 +|1028|0x0000000609000000, 0x0000000609000000, 0x0000000609800000| 0%| F| |TAMS 0x0000000609000000| PB 0x0000000609000000| Untracked | 0 +|1029|0x0000000609800000, 0x0000000609800000, 0x000000060a000000| 0%| F| |TAMS 0x0000000609800000| PB 0x0000000609800000| Untracked | 0 +|1030|0x000000060a000000, 0x000000060a000000, 0x000000060a800000| 0%| F| |TAMS 0x000000060a000000| PB 0x000000060a000000| Untracked | 0 +|1031|0x000000060a800000, 0x000000060a800000, 0x000000060b000000| 0%| F| |TAMS 0x000000060a800000| PB 0x000000060a800000| Untracked | 0 +|1032|0x000000060b000000, 0x000000060b000000, 0x000000060b800000| 0%| F| |TAMS 0x000000060b000000| PB 0x000000060b000000| Untracked | 0 +|1033|0x000000060b800000, 0x000000060b800000, 0x000000060c000000| 0%| F| |TAMS 0x000000060b800000| PB 0x000000060b800000| Untracked | 0 +|1034|0x000000060c000000, 0x000000060c000000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +|1035|0x000000060c800000, 0x000000060c800000, 0x000000060d000000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +|1036|0x000000060d000000, 0x000000060d000000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 +|1037|0x000000060d800000, 0x000000060d800000, 0x000000060e000000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 +|1038|0x000000060e000000, 0x000000060e000000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 +|1039|0x000000060e800000, 0x000000060e800000, 0x000000060f000000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 +|1040|0x000000060f000000, 0x000000060f000000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 +|1041|0x000000060f800000, 0x000000060f800000, 0x0000000610000000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 +|1042|0x0000000610000000, 0x0000000610000000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 +|1043|0x0000000610800000, 0x0000000610800000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 +|1044|0x0000000611000000, 0x0000000611000000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 +|1045|0x0000000611800000, 0x0000000611800000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 +|1046|0x0000000612000000, 0x0000000612000000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 +|1047|0x0000000612800000, 0x0000000612800000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 +|1048|0x0000000613000000, 0x0000000613000000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 +|1049|0x0000000613800000, 0x0000000613800000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 +|1050|0x0000000614000000, 0x0000000614000000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 +|1051|0x0000000614800000, 0x0000000614800000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 +|1052|0x0000000615000000, 0x0000000615000000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 +|1053|0x0000000615800000, 0x0000000615800000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 +|1054|0x0000000616000000, 0x0000000616000000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 +|1055|0x0000000616800000, 0x0000000616800000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 +|1056|0x0000000617000000, 0x0000000617000000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 +|1057|0x0000000617800000, 0x0000000617800000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 +|1058|0x0000000618000000, 0x0000000618000000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 +|1059|0x0000000618800000, 0x0000000618800000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 +|1060|0x0000000619000000, 0x0000000619000000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 +|1061|0x0000000619800000, 0x0000000619800000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 +|1062|0x000000061a000000, 0x000000061a000000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 +|1063|0x000000061a800000, 0x000000061a800000, 0x000000061b000000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 +|1064|0x000000061b000000, 0x000000061b000000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 +|1065|0x000000061b800000, 0x000000061b800000, 0x000000061c000000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 +|1066|0x000000061c000000, 0x000000061c000000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 +|1067|0x000000061c800000, 0x000000061c800000, 0x000000061d000000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 +|1068|0x000000061d000000, 0x000000061d000000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 +|1069|0x000000061d800000, 0x000000061d800000, 0x000000061e000000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 +|1070|0x000000061e000000, 0x000000061e000000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 +|1071|0x000000061e800000, 0x000000061e800000, 0x000000061f000000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 +|1072|0x000000061f000000, 0x000000061f000000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 +|1073|0x000000061f800000, 0x000000061f800000, 0x0000000620000000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 +|1074|0x0000000620000000, 0x0000000620000000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 +|1075|0x0000000620800000, 0x0000000620800000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 +|1076|0x0000000621000000, 0x0000000621000000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 +|1077|0x0000000621800000, 0x0000000621800000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 +|1078|0x0000000622000000, 0x0000000622000000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 +|1079|0x0000000622800000, 0x0000000622800000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 +|1080|0x0000000623000000, 0x0000000623000000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 +|1081|0x0000000623800000, 0x0000000623800000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 +|1082|0x0000000624000000, 0x0000000624000000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 +|1083|0x0000000624800000, 0x0000000624800000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 +|1084|0x0000000625000000, 0x0000000625000000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 +|1085|0x0000000625800000, 0x0000000625800000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 +|1086|0x0000000626000000, 0x0000000626000000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 +|1087|0x0000000626800000, 0x0000000626800000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 +|1088|0x0000000627000000, 0x0000000627000000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 +|1089|0x0000000627800000, 0x0000000627800000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 +|1090|0x0000000628000000, 0x0000000628000000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 +|1091|0x0000000628800000, 0x0000000628800000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 +|1092|0x0000000629000000, 0x0000000629000000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 +|1093|0x0000000629800000, 0x0000000629800000, 0x000000062a000000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 +|1094|0x000000062a000000, 0x000000062a000000, 0x000000062a800000| 0%| F| |TAMS 0x000000062a000000| PB 0x000000062a000000| Untracked | 0 +|1095|0x000000062a800000, 0x000000062a800000, 0x000000062b000000| 0%| F| |TAMS 0x000000062a800000| PB 0x000000062a800000| Untracked | 0 +|1096|0x000000062b000000, 0x000000062b000000, 0x000000062b800000| 0%| F| |TAMS 0x000000062b000000| PB 0x000000062b000000| Untracked | 0 +|1097|0x000000062b800000, 0x000000062b800000, 0x000000062c000000| 0%| F| |TAMS 0x000000062b800000| PB 0x000000062b800000| Untracked | 0 +|1098|0x000000062c000000, 0x000000062c000000, 0x000000062c800000| 0%| F| |TAMS 0x000000062c000000| PB 0x000000062c000000| Untracked | 0 +|1099|0x000000062c800000, 0x000000062c800000, 0x000000062d000000| 0%| F| |TAMS 0x000000062c800000| PB 0x000000062c800000| Untracked | 0 +|1100|0x000000062d000000, 0x000000062d000000, 0x000000062d800000| 0%| F| |TAMS 0x000000062d000000| PB 0x000000062d000000| Untracked | 0 +|1101|0x000000062d800000, 0x000000062d800000, 0x000000062e000000| 0%| F| |TAMS 0x000000062d800000| PB 0x000000062d800000| Untracked | 0 +|1102|0x000000062e000000, 0x000000062e000000, 0x000000062e800000| 0%| F| |TAMS 0x000000062e000000| PB 0x000000062e000000| Untracked | 0 +|1103|0x000000062e800000, 0x000000062e800000, 0x000000062f000000| 0%| F| |TAMS 0x000000062e800000| PB 0x000000062e800000| Untracked | 0 +|1104|0x000000062f000000, 0x000000062f000000, 0x000000062f800000| 0%| F| |TAMS 0x000000062f000000| PB 0x000000062f000000| Untracked | 0 +|1105|0x000000062f800000, 0x000000062f800000, 0x0000000630000000| 0%| F| |TAMS 0x000000062f800000| PB 0x000000062f800000| Untracked | 0 +|1106|0x0000000630000000, 0x0000000630000000, 0x0000000630800000| 0%| F| |TAMS 0x0000000630000000| PB 0x0000000630000000| Untracked | 0 +|1107|0x0000000630800000, 0x0000000630800000, 0x0000000631000000| 0%| F| |TAMS 0x0000000630800000| PB 0x0000000630800000| Untracked | 0 +|1108|0x0000000631000000, 0x0000000631000000, 0x0000000631800000| 0%| F| |TAMS 0x0000000631000000| PB 0x0000000631000000| Untracked | 0 +|1109|0x0000000631800000, 0x0000000631800000, 0x0000000632000000| 0%| F| |TAMS 0x0000000631800000| PB 0x0000000631800000| Untracked | 0 +|1110|0x0000000632000000, 0x0000000632000000, 0x0000000632800000| 0%| F| |TAMS 0x0000000632000000| PB 0x0000000632000000| Untracked | 0 +|1111|0x0000000632800000, 0x0000000632800000, 0x0000000633000000| 0%| F| |TAMS 0x0000000632800000| PB 0x0000000632800000| Untracked | 0 +|1112|0x0000000633000000, 0x0000000633000000, 0x0000000633800000| 0%| F| |TAMS 0x0000000633000000| PB 0x0000000633000000| Untracked | 0 +|1113|0x0000000633800000, 0x0000000633800000, 0x0000000634000000| 0%| F| |TAMS 0x0000000633800000| PB 0x0000000633800000| Untracked | 0 +|1114|0x0000000634000000, 0x0000000634000000, 0x0000000634800000| 0%| F| |TAMS 0x0000000634000000| PB 0x0000000634000000| Untracked | 0 +|1115|0x0000000634800000, 0x0000000634800000, 0x0000000635000000| 0%| F| |TAMS 0x0000000634800000| PB 0x0000000634800000| Untracked | 0 +|1116|0x0000000635000000, 0x0000000635000000, 0x0000000635800000| 0%| F| |TAMS 0x0000000635000000| PB 0x0000000635000000| Untracked | 0 +|1117|0x0000000635800000, 0x0000000635800000, 0x0000000636000000| 0%| F| |TAMS 0x0000000635800000| PB 0x0000000635800000| Untracked | 0 +|1118|0x0000000636000000, 0x0000000636000000, 0x0000000636800000| 0%| F| |TAMS 0x0000000636000000| PB 0x0000000636000000| Untracked | 0 +|1119|0x0000000636800000, 0x0000000636800000, 0x0000000637000000| 0%| F| |TAMS 0x0000000636800000| PB 0x0000000636800000| Untracked | 0 +|1120|0x0000000637000000, 0x0000000637000000, 0x0000000637800000| 0%| F| |TAMS 0x0000000637000000| PB 0x0000000637000000| Untracked | 0 +|1121|0x0000000637800000, 0x0000000637800000, 0x0000000638000000| 0%| F| |TAMS 0x0000000637800000| PB 0x0000000637800000| Untracked | 0 +|1122|0x0000000638000000, 0x0000000638000000, 0x0000000638800000| 0%| F| |TAMS 0x0000000638000000| PB 0x0000000638000000| Untracked | 0 +|1123|0x0000000638800000, 0x0000000638800000, 0x0000000639000000| 0%| F| |TAMS 0x0000000638800000| PB 0x0000000638800000| Untracked | 0 +|1124|0x0000000639000000, 0x0000000639000000, 0x0000000639800000| 0%| F| |TAMS 0x0000000639000000| PB 0x0000000639000000| Untracked | 0 +|1125|0x0000000639800000, 0x0000000639800000, 0x000000063a000000| 0%| F| |TAMS 0x0000000639800000| PB 0x0000000639800000| Untracked | 0 +|1126|0x000000063a000000, 0x000000063a000000, 0x000000063a800000| 0%| F| |TAMS 0x000000063a000000| PB 0x000000063a000000| Untracked | 0 +|1127|0x000000063a800000, 0x000000063a800000, 0x000000063b000000| 0%| F| |TAMS 0x000000063a800000| PB 0x000000063a800000| Untracked | 0 +|1128|0x000000063b000000, 0x000000063b000000, 0x000000063b800000| 0%| F| |TAMS 0x000000063b000000| PB 0x000000063b000000| Untracked | 0 +|1129|0x000000063b800000, 0x000000063b800000, 0x000000063c000000| 0%| F| |TAMS 0x000000063b800000| PB 0x000000063b800000| Untracked | 0 +|1130|0x000000063c000000, 0x000000063c000000, 0x000000063c800000| 0%| F| |TAMS 0x000000063c000000| PB 0x000000063c000000| Untracked | 0 +|1131|0x000000063c800000, 0x000000063c800000, 0x000000063d000000| 0%| F| |TAMS 0x000000063c800000| PB 0x000000063c800000| Untracked | 0 +|1132|0x000000063d000000, 0x000000063d000000, 0x000000063d800000| 0%| F| |TAMS 0x000000063d000000| PB 0x000000063d000000| Untracked | 0 +|1133|0x000000063d800000, 0x000000063d800000, 0x000000063e000000| 0%| F| |TAMS 0x000000063d800000| PB 0x000000063d800000| Untracked | 0 +|1134|0x000000063e000000, 0x000000063e000000, 0x000000063e800000| 0%| F| |TAMS 0x000000063e000000| PB 0x000000063e000000| Untracked | 0 +|1135|0x000000063e800000, 0x000000063e800000, 0x000000063f000000| 0%| F| |TAMS 0x000000063e800000| PB 0x000000063e800000| Untracked | 0 +|1136|0x000000063f000000, 0x000000063f000000, 0x000000063f800000| 0%| F| |TAMS 0x000000063f000000| PB 0x000000063f000000| Untracked | 0 +|1137|0x000000063f800000, 0x000000063f800000, 0x0000000640000000| 0%| F| |TAMS 0x000000063f800000| PB 0x000000063f800000| Untracked | 0 +|1138|0x0000000640000000, 0x0000000640000000, 0x0000000640800000| 0%| F| |TAMS 0x0000000640000000| PB 0x0000000640000000| Untracked | 0 +|1139|0x0000000640800000, 0x0000000640800000, 0x0000000641000000| 0%| F| |TAMS 0x0000000640800000| PB 0x0000000640800000| Untracked | 0 +|1140|0x0000000641000000, 0x0000000641000000, 0x0000000641800000| 0%| F| |TAMS 0x0000000641000000| PB 0x0000000641000000| Untracked | 0 +|1141|0x0000000641800000, 0x0000000641800000, 0x0000000642000000| 0%| F| |TAMS 0x0000000641800000| PB 0x0000000641800000| Untracked | 0 +|1142|0x0000000642000000, 0x0000000642000000, 0x0000000642800000| 0%| F| |TAMS 0x0000000642000000| PB 0x0000000642000000| Untracked | 0 +|1143|0x0000000642800000, 0x0000000642800000, 0x0000000643000000| 0%| F| |TAMS 0x0000000642800000| PB 0x0000000642800000| Untracked | 0 +|1144|0x0000000643000000, 0x0000000643000000, 0x0000000643800000| 0%| F| |TAMS 0x0000000643000000| PB 0x0000000643000000| Untracked | 0 +|1145|0x0000000643800000, 0x0000000643800000, 0x0000000644000000| 0%| F| |TAMS 0x0000000643800000| PB 0x0000000643800000| Untracked | 0 +|1146|0x0000000644000000, 0x0000000644000000, 0x0000000644800000| 0%| F| |TAMS 0x0000000644000000| PB 0x0000000644000000| Untracked | 0 +|1147|0x0000000644800000, 0x0000000644800000, 0x0000000645000000| 0%| F| |TAMS 0x0000000644800000| PB 0x0000000644800000| Untracked | 0 +|1148|0x0000000645000000, 0x0000000645000000, 0x0000000645800000| 0%| F| |TAMS 0x0000000645000000| PB 0x0000000645000000| Untracked | 0 +|1149|0x0000000645800000, 0x0000000645800000, 0x0000000646000000| 0%| F| |TAMS 0x0000000645800000| PB 0x0000000645800000| Untracked | 0 +|1150|0x0000000646000000, 0x0000000646000000, 0x0000000646800000| 0%| F| |TAMS 0x0000000646000000| PB 0x0000000646000000| Untracked | 0 +|1151|0x0000000646800000, 0x0000000646800000, 0x0000000647000000| 0%| F| |TAMS 0x0000000646800000| PB 0x0000000646800000| Untracked | 0 +|1152|0x0000000647000000, 0x0000000647000000, 0x0000000647800000| 0%| F| |TAMS 0x0000000647000000| PB 0x0000000647000000| Untracked | 0 +|1153|0x0000000647800000, 0x0000000647800000, 0x0000000648000000| 0%| F| |TAMS 0x0000000647800000| PB 0x0000000647800000| Untracked | 0 +|1154|0x0000000648000000, 0x0000000648000000, 0x0000000648800000| 0%| F| |TAMS 0x0000000648000000| PB 0x0000000648000000| Untracked | 0 +|1155|0x0000000648800000, 0x0000000648800000, 0x0000000649000000| 0%| F| |TAMS 0x0000000648800000| PB 0x0000000648800000| Untracked | 0 +|1156|0x0000000649000000, 0x0000000649000000, 0x0000000649800000| 0%| F| |TAMS 0x0000000649000000| PB 0x0000000649000000| Untracked | 0 +|1157|0x0000000649800000, 0x0000000649800000, 0x000000064a000000| 0%| F| |TAMS 0x0000000649800000| PB 0x0000000649800000| Untracked | 0 +|1158|0x000000064a000000, 0x000000064a000000, 0x000000064a800000| 0%| F| |TAMS 0x000000064a000000| PB 0x000000064a000000| Untracked | 0 +|1159|0x000000064a800000, 0x000000064a800000, 0x000000064b000000| 0%| F| |TAMS 0x000000064a800000| PB 0x000000064a800000| Untracked | 0 +|1160|0x000000064b000000, 0x000000064b000000, 0x000000064b800000| 0%| F| |TAMS 0x000000064b000000| PB 0x000000064b000000| Untracked | 0 +|1161|0x000000064b800000, 0x000000064b800000, 0x000000064c000000| 0%| F| |TAMS 0x000000064b800000| PB 0x000000064b800000| Untracked | 0 +|1162|0x000000064c000000, 0x000000064c000000, 0x000000064c800000| 0%| F| |TAMS 0x000000064c000000| PB 0x000000064c000000| Untracked | 0 +|1163|0x000000064c800000, 0x000000064c800000, 0x000000064d000000| 0%| F| |TAMS 0x000000064c800000| PB 0x000000064c800000| Untracked | 0 +|1164|0x000000064d000000, 0x000000064d000000, 0x000000064d800000| 0%| F| |TAMS 0x000000064d000000| PB 0x000000064d000000| Untracked | 0 +|1165|0x000000064d800000, 0x000000064d800000, 0x000000064e000000| 0%| F| |TAMS 0x000000064d800000| PB 0x000000064d800000| Untracked | 0 +|1166|0x000000064e000000, 0x000000064e000000, 0x000000064e800000| 0%| F| |TAMS 0x000000064e000000| PB 0x000000064e000000| Untracked | 0 +|1167|0x000000064e800000, 0x000000064e800000, 0x000000064f000000| 0%| F| |TAMS 0x000000064e800000| PB 0x000000064e800000| Untracked | 0 +|1168|0x000000064f000000, 0x000000064f000000, 0x000000064f800000| 0%| F| |TAMS 0x000000064f000000| PB 0x000000064f000000| Untracked | 0 +|1169|0x000000064f800000, 0x000000064f800000, 0x0000000650000000| 0%| F| |TAMS 0x000000064f800000| PB 0x000000064f800000| Untracked | 0 +|1170|0x0000000650000000, 0x0000000650000000, 0x0000000650800000| 0%| F| |TAMS 0x0000000650000000| PB 0x0000000650000000| Untracked | 0 +|1171|0x0000000650800000, 0x0000000650800000, 0x0000000651000000| 0%| F| |TAMS 0x0000000650800000| PB 0x0000000650800000| Untracked | 0 +|1172|0x0000000651000000, 0x0000000651000000, 0x0000000651800000| 0%| F| |TAMS 0x0000000651000000| PB 0x0000000651000000| Untracked | 0 +|1173|0x0000000651800000, 0x0000000651800000, 0x0000000652000000| 0%| F| |TAMS 0x0000000651800000| PB 0x0000000651800000| Untracked | 0 +|1174|0x0000000652000000, 0x0000000652000000, 0x0000000652800000| 0%| F| |TAMS 0x0000000652000000| PB 0x0000000652000000| Untracked | 0 +|1175|0x0000000652800000, 0x0000000652800000, 0x0000000653000000| 0%| F| |TAMS 0x0000000652800000| PB 0x0000000652800000| Untracked | 0 +|1176|0x0000000653000000, 0x0000000653000000, 0x0000000653800000| 0%| F| |TAMS 0x0000000653000000| PB 0x0000000653000000| Untracked | 0 +|1177|0x0000000653800000, 0x0000000653800000, 0x0000000654000000| 0%| F| |TAMS 0x0000000653800000| PB 0x0000000653800000| Untracked | 0 +|1178|0x0000000654000000, 0x0000000654000000, 0x0000000654800000| 0%| F| |TAMS 0x0000000654000000| PB 0x0000000654000000| Untracked | 0 +|1179|0x0000000654800000, 0x0000000654800000, 0x0000000655000000| 0%| F| |TAMS 0x0000000654800000| PB 0x0000000654800000| Untracked | 0 +|1180|0x0000000655000000, 0x0000000655000000, 0x0000000655800000| 0%| F| |TAMS 0x0000000655000000| PB 0x0000000655000000| Untracked | 0 +|1181|0x0000000655800000, 0x0000000655800000, 0x0000000656000000| 0%| F| |TAMS 0x0000000655800000| PB 0x0000000655800000| Untracked | 0 +|1182|0x0000000656000000, 0x0000000656000000, 0x0000000656800000| 0%| F| |TAMS 0x0000000656000000| PB 0x0000000656000000| Untracked | 0 +|1183|0x0000000656800000, 0x0000000656800000, 0x0000000657000000| 0%| F| |TAMS 0x0000000656800000| PB 0x0000000656800000| Untracked | 0 +|1184|0x0000000657000000, 0x0000000657000000, 0x0000000657800000| 0%| F| |TAMS 0x0000000657000000| PB 0x0000000657000000| Untracked | 0 +|1185|0x0000000657800000, 0x0000000657800000, 0x0000000658000000| 0%| F| |TAMS 0x0000000657800000| PB 0x0000000657800000| Untracked | 0 +|1186|0x0000000658000000, 0x0000000658000000, 0x0000000658800000| 0%| F| |TAMS 0x0000000658000000| PB 0x0000000658000000| Untracked | 0 +|1187|0x0000000658800000, 0x0000000658800000, 0x0000000659000000| 0%| F| |TAMS 0x0000000658800000| PB 0x0000000658800000| Untracked | 0 +|1188|0x0000000659000000, 0x0000000659000000, 0x0000000659800000| 0%| F| |TAMS 0x0000000659000000| PB 0x0000000659000000| Untracked | 0 +|1189|0x0000000659800000, 0x0000000659800000, 0x000000065a000000| 0%| F| |TAMS 0x0000000659800000| PB 0x0000000659800000| Untracked | 0 +|1190|0x000000065a000000, 0x000000065a000000, 0x000000065a800000| 0%| F| |TAMS 0x000000065a000000| PB 0x000000065a000000| Untracked | 0 +|1191|0x000000065a800000, 0x000000065a800000, 0x000000065b000000| 0%| F| |TAMS 0x000000065a800000| PB 0x000000065a800000| Untracked | 0 +|1192|0x000000065b000000, 0x000000065b000000, 0x000000065b800000| 0%| F| |TAMS 0x000000065b000000| PB 0x000000065b000000| Untracked | 0 +|1193|0x000000065b800000, 0x000000065b800000, 0x000000065c000000| 0%| F| |TAMS 0x000000065b800000| PB 0x000000065b800000| Untracked | 0 +|1194|0x000000065c000000, 0x000000065c000000, 0x000000065c800000| 0%| F| |TAMS 0x000000065c000000| PB 0x000000065c000000| Untracked | 0 +|1195|0x000000065c800000, 0x000000065c800000, 0x000000065d000000| 0%| F| |TAMS 0x000000065c800000| PB 0x000000065c800000| Untracked | 0 +|1196|0x000000065d000000, 0x000000065d000000, 0x000000065d800000| 0%| F| |TAMS 0x000000065d000000| PB 0x000000065d000000| Untracked | 0 +|1197|0x000000065d800000, 0x000000065d800000, 0x000000065e000000| 0%| F| |TAMS 0x000000065d800000| PB 0x000000065d800000| Untracked | 0 +|1198|0x000000065e000000, 0x000000065e000000, 0x000000065e800000| 0%| F| |TAMS 0x000000065e000000| PB 0x000000065e000000| Untracked | 0 +|1199|0x000000065e800000, 0x000000065e800000, 0x000000065f000000| 0%| F| |TAMS 0x000000065e800000| PB 0x000000065e800000| Untracked | 0 +|1200|0x000000065f000000, 0x000000065f000000, 0x000000065f800000| 0%| F| |TAMS 0x000000065f000000| PB 0x000000065f000000| Untracked | 0 +|1201|0x000000065f800000, 0x000000065f800000, 0x0000000660000000| 0%| F| |TAMS 0x000000065f800000| PB 0x000000065f800000| Untracked | 0 +|1202|0x0000000660000000, 0x0000000660000000, 0x0000000660800000| 0%| F| |TAMS 0x0000000660000000| PB 0x0000000660000000| Untracked | 0 +|1203|0x0000000660800000, 0x0000000660800000, 0x0000000661000000| 0%| F| |TAMS 0x0000000660800000| PB 0x0000000660800000| Untracked | 0 +|1204|0x0000000661000000, 0x0000000661000000, 0x0000000661800000| 0%| F| |TAMS 0x0000000661000000| PB 0x0000000661000000| Untracked | 0 +|1205|0x0000000661800000, 0x0000000661800000, 0x0000000662000000| 0%| F| |TAMS 0x0000000661800000| PB 0x0000000661800000| Untracked | 0 +|1206|0x0000000662000000, 0x0000000662000000, 0x0000000662800000| 0%| F| |TAMS 0x0000000662000000| PB 0x0000000662000000| Untracked | 0 +|1207|0x0000000662800000, 0x0000000662800000, 0x0000000663000000| 0%| F| |TAMS 0x0000000662800000| PB 0x0000000662800000| Untracked | 0 +|1208|0x0000000663000000, 0x0000000663000000, 0x0000000663800000| 0%| F| |TAMS 0x0000000663000000| PB 0x0000000663000000| Untracked | 0 +|1209|0x0000000663800000, 0x0000000663800000, 0x0000000664000000| 0%| F| |TAMS 0x0000000663800000| PB 0x0000000663800000| Untracked | 0 +|1210|0x0000000664000000, 0x0000000664000000, 0x0000000664800000| 0%| F| |TAMS 0x0000000664000000| PB 0x0000000664000000| Untracked | 0 +|1211|0x0000000664800000, 0x0000000664800000, 0x0000000665000000| 0%| F| |TAMS 0x0000000664800000| PB 0x0000000664800000| Untracked | 0 +|1212|0x0000000665000000, 0x0000000665000000, 0x0000000665800000| 0%| F| |TAMS 0x0000000665000000| PB 0x0000000665000000| Untracked | 0 +|1213|0x0000000665800000, 0x0000000665800000, 0x0000000666000000| 0%| F| |TAMS 0x0000000665800000| PB 0x0000000665800000| Untracked | 0 +|1214|0x0000000666000000, 0x0000000666000000, 0x0000000666800000| 0%| F| |TAMS 0x0000000666000000| PB 0x0000000666000000| Untracked | 0 +|1215|0x0000000666800000, 0x0000000666800000, 0x0000000667000000| 0%| F| |TAMS 0x0000000666800000| PB 0x0000000666800000| Untracked | 0 +|1216|0x0000000667000000, 0x0000000667000000, 0x0000000667800000| 0%| F| |TAMS 0x0000000667000000| PB 0x0000000667000000| Untracked | 0 +|1217|0x0000000667800000, 0x0000000667800000, 0x0000000668000000| 0%| F| |TAMS 0x0000000667800000| PB 0x0000000667800000| Untracked | 0 +|1218|0x0000000668000000, 0x0000000668000000, 0x0000000668800000| 0%| F| |TAMS 0x0000000668000000| PB 0x0000000668000000| Untracked | 0 +|1219|0x0000000668800000, 0x0000000668800000, 0x0000000669000000| 0%| F| |TAMS 0x0000000668800000| PB 0x0000000668800000| Untracked | 0 +|1220|0x0000000669000000, 0x0000000669000000, 0x0000000669800000| 0%| F| |TAMS 0x0000000669000000| PB 0x0000000669000000| Untracked | 0 +|1221|0x0000000669800000, 0x0000000669800000, 0x000000066a000000| 0%| F| |TAMS 0x0000000669800000| PB 0x0000000669800000| Untracked | 0 +|1222|0x000000066a000000, 0x000000066a000000, 0x000000066a800000| 0%| F| |TAMS 0x000000066a000000| PB 0x000000066a000000| Untracked | 0 +|1223|0x000000066a800000, 0x000000066a800000, 0x000000066b000000| 0%| F| |TAMS 0x000000066a800000| PB 0x000000066a800000| Untracked | 0 +|1224|0x000000066b000000, 0x000000066b000000, 0x000000066b800000| 0%| F| |TAMS 0x000000066b000000| PB 0x000000066b000000| Untracked | 0 +|1225|0x000000066b800000, 0x000000066b800000, 0x000000066c000000| 0%| F| |TAMS 0x000000066b800000| PB 0x000000066b800000| Untracked | 0 +|1226|0x000000066c000000, 0x000000066c000000, 0x000000066c800000| 0%| F| |TAMS 0x000000066c000000| PB 0x000000066c000000| Untracked | 0 +|1227|0x000000066c800000, 0x000000066c800000, 0x000000066d000000| 0%| F| |TAMS 0x000000066c800000| PB 0x000000066c800000| Untracked | 0 +|1228|0x000000066d000000, 0x000000066d000000, 0x000000066d800000| 0%| F| |TAMS 0x000000066d000000| PB 0x000000066d000000| Untracked | 0 +|1229|0x000000066d800000, 0x000000066d800000, 0x000000066e000000| 0%| F| |TAMS 0x000000066d800000| PB 0x000000066d800000| Untracked | 0 +|1230|0x000000066e000000, 0x000000066e000000, 0x000000066e800000| 0%| F| |TAMS 0x000000066e000000| PB 0x000000066e000000| Untracked | 0 +|1231|0x000000066e800000, 0x000000066e800000, 0x000000066f000000| 0%| F| |TAMS 0x000000066e800000| PB 0x000000066e800000| Untracked | 0 +|1232|0x000000066f000000, 0x000000066f000000, 0x000000066f800000| 0%| F| |TAMS 0x000000066f000000| PB 0x000000066f000000| Untracked | 0 +|1233|0x000000066f800000, 0x000000066f800000, 0x0000000670000000| 0%| F| |TAMS 0x000000066f800000| PB 0x000000066f800000| Untracked | 0 +|1234|0x0000000670000000, 0x0000000670000000, 0x0000000670800000| 0%| F| |TAMS 0x0000000670000000| PB 0x0000000670000000| Untracked | 0 +|1235|0x0000000670800000, 0x0000000670800000, 0x0000000671000000| 0%| F| |TAMS 0x0000000670800000| PB 0x0000000670800000| Untracked | 0 +|1236|0x0000000671000000, 0x0000000671000000, 0x0000000671800000| 0%| F| |TAMS 0x0000000671000000| PB 0x0000000671000000| Untracked | 0 +|1237|0x0000000671800000, 0x0000000671800000, 0x0000000672000000| 0%| F| |TAMS 0x0000000671800000| PB 0x0000000671800000| Untracked | 0 +|1238|0x0000000672000000, 0x0000000672000000, 0x0000000672800000| 0%| F| |TAMS 0x0000000672000000| PB 0x0000000672000000| Untracked | 0 +|1239|0x0000000672800000, 0x0000000672800000, 0x0000000673000000| 0%| F| |TAMS 0x0000000672800000| PB 0x0000000672800000| Untracked | 0 +|1240|0x0000000673000000, 0x0000000673000000, 0x0000000673800000| 0%| F| |TAMS 0x0000000673000000| PB 0x0000000673000000| Untracked | 0 +|1241|0x0000000673800000, 0x0000000673800000, 0x0000000674000000| 0%| F| |TAMS 0x0000000673800000| PB 0x0000000673800000| Untracked | 0 +|1242|0x0000000674000000, 0x0000000674000000, 0x0000000674800000| 0%| F| |TAMS 0x0000000674000000| PB 0x0000000674000000| Untracked | 0 +|1243|0x0000000674800000, 0x0000000674800000, 0x0000000675000000| 0%| F| |TAMS 0x0000000674800000| PB 0x0000000674800000| Untracked | 0 +|1244|0x0000000675000000, 0x0000000675000000, 0x0000000675800000| 0%| F| |TAMS 0x0000000675000000| PB 0x0000000675000000| Untracked | 0 +|1245|0x0000000675800000, 0x0000000675800000, 0x0000000676000000| 0%| F| |TAMS 0x0000000675800000| PB 0x0000000675800000| Untracked | 0 +|1246|0x0000000676000000, 0x0000000676000000, 0x0000000676800000| 0%| F| |TAMS 0x0000000676000000| PB 0x0000000676000000| Untracked | 0 +|1247|0x0000000676800000, 0x0000000676800000, 0x0000000677000000| 0%| F| |TAMS 0x0000000676800000| PB 0x0000000676800000| Untracked | 0 +|1248|0x0000000677000000, 0x0000000677000000, 0x0000000677800000| 0%| F| |TAMS 0x0000000677000000| PB 0x0000000677000000| Untracked | 0 +|1249|0x0000000677800000, 0x0000000677800000, 0x0000000678000000| 0%| F| |TAMS 0x0000000677800000| PB 0x0000000677800000| Untracked | 0 +|1250|0x0000000678000000, 0x0000000678000000, 0x0000000678800000| 0%| F| |TAMS 0x0000000678000000| PB 0x0000000678000000| Untracked | 0 +|1251|0x0000000678800000, 0x0000000678800000, 0x0000000679000000| 0%| F| |TAMS 0x0000000678800000| PB 0x0000000678800000| Untracked | 0 +|1252|0x0000000679000000, 0x0000000679000000, 0x0000000679800000| 0%| F| |TAMS 0x0000000679000000| PB 0x0000000679000000| Untracked | 0 +|1253|0x0000000679800000, 0x0000000679800000, 0x000000067a000000| 0%| F| |TAMS 0x0000000679800000| PB 0x0000000679800000| Untracked | 0 +|1254|0x000000067a000000, 0x000000067a000000, 0x000000067a800000| 0%| F| |TAMS 0x000000067a000000| PB 0x000000067a000000| Untracked | 0 +|1255|0x000000067a800000, 0x000000067a800000, 0x000000067b000000| 0%| F| |TAMS 0x000000067a800000| PB 0x000000067a800000| Untracked | 0 +|1256|0x000000067b000000, 0x000000067b000000, 0x000000067b800000| 0%| F| |TAMS 0x000000067b000000| PB 0x000000067b000000| Untracked | 0 +|1257|0x000000067b800000, 0x000000067b800000, 0x000000067c000000| 0%| F| |TAMS 0x000000067b800000| PB 0x000000067b800000| Untracked | 0 +|1258|0x000000067c000000, 0x000000067c000000, 0x000000067c800000| 0%| F| |TAMS 0x000000067c000000| PB 0x000000067c000000| Untracked | 0 +|1259|0x000000067c800000, 0x000000067c800000, 0x000000067d000000| 0%| F| |TAMS 0x000000067c800000| PB 0x000000067c800000| Untracked | 0 +|1260|0x000000067d000000, 0x000000067d000000, 0x000000067d800000| 0%| F| |TAMS 0x000000067d000000| PB 0x000000067d000000| Untracked | 0 +|1261|0x000000067d800000, 0x000000067d800000, 0x000000067e000000| 0%| F| |TAMS 0x000000067d800000| PB 0x000000067d800000| Untracked | 0 +|1262|0x000000067e000000, 0x000000067e000000, 0x000000067e800000| 0%| F| |TAMS 0x000000067e000000| PB 0x000000067e000000| Untracked | 0 +|1263|0x000000067e800000, 0x000000067e800000, 0x000000067f000000| 0%| F| |TAMS 0x000000067e800000| PB 0x000000067e800000| Untracked | 0 +|1264|0x000000067f000000, 0x000000067f000000, 0x000000067f800000| 0%| F| |TAMS 0x000000067f000000| PB 0x000000067f000000| Untracked | 0 +|1265|0x000000067f800000, 0x000000067f800000, 0x0000000680000000| 0%| F| |TAMS 0x000000067f800000| PB 0x000000067f800000| Untracked | 0 +|1266|0x0000000680000000, 0x0000000680000000, 0x0000000680800000| 0%| F| |TAMS 0x0000000680000000| PB 0x0000000680000000| Untracked | 0 +|1267|0x0000000680800000, 0x0000000680800000, 0x0000000681000000| 0%| F| |TAMS 0x0000000680800000| PB 0x0000000680800000| Untracked | 0 +|1268|0x0000000681000000, 0x0000000681000000, 0x0000000681800000| 0%| F| |TAMS 0x0000000681000000| PB 0x0000000681000000| Untracked | 0 +|1269|0x0000000681800000, 0x0000000681800000, 0x0000000682000000| 0%| F| |TAMS 0x0000000681800000| PB 0x0000000681800000| Untracked | 0 +|1270|0x0000000682000000, 0x0000000682000000, 0x0000000682800000| 0%| F| |TAMS 0x0000000682000000| PB 0x0000000682000000| Untracked | 0 +|1271|0x0000000682800000, 0x0000000682800000, 0x0000000683000000| 0%| F| |TAMS 0x0000000682800000| PB 0x0000000682800000| Untracked | 0 +|1272|0x0000000683000000, 0x0000000683000000, 0x0000000683800000| 0%| F| |TAMS 0x0000000683000000| PB 0x0000000683000000| Untracked | 0 +|1273|0x0000000683800000, 0x0000000683800000, 0x0000000684000000| 0%| F| |TAMS 0x0000000683800000| PB 0x0000000683800000| Untracked | 0 +|1274|0x0000000684000000, 0x0000000684000000, 0x0000000684800000| 0%| F| |TAMS 0x0000000684000000| PB 0x0000000684000000| Untracked | 0 +|1275|0x0000000684800000, 0x0000000684800000, 0x0000000685000000| 0%| F| |TAMS 0x0000000684800000| PB 0x0000000684800000| Untracked | 0 +|1276|0x0000000685000000, 0x0000000685000000, 0x0000000685800000| 0%| F| |TAMS 0x0000000685000000| PB 0x0000000685000000| Untracked | 0 +|1277|0x0000000685800000, 0x0000000685800000, 0x0000000686000000| 0%| F| |TAMS 0x0000000685800000| PB 0x0000000685800000| Untracked | 0 +|1278|0x0000000686000000, 0x0000000686000000, 0x0000000686800000| 0%| F| |TAMS 0x0000000686000000| PB 0x0000000686000000| Untracked | 0 +|1279|0x0000000686800000, 0x0000000686800000, 0x0000000687000000| 0%| F| |TAMS 0x0000000686800000| PB 0x0000000686800000| Untracked | 0 +|1280|0x0000000687000000, 0x0000000687000000, 0x0000000687800000| 0%| F| |TAMS 0x0000000687000000| PB 0x0000000687000000| Untracked | 0 +|1281|0x0000000687800000, 0x0000000687800000, 0x0000000688000000| 0%| F| |TAMS 0x0000000687800000| PB 0x0000000687800000| Untracked | 0 +|1282|0x0000000688000000, 0x0000000688000000, 0x0000000688800000| 0%| F| |TAMS 0x0000000688000000| PB 0x0000000688000000| Untracked | 0 +|1283|0x0000000688800000, 0x0000000688800000, 0x0000000689000000| 0%| F| |TAMS 0x0000000688800000| PB 0x0000000688800000| Untracked | 0 +|1284|0x0000000689000000, 0x0000000689000000, 0x0000000689800000| 0%| F| |TAMS 0x0000000689000000| PB 0x0000000689000000| Untracked | 0 +|1285|0x0000000689800000, 0x0000000689800000, 0x000000068a000000| 0%| F| |TAMS 0x0000000689800000| PB 0x0000000689800000| Untracked | 0 +|1286|0x000000068a000000, 0x000000068a000000, 0x000000068a800000| 0%| F| |TAMS 0x000000068a000000| PB 0x000000068a000000| Untracked | 0 +|1287|0x000000068a800000, 0x000000068a800000, 0x000000068b000000| 0%| F| |TAMS 0x000000068a800000| PB 0x000000068a800000| Untracked | 0 +|1288|0x000000068b000000, 0x000000068b000000, 0x000000068b800000| 0%| F| |TAMS 0x000000068b000000| PB 0x000000068b000000| Untracked | 0 +|1289|0x000000068b800000, 0x000000068b800000, 0x000000068c000000| 0%| F| |TAMS 0x000000068b800000| PB 0x000000068b800000| Untracked | 0 +|1290|0x000000068c000000, 0x000000068c000000, 0x000000068c800000| 0%| F| |TAMS 0x000000068c000000| PB 0x000000068c000000| Untracked | 0 +|1291|0x000000068c800000, 0x000000068c800000, 0x000000068d000000| 0%| F| |TAMS 0x000000068c800000| PB 0x000000068c800000| Untracked | 0 +|1292|0x000000068d000000, 0x000000068d000000, 0x000000068d800000| 0%| F| |TAMS 0x000000068d000000| PB 0x000000068d000000| Untracked | 0 +|1293|0x000000068d800000, 0x000000068d800000, 0x000000068e000000| 0%| F| |TAMS 0x000000068d800000| PB 0x000000068d800000| Untracked | 0 +|1294|0x000000068e000000, 0x000000068e000000, 0x000000068e800000| 0%| F| |TAMS 0x000000068e000000| PB 0x000000068e000000| Untracked | 0 +|1295|0x000000068e800000, 0x000000068e800000, 0x000000068f000000| 0%| F| |TAMS 0x000000068e800000| PB 0x000000068e800000| Untracked | 0 +|1296|0x000000068f000000, 0x000000068f000000, 0x000000068f800000| 0%| F| |TAMS 0x000000068f000000| PB 0x000000068f000000| Untracked | 0 +|1297|0x000000068f800000, 0x000000068f800000, 0x0000000690000000| 0%| F| |TAMS 0x000000068f800000| PB 0x000000068f800000| Untracked | 0 +|1298|0x0000000690000000, 0x0000000690000000, 0x0000000690800000| 0%| F| |TAMS 0x0000000690000000| PB 0x0000000690000000| Untracked | 0 +|1299|0x0000000690800000, 0x0000000690800000, 0x0000000691000000| 0%| F| |TAMS 0x0000000690800000| PB 0x0000000690800000| Untracked | 0 +|1300|0x0000000691000000, 0x0000000691000000, 0x0000000691800000| 0%| F| |TAMS 0x0000000691000000| PB 0x0000000691000000| Untracked | 0 +|1301|0x0000000691800000, 0x0000000691800000, 0x0000000692000000| 0%| F| |TAMS 0x0000000691800000| PB 0x0000000691800000| Untracked | 0 +|1302|0x0000000692000000, 0x0000000692000000, 0x0000000692800000| 0%| F| |TAMS 0x0000000692000000| PB 0x0000000692000000| Untracked | 0 +|1303|0x0000000692800000, 0x0000000692800000, 0x0000000693000000| 0%| F| |TAMS 0x0000000692800000| PB 0x0000000692800000| Untracked | 0 +|1304|0x0000000693000000, 0x0000000693000000, 0x0000000693800000| 0%| F| |TAMS 0x0000000693000000| PB 0x0000000693000000| Untracked | 0 +|1305|0x0000000693800000, 0x0000000693800000, 0x0000000694000000| 0%| F| |TAMS 0x0000000693800000| PB 0x0000000693800000| Untracked | 0 +|1306|0x0000000694000000, 0x0000000694000000, 0x0000000694800000| 0%| F| |TAMS 0x0000000694000000| PB 0x0000000694000000| Untracked | 0 +|1307|0x0000000694800000, 0x0000000694800000, 0x0000000695000000| 0%| F| |TAMS 0x0000000694800000| PB 0x0000000694800000| Untracked | 0 +|1308|0x0000000695000000, 0x0000000695000000, 0x0000000695800000| 0%| F| |TAMS 0x0000000695000000| PB 0x0000000695000000| Untracked | 0 +|1309|0x0000000695800000, 0x0000000695800000, 0x0000000696000000| 0%| F| |TAMS 0x0000000695800000| PB 0x0000000695800000| Untracked | 0 +|1310|0x0000000696000000, 0x0000000696000000, 0x0000000696800000| 0%| F| |TAMS 0x0000000696000000| PB 0x0000000696000000| Untracked | 0 +|1311|0x0000000696800000, 0x0000000696800000, 0x0000000697000000| 0%| F| |TAMS 0x0000000696800000| PB 0x0000000696800000| Untracked | 0 +|1312|0x0000000697000000, 0x0000000697000000, 0x0000000697800000| 0%| F| |TAMS 0x0000000697000000| PB 0x0000000697000000| Untracked | 0 +|1313|0x0000000697800000, 0x0000000697800000, 0x0000000698000000| 0%| F| |TAMS 0x0000000697800000| PB 0x0000000697800000| Untracked | 0 +|1314|0x0000000698000000, 0x0000000698000000, 0x0000000698800000| 0%| F| |TAMS 0x0000000698000000| PB 0x0000000698000000| Untracked | 0 +|1315|0x0000000698800000, 0x0000000698800000, 0x0000000699000000| 0%| F| |TAMS 0x0000000698800000| PB 0x0000000698800000| Untracked | 0 +|1316|0x0000000699000000, 0x0000000699000000, 0x0000000699800000| 0%| F| |TAMS 0x0000000699000000| PB 0x0000000699000000| Untracked | 0 +|1317|0x0000000699800000, 0x0000000699800000, 0x000000069a000000| 0%| F| |TAMS 0x0000000699800000| PB 0x0000000699800000| Untracked | 0 +|1318|0x000000069a000000, 0x000000069a000000, 0x000000069a800000| 0%| F| |TAMS 0x000000069a000000| PB 0x000000069a000000| Untracked | 0 +|1319|0x000000069a800000, 0x000000069a800000, 0x000000069b000000| 0%| F| |TAMS 0x000000069a800000| PB 0x000000069a800000| Untracked | 0 +|1320|0x000000069b000000, 0x000000069b000000, 0x000000069b800000| 0%| F| |TAMS 0x000000069b000000| PB 0x000000069b000000| Untracked | 0 +|1321|0x000000069b800000, 0x000000069b800000, 0x000000069c000000| 0%| F| |TAMS 0x000000069b800000| PB 0x000000069b800000| Untracked | 0 +|1322|0x000000069c000000, 0x000000069c000000, 0x000000069c800000| 0%| F| |TAMS 0x000000069c000000| PB 0x000000069c000000| Untracked | 0 +|1323|0x000000069c800000, 0x000000069c800000, 0x000000069d000000| 0%| F| |TAMS 0x000000069c800000| PB 0x000000069c800000| Untracked | 0 +|1324|0x000000069d000000, 0x000000069d000000, 0x000000069d800000| 0%| F| |TAMS 0x000000069d000000| PB 0x000000069d000000| Untracked | 0 +|1325|0x000000069d800000, 0x000000069d800000, 0x000000069e000000| 0%| F| |TAMS 0x000000069d800000| PB 0x000000069d800000| Untracked | 0 +|1326|0x000000069e000000, 0x000000069e000000, 0x000000069e800000| 0%| F| |TAMS 0x000000069e000000| PB 0x000000069e000000| Untracked | 0 +|1327|0x000000069e800000, 0x000000069e800000, 0x000000069f000000| 0%| F| |TAMS 0x000000069e800000| PB 0x000000069e800000| Untracked | 0 +|1328|0x000000069f000000, 0x000000069f000000, 0x000000069f800000| 0%| F| |TAMS 0x000000069f000000| PB 0x000000069f000000| Untracked | 0 +|1329|0x000000069f800000, 0x000000069f800000, 0x00000006a0000000| 0%| F| |TAMS 0x000000069f800000| PB 0x000000069f800000| Untracked | 0 +|1330|0x00000006a0000000, 0x00000006a0000000, 0x00000006a0800000| 0%| F| |TAMS 0x00000006a0000000| PB 0x00000006a0000000| Untracked | 0 +|1331|0x00000006a0800000, 0x00000006a0800000, 0x00000006a1000000| 0%| F| |TAMS 0x00000006a0800000| PB 0x00000006a0800000| Untracked | 0 +|1332|0x00000006a1000000, 0x00000006a1000000, 0x00000006a1800000| 0%| F| |TAMS 0x00000006a1000000| PB 0x00000006a1000000| Untracked | 0 +|1333|0x00000006a1800000, 0x00000006a1800000, 0x00000006a2000000| 0%| F| |TAMS 0x00000006a1800000| PB 0x00000006a1800000| Untracked | 0 +|1334|0x00000006a2000000, 0x00000006a2000000, 0x00000006a2800000| 0%| F| |TAMS 0x00000006a2000000| PB 0x00000006a2000000| Untracked | 0 +|1335|0x00000006a2800000, 0x00000006a2800000, 0x00000006a3000000| 0%| F| |TAMS 0x00000006a2800000| PB 0x00000006a2800000| Untracked | 0 +|1336|0x00000006a3000000, 0x00000006a3000000, 0x00000006a3800000| 0%| F| |TAMS 0x00000006a3000000| PB 0x00000006a3000000| Untracked | 0 +|1337|0x00000006a3800000, 0x00000006a3800000, 0x00000006a4000000| 0%| F| |TAMS 0x00000006a3800000| PB 0x00000006a3800000| Untracked | 0 +|1338|0x00000006a4000000, 0x00000006a4000000, 0x00000006a4800000| 0%| F| |TAMS 0x00000006a4000000| PB 0x00000006a4000000| Untracked | 0 +|1339|0x00000006a4800000, 0x00000006a4800000, 0x00000006a5000000| 0%| F| |TAMS 0x00000006a4800000| PB 0x00000006a4800000| Untracked | 0 +|1340|0x00000006a5000000, 0x00000006a5000000, 0x00000006a5800000| 0%| F| |TAMS 0x00000006a5000000| PB 0x00000006a5000000| Untracked | 0 +|1341|0x00000006a5800000, 0x00000006a5800000, 0x00000006a6000000| 0%| F| |TAMS 0x00000006a5800000| PB 0x00000006a5800000| Untracked | 0 +|1342|0x00000006a6000000, 0x00000006a6000000, 0x00000006a6800000| 0%| F| |TAMS 0x00000006a6000000| PB 0x00000006a6000000| Untracked | 0 +|1343|0x00000006a6800000, 0x00000006a6800000, 0x00000006a7000000| 0%| F| |TAMS 0x00000006a6800000| PB 0x00000006a6800000| Untracked | 0 +|1344|0x00000006a7000000, 0x00000006a7000000, 0x00000006a7800000| 0%| F| |TAMS 0x00000006a7000000| PB 0x00000006a7000000| Untracked | 0 +|1345|0x00000006a7800000, 0x00000006a7800000, 0x00000006a8000000| 0%| F| |TAMS 0x00000006a7800000| PB 0x00000006a7800000| Untracked | 0 +|1346|0x00000006a8000000, 0x00000006a8000000, 0x00000006a8800000| 0%| F| |TAMS 0x00000006a8000000| PB 0x00000006a8000000| Untracked | 0 +|1347|0x00000006a8800000, 0x00000006a8800000, 0x00000006a9000000| 0%| F| |TAMS 0x00000006a8800000| PB 0x00000006a8800000| Untracked | 0 +|1348|0x00000006a9000000, 0x00000006a9000000, 0x00000006a9800000| 0%| F| |TAMS 0x00000006a9000000| PB 0x00000006a9000000| Untracked | 0 +|1349|0x00000006a9800000, 0x00000006a9800000, 0x00000006aa000000| 0%| F| |TAMS 0x00000006a9800000| PB 0x00000006a9800000| Untracked | 0 +|1350|0x00000006aa000000, 0x00000006aa000000, 0x00000006aa800000| 0%| F| |TAMS 0x00000006aa000000| PB 0x00000006aa000000| Untracked | 0 +|1351|0x00000006aa800000, 0x00000006aa800000, 0x00000006ab000000| 0%| F| |TAMS 0x00000006aa800000| PB 0x00000006aa800000| Untracked | 0 +|1352|0x00000006ab000000, 0x00000006ab000000, 0x00000006ab800000| 0%| F| |TAMS 0x00000006ab000000| PB 0x00000006ab000000| Untracked | 0 +|1353|0x00000006ab800000, 0x00000006ab800000, 0x00000006ac000000| 0%| F| |TAMS 0x00000006ab800000| PB 0x00000006ab800000| Untracked | 0 +|1354|0x00000006ac000000, 0x00000006ac000000, 0x00000006ac800000| 0%| F| |TAMS 0x00000006ac000000| PB 0x00000006ac000000| Untracked | 0 +|1355|0x00000006ac800000, 0x00000006ac800000, 0x00000006ad000000| 0%| F| |TAMS 0x00000006ac800000| PB 0x00000006ac800000| Untracked | 0 +|1356|0x00000006ad000000, 0x00000006ad000000, 0x00000006ad800000| 0%| F| |TAMS 0x00000006ad000000| PB 0x00000006ad000000| Untracked | 0 +|1357|0x00000006ad800000, 0x00000006ad800000, 0x00000006ae000000| 0%| F| |TAMS 0x00000006ad800000| PB 0x00000006ad800000| Untracked | 0 +|1358|0x00000006ae000000, 0x00000006ae000000, 0x00000006ae800000| 0%| F| |TAMS 0x00000006ae000000| PB 0x00000006ae000000| Untracked | 0 +|1359|0x00000006ae800000, 0x00000006ae800000, 0x00000006af000000| 0%| F| |TAMS 0x00000006ae800000| PB 0x00000006ae800000| Untracked | 0 +|1360|0x00000006af000000, 0x00000006af000000, 0x00000006af800000| 0%| F| |TAMS 0x00000006af000000| PB 0x00000006af000000| Untracked | 0 +|1361|0x00000006af800000, 0x00000006af800000, 0x00000006b0000000| 0%| F| |TAMS 0x00000006af800000| PB 0x00000006af800000| Untracked | 0 +|1362|0x00000006b0000000, 0x00000006b0000000, 0x00000006b0800000| 0%| F| |TAMS 0x00000006b0000000| PB 0x00000006b0000000| Untracked | 0 +|1363|0x00000006b0800000, 0x00000006b0800000, 0x00000006b1000000| 0%| F| |TAMS 0x00000006b0800000| PB 0x00000006b0800000| Untracked | 0 +|1364|0x00000006b1000000, 0x00000006b1000000, 0x00000006b1800000| 0%| F| |TAMS 0x00000006b1000000| PB 0x00000006b1000000| Untracked | 0 +|1365|0x00000006b1800000, 0x00000006b1800000, 0x00000006b2000000| 0%| F| |TAMS 0x00000006b1800000| PB 0x00000006b1800000| Untracked | 0 +|1366|0x00000006b2000000, 0x00000006b2000000, 0x00000006b2800000| 0%| F| |TAMS 0x00000006b2000000| PB 0x00000006b2000000| Untracked | 0 +|1367|0x00000006b2800000, 0x00000006b2800000, 0x00000006b3000000| 0%| F| |TAMS 0x00000006b2800000| PB 0x00000006b2800000| Untracked | 0 +|1368|0x00000006b3000000, 0x00000006b3000000, 0x00000006b3800000| 0%| F| |TAMS 0x00000006b3000000| PB 0x00000006b3000000| Untracked | 0 +|1369|0x00000006b3800000, 0x00000006b3800000, 0x00000006b4000000| 0%| F| |TAMS 0x00000006b3800000| PB 0x00000006b3800000| Untracked | 0 +|1370|0x00000006b4000000, 0x00000006b4000000, 0x00000006b4800000| 0%| F| |TAMS 0x00000006b4000000| PB 0x00000006b4000000| Untracked | 0 +|1371|0x00000006b4800000, 0x00000006b4800000, 0x00000006b5000000| 0%| F| |TAMS 0x00000006b4800000| PB 0x00000006b4800000| Untracked | 0 +|1372|0x00000006b5000000, 0x00000006b5000000, 0x00000006b5800000| 0%| F| |TAMS 0x00000006b5000000| PB 0x00000006b5000000| Untracked | 0 +|1373|0x00000006b5800000, 0x00000006b6000000, 0x00000006b6000000|100%| O| |TAMS 0x00000006b5800000| PB 0x00000006b5800000| Untracked | 0 +|1374|0x00000006b6000000, 0x00000006b6000000, 0x00000006b6800000| 0%| F| |TAMS 0x00000006b6000000| PB 0x00000006b6000000| Untracked | 0 +|1375|0x00000006b6800000, 0x00000006b7000000, 0x00000006b7000000|100%| O| |TAMS 0x00000006b6800000| PB 0x00000006b6800000| Untracked | 0 +|1376|0x00000006b7000000, 0x00000006b7800000, 0x00000006b7800000|100%| O| |TAMS 0x00000006b7000000| PB 0x00000006b7000000| Untracked | 0 +|1377|0x00000006b7800000, 0x00000006b7800000, 0x00000006b8000000| 0%| F| |TAMS 0x00000006b7800000| PB 0x00000006b7800000| Untracked | 0 +|1378|0x00000006b8000000, 0x00000006b8000000, 0x00000006b8800000| 0%| F| |TAMS 0x00000006b8000000| PB 0x00000006b8000000| Untracked | 0 +|1379|0x00000006b8800000, 0x00000006b8800000, 0x00000006b9000000| 0%| F| |TAMS 0x00000006b8800000| PB 0x00000006b8800000| Untracked | 0 +|1380|0x00000006b9000000, 0x00000006b9800000, 0x00000006b9800000|100%| O| |TAMS 0x00000006b9000000| PB 0x00000006b9000000| Untracked | 0 +|1381|0x00000006b9800000, 0x00000006b9800000, 0x00000006ba000000| 0%| F| |TAMS 0x00000006b9800000| PB 0x00000006b9800000| Untracked | 0 +|1382|0x00000006ba000000, 0x00000006ba000000, 0x00000006ba800000| 0%| F| |TAMS 0x00000006ba000000| PB 0x00000006ba000000| Untracked | 0 +|1383|0x00000006ba800000, 0x00000006bb000000, 0x00000006bb000000|100%| O| |TAMS 0x00000006ba800000| PB 0x00000006ba800000| Untracked | 0 +|1384|0x00000006bb000000, 0x00000006bb800000, 0x00000006bb800000|100%| O| |TAMS 0x00000006bb000000| PB 0x00000006bb000000| Untracked | 0 +|1385|0x00000006bb800000, 0x00000006bb800000, 0x00000006bc000000| 0%| F| |TAMS 0x00000006bb800000| PB 0x00000006bb800000| Untracked | 0 +|1386|0x00000006bc000000, 0x00000006bc800000, 0x00000006bc800000|100%| O| |TAMS 0x00000006bc000000| PB 0x00000006bc000000| Untracked | 0 +|1387|0x00000006bc800000, 0x00000006bc800000, 0x00000006bd000000| 0%| F| |TAMS 0x00000006bc800000| PB 0x00000006bc800000| Untracked | 0 +|1388|0x00000006bd000000, 0x00000006bd000000, 0x00000006bd800000| 0%| F| |TAMS 0x00000006bd000000| PB 0x00000006bd000000| Untracked | 0 +|1389|0x00000006bd800000, 0x00000006bd800000, 0x00000006be000000| 0%| F| |TAMS 0x00000006bd800000| PB 0x00000006bd800000| Untracked | 0 +|1390|0x00000006be000000, 0x00000006be000000, 0x00000006be800000| 0%| F| |TAMS 0x00000006be000000| PB 0x00000006be000000| Untracked | 0 +|1391|0x00000006be800000, 0x00000006be800000, 0x00000006bf000000| 0%| F| |TAMS 0x00000006be800000| PB 0x00000006be800000| Untracked | 0 +|1392|0x00000006bf000000, 0x00000006bf000000, 0x00000006bf800000| 0%| F| |TAMS 0x00000006bf000000| PB 0x00000006bf000000| Untracked | 0 +|1393|0x00000006bf800000, 0x00000006c0000000, 0x00000006c0000000|100%| O| |TAMS 0x00000006bf800000| PB 0x00000006bf800000| Untracked | 0 +|1394|0x00000006c0000000, 0x00000006c0000000, 0x00000006c0800000| 0%| F| |TAMS 0x00000006c0000000| PB 0x00000006c0000000| Untracked | 0 +|1395|0x00000006c0800000, 0x00000006c1000000, 0x00000006c1000000|100%| O| |TAMS 0x00000006c0800000| PB 0x00000006c0800000| Untracked | 0 +|1396|0x00000006c1000000, 0x00000006c1000000, 0x00000006c1800000| 0%| F| |TAMS 0x00000006c1000000| PB 0x00000006c1000000| Untracked | 0 +|1397|0x00000006c1800000, 0x00000006c2000000, 0x00000006c2000000|100%| O| |TAMS 0x00000006c1800000| PB 0x00000006c1800000| Untracked | 0 +|1398|0x00000006c2000000, 0x00000006c2800000, 0x00000006c2800000|100%| O| |TAMS 0x00000006c2000000| PB 0x00000006c2000000| Untracked | 0 +|1399|0x00000006c2800000, 0x00000006c3000000, 0x00000006c3000000|100%| O| |TAMS 0x00000006c2800000| PB 0x00000006c2800000| Untracked | 0 +|1400|0x00000006c3000000, 0x00000006c3800000, 0x00000006c3800000|100%| O| |TAMS 0x00000006c3000000| PB 0x00000006c3000000| Untracked | 0 +|1401|0x00000006c3800000, 0x00000006c4000000, 0x00000006c4000000|100%| O| |TAMS 0x00000006c3800000| PB 0x00000006c3800000| Untracked | 0 +|1402|0x00000006c4000000, 0x00000006c4800000, 0x00000006c4800000|100%| O| |TAMS 0x00000006c4000000| PB 0x00000006c4000000| Untracked | 0 +|1403|0x00000006c4800000, 0x00000006c5000000, 0x00000006c5000000|100%| O| |TAMS 0x00000006c4800000| PB 0x00000006c4800000| Untracked | 0 +|1404|0x00000006c5000000, 0x00000006c5800000, 0x00000006c5800000|100%| O| |TAMS 0x00000006c5000000| PB 0x00000006c5000000| Untracked | 0 +|1405|0x00000006c5800000, 0x00000006c6000000, 0x00000006c6000000|100%| O| |TAMS 0x00000006c5800000| PB 0x00000006c5800000| Untracked | 0 +|1406|0x00000006c6000000, 0x00000006c6800000, 0x00000006c6800000|100%| O| |TAMS 0x00000006c6000000| PB 0x00000006c6000000| Untracked | 0 +|1407|0x00000006c6800000, 0x00000006c7000000, 0x00000006c7000000|100%| O| |TAMS 0x00000006c6800000| PB 0x00000006c6800000| Untracked | 0 +|1408|0x00000006c7000000, 0x00000006c7800000, 0x00000006c7800000|100%| O| |TAMS 0x00000006c7000000| PB 0x00000006c7000000| Untracked | 0 +|1409|0x00000006c7800000, 0x00000006c8000000, 0x00000006c8000000|100%| O| |TAMS 0x00000006c7800000| PB 0x00000006c7800000| Untracked | 0 +|1410|0x00000006c8000000, 0x00000006c8800000, 0x00000006c8800000|100%| O| |TAMS 0x00000006c8000000| PB 0x00000006c8000000| Untracked | 0 +|1411|0x00000006c8800000, 0x00000006c9000000, 0x00000006c9000000|100%| O| |TAMS 0x00000006c8800000| PB 0x00000006c8800000| Untracked | 0 +|1412|0x00000006c9000000, 0x00000006c9800000, 0x00000006c9800000|100%| O| |TAMS 0x00000006c9000000| PB 0x00000006c9000000| Untracked | 0 +|1413|0x00000006c9800000, 0x00000006ca000000, 0x00000006ca000000|100%| O| |TAMS 0x00000006c9800000| PB 0x00000006c9800000| Untracked | 0 +|1414|0x00000006ca000000, 0x00000006ca800000, 0x00000006ca800000|100%| O| |TAMS 0x00000006ca000000| PB 0x00000006ca000000| Untracked | 0 +|1415|0x00000006ca800000, 0x00000006cb000000, 0x00000006cb000000|100%| O| |TAMS 0x00000006ca800000| PB 0x00000006ca800000| Untracked | 0 +|1416|0x00000006cb000000, 0x00000006cb800000, 0x00000006cb800000|100%| O| |TAMS 0x00000006cb000000| PB 0x00000006cb000000| Untracked | 0 +|1417|0x00000006cb800000, 0x00000006cc000000, 0x00000006cc000000|100%| O| |TAMS 0x00000006cb800000| PB 0x00000006cb800000| Untracked | 0 +|1418|0x00000006cc000000, 0x00000006cc800000, 0x00000006cc800000|100%| O| |TAMS 0x00000006cc000000| PB 0x00000006cc000000| Untracked | 0 +|1419|0x00000006cc800000, 0x00000006cd000000, 0x00000006cd000000|100%| O| |TAMS 0x00000006cc800000| PB 0x00000006cc800000| Untracked | 0 +|1420|0x00000006cd000000, 0x00000006cd800000, 0x00000006cd800000|100%| O| |TAMS 0x00000006cd000000| PB 0x00000006cd000000| Untracked | 0 +|1421|0x00000006cd800000, 0x00000006ce000000, 0x00000006ce000000|100%| O| |TAMS 0x00000006cd800000| PB 0x00000006cd800000| Untracked | 0 +|1422|0x00000006ce000000, 0x00000006ce800000, 0x00000006ce800000|100%| O| |TAMS 0x00000006ce000000| PB 0x00000006ce000000| Untracked | 0 +|1423|0x00000006ce800000, 0x00000006cf000000, 0x00000006cf000000|100%| O| |TAMS 0x00000006ce800000| PB 0x00000006ce800000| Untracked | 0 +|1424|0x00000006cf000000, 0x00000006cf800000, 0x00000006cf800000|100%| O| |TAMS 0x00000006cf000000| PB 0x00000006cf000000| Untracked | 0 +|1425|0x00000006cf800000, 0x00000006d0000000, 0x00000006d0000000|100%| O| |TAMS 0x00000006cf800000| PB 0x00000006cf800000| Untracked | 0 +|1426|0x00000006d0000000, 0x00000006d0800000, 0x00000006d0800000|100%| O| |TAMS 0x00000006d0000000| PB 0x00000006d0000000| Untracked | 0 +|1427|0x00000006d0800000, 0x00000006d1000000, 0x00000006d1000000|100%| O| |TAMS 0x00000006d0800000| PB 0x00000006d0800000| Untracked | 0 +|1428|0x00000006d1000000, 0x00000006d1800000, 0x00000006d1800000|100%| O| |TAMS 0x00000006d1000000| PB 0x00000006d1000000| Untracked | 0 +|1429|0x00000006d1800000, 0x00000006d2000000, 0x00000006d2000000|100%| O| |TAMS 0x00000006d1800000| PB 0x00000006d1800000| Untracked | 0 +|1430|0x00000006d2000000, 0x00000006d2800000, 0x00000006d2800000|100%| O| |TAMS 0x00000006d2000000| PB 0x00000006d2000000| Untracked | 0 +|1431|0x00000006d2800000, 0x00000006d3000000, 0x00000006d3000000|100%| O| |TAMS 0x00000006d2800000| PB 0x00000006d2800000| Untracked | 0 +|1432|0x00000006d3000000, 0x00000006d3800000, 0x00000006d3800000|100%| O| |TAMS 0x00000006d3000000| PB 0x00000006d3000000| Untracked | 0 +|1433|0x00000006d3800000, 0x00000006d4000000, 0x00000006d4000000|100%| O| |TAMS 0x00000006d3800000| PB 0x00000006d3800000| Untracked | 0 +|1434|0x00000006d4000000, 0x00000006d4800000, 0x00000006d4800000|100%| O| |TAMS 0x00000006d4000000| PB 0x00000006d4000000| Untracked | 0 +|1435|0x00000006d4800000, 0x00000006d5000000, 0x00000006d5000000|100%| O| |TAMS 0x00000006d4800000| PB 0x00000006d4800000| Untracked | 0 +|1436|0x00000006d5000000, 0x00000006d5800000, 0x00000006d5800000|100%| O| |TAMS 0x00000006d5000000| PB 0x00000006d5000000| Untracked | 0 +|1437|0x00000006d5800000, 0x00000006d6000000, 0x00000006d6000000|100%| O| |TAMS 0x00000006d5800000| PB 0x00000006d5800000| Untracked | 0 +|1438|0x00000006d6000000, 0x00000006d6800000, 0x00000006d6800000|100%| O| |TAMS 0x00000006d6000000| PB 0x00000006d6000000| Untracked | 0 +|1439|0x00000006d6800000, 0x00000006d7000000, 0x00000006d7000000|100%| O| |TAMS 0x00000006d6800000| PB 0x00000006d6800000| Untracked | 0 +|1440|0x00000006d7000000, 0x00000006d7800000, 0x00000006d7800000|100%| O| |TAMS 0x00000006d7000000| PB 0x00000006d7000000| Untracked | 0 +|1441|0x00000006d7800000, 0x00000006d8000000, 0x00000006d8000000|100%| O| |TAMS 0x00000006d7800000| PB 0x00000006d7800000| Untracked | 0 +|1442|0x00000006d8000000, 0x00000006d8800000, 0x00000006d8800000|100%| O| |TAMS 0x00000006d8000000| PB 0x00000006d8000000| Untracked | 0 +|1443|0x00000006d8800000, 0x00000006d9000000, 0x00000006d9000000|100%| O| |TAMS 0x00000006d8800000| PB 0x00000006d8800000| Untracked | 0 +|1444|0x00000006d9000000, 0x00000006d9800000, 0x00000006d9800000|100%| O| |TAMS 0x00000006d9000000| PB 0x00000006d9000000| Untracked | 0 +|1445|0x00000006d9800000, 0x00000006da000000, 0x00000006da000000|100%| O| |TAMS 0x00000006d9800000| PB 0x00000006d9800000| Untracked | 0 +|1446|0x00000006da000000, 0x00000006da800000, 0x00000006da800000|100%| O| |TAMS 0x00000006da000000| PB 0x00000006da000000| Untracked | 0 +|1447|0x00000006da800000, 0x00000006db000000, 0x00000006db000000|100%| O| |TAMS 0x00000006da800000| PB 0x00000006da800000| Untracked | 0 +|1448|0x00000006db000000, 0x00000006db800000, 0x00000006db800000|100%| O| |TAMS 0x00000006db000000| PB 0x00000006db000000| Untracked | 0 +|1449|0x00000006db800000, 0x00000006dc000000, 0x00000006dc000000|100%| O| |TAMS 0x00000006db800000| PB 0x00000006db800000| Untracked | 0 +|1450|0x00000006dc000000, 0x00000006dc800000, 0x00000006dc800000|100%| O| |TAMS 0x00000006dc000000| PB 0x00000006dc000000| Untracked | 0 +|1451|0x00000006dc800000, 0x00000006dd000000, 0x00000006dd000000|100%| O| |TAMS 0x00000006dc800000| PB 0x00000006dc800000| Untracked | 0 +|1452|0x00000006dd000000, 0x00000006dd800000, 0x00000006dd800000|100%| O| |TAMS 0x00000006dd000000| PB 0x00000006dd000000| Untracked | 0 +|1453|0x00000006dd800000, 0x00000006de000000, 0x00000006de000000|100%| O| |TAMS 0x00000006dd800000| PB 0x00000006dd800000| Untracked | 0 +|1454|0x00000006de000000, 0x00000006de800000, 0x00000006de800000|100%| O| |TAMS 0x00000006de000000| PB 0x00000006de000000| Untracked | 0 +|1455|0x00000006de800000, 0x00000006df000000, 0x00000006df000000|100%| O| |TAMS 0x00000006de800000| PB 0x00000006de800000| Untracked | 0 +|1456|0x00000006df000000, 0x00000006df800000, 0x00000006df800000|100%| O| |TAMS 0x00000006df000000| PB 0x00000006df000000| Untracked | 0 +|1457|0x00000006df800000, 0x00000006e0000000, 0x00000006e0000000|100%| O| |TAMS 0x00000006df800000| PB 0x00000006df800000| Untracked | 0 +|1458|0x00000006e0000000, 0x00000006e0800000, 0x00000006e0800000|100%| O| |TAMS 0x00000006e0000000| PB 0x00000006e0000000| Untracked | 0 +|1459|0x00000006e0800000, 0x00000006e1000000, 0x00000006e1000000|100%| O| |TAMS 0x00000006e0800000| PB 0x00000006e0800000| Untracked | 0 +|1460|0x00000006e1000000, 0x00000006e1800000, 0x00000006e1800000|100%| O| |TAMS 0x00000006e1000000| PB 0x00000006e1000000| Untracked | 0 +|1461|0x00000006e1800000, 0x00000006e2000000, 0x00000006e2000000|100%| O| |TAMS 0x00000006e1800000| PB 0x00000006e1800000| Untracked | 0 +|1462|0x00000006e2000000, 0x00000006e2800000, 0x00000006e2800000|100%| O| |TAMS 0x00000006e2000000| PB 0x00000006e2000000| Untracked | 0 +|1463|0x00000006e2800000, 0x00000006e3000000, 0x00000006e3000000|100%| O| |TAMS 0x00000006e2800000| PB 0x00000006e2800000| Untracked | 0 +|1464|0x00000006e3000000, 0x00000006e3800000, 0x00000006e3800000|100%| O| |TAMS 0x00000006e3000000| PB 0x00000006e3000000| Untracked | 0 +|1465|0x00000006e3800000, 0x00000006e4000000, 0x00000006e4000000|100%| O| |TAMS 0x00000006e3800000| PB 0x00000006e3800000| Untracked | 0 +|1466|0x00000006e4000000, 0x00000006e4800000, 0x00000006e4800000|100%| O| |TAMS 0x00000006e4000000| PB 0x00000006e4000000| Untracked | 0 +|1467|0x00000006e4800000, 0x00000006e5000000, 0x00000006e5000000|100%| O| |TAMS 0x00000006e4800000| PB 0x00000006e4800000| Untracked | 0 +|1468|0x00000006e5000000, 0x00000006e5800000, 0x00000006e5800000|100%| O| |TAMS 0x00000006e5000000| PB 0x00000006e5000000| Untracked | 0 +|1469|0x00000006e5800000, 0x00000006e6000000, 0x00000006e6000000|100%| O| |TAMS 0x00000006e5800000| PB 0x00000006e5800000| Untracked | 0 +|1470|0x00000006e6000000, 0x00000006e6800000, 0x00000006e6800000|100%| O| |TAMS 0x00000006e6000000| PB 0x00000006e6000000| Untracked | 0 +|1471|0x00000006e6800000, 0x00000006e7000000, 0x00000006e7000000|100%| O| |TAMS 0x00000006e6800000| PB 0x00000006e6800000| Untracked | 0 +|1472|0x00000006e7000000, 0x00000006e7800000, 0x00000006e7800000|100%| O| |TAMS 0x00000006e7000000| PB 0x00000006e7000000| Untracked | 0 +|1473|0x00000006e7800000, 0x00000006e8000000, 0x00000006e8000000|100%| O| |TAMS 0x00000006e7800000| PB 0x00000006e7800000| Untracked | 0 +|1474|0x00000006e8000000, 0x00000006e8800000, 0x00000006e8800000|100%| O| |TAMS 0x00000006e8000000| PB 0x00000006e8000000| Untracked | 0 +|1475|0x00000006e8800000, 0x00000006e9000000, 0x00000006e9000000|100%| O| |TAMS 0x00000006e8800000| PB 0x00000006e8800000| Untracked | 0 +|1476|0x00000006e9000000, 0x00000006e9800000, 0x00000006e9800000|100%| O| |TAMS 0x00000006e9000000| PB 0x00000006e9000000| Untracked | 0 +|1477|0x00000006e9800000, 0x00000006ea000000, 0x00000006ea000000|100%| O| |TAMS 0x00000006e9800000| PB 0x00000006e9800000| Untracked | 0 +|1478|0x00000006ea000000, 0x00000006ea800000, 0x00000006ea800000|100%| O| |TAMS 0x00000006ea000000| PB 0x00000006ea000000| Untracked | 0 +|1479|0x00000006ea800000, 0x00000006eb000000, 0x00000006eb000000|100%| O| |TAMS 0x00000006ea800000| PB 0x00000006ea800000| Untracked | 0 +|1480|0x00000006eb000000, 0x00000006eb800000, 0x00000006eb800000|100%| O| |TAMS 0x00000006eb000000| PB 0x00000006eb000000| Untracked | 0 +|1481|0x00000006eb800000, 0x00000006ec000000, 0x00000006ec000000|100%| O| |TAMS 0x00000006eb800000| PB 0x00000006eb800000| Untracked | 0 +|1482|0x00000006ec000000, 0x00000006ec800000, 0x00000006ec800000|100%| O| |TAMS 0x00000006ec000000| PB 0x00000006ec000000| Untracked | 0 +|1483|0x00000006ec800000, 0x00000006ed000000, 0x00000006ed000000|100%| O| |TAMS 0x00000006ec800000| PB 0x00000006ec800000| Untracked | 0 +|1484|0x00000006ed000000, 0x00000006ed800000, 0x00000006ed800000|100%| O| |TAMS 0x00000006ed000000| PB 0x00000006ed000000| Untracked | 0 +|1485|0x00000006ed800000, 0x00000006ee000000, 0x00000006ee000000|100%| O| |TAMS 0x00000006ed800000| PB 0x00000006ed800000| Untracked | 0 +|1486|0x00000006ee000000, 0x00000006ee800000, 0x00000006ee800000|100%| O| |TAMS 0x00000006ee000000| PB 0x00000006ee000000| Untracked | 0 +|1487|0x00000006ee800000, 0x00000006ef000000, 0x00000006ef000000|100%| O| |TAMS 0x00000006ee800000| PB 0x00000006ee800000| Untracked | 0 +|1488|0x00000006ef000000, 0x00000006ef800000, 0x00000006ef800000|100%| O| |TAMS 0x00000006ef000000| PB 0x00000006ef000000| Untracked | 0 +|1489|0x00000006ef800000, 0x00000006f0000000, 0x00000006f0000000|100%| O| |TAMS 0x00000006ef800000| PB 0x00000006ef800000| Untracked | 0 +|1490|0x00000006f0000000, 0x00000006f0800000, 0x00000006f0800000|100%| O| |TAMS 0x00000006f0000000| PB 0x00000006f0000000| Untracked | 0 +|1491|0x00000006f0800000, 0x00000006f1000000, 0x00000006f1000000|100%| O| |TAMS 0x00000006f0800000| PB 0x00000006f0800000| Untracked | 0 +|1492|0x00000006f1000000, 0x00000006f1800000, 0x00000006f1800000|100%| O| |TAMS 0x00000006f1000000| PB 0x00000006f1000000| Untracked | 0 +|1493|0x00000006f1800000, 0x00000006f2000000, 0x00000006f2000000|100%| O| |TAMS 0x00000006f1800000| PB 0x00000006f1800000| Untracked | 0 +|1494|0x00000006f2000000, 0x00000006f2800000, 0x00000006f2800000|100%| O| |TAMS 0x00000006f2000000| PB 0x00000006f2000000| Untracked | 0 +|1495|0x00000006f2800000, 0x00000006f3000000, 0x00000006f3000000|100%| O| |TAMS 0x00000006f2800000| PB 0x00000006f2800000| Untracked | 0 +|1496|0x00000006f3000000, 0x00000006f3800000, 0x00000006f3800000|100%| O| |TAMS 0x00000006f3000000| PB 0x00000006f3000000| Untracked | 0 +|1497|0x00000006f3800000, 0x00000006f4000000, 0x00000006f4000000|100%| O| |TAMS 0x00000006f3800000| PB 0x00000006f3800000| Untracked | 0 +|1498|0x00000006f4000000, 0x00000006f4800000, 0x00000006f4800000|100%| O| |TAMS 0x00000006f4000000| PB 0x00000006f4000000| Untracked | 0 +|1499|0x00000006f4800000, 0x00000006f5000000, 0x00000006f5000000|100%| O| |TAMS 0x00000006f4800000| PB 0x00000006f4800000| Untracked | 0 +|1500|0x00000006f5000000, 0x00000006f5800000, 0x00000006f5800000|100%| O| |TAMS 0x00000006f5000000| PB 0x00000006f5000000| Untracked | 0 +|1501|0x00000006f5800000, 0x00000006f6000000, 0x00000006f6000000|100%| O| |TAMS 0x00000006f5800000| PB 0x00000006f5800000| Untracked | 0 +|1502|0x00000006f6000000, 0x00000006f6800000, 0x00000006f6800000|100%| O| |TAMS 0x00000006f6000000| PB 0x00000006f6000000| Untracked | 0 +|1503|0x00000006f6800000, 0x00000006f7000000, 0x00000006f7000000|100%| O| |TAMS 0x00000006f6800000| PB 0x00000006f6800000| Untracked | 0 +|1504|0x00000006f7000000, 0x00000006f7800000, 0x00000006f7800000|100%| O| |TAMS 0x00000006f7000000| PB 0x00000006f7000000| Untracked | 0 +|1505|0x00000006f7800000, 0x00000006f8000000, 0x00000006f8000000|100%| O| |TAMS 0x00000006f7800000| PB 0x00000006f7800000| Untracked | 0 +|1506|0x00000006f8000000, 0x00000006f8800000, 0x00000006f8800000|100%| O| |TAMS 0x00000006f8000000| PB 0x00000006f8000000| Untracked | 0 +|1507|0x00000006f8800000, 0x00000006f9000000, 0x00000006f9000000|100%| O| |TAMS 0x00000006f8800000| PB 0x00000006f8800000| Untracked | 0 +|1508|0x00000006f9000000, 0x00000006f9800000, 0x00000006f9800000|100%| O| |TAMS 0x00000006f9000000| PB 0x00000006f9000000| Untracked | 0 +|1509|0x00000006f9800000, 0x00000006fa000000, 0x00000006fa000000|100%| O| |TAMS 0x00000006f9800000| PB 0x00000006f9800000| Untracked | 0 +|1510|0x00000006fa000000, 0x00000006fa800000, 0x00000006fa800000|100%| O| |TAMS 0x00000006fa000000| PB 0x00000006fa000000| Untracked | 0 +|1511|0x00000006fa800000, 0x00000006fb000000, 0x00000006fb000000|100%| O| |TAMS 0x00000006fa800000| PB 0x00000006fa800000| Untracked | 0 +|1512|0x00000006fb000000, 0x00000006fb800000, 0x00000006fb800000|100%| O| |TAMS 0x00000006fb000000| PB 0x00000006fb000000| Untracked | 0 +|1513|0x00000006fb800000, 0x00000006fc000000, 0x00000006fc000000|100%| O| |TAMS 0x00000006fb800000| PB 0x00000006fb800000| Untracked | 0 +|1514|0x00000006fc000000, 0x00000006fc800000, 0x00000006fc800000|100%| O| |TAMS 0x00000006fc000000| PB 0x00000006fc000000| Untracked | 0 +|1515|0x00000006fc800000, 0x00000006fd000000, 0x00000006fd000000|100%| O| |TAMS 0x00000006fc800000| PB 0x00000006fc800000| Untracked | 0 +|1516|0x00000006fd000000, 0x00000006fd800000, 0x00000006fd800000|100%| O| |TAMS 0x00000006fd000000| PB 0x00000006fd000000| Untracked | 0 +|1517|0x00000006fd800000, 0x00000006fe000000, 0x00000006fe000000|100%| O| |TAMS 0x00000006fd800000| PB 0x00000006fd800000| Untracked | 0 +|1518|0x00000006fe000000, 0x00000006fe800000, 0x00000006fe800000|100%| O| |TAMS 0x00000006fe000000| PB 0x00000006fe000000| Untracked | 0 +|1519|0x00000006fe800000, 0x00000006ff000000, 0x00000006ff000000|100%| O| |TAMS 0x00000006fe800000| PB 0x00000006fe800000| Untracked | 0 +|1520|0x00000006ff000000, 0x00000006ff800000, 0x00000006ff800000|100%| O| |TAMS 0x00000006ff000000| PB 0x00000006ff000000| Untracked | 0 +|1521|0x00000006ff800000, 0x0000000700000000, 0x0000000700000000|100%| O| |TAMS 0x00000006ff800000| PB 0x00000006ff800000| Untracked | 0 +|1522|0x0000000700000000, 0x0000000700800000, 0x0000000700800000|100%| O| |TAMS 0x0000000700000000| PB 0x0000000700000000| Untracked | 0 +|1523|0x0000000700800000, 0x0000000701000000, 0x0000000701000000|100%| O| |TAMS 0x0000000700800000| PB 0x0000000700800000| Untracked | 0 +|1524|0x0000000701000000, 0x0000000701800000, 0x0000000701800000|100%| O| |TAMS 0x0000000701000000| PB 0x0000000701000000| Untracked | 0 +|1525|0x0000000701800000, 0x0000000702000000, 0x0000000702000000|100%| O| |TAMS 0x0000000701800000| PB 0x0000000701800000| Untracked | 0 +|1526|0x0000000702000000, 0x0000000702800000, 0x0000000702800000|100%| O| |TAMS 0x0000000702000000| PB 0x0000000702000000| Untracked | 0 +|1527|0x0000000702800000, 0x0000000703000000, 0x0000000703000000|100%| O| |TAMS 0x0000000702800000| PB 0x0000000702800000| Untracked | 0 +|1528|0x0000000703000000, 0x0000000703800000, 0x0000000703800000|100%| O| |TAMS 0x0000000703000000| PB 0x0000000703000000| Untracked | 0 +|1529|0x0000000703800000, 0x0000000703800000, 0x0000000704000000| 0%| F| |TAMS 0x0000000703800000| PB 0x0000000703800000| Untracked | 0 +|1530|0x0000000704000000, 0x0000000704000000, 0x0000000704800000| 0%| F| |TAMS 0x0000000704000000| PB 0x0000000704000000| Untracked | 0 +|1531|0x0000000704800000, 0x0000000704800000, 0x0000000705000000| 0%| F| |TAMS 0x0000000704800000| PB 0x0000000704800000| Untracked | 0 +|1532|0x0000000705000000, 0x0000000705000000, 0x0000000705800000| 0%| F| |TAMS 0x0000000705000000| PB 0x0000000705000000| Untracked | 0 +|1659|0x0000000744800000, 0x0000000745000000, 0x0000000745000000|100%| O| |TAMS 0x0000000744800000| PB 0x0000000744800000| Untracked | 0 +|1660|0x0000000745000000, 0x0000000745800000, 0x0000000745800000|100%| O| |TAMS 0x0000000745000000| PB 0x0000000745000000| Untracked | 0 +|1661|0x0000000745800000, 0x0000000746000000, 0x0000000746000000|100%| O| |TAMS 0x0000000745800000| PB 0x0000000745800000| Untracked | 0 +|1662|0x0000000746000000, 0x0000000746800000, 0x0000000746800000|100%| O| |TAMS 0x0000000746000000| PB 0x0000000746000000| Untracked | 0 +|1663|0x0000000746800000, 0x0000000747000000, 0x0000000747000000|100%| O| |TAMS 0x0000000746800000| PB 0x0000000746800000| Untracked | 0 +|1664|0x0000000747000000, 0x0000000747800000, 0x0000000747800000|100%| O| |TAMS 0x0000000747000000| PB 0x0000000747000000| Untracked | 0 +|1665|0x0000000747800000, 0x0000000748000000, 0x0000000748000000|100%| O| |TAMS 0x0000000747800000| PB 0x0000000747800000| Untracked | 0 +|1666|0x0000000748000000, 0x000000074821c248, 0x0000000748800000| 26%| O| |TAMS 0x0000000748000000| PB 0x0000000748000000| Untracked | 0 +|1869|0x00000007ad800000, 0x00000007ad800000, 0x00000007ae000000| 0%| F| |TAMS 0x00000007ad800000| PB 0x00000007ad800000| Untracked | 0 +|1870|0x00000007ae000000, 0x00000007ae000000, 0x00000007ae800000| 0%| F| |TAMS 0x00000007ae000000| PB 0x00000007ae000000| Untracked | 0 +|1871|0x00000007ae800000, 0x00000007ae800000, 0x00000007af000000| 0%| F| |TAMS 0x00000007ae800000| PB 0x00000007ae800000| Untracked | 0 +|1872|0x00000007af000000, 0x00000007af000000, 0x00000007af800000| 0%| F| |TAMS 0x00000007af000000| PB 0x00000007af000000| Untracked | 0 +|1873|0x00000007af800000, 0x00000007af800000, 0x00000007b0000000| 0%| F| |TAMS 0x00000007af800000| PB 0x00000007af800000| Untracked | 0 +|1874|0x00000007b0000000, 0x00000007b0000000, 0x00000007b0800000| 0%| F| |TAMS 0x00000007b0000000| PB 0x00000007b0000000| Untracked | 0 +|1875|0x00000007b0800000, 0x00000007b0800000, 0x00000007b1000000| 0%| F| |TAMS 0x00000007b0800000| PB 0x00000007b0800000| Untracked | 0 +|1876|0x00000007b1000000, 0x00000007b1000000, 0x00000007b1800000| 0%| F| |TAMS 0x00000007b1000000| PB 0x00000007b1000000| Untracked | 0 +|1877|0x00000007b1800000, 0x00000007b1800000, 0x00000007b2000000| 0%| F| |TAMS 0x00000007b1800000| PB 0x00000007b1800000| Untracked | 0 +|1878|0x00000007b2000000, 0x00000007b2000000, 0x00000007b2800000| 0%| F| |TAMS 0x00000007b2000000| PB 0x00000007b2000000| Untracked | 0 +|1879|0x00000007b2800000, 0x00000007b2800000, 0x00000007b3000000| 0%| F| |TAMS 0x00000007b2800000| PB 0x00000007b2800000| Untracked | 0 +|1880|0x00000007b3000000, 0x00000007b3000000, 0x00000007b3800000| 0%| F| |TAMS 0x00000007b3000000| PB 0x00000007b3000000| Untracked | 0 +|1881|0x00000007b3800000, 0x00000007b3800000, 0x00000007b4000000| 0%| F| |TAMS 0x00000007b3800000| PB 0x00000007b3800000| Untracked | 0 +|1882|0x00000007b4000000, 0x00000007b4000000, 0x00000007b4800000| 0%| F| |TAMS 0x00000007b4000000| PB 0x00000007b4000000| Untracked | 0 +|1883|0x00000007b4800000, 0x00000007b4800000, 0x00000007b5000000| 0%| F| |TAMS 0x00000007b4800000| PB 0x00000007b4800000| Untracked | 0 +|1884|0x00000007b5000000, 0x00000007b5000000, 0x00000007b5800000| 0%| F| |TAMS 0x00000007b5000000| PB 0x00000007b5000000| Untracked | 0 +|1885|0x00000007b5800000, 0x00000007b5800000, 0x00000007b6000000| 0%| F| |TAMS 0x00000007b5800000| PB 0x00000007b5800000| Untracked | 0 +|1886|0x00000007b6000000, 0x00000007b6000000, 0x00000007b6800000| 0%| F| |TAMS 0x00000007b6000000| PB 0x00000007b6000000| Untracked | 0 +|1887|0x00000007b6800000, 0x00000007b6800000, 0x00000007b7000000| 0%| F| |TAMS 0x00000007b6800000| PB 0x00000007b6800000| Untracked | 0 +|1888|0x00000007b7000000, 0x00000007b7000000, 0x00000007b7800000| 0%| F| |TAMS 0x00000007b7000000| PB 0x00000007b7000000| Untracked | 0 +|1889|0x00000007b7800000, 0x00000007b7800000, 0x00000007b8000000| 0%| F| |TAMS 0x00000007b7800000| PB 0x00000007b7800000| Untracked | 0 +|1890|0x00000007b8000000, 0x00000007b8000000, 0x00000007b8800000| 0%| F| |TAMS 0x00000007b8000000| PB 0x00000007b8000000| Untracked | 0 +|1891|0x00000007b8800000, 0x00000007b8800000, 0x00000007b9000000| 0%| F| |TAMS 0x00000007b8800000| PB 0x00000007b8800000| Untracked | 0 +|1892|0x00000007b9000000, 0x00000007b9000000, 0x00000007b9800000| 0%| F| |TAMS 0x00000007b9000000| PB 0x00000007b9000000| Untracked | 0 +|1893|0x00000007b9800000, 0x00000007b9800000, 0x00000007ba000000| 0%| F| |TAMS 0x00000007b9800000| PB 0x00000007b9800000| Untracked | 0 +|1894|0x00000007ba000000, 0x00000007ba000000, 0x00000007ba800000| 0%| F| |TAMS 0x00000007ba000000| PB 0x00000007ba000000| Untracked | 0 +|1895|0x00000007ba800000, 0x00000007ba800000, 0x00000007bb000000| 0%| F| |TAMS 0x00000007ba800000| PB 0x00000007ba800000| Untracked | 0 +|1896|0x00000007bb000000, 0x00000007bb000000, 0x00000007bb800000| 0%| F| |TAMS 0x00000007bb000000| PB 0x00000007bb000000| Untracked | 0 +|1897|0x00000007bb800000, 0x00000007bb800000, 0x00000007bc000000| 0%| F| |TAMS 0x00000007bb800000| PB 0x00000007bb800000| Untracked | 0 +|1898|0x00000007bc000000, 0x00000007bc000000, 0x00000007bc800000| 0%| F| |TAMS 0x00000007bc000000| PB 0x00000007bc000000| Untracked | 0 +|1899|0x00000007bc800000, 0x00000007bc800000, 0x00000007bd000000| 0%| F| |TAMS 0x00000007bc800000| PB 0x00000007bc800000| Untracked | 0 +|1900|0x00000007bd000000, 0x00000007bd000000, 0x00000007bd800000| 0%| F| |TAMS 0x00000007bd000000| PB 0x00000007bd000000| Untracked | 0 +|1901|0x00000007bd800000, 0x00000007bd800000, 0x00000007be000000| 0%| F| |TAMS 0x00000007bd800000| PB 0x00000007bd800000| Untracked | 0 +|1902|0x00000007be000000, 0x00000007be800000, 0x00000007be800000|100%| S|CS|TAMS 0x00000007be000000| PB 0x00000007be000000| Complete | 0 +|1903|0x00000007be800000, 0x00000007bf000000, 0x00000007bf000000|100%| S|CS|TAMS 0x00000007be800000| PB 0x00000007be800000| Complete | 0 +|1904|0x00000007bf000000, 0x00000007bf800000, 0x00000007bf800000|100%| S|CS|TAMS 0x00000007bf000000| PB 0x00000007bf000000| Complete | 0 +|1905|0x00000007bf800000, 0x00000007c0000000, 0x00000007c0000000|100%| S|CS|TAMS 0x00000007bf800000| PB 0x00000007bf800000| Complete | 0 +|1906|0x00000007c0000000, 0x00000007c0800000, 0x00000007c0800000|100%| S|CS|TAMS 0x00000007c0000000| PB 0x00000007c0000000| Complete | 0 +|1907|0x00000007c0800000, 0x00000007c1000000, 0x00000007c1000000|100%| S|CS|TAMS 0x00000007c0800000| PB 0x00000007c0800000| Complete | 0 +|1908|0x00000007c1000000, 0x00000007c1800000, 0x00000007c1800000|100%| S|CS|TAMS 0x00000007c1000000| PB 0x00000007c1000000| Complete | 0 +|1909|0x00000007c1800000, 0x00000007c2000000, 0x00000007c2000000|100%| S|CS|TAMS 0x00000007c1800000| PB 0x00000007c1800000| Complete | 0 +|1910|0x00000007c2000000, 0x00000007c2800000, 0x00000007c2800000|100%| S|CS|TAMS 0x00000007c2000000| PB 0x00000007c2000000| Complete | 0 +|1911|0x00000007c2800000, 0x00000007c3000000, 0x00000007c3000000|100%| S|CS|TAMS 0x00000007c2800000| PB 0x00000007c2800000| Complete | 0 +|1912|0x00000007c3000000, 0x00000007c3800000, 0x00000007c3800000|100%| S|CS|TAMS 0x00000007c3000000| PB 0x00000007c3000000| Complete | 0 +|1913|0x00000007c3800000, 0x00000007c3800000, 0x00000007c4000000| 0%| F| |TAMS 0x00000007c3800000| PB 0x00000007c3800000| Untracked | 0 +|1914|0x00000007c4000000, 0x00000007c4000000, 0x00000007c4800000| 0%| F| |TAMS 0x00000007c4000000| PB 0x00000007c4000000| Untracked | 0 +|1915|0x00000007c4800000, 0x00000007c4800000, 0x00000007c5000000| 0%| F| |TAMS 0x00000007c4800000| PB 0x00000007c4800000| Untracked | 0 +|1916|0x00000007c5000000, 0x00000007c5000000, 0x00000007c5800000| 0%| F| |TAMS 0x00000007c5000000| PB 0x00000007c5000000| Untracked | 0 +|1917|0x00000007c5800000, 0x00000007c5800000, 0x00000007c6000000| 0%| F| |TAMS 0x00000007c5800000| PB 0x00000007c5800000| Untracked | 0 +|1918|0x00000007c6000000, 0x00000007c6000000, 0x00000007c6800000| 0%| F| |TAMS 0x00000007c6000000| PB 0x00000007c6000000| Untracked | 0 +|1919|0x00000007c6800000, 0x00000007c6800000, 0x00000007c7000000| 0%| F| |TAMS 0x00000007c6800000| PB 0x00000007c6800000| Untracked | 0 +|1920|0x00000007c7000000, 0x00000007c7000000, 0x00000007c7800000| 0%| F| |TAMS 0x00000007c7000000| PB 0x00000007c7000000| Untracked | 0 +|1921|0x00000007c7800000, 0x00000007c7800000, 0x00000007c8000000| 0%| F| |TAMS 0x00000007c7800000| PB 0x00000007c7800000| Untracked | 0 +|1922|0x00000007c8000000, 0x00000007c8000000, 0x00000007c8800000| 0%| F| |TAMS 0x00000007c8000000| PB 0x00000007c8000000| Untracked | 0 +|1923|0x00000007c8800000, 0x00000007c8800000, 0x00000007c9000000| 0%| F| |TAMS 0x00000007c8800000| PB 0x00000007c8800000| Untracked | 0 +|1924|0x00000007c9000000, 0x00000007c9000000, 0x00000007c9800000| 0%| F| |TAMS 0x00000007c9000000| PB 0x00000007c9000000| Untracked | 0 +|1925|0x00000007c9800000, 0x00000007c9800000, 0x00000007ca000000| 0%| F| |TAMS 0x00000007c9800000| PB 0x00000007c9800000| Untracked | 0 +|1926|0x00000007ca000000, 0x00000007ca000000, 0x00000007ca800000| 0%| F| |TAMS 0x00000007ca000000| PB 0x00000007ca000000| Untracked | 0 +|1927|0x00000007ca800000, 0x00000007ca800000, 0x00000007cb000000| 0%| F| |TAMS 0x00000007ca800000| PB 0x00000007ca800000| Untracked | 0 +|1928|0x00000007cb000000, 0x00000007cb000000, 0x00000007cb800000| 0%| F| |TAMS 0x00000007cb000000| PB 0x00000007cb000000| Untracked | 0 +|1929|0x00000007cb800000, 0x00000007cb800000, 0x00000007cc000000| 0%| F| |TAMS 0x00000007cb800000| PB 0x00000007cb800000| Untracked | 0 +|1930|0x00000007cc000000, 0x00000007cc000000, 0x00000007cc800000| 0%| F| |TAMS 0x00000007cc000000| PB 0x00000007cc000000| Untracked | 0 +|1931|0x00000007cc800000, 0x00000007cc800000, 0x00000007cd000000| 0%| F| |TAMS 0x00000007cc800000| PB 0x00000007cc800000| Untracked | 0 +|1932|0x00000007cd000000, 0x00000007cd000000, 0x00000007cd800000| 0%| F| |TAMS 0x00000007cd000000| PB 0x00000007cd000000| Untracked | 0 +|1933|0x00000007cd800000, 0x00000007cd800000, 0x00000007ce000000| 0%| F| |TAMS 0x00000007cd800000| PB 0x00000007cd800000| Untracked | 0 +|1934|0x00000007ce000000, 0x00000007ce000000, 0x00000007ce800000| 0%| F| |TAMS 0x00000007ce000000| PB 0x00000007ce000000| Untracked | 0 +|1935|0x00000007ce800000, 0x00000007ce800000, 0x00000007cf000000| 0%| F| |TAMS 0x00000007ce800000| PB 0x00000007ce800000| Untracked | 0 +|1936|0x00000007cf000000, 0x00000007cf000000, 0x00000007cf800000| 0%| F| |TAMS 0x00000007cf000000| PB 0x00000007cf000000| Untracked | 0 +|1937|0x00000007cf800000, 0x00000007cf800000, 0x00000007d0000000| 0%| F| |TAMS 0x00000007cf800000| PB 0x00000007cf800000| Untracked | 0 +|1938|0x00000007d0000000, 0x00000007d0000000, 0x00000007d0800000| 0%| F| |TAMS 0x00000007d0000000| PB 0x00000007d0000000| Untracked | 0 +|1939|0x00000007d0800000, 0x00000007d0800000, 0x00000007d1000000| 0%| F| |TAMS 0x00000007d0800000| PB 0x00000007d0800000| Untracked | 0 +|1940|0x00000007d1000000, 0x00000007d1000000, 0x00000007d1800000| 0%| F| |TAMS 0x00000007d1000000| PB 0x00000007d1000000| Untracked | 0 +|1941|0x00000007d1800000, 0x00000007d1800000, 0x00000007d2000000| 0%| F| |TAMS 0x00000007d1800000| PB 0x00000007d1800000| Untracked | 0 +|1942|0x00000007d2000000, 0x00000007d2000000, 0x00000007d2800000| 0%| F| |TAMS 0x00000007d2000000| PB 0x00000007d2000000| Untracked | 0 +|1943|0x00000007d2800000, 0x00000007d2800000, 0x00000007d3000000| 0%| F| |TAMS 0x00000007d2800000| PB 0x00000007d2800000| Untracked | 0 +|1944|0x00000007d3000000, 0x00000007d3000000, 0x00000007d3800000| 0%| F| |TAMS 0x00000007d3000000| PB 0x00000007d3000000| Untracked | 0 +|1945|0x00000007d3800000, 0x00000007d3800000, 0x00000007d4000000| 0%| F| |TAMS 0x00000007d3800000| PB 0x00000007d3800000| Untracked | 0 +|1946|0x00000007d4000000, 0x00000007d4000000, 0x00000007d4800000| 0%| F| |TAMS 0x00000007d4000000| PB 0x00000007d4000000| Untracked | 0 +|1947|0x00000007d4800000, 0x00000007d4800000, 0x00000007d5000000| 0%| F| |TAMS 0x00000007d4800000| PB 0x00000007d4800000| Untracked | 0 +|1948|0x00000007d5000000, 0x00000007d5000000, 0x00000007d5800000| 0%| F| |TAMS 0x00000007d5000000| PB 0x00000007d5000000| Untracked | 0 +|1949|0x00000007d5800000, 0x00000007d5800000, 0x00000007d6000000| 0%| F| |TAMS 0x00000007d5800000| PB 0x00000007d5800000| Untracked | 0 +|1956|0x00000007d9000000, 0x00000007d9000000, 0x00000007d9800000| 0%| F| |TAMS 0x00000007d9000000| PB 0x00000007d9000000| Untracked | 0 +|1957|0x00000007d9800000, 0x00000007d9800000, 0x00000007da000000| 0%| F| |TAMS 0x00000007d9800000| PB 0x00000007d9800000| Untracked | 0 +|1958|0x00000007da000000, 0x00000007da000000, 0x00000007da800000| 0%| F| |TAMS 0x00000007da000000| PB 0x00000007da000000| Untracked | 0 +|1959|0x00000007da800000, 0x00000007da800000, 0x00000007db000000| 0%| F| |TAMS 0x00000007da800000| PB 0x00000007da800000| Untracked | 0 +|1960|0x00000007db000000, 0x00000007db000000, 0x00000007db800000| 0%| F| |TAMS 0x00000007db000000| PB 0x00000007db000000| Untracked | 0 +|1961|0x00000007db800000, 0x00000007db800000, 0x00000007dc000000| 0%| F| |TAMS 0x00000007db800000| PB 0x00000007db800000| Untracked | 0 +|1962|0x00000007dc000000, 0x00000007dc000000, 0x00000007dc800000| 0%| F| |TAMS 0x00000007dc000000| PB 0x00000007dc000000| Untracked | 0 +|1963|0x00000007dc800000, 0x00000007dc800000, 0x00000007dd000000| 0%| F| |TAMS 0x00000007dc800000| PB 0x00000007dc800000| Untracked | 0 +|1964|0x00000007dd000000, 0x00000007dd000000, 0x00000007dd800000| 0%| F| |TAMS 0x00000007dd000000| PB 0x00000007dd000000| Untracked | 0 +|1965|0x00000007dd800000, 0x00000007dd800000, 0x00000007de000000| 0%| F| |TAMS 0x00000007dd800000| PB 0x00000007dd800000| Untracked | 0 +|1966|0x00000007de000000, 0x00000007de000000, 0x00000007de800000| 0%| F| |TAMS 0x00000007de000000| PB 0x00000007de000000| Untracked | 0 +|1967|0x00000007de800000, 0x00000007de800000, 0x00000007df000000| 0%| F| |TAMS 0x00000007de800000| PB 0x00000007de800000| Untracked | 0 +|1968|0x00000007df000000, 0x00000007df000000, 0x00000007df800000| 0%| F| |TAMS 0x00000007df000000| PB 0x00000007df000000| Untracked | 0 +|1969|0x00000007df800000, 0x00000007df800000, 0x00000007e0000000| 0%| F| |TAMS 0x00000007df800000| PB 0x00000007df800000| Untracked | 0 +|1970|0x00000007e0000000, 0x00000007e0000000, 0x00000007e0800000| 0%| F| |TAMS 0x00000007e0000000| PB 0x00000007e0000000| Untracked | 0 +|1971|0x00000007e0800000, 0x00000007e0800000, 0x00000007e1000000| 0%| F| |TAMS 0x00000007e0800000| PB 0x00000007e0800000| Untracked | 0 +|1972|0x00000007e1000000, 0x00000007e1000000, 0x00000007e1800000| 0%| F| |TAMS 0x00000007e1000000| PB 0x00000007e1000000| Untracked | 0 +|1973|0x00000007e1800000, 0x00000007e1800000, 0x00000007e2000000| 0%| F| |TAMS 0x00000007e1800000| PB 0x00000007e1800000| Untracked | 0 +|1974|0x00000007e2000000, 0x00000007e2000000, 0x00000007e2800000| 0%| F| |TAMS 0x00000007e2000000| PB 0x00000007e2000000| Untracked | 0 +|1975|0x00000007e2800000, 0x00000007e2800000, 0x00000007e3000000| 0%| F| |TAMS 0x00000007e2800000| PB 0x00000007e2800000| Untracked | 0 +|1976|0x00000007e3000000, 0x00000007e3000000, 0x00000007e3800000| 0%| F| |TAMS 0x00000007e3000000| PB 0x00000007e3000000| Untracked | 0 +|1977|0x00000007e3800000, 0x00000007e3800000, 0x00000007e4000000| 0%| F| |TAMS 0x00000007e3800000| PB 0x00000007e3800000| Untracked | 0 +|1978|0x00000007e4000000, 0x00000007e4000000, 0x00000007e4800000| 0%| F| |TAMS 0x00000007e4000000| PB 0x00000007e4000000| Untracked | 0 +|1979|0x00000007e4800000, 0x00000007e4800000, 0x00000007e5000000| 0%| F| |TAMS 0x00000007e4800000| PB 0x00000007e4800000| Untracked | 0 +|1980|0x00000007e5000000, 0x00000007e5000000, 0x00000007e5800000| 0%| F| |TAMS 0x00000007e5000000| PB 0x00000007e5000000| Untracked | 0 +|1981|0x00000007e5800000, 0x00000007e5800000, 0x00000007e6000000| 0%| F| |TAMS 0x00000007e5800000| PB 0x00000007e5800000| Untracked | 0 +|1982|0x00000007e6000000, 0x00000007e6000000, 0x00000007e6800000| 0%| F| |TAMS 0x00000007e6000000| PB 0x00000007e6000000| Untracked | 0 +|1983|0x00000007e6800000, 0x00000007e6800000, 0x00000007e7000000| 0%| F| |TAMS 0x00000007e6800000| PB 0x00000007e6800000| Untracked | 0 +|1984|0x00000007e7000000, 0x00000007e7000000, 0x00000007e7800000| 0%| F| |TAMS 0x00000007e7000000| PB 0x00000007e7000000| Untracked | 0 +|1985|0x00000007e7800000, 0x00000007e7800000, 0x00000007e8000000| 0%| F| |TAMS 0x00000007e7800000| PB 0x00000007e7800000| Untracked | 0 +|1986|0x00000007e8000000, 0x00000007e8000000, 0x00000007e8800000| 0%| F| |TAMS 0x00000007e8000000| PB 0x00000007e8000000| Untracked | 0 +|1987|0x00000007e8800000, 0x00000007e8800000, 0x00000007e9000000| 0%| F| |TAMS 0x00000007e8800000| PB 0x00000007e8800000| Untracked | 0 +|1988|0x00000007e9000000, 0x00000007e9000000, 0x00000007e9800000| 0%| F| |TAMS 0x00000007e9000000| PB 0x00000007e9000000| Untracked | 0 +|1989|0x00000007e9800000, 0x00000007e9800000, 0x00000007ea000000| 0%| F| |TAMS 0x00000007e9800000| PB 0x00000007e9800000| Untracked | 0 + +Card table byte_map: [0x0000016c01fd0000,0x0000016c03fa0000] _byte_map_base: 0x0000016bfff98000 + +Marking Bits: (CMBitMap*) 0x0000016c7e6600a0 + Bits: [0x0000016c03fa0000, 0x0000016c13de0000) + +Polling page: 0x0000016c60f40000 + +Metaspace: + +Usage: + Non-class: 1.16 MB used. + Class: 58.49 KB used. + Both: 1.22 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 1.25 MB ( 2%) committed, 1 nodes. + Class space: 1.00 GB reserved, 128.00 KB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 1.38 MB ( <1%) committed. + +Chunk freelists: + Non-Class: 11.86 MB + Class: 15.73 MB + Both: 27.59 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 16. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 22. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 26. +num_chunk_merges: 0. +num_chunk_splits: 16. +num_chunks_enlarged: 11. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=117248Kb used=895Kb max_used=1177Kb free=116352Kb + bounds [0x0000016c74e30000, 0x0000016c750a0000, 0x0000016c7c0b0000] +CodeHeap 'profiled nmethods': size=117184Kb used=934Kb max_used=941Kb free=116249Kb + bounds [0x0000016c6d0b0000, 0x0000016c6d320000, 0x0000016c74320000] +CodeHeap 'non-nmethods': size=11328Kb used=1303Kb max_used=6373Kb free=10024Kb + bounds [0x0000016c74320000, 0x0000016c74970000, 0x0000016c74e30000] +CodeCache: size=245760Kb, used=3132Kb, max_used=8491Kb, free=242625Kb + total_blobs=1198, nmethods=785, adapters=327, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +JVMCI Events (20 events): +Event: 253.792 Thread 0x0000016c58109860 initializing JVMCI runtime 3 +Event: 253.792 Thread 0x0000016c58109860 done waiting for JavaVM references initialization in JVMCI runtime 3 +Event: 253.792 Thread 0x0000016c58109860 initialized JVMCI runtime 3 +Event: 255.221 Thread 0x0000016c58109860 detaching from JVMCI runtime 3: releasing idle compiler thread (0 other threads still attached) +Event: 255.221 Thread 0x0000016c58109860 shutting down HotSpotJVMCIRuntime for JVMCI runtime 3 +Event: 255.221 Thread 0x0000016c58109860 shut down JVMCI runtime 3 +Event: 255.227 Thread 0x0000016c58109860 destroyed JavaVM[28]@0x0000016c80a1bd38 for JVMCI runtime 3 +Event: 255.227 Thread 0x0000016c58109860 releasing handles for JVMCI runtime 3: oop handles=101, metadata handles={total=251, live=238, blocks=12} +Event: 255.227 Thread 0x0000016c58109860 detached from JVMCI runtime 3 +Event: 258.467 Thread 0x0000016c58109860 attached to JVMCI runtime 3 +Event: 258.473 Thread 0x0000016c58109860 created JavaVM[29]@0x0000016c80a1bd38 for JVMCI runtime 3 +Event: 258.473 Thread 0x0000016c58109860 initializing JVMCI runtime 3 +Event: 258.473 Thread 0x0000016c58109860 done waiting for JavaVM references initialization in JVMCI runtime 3 +Event: 258.473 Thread 0x0000016c58109860 initialized JVMCI runtime 3 +Event: 259.496 Thread 0x0000016c58109860 detaching from JVMCI runtime 3: releasing idle compiler thread (0 other threads still attached) +Event: 259.496 Thread 0x0000016c58109860 shutting down HotSpotJVMCIRuntime for JVMCI runtime 3 +Event: 259.496 Thread 0x0000016c58109860 shut down JVMCI runtime 3 +Event: 259.498 Thread 0x0000016c58109860 destroyed JavaVM[29]@0x0000016c80a1bd38 for JVMCI runtime 3 +Event: 259.498 Thread 0x0000016c58109860 releasing handles for JVMCI runtime 3: oop handles=52, metadata handles={total=90, live=78, blocks=12} +Event: 259.498 Thread 0x0000016c58109860 detached from JVMCI runtime 3 + +Compilation events (20 events): +Event: 215.121 Thread 0x0000016c5810ad60 1025 3 java.util.concurrent.ForkJoinPool::tryTrim (209 bytes) +Event: 215.122 Thread 0x0000016c5810ad60 nmethod 1025 0x0000016c6d169108 code [0x0000016c6d169260, 0x0000016c6d1697e8] +Event: 216.227 Thread 0x0000016c5810ad60 1026 ! 3 java.util.concurrent.ForkJoinTask::awaitDone (350 bytes) +Event: 216.231 Thread 0x0000016c5810ad60 nmethod 1026 0x0000016c6d19b688 code [0x0000016c6d19b9c0, 0x0000016c6d19dae0] +Event: 216.231 Thread 0x0000016c5810ad60 1027 3 java.util.concurrent.ForkJoinTask$Aux:: (15 bytes) +Event: 216.231 Thread 0x0000016c5810ad60 nmethod 1027 0x0000016c6d0ff888 code [0x0000016c6d0ff9a0, 0x0000016c6d0ffbd0] +Event: 225.242 Thread 0x0000016c58109860 1028 4 java.lang.AbstractStringBuilder::charAt (36 bytes) +Event: 225.263 Thread 0x0000016c58109860 nmethod 1028 0x0000016c74eed308 code [0x0000016c74eed400, 0x0000016c74eed540] +Event: 226.597 Thread 0x0000016c58109860 1029 % 4 java.util.concurrent.ForkJoinPool::helpComplete @ 153 (435 bytes) +Event: 227.034 Thread 0x0000016c58109860 nmethod 1029% 0x0000016c74e7f508 code [0x0000016c74e7fa40, 0x0000016c74e84a58] +Event: 249.559 Thread 0x0000016c5810ad60 1030 3 java.util.stream.AbstractPipeline::hasAnyStateful (38 bytes) +Event: 249.562 Thread 0x0000016c5810ad60 nmethod 1030 0x0000016c6d0ff288 code [0x0000016c6d0ff3c0, 0x0000016c6d0ff808] +Event: 250.842 Thread 0x0000016c58109860 1031 4 java.lang.StringLatin1::inflate (34 bytes) +Event: 250.909 Thread 0x0000016c58109860 nmethod 1031 0x0000016c74eecf88 code [0x0000016c74eed080, 0x0000016c74eed2c8] +Event: 253.782 Thread 0x0000016c58109860 1032 4 java.util.concurrent.ForkJoinPool::helpComplete (435 bytes) +Event: 254.221 Thread 0x0000016c58109860 nmethod 1032 0x0000016c74ef7908 code [0x0000016c74ef7da0, 0x0000016c74efd548] +Event: 258.421 Thread 0x0000016c5810ad60 1033 % 3 java.util.concurrent.ForkJoinPool::helpComplete @ 252 (435 bytes) +Event: 258.430 Thread 0x0000016c5810ad60 nmethod 1033% 0x0000016c6d19db88 code [0x0000016c6d19de20, 0x0000016c6d1a0168] +Event: 258.467 Thread 0x0000016c58109860 1034 4 java.lang.StringCoding::implEncodeAsciiArray (47 bytes) +Event: 258.496 Thread 0x0000016c58109860 nmethod 1034 0x0000016c74ed5108 code [0x0000016c74ed5200, 0x0000016c74ed54f0] + +GC Heap History (20 events): +Event: 251.790 GC heap after +{Heap after GC invocations=293 (full 0): + garbage-first heap total reserved 16662528K, committed 9887744K, used 5102489K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 252.414 GC heap before +{Heap before GC invocations=293 (full 0): + garbage-first heap total reserved 16662528K, committed 9887744K, used 5528473K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 60 young (491520K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 252.611 GC heap after +{Heap after GC invocations=294 (full 0): + garbage-first heap total reserved 16662528K, committed 9887744K, used 5376112K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 253.031 GC heap before +{Heap before GC invocations=294 (full 0): + garbage-first heap total reserved 16662528K, committed 9887744K, used 5802096K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 60 young (491520K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 253.256 GC heap after +{Heap after GC invocations=295 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 5657356K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 253.828 GC heap before +{Heap before GC invocations=295 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 6173452K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 71 young (581632K), 8 survivors (65536K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 254.079 GC heap after +{Heap after GC invocations=296 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 5998704K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 254.635 GC heap before +{Heap before GC invocations=296 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 6506608K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 71 young (581632K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 254.889 GC heap after +{Heap after GC invocations=297 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 6327909K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 255.422 GC heap before +{Heap before GC invocations=297 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 6835813K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 71 young (581632K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 255.693 GC heap after +{Heap after GC invocations=298 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 6661935K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 256.404 GC heap before +{Heap before GC invocations=298 (full 0): + garbage-first heap total reserved 16662528K, committed 11714560K, used 7169839K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 71 young (581632K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 256.690 GC heap after +{Heap after GC invocations=299 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 6994724K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 257.788 GC heap before +{Heap before GC invocations=299 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 7592740K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 82 young (671744K), 9 survivors (73728K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 258.127 GC heap after +{Heap after GC invocations=300 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 7364983K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 11 young (90112K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 259.075 GC heap before +{Heap before GC invocations=300 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 7946615K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 82 young (671744K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 259.387 GC heap after +{Heap after GC invocations=301 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 7712514K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 11 young (90112K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 260.195 GC heap before +{Heap before GC invocations=301 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 8294146K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 82 young (671744K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 260.413 GC heap after +{Heap after GC invocations=302 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 8056576K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 11 young (90112K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} +Event: 261.174 GC heap before +{Heap before GC invocations=302 (full 0): + garbage-first heap total reserved 16662528K, committed 13565952K, used 8638208K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 82 young (671744K), 11 survivors (90112K) + Metaspace used 1247K, committed 1408K, reserved 1114112K + class space used 58K, committed 128K, reserved 1048576K +} + +Dll operation events (4 events): +Event: 0.008 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\java.dll +Event: 0.058 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jsvml.dll +Event: 0.061 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jvmcicompiler.dll +Event: 0.167 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jimage.dll + +Deoptimization events (20 events): +Event: 171.128 Thread 0x0000016c583e1350 DEOPT PACKING pc=0x0000016c6d12fdf2 sp=0x0000000f601ff270 +Event: 171.128 Thread 0x0000016c583e1350 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f601fe750 mode 0 +Event: 180.638 Thread 0x0000016c583946f0 DEOPT PACKING pc=0x0000016c6d0ff9f2 sp=0x0000000f5efff130 +Event: 180.638 Thread 0x0000016c583946f0 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f5effe610 mode 0 +Event: 185.597 Thread 0x0000016c583dbe00 Uncommon trap: trap_request=0xffffffed fr.pc=0x0000016c74ed1d8f relative=0x000000000000a80f +Event: 185.597 Thread 0x0000016c583dbe00 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x0000016c74ed1d8f method=java.util.concurrent.CountedCompleter.weakCompareAndSetPendingCount(II)Z @ 12 jvmci +Event: 185.597 Thread 0x0000016c583dbe00 DEOPT PACKING pc=0x0000016c74ed1d8f sp=0x0000000f5f8ff250 +Event: 185.597 Thread 0x0000016c583dbe00 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f5f8fe560 mode 3 +Event: 201.227 Thread 0x0000016c583e19e0 DEOPT PACKING pc=0x0000016c6d13c8f2 sp=0x0000000f607ff320 +Event: 201.227 Thread 0x0000016c583e19e0 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f607fe800 mode 0 +Event: 245.767 Thread 0x0000016c583e2700 Uncommon trap: trap_request=0xffffffed fr.pc=0x0000016c74ed124e relative=0x0000000000009cce +Event: 245.767 Thread 0x0000016c583e2700 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x0000016c74ed124e method=java.util.concurrent.ForkJoinPool.runWorker(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V @ 128 jvmci +Event: 245.767 Thread 0x0000016c583e2700 DEOPT PACKING pc=0x0000016c74ed124e sp=0x0000000f621fee80 +Event: 245.767 Thread 0x0000016c583e2700 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f621fe480 mode 3 +Event: 253.782 Thread 0x0000016c60b2eec0 DEOPT PACKING pc=0x0000016c6d0d8a9d sp=0x0000000f5bbfef80 +Event: 253.782 Thread 0x0000016c60b2eec0 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f5bbfe440 mode 0 +Event: 254.540 Thread 0x0000016c60b2eec0 Uncommon trap: trap_request=0xffffffed fr.pc=0x0000016c74efc0d8 relative=0x0000000000004338 +Event: 254.541 Thread 0x0000016c60b2eec0 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x0000016c74efc0d8 method=java.util.concurrent.ForkJoinPool.helpComplete(Ljava/util/concurrent/ForkJoinTask;Ljava/util/concurrent/ForkJoinPool$WorkQueue;Z)I @ 293 jvmci +Event: 254.541 Thread 0x0000016c60b2eec0 DEOPT PACKING pc=0x0000016c74efc0d8 sp=0x0000000f5bbfef40 +Event: 254.541 Thread 0x0000016c60b2eec0 DEOPT UNPACKING pc=0x0000016c743749a3 sp=0x0000000f5bbfe438 mode 3 + +Classes loaded (20 events): +Event: 0.162 Loading class jdk/internal/module/ModulePatcher$PatchedModuleReader +Event: 0.162 Loading class jdk/internal/module/ModulePatcher$PatchedModuleReader done +Event: 0.169 Loading class sun/net/www/protocol/jrt/Handler +Event: 0.169 Loading class sun/net/www/protocol/jrt/Handler done +Event: 0.180 Loading class sun/util/resources/LocaleData$CommonResourceBundleProvider +Event: 0.180 Loading class sun/util/resources/LocaleData$LocaleDataResourceBundleProvider +Event: 0.180 Loading class java/util/spi/ResourceBundleProvider +Event: 0.181 Loading class java/util/spi/ResourceBundleProvider done +Event: 0.181 Loading class sun/util/resources/LocaleData$LocaleDataResourceBundleProvider done +Event: 0.181 Loading class sun/util/resources/LocaleData$CommonResourceBundleProvider done +Event: 0.182 Loading class sun/util/cldr/CLDRBaseLocaleDataMetaInfo$CLDRMapHolder +Event: 0.183 Loading class sun/util/cldr/CLDRBaseLocaleDataMetaInfo$CLDRMapHolder done +Event: 0.186 Loading class java/util/HashMap$EntrySpliterator +Event: 0.186 Loading class java/util/HashMap$EntrySpliterator done +Event: 0.191 Loading class sun/util/resources/Bundles$2 +Event: 0.191 Loading class sun/util/resources/Bundles$2 done +Event: 0.192 Loading class java/lang/InstantiationException +Event: 0.192 Loading class java/lang/InstantiationException done +Event: 0.192 Loading class java/lang/IllegalAccessException +Event: 0.192 Loading class java/lang/IllegalAccessException done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (4 events): +Event: 0.127 Thread 0x0000016c60b2eec0 Exception (0x0000000446e9f428) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 0.187 Thread 0x0000016c60b2eec0 Exception (0x00000004469462c0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 119.530 Thread 0x0000016c58363210 Implicit null exception at 0x0000016c74f34dc0 to 0x0000016c74f3aec8 +Event: 128.645 Thread 0x0000016c583946f0 Implicit null exception at 0x0000016c74ea7840 to 0x0000016c74ead3f9 + +VM Operations (20 events): +Event: 251.790 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 252.413 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 252.611 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 253.030 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 253.256 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 253.828 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 254.079 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 254.635 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 254.889 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 255.422 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 255.693 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 256.404 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 256.690 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 257.788 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 258.128 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 259.075 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 259.387 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 260.195 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 260.413 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 261.174 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) + +Memory protections (0 events): +No events + +Nmethod flushes (20 events): +Event: 56.478 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d142b08 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d0c5a88 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d139508 +Event: 121.330 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c74f48188 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d0f7b88 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d172208 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c74e8af08 +Event: 121.330 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d149908 +Event: 154.582 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d0e4488 +Event: 183.826 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d0e4b08 +Event: 183.826 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d147408 +Event: 183.826 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d149388 +Event: 183.826 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d0bf208 +Event: 211.526 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d17e808 +Event: 211.526 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d15a388 +Event: 211.526 Thread 0x0000016c7e80d430 flushing nmethod 0x0000016c6d169108 +Event: 211.526 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d12e908 +Event: 211.526 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d172508 +Event: 211.526 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d0fe508 +Event: 241.599 Thread 0x0000016c7e80d430 flushing osr nmethod 0x0000016c6d13b408 + +Events (20 events): +Event: 153.463 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5e2b9a40 +Event: 153.463 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5df302f0 +Event: 153.463 Thread 0x0000016c5810ad60 Thread added: 0x0000016c589dd330 +Event: 153.463 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5e1354d0 +Event: 153.463 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5e1c5c20 +Event: 157.010 Thread 0x0000016c5e1c5c20 Thread exited: 0x0000016c5e1c5c20 +Event: 162.010 Thread 0x0000016c5e1354d0 Thread exited: 0x0000016c5e1354d0 +Event: 167.011 Thread 0x0000016c589dd330 Thread exited: 0x0000016c589dd330 +Event: 167.012 Thread 0x0000016c5df302f0 Thread exited: 0x0000016c5df302f0 +Event: 170.536 Thread 0x0000016c5e2b9a40 Thread exited: 0x0000016c5e2b9a40 +Event: 175.796 Thread 0x0000016c5e0bace0 Thread exited: 0x0000016c5e0bace0 +Event: 175.796 Thread 0x0000016c5e039d30 Thread exited: 0x0000016c5e039d30 +Event: 180.796 Thread 0x0000016c5e133d90 Thread exited: 0x0000016c5e133d90 +Event: 180.796 Thread 0x0000016c58a97a20 Thread exited: 0x0000016c58a97a20 +Event: 205.464 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5e23ff10 +Event: 205.465 Thread 0x0000016c5810ad60 Thread added: 0x0000016c589dd330 +Event: 205.465 Thread 0x0000016c5810ad60 Thread added: 0x0000016c5deb4350 +Event: 210.599 Thread 0x0000016c5deb4350 Thread exited: 0x0000016c5deb4350 +Event: 210.766 Thread 0x0000016c589dd330 Thread exited: 0x0000016c589dd330 +Event: 215.116 Thread 0x0000016c5e23ff10 Thread exited: 0x0000016c5e23ff10 + + +Dynamic libraries: +0x00007ff63b640000 - 0x00007ff63b650000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\javaw.exe +0x00007fff302e0000 - 0x00007fff304e1000 C:\Windows\SYSTEM32\ntdll.dll +0x00007fff2ef90000 - 0x00007fff2f04e000 C:\Windows\System32\KERNEL32.DLL +0x00007fff2d9a0000 - 0x00007fff2dd0e000 C:\Windows\System32\KERNELBASE.dll +0x00007fff2df20000 - 0x00007fff2e030000 C:\Windows\System32\ucrtbase.dll +0x00007fff28040000 - 0x00007fff2805b000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\VCRUNTIME140.dll +0x00007fff28080000 - 0x00007fff28097000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jli.dll +0x00007fff2e9c0000 - 0x00007fff2eb65000 C:\Windows\System32\USER32.dll +0x00007fff13dd0000 - 0x00007fff14075000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.20348.1_none_88d3d41d702dedea\COMCTL32.dll +0x00007fff2ddd0000 - 0x00007fff2ddf6000 C:\Windows\System32\win32u.dll +0x00007fff2e3e0000 - 0x00007fff2e40b000 C:\Windows\System32\GDI32.dll +0x00007fff2f460000 - 0x00007fff2f503000 C:\Windows\System32\msvcrt.dll +0x00007fff2de00000 - 0x00007fff2df1a000 C:\Windows\System32\gdi32full.dll +0x00007fff2d900000 - 0x00007fff2d9a0000 C:\Windows\System32\msvcp_win.dll +0x00007fff2fe80000 - 0x00007fff2feb1000 C:\Windows\System32\IMM32.DLL +0x00007fff1a850000 - 0x00007fff1a85c000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\vcruntime140_1.dll +0x00007ffefd890000 - 0x00007ffefd91e000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\msvcp140.dll +0x00007ffdac1c0000 - 0x00007ffdacf0f000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\server\jvm.dll +0x00007fff2f3b0000 - 0x00007fff2f45e000 C:\Windows\System32\ADVAPI32.dll +0x00007fff2e920000 - 0x00007fff2e9bf000 C:\Windows\System32\sechost.dll +0x00007fff2fd50000 - 0x00007fff2fe6f000 C:\Windows\System32\RPCRT4.dll +0x00007fff2f0f0000 - 0x00007fff2f161000 C:\Windows\System32\WS2_32.dll +0x00007fff2d770000 - 0x00007fff2d7bd000 C:\Windows\SYSTEM32\POWRPROF.dll +0x00007fff26410000 - 0x00007fff26437000 C:\Windows\SYSTEM32\WINMM.dll +0x00007fff293d0000 - 0x00007fff293da000 C:\Windows\SYSTEM32\VERSION.dll +0x00007fff2d750000 - 0x00007fff2d763000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007fff2c1f0000 - 0x00007fff2c207000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007fff19fd0000 - 0x00007fff19fda000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jimage.dll +0x00007fff179e0000 - 0x00007fff17bf2000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007fff16980000 - 0x00007fff169b0000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007fff2e030000 - 0x00007fff2e0ad000 C:\Windows\System32\bcryptPrimitives.dll +0x00007fff16340000 - 0x00007fff1635e000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\java.dll +0x00007fff2f170000 - 0x00007fff2f2a5000 C:\Windows\System32\ole32.dll +0x00007fff2ff20000 - 0x00007fff30291000 C:\Windows\System32\combase.dll +0x00007fff2f570000 - 0x00007fff2fcca000 C:\Windows\System32\SHELL32.dll +0x00007fff23550000 - 0x00007fff23d96000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007fff2eea0000 - 0x00007fff2ef8a000 C:\Windows\System32\SHCORE.dll +0x00007fff2fcf0000 - 0x00007fff2fd4f000 C:\Windows\System32\shlwapi.dll +0x00007fff2d7c0000 - 0x00007fff2d7e1000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffee94d0000 - 0x00007ffee95a7000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jsvml.dll +0x00007ffd377e0000 - 0x00007ffd3a408000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jvmcicompiler.dll +0x00007fff2f0e0000 - 0x00007fff2f0e8000 C:\Windows\System32\PSAPI.DLL +0x00007fff2e0b0000 - 0x00007fff2e210000 C:\Windows\System32\CRYPT32.dll +0x00007fff2ce60000 - 0x00007fff2ce8e000 C:\Windows\SYSTEM32\USERENV.dll +0x00007fff2d0d0000 - 0x00007fff2d0fe000 C:\Windows\SYSTEM32\ncrypt.dll +0x00007fff2caa0000 - 0x00007fff2cacd000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007fff2cd60000 - 0x00007fff2cdc8000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007fff2d090000 - 0x00007fff2d0c7000 C:\Windows\SYSTEM32\NTASN1.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.20348.1_none_88d3d41d702dedea;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\server + +VM Arguments: +jvm_args: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions --add-exports=java.base/jdk.internal.misc=jdk.graal.compiler -XX:+ShowCodeDetailsInExceptionMessages --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/jdk.internal.foreign=ALL-UNNAMED +java_command: org.kne.cloud.network.monitor.TimestampMonitor +java_class_path (initial): C:\KNEļ\coding\java\KLALB\bin;C:\KNEļ\coding\java\KNElib\bin;C:\KNEļ\coding\java\KLALB\lib\gson-2.1.jar;C:\KNEļ\coding\java\KLALB\lib\javassist.jar;C:\KNEļ\coding\java\KLALB\lib\ini4j.jar;C:\KNEļ\coding\java\KLALB\lib\JFreeChart1.5.2.jar;C:\KNEļ\coding\java\KLALB\lib\toml4j-0.7.1.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-core-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-packetfactory-propertiesbased-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-packetfactory-static-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-sample-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-javadoc.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-sources.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-tests.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0-javadoc.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0-sources.jar;C:\KNEļ\coding\java\KLALB\lib\JavaTUN.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 15 {product} {ergonomic} + uint ConcGCThreads = 10 {product} {ergonomic} + bool EnableJVMCIProduct = true {JVMCI product} {jimage} + uint G1ConcRefinementThreads = 38 {product} {ergonomic} + size_t G1HeapRegionSize = 8388608 {product} {ergonomic} + size_t InitialHeapSize = 1073741824 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 17062428672 {product} {ergonomic} + size_t MaxNewSize = 10234101760 {product} {ergonomic} + size_t MinHeapDeltaBytes = 8388608 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 11599872 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 120061952 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 119996416 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 17062428672 {manageable} {ergonomic} + int ThreadPriorityPolicy = 1 {product} {jimage} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=C:\Program Files\Java\jdk-19 +PATH=C:/Program Files/Java/graalvm-ce-java19-22.3.1/bin/server;C:/Program Files/Java/graalvm-ce-java19-22.3.1/bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk-19\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Bandizip\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\chocolatey\bin;C:\tools\Manim\Scripts;C:\Program Files\MiKTeX\miktex\bin\x64\;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\NetSarang\Xftp 7\;C:\Program Files\010 Editor;C:\Program Files\nodejs\;C:\Program Files\Microsoft VS Code Insiders\bin;C:\Program Files\Disktrix\UltimateDefrag;C:\Program Files\Sunshine;C:\Program Files\Sunshine\tools;C:\Program Files\NVIDIA Corporation\Nsight Compute 2023.1.0\;C:\Users\Administrator\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\Administrator\AppData\Local\Programs\Python\Python310\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\AppData\Roaming\npm;C:\Program Files\eclipse; +USERNAME=Administrator +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 85 Stepping 4, GenuineIntel +TMP=C:\Users\ADMINI~1\AppData\Local\Temp +TEMP=C:\Users\ADMINI~1\AppData\Local\Temp + + + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: + Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) +OS uptime: 20 days 23:58 hours + +CPU: total 56 (initial active 56) (14 cores per cpu, 2 threads per core) family 6 model 85 stepping 4 microcode 0x2006b06, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, clflushopt, clwb, rdtscp, f16c, pku +Processor Information for the first 56 processors : + Max Mhz: 2195, Current Mhz: 2195, Mhz Limit: 2195 + +Memory: 4k page, system-wide physical 65072M (9750M free) +TotalPageFile size 97840M (AvailPageFile size 449M) +current process WorkingSet (physical memory assigned to process): 8899M, peak: 15280M +current process commit charge ("private bytes"): 13739M, peak: 16500M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.1+11-jvmci-b01) for windows-amd64 JRE (23.0.1+11-jvmci-b01), built on 2024-10-01T10:34:46Z with MS VC++ 17.6 (VS2022) + +END. diff --git a/hs_err_pid28220.mdmp b/hs_err_pid28220.mdmp new file mode 100644 index 0000000..e69de29 diff --git a/hs_err_pid29580.log b/hs_err_pid29580.log new file mode 100644 index 0000000..1fdc7ac --- /dev/null +++ b/hs_err_pid29580.log @@ -0,0 +1,2180 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (mmap) failed to map 1342177280 bytes. Error detail: G1 virtual space +# Possible reasons: +# The system is out of physical RAM or swap space +# This process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Zero Based Compressed Oops mode in which the Java heap is +# placed in the first 32GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 32GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (os_windows.cpp:3703), pid=29580, tid=72900 +# +# JRE version: Java(TM) SE Runtime Environment Oracle GraalVM 23.0.1+11.1 (23.0.1+11) (build 23.0.1+11-jvmci-b01) +# Java VM: Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 23.0.1+11.1 (23.0.1+11-jvmci-b01, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Core dump will be written. Default location: C:\KNEļ\coding\java\KLALB\hs_err_pid29580.mdmp +# + +--------------- S U M M A R Y ------------ + +Command Line: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions --add-exports=java.base/jdk.internal.misc=jdk.graal.compiler -XX:+ShowCodeDetailsInExceptionMessages -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:41761 -javaagent:C:\Program Files\eclipse\configuration\org.eclipse.osgi\837\0\.cp\lib\javaagent-shaded.jar --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/jdk.internal.foreign=ALL-UNNAMED org.kne.cloud.network.monitor.TimestampMonitor + +Host: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 56 cores, 63G, Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) +Time: Wed Oct 29 17:48:51 2025 Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) elapsed time: 22.587800 seconds (0d 0h 0m 22s) + +--------------- T H R E A D --------------- + +Current thread (0x000001b9cb596120): VMThread "VM Thread" [id=72900, stack(0x000000b5df600000,0x000000b5df700000) (1024K)] + +Stack: [0x000000b5df600000,0x000000b5df700000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x6e08b9] (no source info available) +V [jvm.dll+0x87dc83] (no source info available) +V [jvm.dll+0x88010e] (no source info available) +V [jvm.dll+0x8807e3] (no source info available) +V [jvm.dll+0x27aee6] (no source info available) +V [jvm.dll+0x6dd1c5] (no source info available) +V [jvm.dll+0x6d104a] (no source info available) +V [jvm.dll+0x35b3ea] (no source info available) +V [jvm.dll+0x3637f6] (no source info available) +V [jvm.dll+0x34fd5e] (no source info available) +V [jvm.dll+0x34fff8] (no source info available) +V [jvm.dll+0x3289cc] (no source info available) +V [jvm.dll+0x328a5a] (no source info available) +V [jvm.dll+0x374c92] (no source info available) +V [jvm.dll+0x373392] (no source info available) +V [jvm.dll+0x3281a7] (no source info available) +V [jvm.dll+0x372b44] (no source info available) +V [jvm.dll+0x886720] (no source info available) +V [jvm.dll+0x887a47] (no source info available) +V [jvm.dll+0x887f78] (no source info available) +V [jvm.dll+0x888213] (no source info available) +V [jvm.dll+0x824f8b] (no source info available) +V [jvm.dll+0x6df065] (no source info available) +C [ucrtbase.dll+0x26b4c] (no source info available) +C [KERNEL32.DLL+0x14de0] (no source info available) +C [ntdll.dll+0x7e3db] (no source info available) + +VM_Operation (0x000000b5e09ff010): G1CollectForAllocation, mode: safepoint, requested by thread 0x000001ba1197c280 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001ba111c0230, length=72, elements={ +0x000001b99bf22130, 0x000001ba110f1fa0, 0x000001ba110f2cc0, 0x000001ba110f4250, +0x000001ba110f4f70, 0x000001ba110feb20, 0x000001ba110ff6b0, 0x000001ba11105a80, +0x000001ba11106660, 0x000001ba1122a150, 0x000001ba11350750, 0x000001ba11353630, +0x000001ba11353cc0, 0x000001ba119727a0, 0x000001ba1197c280, 0x000001ba11f36060, +0x000001ba11f3a6e0, 0x000001ba11f3b160, 0x000001ba11f3b7d0, 0x000001ba11f3c250, +0x000001ba11f3e8d0, 0x000001ba1600bc10, 0x000001ba160144f0, 0x000001ba16015f30, +0x000001ba160172e0, 0x000001ba160158a0, 0x000001ba160165c0, 0x000001ba16016c50, +0x000001ba16017970, 0x000001ba16014b80, 0x000001ba16015210, 0x000001ba16033910, +0x000001ba16036070, 0x000001ba16031840, 0x000001ba16037420, 0x000001ba16037ab0, +0x000001ba16038140, 0x000001ba16033fa0, 0x000001ba16034630, 0x000001ba16034cc0, +0x000001ba160387d0, 0x000001ba16035350, 0x000001ba160359e0, 0x000001ba16032bf0, +0x000001ba16036700, 0x000001ba16036d90, 0x000001ba16038e60, 0x000001ba16032560, +0x000001ba16031ed0, 0x000001ba16033280, 0x000001ba1605b500, 0x000001ba1605c220, +0x000001ba16055920, 0x000001ba16056640, 0x000001ba16057360, 0x000001ba1605c8b0, +0x000001ba16059ac0, 0x000001ba16058080, 0x000001ba1605a150, 0x000001ba160579f0, +0x000001ba16058710, 0x000001ba16058da0, 0x000001ba16055fb0, 0x000001ba1605cf40, +0x000001ba1605bb90, 0x000001ba16059430, 0x000001ba16056cd0, 0x000001ba1605a7e0, +0x000001ba1605ae70, 0x000001ba1609f9b0, 0x000001ba112526c0, 0x000001ba160bc010 +} + +Java Threads: ( => current thread ) + 0x000001b99bf22130 JavaThread "main" [_thread_blocked, id=54460, stack(0x000000b5def00000,0x000000b5df000000) (1024K)] + 0x000001ba110f1fa0 JavaThread "Reference Handler" daemon [_thread_blocked, id=57340, stack(0x000000b5df700000,0x000000b5df800000) (1024K)] + 0x000001ba110f2cc0 JavaThread "Finalizer" daemon [_thread_blocked, id=55428, stack(0x000000b5df800000,0x000000b5df900000) (1024K)] + 0x000001ba110f4250 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=75132, stack(0x000000b5df900000,0x000000b5dfa00000) (1024K)] + 0x000001ba110f4f70 JavaThread "Attach Listener" daemon [_thread_blocked, id=63796, stack(0x000000b5dfa00000,0x000000b5dfb00000) (1024K)] + 0x000001ba110feb20 JavaThread "Service Thread" daemon [_thread_blocked, id=24004, stack(0x000000b5dfb00000,0x000000b5dfc00000) (1024K)] + 0x000001ba110ff6b0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=30432, stack(0x000000b5dfc00000,0x000000b5dfd00000) (1024K)] + 0x000001ba11105a80 JavaThread "JVMCI-native CompilerThread0" daemon [_thread_blocked, id=87956, stack(0x000000b5dfd00000,0x000000b5dfe00000) (1024K)] + 0x000001ba11106660 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=83916, stack(0x000000b5dfe00000,0x000000b5dff00000) (1024K)] + 0x000001ba1122a150 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=76620, stack(0x000000b5dff00000,0x000000b5e0000000) (1024K)] + 0x000001ba11350750 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=80668, stack(0x000000b5e0400000,0x000000b5e0500000) (1024K)] + 0x000001ba11353630 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=21180, stack(0x000000b5e0500000,0x000000b5e0600000) (1024K)] + 0x000001ba11353cc0 JavaThread "JDWP Command Reader" daemon [_thread_blocked, id=47664, stack(0x000000b5e0600000,0x000000b5e0700000) (1024K)] + 0x000001ba119727a0 JavaThread "Notification Thread" daemon [_thread_blocked, id=43352, stack(0x000000b5e0800000,0x000000b5e0900000) (1024K)] + 0x000001ba1197c280 JavaThread "Thread-0" [_thread_blocked, id=64216, stack(0x000000b5e0900000,0x000000b5e0a00000) (1024K)] + 0x000001ba11f36060 JavaThread "ForkJoinPool.commonPool-worker-1" daemon [_thread_blocked, id=93584, stack(0x000000b5e2d00000,0x000000b5e2e00000) (1024K)] + 0x000001ba11f3a6e0 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=67764, stack(0x000000b5e2e00000,0x000000b5e2f00000) (1024K)] + 0x000001ba11f3b160 JavaThread "ForkJoinPool.commonPool-worker-2" daemon [_thread_blocked, id=81516, stack(0x000000b5e2f00000,0x000000b5e3000000) (1024K)] + 0x000001ba11f3b7d0 JavaThread "ForkJoinPool.commonPool-worker-4" daemon [_thread_blocked, id=70716, stack(0x000000b5e3000000,0x000000b5e3100000) (1024K)] + 0x000001ba11f3c250 JavaThread "ForkJoinPool.commonPool-worker-5" daemon [_thread_blocked, id=27588, stack(0x000000b5e3100000,0x000000b5e3200000) (1024K)] + 0x000001ba11f3e8d0 JavaThread "ForkJoinPool.commonPool-worker-8" daemon [_thread_blocked, id=61168, stack(0x000000b5e3200000,0x000000b5e3300000) (1024K)] + 0x000001ba1600bc10 JavaThread "ForkJoinPool.commonPool-worker-11" daemon [_thread_blocked, id=58356, stack(0x000000b5e3300000,0x000000b5e3400000) (1024K)] + 0x000001ba160144f0 JavaThread "ForkJoinPool.commonPool-worker-9" daemon [_thread_blocked, id=71064, stack(0x000000b5e3400000,0x000000b5e3500000) (1024K)] + 0x000001ba16015f30 JavaThread "ForkJoinPool.commonPool-worker-13" daemon [_thread_blocked, id=43464, stack(0x000000b5e3500000,0x000000b5e3600000) (1024K)] + 0x000001ba160172e0 JavaThread "ForkJoinPool.commonPool-worker-7" daemon [_thread_blocked, id=28884, stack(0x000000b5e3600000,0x000000b5e3700000) (1024K)] + 0x000001ba160158a0 JavaThread "ForkJoinPool.commonPool-worker-12" daemon [_thread_blocked, id=49888, stack(0x000000b5e3700000,0x000000b5e3800000) (1024K)] + 0x000001ba160165c0 JavaThread "ForkJoinPool.commonPool-worker-18" daemon [_thread_blocked, id=37780, stack(0x000000b5e3800000,0x000000b5e3900000) (1024K)] + 0x000001ba16016c50 JavaThread "ForkJoinPool.commonPool-worker-10" daemon [_thread_blocked, id=53716, stack(0x000000b5e3900000,0x000000b5e3a00000) (1024K)] + 0x000001ba16017970 JavaThread "ForkJoinPool.commonPool-worker-15" daemon [_thread_blocked, id=76068, stack(0x000000b5e3a00000,0x000000b5e3b00000) (1024K)] + 0x000001ba16014b80 JavaThread "ForkJoinPool.commonPool-worker-24" daemon [_thread_blocked, id=93268, stack(0x000000b5e3b00000,0x000000b5e3c00000) (1024K)] + 0x000001ba16015210 JavaThread "ForkJoinPool.commonPool-worker-16" daemon [_thread_blocked, id=68488, stack(0x000000b5e3c00000,0x000000b5e3d00000) (1024K)] + 0x000001ba16033910 JavaThread "ForkJoinPool.commonPool-worker-29" daemon [_thread_blocked, id=49852, stack(0x000000b5e3d00000,0x000000b5e3e00000) (1024K)] + 0x000001ba16036070 JavaThread "ForkJoinPool.commonPool-worker-31" daemon [_thread_blocked, id=27388, stack(0x000000b5e3e00000,0x000000b5e3f00000) (1024K)] + 0x000001ba16031840 JavaThread "ForkJoinPool.commonPool-worker-19" daemon [_thread_blocked, id=48988, stack(0x000000b5e3f00000,0x000000b5e4000000) (1024K)] + 0x000001ba16037420 JavaThread "ForkJoinPool.commonPool-worker-20" daemon [_thread_blocked, id=57904, stack(0x000000b5e4000000,0x000000b5e4100000) (1024K)] + 0x000001ba16037ab0 JavaThread "ForkJoinPool.commonPool-worker-36" daemon [_thread_blocked, id=52000, stack(0x000000b5e4100000,0x000000b5e4200000) (1024K)] + 0x000001ba16038140 JavaThread "ForkJoinPool.commonPool-worker-22" daemon [_thread_blocked, id=29656, stack(0x000000b5e4200000,0x000000b5e4300000) (1024K)] + 0x000001ba16033fa0 JavaThread "ForkJoinPool.commonPool-worker-23" daemon [_thread_blocked, id=41672, stack(0x000000b5e4300000,0x000000b5e4400000) (1024K)] + 0x000001ba16034630 JavaThread "ForkJoinPool.commonPool-worker-25" daemon [_thread_blocked, id=4056, stack(0x000000b5e4400000,0x000000b5e4500000) (1024K)] + 0x000001ba16034cc0 JavaThread "ForkJoinPool.commonPool-worker-14" daemon [_thread_blocked, id=14124, stack(0x000000b5e4500000,0x000000b5e4600000) (1024K)] + 0x000001ba160387d0 JavaThread "ForkJoinPool.commonPool-worker-26" daemon [_thread_blocked, id=40516, stack(0x000000b5e4600000,0x000000b5e4700000) (1024K)] + 0x000001ba16035350 JavaThread "ForkJoinPool.commonPool-worker-27" daemon [_thread_blocked, id=57308, stack(0x000000b5e4700000,0x000000b5e4800000) (1024K)] + 0x000001ba160359e0 JavaThread "ForkJoinPool.commonPool-worker-28" daemon [_thread_blocked, id=83024, stack(0x000000b5e4800000,0x000000b5e4900000) (1024K)] + 0x000001ba16032bf0 JavaThread "ForkJoinPool.commonPool-worker-17" daemon [_thread_blocked, id=49064, stack(0x000000b5e4900000,0x000000b5e4a00000) (1024K)] + 0x000001ba16036700 JavaThread "ForkJoinPool.commonPool-worker-50" daemon [_thread_blocked, id=31912, stack(0x000000b5e4a00000,0x000000b5e4b00000) (1024K)] + 0x000001ba16036d90 JavaThread "ForkJoinPool.commonPool-worker-30" daemon [_thread_blocked, id=60264, stack(0x000000b5e4b00000,0x000000b5e4c00000) (1024K)] + 0x000001ba16038e60 JavaThread "ForkJoinPool.commonPool-worker-6" daemon [_thread_blocked, id=48304, stack(0x000000b5e4d00000,0x000000b5e4e00000) (1024K)] + 0x000001ba16032560 JavaThread "ForkJoinPool.commonPool-worker-32" daemon [_thread_blocked, id=44312, stack(0x000000b5e4e00000,0x000000b5e4f00000) (1024K)] + 0x000001ba16031ed0 JavaThread "ForkJoinPool.commonPool-worker-33" daemon [_thread_blocked, id=79240, stack(0x000000b5e4f00000,0x000000b5e5000000) (1024K)] + 0x000001ba16033280 JavaThread "ForkJoinPool.commonPool-worker-34" daemon [_thread_blocked, id=29476, stack(0x000000b5e5000000,0x000000b5e5100000) (1024K)] + 0x000001ba1605b500 JavaThread "ForkJoinPool.commonPool-worker-35" daemon [_thread_blocked, id=78008, stack(0x000000b5e5100000,0x000000b5e5200000) (1024K)] + 0x000001ba1605c220 JavaThread "ForkJoinPool.commonPool-worker-21" daemon [_thread_blocked, id=52228, stack(0x000000b5e5200000,0x000000b5e5300000) (1024K)] + 0x000001ba16055920 JavaThread "ForkJoinPool.commonPool-worker-38" daemon [_thread_blocked, id=93044, stack(0x000000b5e5300000,0x000000b5e5400000) (1024K)] + 0x000001ba16056640 JavaThread "ForkJoinPool.commonPool-worker-37" daemon [_thread_blocked, id=54944, stack(0x000000b5e5400000,0x000000b5e5500000) (1024K)] + 0x000001ba16057360 JavaThread "ForkJoinPool.commonPool-worker-39" daemon [_thread_blocked, id=63812, stack(0x000000b5e5500000,0x000000b5e5600000) (1024K)] + 0x000001ba1605c8b0 JavaThread "ForkJoinPool.commonPool-worker-40" daemon [_thread_blocked, id=63748, stack(0x000000b5e5600000,0x000000b5e5700000) (1024K)] + 0x000001ba16059ac0 JavaThread "ForkJoinPool.commonPool-worker-42" daemon [_thread_blocked, id=8784, stack(0x000000b5e5700000,0x000000b5e5800000) (1024K)] + 0x000001ba16058080 JavaThread "ForkJoinPool.commonPool-worker-41" daemon [_thread_blocked, id=36868, stack(0x000000b5e5800000,0x000000b5e5900000) (1024K)] + 0x000001ba1605a150 JavaThread "ForkJoinPool.commonPool-worker-44" daemon [_thread_blocked, id=84036, stack(0x000000b5e5900000,0x000000b5e5a00000) (1024K)] + 0x000001ba160579f0 JavaThread "ForkJoinPool.commonPool-worker-43" daemon [_thread_blocked, id=80660, stack(0x000000b5e5a00000,0x000000b5e5b00000) (1024K)] + 0x000001ba16058710 JavaThread "ForkJoinPool.commonPool-worker-45" daemon [_thread_blocked, id=91912, stack(0x000000b5e5b00000,0x000000b5e5c00000) (1024K)] + 0x000001ba16058da0 JavaThread "ForkJoinPool.commonPool-worker-46" daemon [_thread_blocked, id=29188, stack(0x000000b5e5c00000,0x000000b5e5d00000) (1024K)] + 0x000001ba16055fb0 JavaThread "ForkJoinPool.commonPool-worker-47" daemon [_thread_blocked, id=93952, stack(0x000000b5e5d00000,0x000000b5e5e00000) (1024K)] + 0x000001ba1605cf40 JavaThread "ForkJoinPool.commonPool-worker-48" daemon [_thread_blocked, id=50208, stack(0x000000b5e5e00000,0x000000b5e5f00000) (1024K)] + 0x000001ba1605bb90 JavaThread "ForkJoinPool.commonPool-worker-49" daemon [_thread_blocked, id=44072, stack(0x000000b5e5f00000,0x000000b5e6000000) (1024K)] + 0x000001ba16059430 JavaThread "ForkJoinPool.commonPool-worker-51" daemon [_thread_blocked, id=77024, stack(0x000000b5e6000000,0x000000b5e6100000) (1024K)] + 0x000001ba16056cd0 JavaThread "ForkJoinPool.commonPool-worker-52" daemon [_thread_blocked, id=52496, stack(0x000000b5e6100000,0x000000b5e6200000) (1024K)] + 0x000001ba1605a7e0 JavaThread "ForkJoinPool.commonPool-worker-53" daemon [_thread_blocked, id=82056, stack(0x000000b5e0100000,0x000000b5e0200000) (1024K)] + 0x000001ba1605ae70 JavaThread "ForkJoinPool.commonPool-worker-54" daemon [_thread_blocked, id=86192, stack(0x000000b5e0300000,0x000000b5e0400000) (1024K)] + 0x000001ba1609f9b0 JavaThread "ForkJoinPool.commonPool-worker-55" daemon [_thread_blocked, id=54852, stack(0x000000b5e6200000,0x000000b5e6300000) (1024K)] + 0x000001ba112526c0 JavaThread "JVMCI-native CompilerThread1" daemon [_thread_blocked, id=64944, stack(0x000000b5e0000000,0x000000b5e0100000) (1024K)] + 0x000001ba160bc010 JavaThread "JVMCI-native CompilerThread2" daemon [_thread_blocked, id=56356, stack(0x000000b5e4c00000,0x000000b5e4d00000) (1024K)] +Total: 72 + +Other Threads: +=>0x000001b9cb596120 VMThread "VM Thread" [id=72900, stack(0x000000b5df600000,0x000000b5df700000) (1024K)] + 0x000001b99bf189a0 WatcherThread "VM Periodic Task Thread" [id=52004, stack(0x000000b5df500000,0x000000b5df600000) (1024K)] + 0x000001b99bfd6690 WorkerThread "GC Thread#0" [id=31736, stack(0x000000b5df000000,0x000000b5df100000) (1024K)] + 0x000001ba119b5f30 WorkerThread "GC Thread#1" [id=67008, stack(0x000000b5e0b00000,0x000000b5e0c00000) (1024K)] + 0x000001ba119b62e0 WorkerThread "GC Thread#2" [id=62460, stack(0x000000b5e0c00000,0x000000b5e0d00000) (1024K)] + 0x000001ba119b6690 WorkerThread "GC Thread#3" [id=20660, stack(0x000000b5e0d00000,0x000000b5e0e00000) (1024K)] + 0x000001ba119bceb0 WorkerThread "GC Thread#4" [id=31448, stack(0x000000b5e0e00000,0x000000b5e0f00000) (1024K)] + 0x000001ba119d8740 WorkerThread "GC Thread#5" [id=64096, stack(0x000000b5e0f00000,0x000000b5e1000000) (1024K)] + 0x000001ba119d7fe0 WorkerThread "GC Thread#6" [id=88240, stack(0x000000b5e1000000,0x000000b5e1100000) (1024K)] + 0x000001ba119d6d70 WorkerThread "GC Thread#7" [id=71768, stack(0x000000b5e1100000,0x000000b5e1200000) (1024K)] + 0x000001ba119d74d0 WorkerThread "GC Thread#8" [id=84400, stack(0x000000b5e1200000,0x000000b5e1300000) (1024K)] + 0x000001ba119d7120 WorkerThread "GC Thread#9" [id=75452, stack(0x000000b5e1300000,0x000000b5e1400000) (1024K)] + 0x000001ba119d7880 WorkerThread "GC Thread#10" [id=47684, stack(0x000000b5e1400000,0x000000b5e1500000) (1024K)] + 0x000001ba119d7c30 WorkerThread "GC Thread#11" [id=28796, stack(0x000000b5e1500000,0x000000b5e1600000) (1024K)] + 0x000001ba119d8390 WorkerThread "GC Thread#12" [id=90812, stack(0x000000b5e1600000,0x000000b5e1700000) (1024K)] + 0x000001ba119e3d90 WorkerThread "GC Thread#13" [id=42776, stack(0x000000b5e1700000,0x000000b5e1800000) (1024K)] + 0x000001ba119e4140 WorkerThread "GC Thread#14" [id=51832, stack(0x000000b5e1800000,0x000000b5e1900000) (1024K)] + 0x000001ba119e39e0 WorkerThread "GC Thread#15" [id=78080, stack(0x000000b5e1900000,0x000000b5e1a00000) (1024K)] + 0x000001ba119e1500 WorkerThread "GC Thread#16" [id=50816, stack(0x000000b5e1a00000,0x000000b5e1b00000) (1024K)] + 0x000001ba119e18b0 WorkerThread "GC Thread#17" [id=66652, stack(0x000000b5e1b00000,0x000000b5e1c00000) (1024K)] + 0x000001ba119e2770 WorkerThread "GC Thread#18" [id=77744, stack(0x000000b5e1c00000,0x000000b5e1d00000) (1024K)] + 0x000001ba119e3630 WorkerThread "GC Thread#19" [id=42524, stack(0x000000b5e1d00000,0x000000b5e1e00000) (1024K)] + 0x000001ba119e2b20 WorkerThread "GC Thread#20" [id=60636, stack(0x000000b5e1e00000,0x000000b5e1f00000) (1024K)] + 0x000001ba119e1c60 WorkerThread "GC Thread#21" [id=68456, stack(0x000000b5e1f00000,0x000000b5e2000000) (1024K)] + 0x000001ba119e1150 WorkerThread "GC Thread#22" [id=90020, stack(0x000000b5e2000000,0x000000b5e2100000) (1024K)] + 0x000001ba119e0da0 WorkerThread "GC Thread#23" [id=22764, stack(0x000000b5e2100000,0x000000b5e2200000) (1024K)] + 0x000001ba119e2010 WorkerThread "GC Thread#24" [id=54612, stack(0x000000b5e0200000,0x000000b5e0300000) (1024K)] + 0x000001ba119e23c0 WorkerThread "GC Thread#25" [id=32028, stack(0x000000b5e0700000,0x000000b5e0800000) (1024K)] + 0x000001ba119e2ed0 WorkerThread "GC Thread#26" [id=56052, stack(0x000000b5e0a00000,0x000000b5e0b00000) (1024K)] + 0x000001ba119e3280 WorkerThread "GC Thread#27" [id=79376, stack(0x000000b5e2200000,0x000000b5e2300000) (1024K)] + 0x000001ba119e44f0 WorkerThread "GC Thread#28" [id=5004, stack(0x000000b5e2300000,0x000000b5e2400000) (1024K)] + 0x000001ba119e48a0 WorkerThread "GC Thread#29" [id=50656, stack(0x000000b5e2400000,0x000000b5e2500000) (1024K)] + 0x000001ba11c10620 WorkerThread "GC Thread#30" [id=70244, stack(0x000000b5e2500000,0x000000b5e2600000) (1024K)] + 0x000001ba11c11130 WorkerThread "GC Thread#31" [id=24704, stack(0x000000b5e2600000,0x000000b5e2700000) (1024K)] + 0x000001ba11c10270 WorkerThread "GC Thread#32" [id=56124, stack(0x000000b5e2700000,0x000000b5e2800000) (1024K)] + 0x000001ba11c0e140 WorkerThread "GC Thread#33" [id=90212, stack(0x000000b5e2800000,0x000000b5e2900000) (1024K)] + 0x000001ba11c109d0 WorkerThread "GC Thread#34" [id=62832, stack(0x000000b5e2900000,0x000000b5e2a00000) (1024K)] + 0x000001ba11c114e0 WorkerThread "GC Thread#35" [id=53896, stack(0x000000b5e2a00000,0x000000b5e2b00000) (1024K)] + 0x000001ba11c10d80 WorkerThread "GC Thread#36" [id=61916, stack(0x000000b5e2b00000,0x000000b5e2c00000) (1024K)] + 0x000001ba11c11890 WorkerThread "GC Thread#37" [id=42708, stack(0x000000b5e2c00000,0x000000b5e2d00000) (1024K)] + 0x000001b9cb422010 ConcurrentGCThread "G1 Main Marker" [id=43824, stack(0x000000b5df100000,0x000000b5df200000) (1024K)] + 0x000001b9cb422a20 WorkerThread "G1 Conc#0" [id=78376, stack(0x000000b5df200000,0x000000b5df300000) (1024K)] + 0x000001b9cb522360 ConcurrentGCThread "G1 Refine#0" [id=84900, stack(0x000000b5df300000,0x000000b5df400000) (1024K)] + 0x000001ba162426a0 ConcurrentGCThread "G1 Refine#1" [id=33244, stack(0x000000b5e6700000,0x000000b5e6800000) (1024K)] + 0x000001ba162764f0 ConcurrentGCThread "G1 Refine#2" [id=7712, stack(0x000000b5e6800000,0x000000b5e6900000) (1024K)] + 0x000001b9cb522de0 ConcurrentGCThread "G1 Service" [id=70900, stack(0x000000b5df400000,0x000000b5df500000) (1024K)] +Total: 46 + +Threads with active compile tasks: +Total: 0 + +VM state: at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x00007ffdace33910] Threads_lock - owner thread: 0x000001b9cb596120 +[0x00007ffdace33a10] Heap_lock - owner thread: 0x000001ba1197c280 + +Heap address: 0x0000000407000000, size: 16272 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000001b9d0000000-0x000001b9d0d80000-0x000001b9d0d80000), size 14155776, SharedBaseAddress: 0x000001b9d0000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000001b9d1000000-0x000001ba11000000, reserved size: 1073741824 +Narrow klass base: 0x000001b9d0000000, Narrow klass shift: 0, Narrow klass range: 0x41000000 + +GC Precious Log: + CardTable entry size: 512 + Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 64 size 144 Howl #buckets 8 coarsen threshold 14745 Howl Bitmap #cards 2048 size 272 coarsen threshold 1843 Card regions per heap region 1 cards per card region 16384 + CPUs: 56 total, 56 available + Memory: 65072M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 8M + Heap Min Capacity: 8M + Heap Initial Capacity: 1G + Heap Max Capacity: 16272M + Pre-touch: Disabled + Parallel Workers: 38 + Concurrent Workers: 10 + Concurrent Refinement Workers: 38 + Periodic GC: Disabled + +Heap: + garbage-first heap total reserved 16662528K, committed 11599872K, used 4341461K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x0000000407000000, 0x0000000407800000, 0x0000000407800000|100%| O| |TAMS 0x0000000407000000| PB 0x0000000407000000| Untracked | 0 +| 1|0x0000000407800000, 0x0000000408000000, 0x0000000408000000|100%| O| |TAMS 0x0000000407800000| PB 0x0000000407800000| Untracked | 0 +| 2|0x0000000408000000, 0x0000000408800000, 0x0000000408800000|100%| O| |TAMS 0x0000000408000000| PB 0x0000000408000000| Untracked | 0 +| 3|0x0000000408800000, 0x0000000409000000, 0x0000000409000000|100%| O| |TAMS 0x0000000408800000| PB 0x0000000408800000| Untracked | 0 +| 4|0x0000000409000000, 0x0000000409800000, 0x0000000409800000|100%| O| |TAMS 0x0000000409000000| PB 0x0000000409000000| Untracked | 0 +| 5|0x0000000409800000, 0x000000040a000000, 0x000000040a000000|100%| O| |TAMS 0x0000000409800000| PB 0x0000000409800000| Untracked | 0 +| 6|0x000000040a000000, 0x000000040a800000, 0x000000040a800000|100%|HS| |TAMS 0x000000040a000000| PB 0x000000040a000000| Complete | 0 +| 7|0x000000040a800000, 0x000000040b000000, 0x000000040b000000|100%| O| |TAMS 0x000000040a800000| PB 0x000000040a800000| Untracked | 0 +| 8|0x000000040b000000, 0x000000040b800000, 0x000000040b800000|100%| O| |TAMS 0x000000040b000000| PB 0x000000040b000000| Untracked | 0 +| 9|0x000000040b800000, 0x000000040c000000, 0x000000040c000000|100%| O| |TAMS 0x000000040b800000| PB 0x000000040b800000| Untracked | 0 +| 10|0x000000040c000000, 0x000000040c800000, 0x000000040c800000|100%| O| |TAMS 0x000000040c000000| PB 0x000000040c000000| Untracked | 0 +| 11|0x000000040c800000, 0x000000040d000000, 0x000000040d000000|100%| O| |TAMS 0x000000040c800000| PB 0x000000040c800000| Untracked | 0 +| 12|0x000000040d000000, 0x000000040d800000, 0x000000040d800000|100%| O| |TAMS 0x000000040d000000| PB 0x000000040d000000| Untracked | 0 +| 13|0x000000040d800000, 0x000000040e000000, 0x000000040e000000|100%| O| |TAMS 0x000000040d800000| PB 0x000000040d800000| Untracked | 0 +| 14|0x000000040e000000, 0x000000040e800000, 0x000000040e800000|100%| O| |TAMS 0x000000040e000000| PB 0x000000040e000000| Untracked | 0 +| 15|0x000000040e800000, 0x000000040f000000, 0x000000040f000000|100%|HS| |TAMS 0x000000040e800000| PB 0x000000040e800000| Complete | 0 +| 16|0x000000040f000000, 0x000000040f800000, 0x000000040f800000|100%|HC| |TAMS 0x000000040f000000| PB 0x000000040f000000| Complete | 0 +| 17|0x000000040f800000, 0x0000000410000000, 0x0000000410000000|100%| O| |TAMS 0x000000040f800000| PB 0x000000040f800000| Untracked | 0 +| 18|0x0000000410000000, 0x0000000410800000, 0x0000000410800000|100%| O| |TAMS 0x0000000410000000| PB 0x0000000410000000| Untracked | 0 +| 19|0x0000000410800000, 0x0000000411000000, 0x0000000411000000|100%| O| |TAMS 0x0000000410800000| PB 0x0000000410800000| Untracked | 0 +| 20|0x0000000411000000, 0x0000000411800000, 0x0000000411800000|100%| O| |TAMS 0x0000000411000000| PB 0x0000000411000000| Untracked | 0 +| 21|0x0000000411800000, 0x0000000412000000, 0x0000000412000000|100%| O| |TAMS 0x0000000411800000| PB 0x0000000411800000| Untracked | 0 +| 22|0x0000000412000000, 0x0000000412800000, 0x0000000412800000|100%| O| |TAMS 0x0000000412000000| PB 0x0000000412000000| Untracked | 0 +| 23|0x0000000412800000, 0x0000000413000000, 0x0000000413000000|100%| O| |TAMS 0x0000000412800000| PB 0x0000000412800000| Untracked | 0 +| 24|0x0000000413000000, 0x0000000413800000, 0x0000000413800000|100%| O| |TAMS 0x0000000413000000| PB 0x0000000413000000| Untracked | 0 +| 25|0x0000000413800000, 0x0000000414000000, 0x0000000414000000|100%| O| |TAMS 0x0000000413800000| PB 0x0000000413800000| Untracked | 0 +| 26|0x0000000414000000, 0x0000000414800000, 0x0000000414800000|100%| O| |TAMS 0x0000000414000000| PB 0x0000000414000000| Untracked | 0 +| 27|0x0000000414800000, 0x0000000415000000, 0x0000000415000000|100%| O| |TAMS 0x0000000414800000| PB 0x0000000414800000| Untracked | 0 +| 28|0x0000000415000000, 0x0000000415800000, 0x0000000415800000|100%| O| |TAMS 0x0000000415000000| PB 0x0000000415000000| Untracked | 0 +| 29|0x0000000415800000, 0x0000000416000000, 0x0000000416000000|100%| O| |TAMS 0x0000000415800000| PB 0x0000000415800000| Untracked | 0 +| 30|0x0000000416000000, 0x0000000416800000, 0x0000000416800000|100%| O| |TAMS 0x0000000416000000| PB 0x0000000416000000| Untracked | 0 +| 31|0x0000000416800000, 0x0000000417000000, 0x0000000417000000|100%| O| |TAMS 0x0000000416800000| PB 0x0000000416800000| Untracked | 0 +| 32|0x0000000417000000, 0x0000000417800000, 0x0000000417800000|100%|HS| |TAMS 0x0000000417000000| PB 0x0000000417000000| Complete | 0 +| 33|0x0000000417800000, 0x0000000418000000, 0x0000000418000000|100%|HC| |TAMS 0x0000000417800000| PB 0x0000000417800000| Complete | 0 +| 34|0x0000000418000000, 0x0000000418800000, 0x0000000418800000|100%|HC| |TAMS 0x0000000418000000| PB 0x0000000418000000| Complete | 0 +| 35|0x0000000418800000, 0x0000000419000000, 0x0000000419000000|100%| O| |TAMS 0x0000000418800000| PB 0x0000000418800000| Untracked | 0 +| 36|0x0000000419000000, 0x0000000419800000, 0x0000000419800000|100%| O| |TAMS 0x0000000419000000| PB 0x0000000419000000| Untracked | 0 +| 37|0x0000000419800000, 0x000000041a000000, 0x000000041a000000|100%| O| |TAMS 0x0000000419800000| PB 0x0000000419800000| Untracked | 0 +| 38|0x000000041a000000, 0x000000041a800000, 0x000000041a800000|100%| O| |TAMS 0x000000041a000000| PB 0x000000041a000000| Untracked | 0 +| 39|0x000000041a800000, 0x000000041b000000, 0x000000041b000000|100%| O| |TAMS 0x000000041a800000| PB 0x000000041a800000| Untracked | 0 +| 40|0x000000041b000000, 0x000000041b800000, 0x000000041b800000|100%| O| |TAMS 0x000000041b000000| PB 0x000000041b000000| Untracked | 0 +| 41|0x000000041b800000, 0x000000041c000000, 0x000000041c000000|100%| O| |TAMS 0x000000041b800000| PB 0x000000041b800000| Untracked | 0 +| 42|0x000000041c000000, 0x000000041c800000, 0x000000041c800000|100%| O| |TAMS 0x000000041c000000| PB 0x000000041c000000| Untracked | 0 +| 43|0x000000041c800000, 0x000000041d000000, 0x000000041d000000|100%| O| |TAMS 0x000000041c800000| PB 0x000000041c800000| Untracked | 0 +| 44|0x000000041d000000, 0x000000041d800000, 0x000000041d800000|100%| O| |TAMS 0x000000041d000000| PB 0x000000041d000000| Untracked | 0 +| 45|0x000000041d800000, 0x000000041e000000, 0x000000041e000000|100%| O| |TAMS 0x000000041d800000| PB 0x000000041d800000| Untracked | 0 +| 46|0x000000041e000000, 0x000000041e800000, 0x000000041e800000|100%| O| |TAMS 0x000000041e000000| PB 0x000000041e000000| Untracked | 0 +| 47|0x000000041e800000, 0x000000041f000000, 0x000000041f000000|100%| O| |TAMS 0x000000041e800000| PB 0x000000041e800000| Untracked | 0 +| 48|0x000000041f000000, 0x000000041f800000, 0x000000041f800000|100%| O| |TAMS 0x000000041f000000| PB 0x000000041f000000| Untracked | 0 +| 49|0x000000041f800000, 0x0000000420000000, 0x0000000420000000|100%| O| |TAMS 0x000000041f800000| PB 0x000000041f800000| Untracked | 0 +| 50|0x0000000420000000, 0x0000000420800000, 0x0000000420800000|100%| O| |TAMS 0x0000000420000000| PB 0x0000000420000000| Untracked | 0 +| 51|0x0000000420800000, 0x0000000421000000, 0x0000000421000000|100%| O| |TAMS 0x0000000420800000| PB 0x0000000420800000| Untracked | 0 +| 52|0x0000000421000000, 0x0000000421800000, 0x0000000421800000|100%| O| |TAMS 0x0000000421000000| PB 0x0000000421000000| Untracked | 0 +| 53|0x0000000421800000, 0x0000000422000000, 0x0000000422000000|100%| O| |TAMS 0x0000000421800000| PB 0x0000000421800000| Untracked | 0 +| 54|0x0000000422000000, 0x0000000422800000, 0x0000000422800000|100%| O| |TAMS 0x0000000422000000| PB 0x0000000422000000| Untracked | 0 +| 55|0x0000000422800000, 0x0000000423000000, 0x0000000423000000|100%| O| |TAMS 0x0000000422800000| PB 0x0000000422800000| Untracked | 0 +| 56|0x0000000423000000, 0x0000000423800000, 0x0000000423800000|100%| O| |TAMS 0x0000000423000000| PB 0x0000000423000000| Untracked | 0 +| 57|0x0000000423800000, 0x0000000424000000, 0x0000000424000000|100%| O| |TAMS 0x0000000423800000| PB 0x0000000423800000| Untracked | 0 +| 58|0x0000000424000000, 0x0000000424800000, 0x0000000424800000|100%| O| |TAMS 0x0000000424000000| PB 0x0000000424000000| Untracked | 0 +| 59|0x0000000424800000, 0x0000000425000000, 0x0000000425000000|100%| O| |TAMS 0x0000000424800000| PB 0x0000000424800000| Untracked | 0 +| 60|0x0000000425000000, 0x0000000425800000, 0x0000000425800000|100%| O| |TAMS 0x0000000425000000| PB 0x0000000425000000| Untracked | 0 +| 61|0x0000000425800000, 0x0000000426000000, 0x0000000426000000|100%| O| |TAMS 0x0000000425800000| PB 0x0000000425800000| Untracked | 0 +| 62|0x0000000426000000, 0x0000000426800000, 0x0000000426800000|100%| O| |TAMS 0x0000000426000000| PB 0x0000000426000000| Untracked | 0 +| 63|0x0000000426800000, 0x0000000427000000, 0x0000000427000000|100%| O| |TAMS 0x0000000426800000| PB 0x0000000426800000| Untracked | 0 +| 64|0x0000000427000000, 0x0000000427800000, 0x0000000427800000|100%| O| |TAMS 0x0000000427000000| PB 0x0000000427000000| Untracked | 0 +| 65|0x0000000427800000, 0x0000000428000000, 0x0000000428000000|100%| O| |TAMS 0x0000000427800000| PB 0x0000000427800000| Untracked | 0 +| 66|0x0000000428000000, 0x0000000428800000, 0x0000000428800000|100%| O| |TAMS 0x0000000428000000| PB 0x0000000428000000| Untracked | 0 +| 67|0x0000000428800000, 0x0000000429000000, 0x0000000429000000|100%| O| |TAMS 0x0000000428800000| PB 0x0000000428800000| Untracked | 0 +| 68|0x0000000429000000, 0x0000000429800000, 0x0000000429800000|100%| O| |TAMS 0x0000000429000000| PB 0x0000000429000000| Untracked | 0 +| 69|0x0000000429800000, 0x000000042a000000, 0x000000042a000000|100%| O| |TAMS 0x0000000429800000| PB 0x0000000429800000| Untracked | 0 +| 70|0x000000042a000000, 0x000000042a800000, 0x000000042a800000|100%|HS| |TAMS 0x000000042a000000| PB 0x000000042a000000| Complete | 0 +| 71|0x000000042a800000, 0x000000042b000000, 0x000000042b000000|100%|HC| |TAMS 0x000000042a800000| PB 0x000000042a800000| Complete | 0 +| 72|0x000000042b000000, 0x000000042b800000, 0x000000042b800000|100%|HC| |TAMS 0x000000042b000000| PB 0x000000042b000000| Complete | 0 +| 73|0x000000042b800000, 0x000000042c000000, 0x000000042c000000|100%|HC| |TAMS 0x000000042b800000| PB 0x000000042b800000| Complete | 0 +| 74|0x000000042c000000, 0x000000042c800000, 0x000000042c800000|100%|HC| |TAMS 0x000000042c000000| PB 0x000000042c000000| Complete | 0 +| 75|0x000000042c800000, 0x000000042d000000, 0x000000042d000000|100%| O| |TAMS 0x000000042c800000| PB 0x000000042c800000| Untracked | 0 +| 76|0x000000042d000000, 0x000000042d800000, 0x000000042d800000|100%| O| |TAMS 0x000000042d000000| PB 0x000000042d000000| Untracked | 0 +| 77|0x000000042d800000, 0x000000042e000000, 0x000000042e000000|100%| O| |TAMS 0x000000042d800000| PB 0x000000042d800000| Untracked | 0 +| 78|0x000000042e000000, 0x000000042e800000, 0x000000042e800000|100%| O| |TAMS 0x000000042e000000| PB 0x000000042e000000| Untracked | 0 +| 79|0x000000042e800000, 0x000000042f000000, 0x000000042f000000|100%| O| |TAMS 0x000000042e800000| PB 0x000000042e800000| Untracked | 0 +| 80|0x000000042f000000, 0x000000042f800000, 0x000000042f800000|100%| O| |TAMS 0x000000042f000000| PB 0x000000042f000000| Untracked | 0 +| 81|0x000000042f800000, 0x0000000430000000, 0x0000000430000000|100%| O| |TAMS 0x000000042f800000| PB 0x000000042f800000| Untracked | 0 +| 82|0x0000000430000000, 0x0000000430800000, 0x0000000430800000|100%| O| |TAMS 0x0000000430000000| PB 0x0000000430000000| Untracked | 0 +| 83|0x0000000430800000, 0x0000000431000000, 0x0000000431000000|100%| O| |TAMS 0x0000000430800000| PB 0x0000000430800000| Untracked | 0 +| 84|0x0000000431000000, 0x0000000431800000, 0x0000000431800000|100%| O| |TAMS 0x0000000431000000| PB 0x0000000431000000| Untracked | 0 +| 85|0x0000000431800000, 0x0000000432000000, 0x0000000432000000|100%| O| |TAMS 0x0000000431800000| PB 0x0000000431800000| Untracked | 0 +| 86|0x0000000432000000, 0x0000000432800000, 0x0000000432800000|100%| O| |TAMS 0x0000000432000000| PB 0x0000000432000000| Untracked | 0 +| 87|0x0000000432800000, 0x0000000433000000, 0x0000000433000000|100%| O| |TAMS 0x0000000432800000| PB 0x0000000432800000| Untracked | 0 +| 88|0x0000000433000000, 0x0000000433800000, 0x0000000433800000|100%| O| |TAMS 0x0000000433000000| PB 0x0000000433000000| Untracked | 0 +| 89|0x0000000433800000, 0x0000000434000000, 0x0000000434000000|100%| O| |TAMS 0x0000000433800000| PB 0x0000000433800000| Untracked | 0 +| 90|0x0000000434000000, 0x0000000434800000, 0x0000000434800000|100%| O| |TAMS 0x0000000434000000| PB 0x0000000434000000| Untracked | 0 +| 91|0x0000000434800000, 0x0000000435000000, 0x0000000435000000|100%| O| |TAMS 0x0000000434800000| PB 0x0000000434800000| Untracked | 0 +| 92|0x0000000435000000, 0x0000000435800000, 0x0000000435800000|100%| O| |TAMS 0x0000000435000000| PB 0x0000000435000000| Untracked | 0 +| 93|0x0000000435800000, 0x0000000436000000, 0x0000000436000000|100%| O| |TAMS 0x0000000435800000| PB 0x0000000435800000| Untracked | 0 +| 94|0x0000000436000000, 0x0000000436800000, 0x0000000436800000|100%| O| |TAMS 0x0000000436000000| PB 0x0000000436000000| Untracked | 0 +| 95|0x0000000436800000, 0x0000000437000000, 0x0000000437000000|100%| O| |TAMS 0x0000000436800000| PB 0x0000000436800000| Untracked | 0 +| 96|0x0000000437000000, 0x0000000437800000, 0x0000000437800000|100%| O| |TAMS 0x0000000437000000| PB 0x0000000437000000| Untracked | 0 +| 97|0x0000000437800000, 0x0000000438000000, 0x0000000438000000|100%| O| |TAMS 0x0000000437800000| PB 0x0000000437800000| Untracked | 0 +| 98|0x0000000438000000, 0x0000000438800000, 0x0000000438800000|100%| O| |TAMS 0x0000000438000000| PB 0x0000000438000000| Untracked | 0 +| 99|0x0000000438800000, 0x0000000439000000, 0x0000000439000000|100%| O| |TAMS 0x0000000438800000| PB 0x0000000438800000| Untracked | 0 +| 100|0x0000000439000000, 0x0000000439800000, 0x0000000439800000|100%| O| |TAMS 0x0000000439000000| PB 0x0000000439000000| Untracked | 0 +| 101|0x0000000439800000, 0x000000043a000000, 0x000000043a000000|100%| O| |TAMS 0x0000000439800000| PB 0x0000000439800000| Untracked | 0 +| 102|0x000000043a000000, 0x000000043a800000, 0x000000043a800000|100%| O| |TAMS 0x000000043a000000| PB 0x000000043a000000| Untracked | 0 +| 103|0x000000043a800000, 0x000000043b000000, 0x000000043b000000|100%| O| |TAMS 0x000000043a800000| PB 0x000000043a800000| Untracked | 0 +| 104|0x000000043b000000, 0x000000043b800000, 0x000000043b800000|100%| O| |TAMS 0x000000043b000000| PB 0x000000043b000000| Untracked | 0 +| 105|0x000000043b800000, 0x000000043c000000, 0x000000043c000000|100%| O| |TAMS 0x000000043b800000| PB 0x000000043b800000| Untracked | 0 +| 106|0x000000043c000000, 0x000000043c800000, 0x000000043c800000|100%| O| |TAMS 0x000000043c000000| PB 0x000000043c000000| Untracked | 0 +| 107|0x000000043c800000, 0x000000043d000000, 0x000000043d000000|100%| O| |TAMS 0x000000043c800000| PB 0x000000043c800000| Untracked | 0 +| 108|0x000000043d000000, 0x000000043d800000, 0x000000043d800000|100%| O| |TAMS 0x000000043d000000| PB 0x000000043d000000| Untracked | 0 +| 109|0x000000043d800000, 0x000000043e000000, 0x000000043e000000|100%| O| |TAMS 0x000000043d800000| PB 0x000000043d800000| Untracked | 0 +| 110|0x000000043e000000, 0x000000043e800000, 0x000000043e800000|100%| O| |TAMS 0x000000043e000000| PB 0x000000043e000000| Untracked | 0 +| 111|0x000000043e800000, 0x000000043f000000, 0x000000043f000000|100%| O| |TAMS 0x000000043e800000| PB 0x000000043e800000| Untracked | 0 +| 112|0x000000043f000000, 0x000000043f800000, 0x000000043f800000|100%| O| |TAMS 0x000000043f000000| PB 0x000000043f000000| Untracked | 0 +| 113|0x000000043f800000, 0x0000000440000000, 0x0000000440000000|100%| O| |TAMS 0x000000043f800000| PB 0x000000043f800000| Untracked | 0 +| 114|0x0000000440000000, 0x0000000440800000, 0x0000000440800000|100%| O| |TAMS 0x0000000440000000| PB 0x0000000440000000| Untracked | 0 +| 115|0x0000000440800000, 0x0000000441000000, 0x0000000441000000|100%| O| |TAMS 0x0000000440800000| PB 0x0000000440800000| Untracked | 0 +| 116|0x0000000441000000, 0x0000000441800000, 0x0000000441800000|100%| O| |TAMS 0x0000000441000000| PB 0x0000000441000000| Untracked | 0 +| 117|0x0000000441800000, 0x0000000442000000, 0x0000000442000000|100%| O| |TAMS 0x0000000441800000| PB 0x0000000441800000| Untracked | 0 +| 118|0x0000000442000000, 0x0000000442800000, 0x0000000442800000|100%| O| |TAMS 0x0000000442000000| PB 0x0000000442000000| Untracked | 0 +| 119|0x0000000442800000, 0x0000000443000000, 0x0000000443000000|100%| O| |TAMS 0x0000000442800000| PB 0x0000000442800000| Untracked | 0 +| 120|0x0000000443000000, 0x0000000443800000, 0x0000000443800000|100%| O| |TAMS 0x0000000443000000| PB 0x0000000443000000| Untracked | 0 +| 121|0x0000000443800000, 0x0000000444000000, 0x0000000444000000|100%| O| |TAMS 0x0000000443800000| PB 0x0000000443800000| Untracked | 0 +| 122|0x0000000444000000, 0x0000000444800000, 0x0000000444800000|100%| O| |TAMS 0x0000000444000000| PB 0x0000000444000000| Untracked | 0 +| 123|0x0000000444800000, 0x0000000445000000, 0x0000000445000000|100%| O| |TAMS 0x0000000444800000| PB 0x0000000444800000| Untracked | 0 +| 124|0x0000000445000000, 0x0000000445800000, 0x0000000445800000|100%| O| |TAMS 0x0000000445000000| PB 0x0000000445000000| Untracked | 0 +| 125|0x0000000445800000, 0x0000000446000000, 0x0000000446000000|100%| O| |TAMS 0x0000000445800000| PB 0x0000000445800000| Untracked | 0 +| 126|0x0000000446000000, 0x0000000446800000, 0x0000000446800000|100%| O| |TAMS 0x0000000446000000| PB 0x0000000446000000| Untracked | 0 +| 127|0x0000000446800000, 0x0000000447000000, 0x0000000447000000|100%| O| |TAMS 0x0000000446800000| PB 0x0000000446800000| Untracked | 0 +| 128|0x0000000447000000, 0x0000000447800000, 0x0000000447800000|100%| O| |TAMS 0x0000000447000000| PB 0x0000000447000000| Untracked | 0 +| 129|0x0000000447800000, 0x0000000448000000, 0x0000000448000000|100%|HS| |TAMS 0x0000000447800000| PB 0x0000000447800000| Complete | 0 +| 130|0x0000000448000000, 0x0000000448800000, 0x0000000448800000|100%|HC| |TAMS 0x0000000448000000| PB 0x0000000448000000| Complete | 0 +| 131|0x0000000448800000, 0x0000000449000000, 0x0000000449000000|100%|HC| |TAMS 0x0000000448800000| PB 0x0000000448800000| Complete | 0 +| 132|0x0000000449000000, 0x0000000449800000, 0x0000000449800000|100%|HC| |TAMS 0x0000000449000000| PB 0x0000000449000000| Complete | 0 +| 133|0x0000000449800000, 0x000000044a000000, 0x000000044a000000|100%|HC| |TAMS 0x0000000449800000| PB 0x0000000449800000| Complete | 0 +| 134|0x000000044a000000, 0x000000044a800000, 0x000000044a800000|100%|HC| |TAMS 0x000000044a000000| PB 0x000000044a000000| Complete | 0 +| 135|0x000000044a800000, 0x000000044b000000, 0x000000044b000000|100%|HC| |TAMS 0x000000044a800000| PB 0x000000044a800000| Complete | 0 +| 136|0x000000044b000000, 0x000000044b800000, 0x000000044b800000|100%|HC| |TAMS 0x000000044b000000| PB 0x000000044b000000| Complete | 0 +| 137|0x000000044b800000, 0x000000044c000000, 0x000000044c000000|100%|HC| |TAMS 0x000000044b800000| PB 0x000000044b800000| Complete | 0 +| 138|0x000000044c000000, 0x000000044c800000, 0x000000044c800000|100%| O| |TAMS 0x000000044c000000| PB 0x000000044c000000| Untracked | 0 +| 139|0x000000044c800000, 0x000000044d000000, 0x000000044d000000|100%| O| |TAMS 0x000000044c800000| PB 0x000000044c800000| Untracked | 0 +| 140|0x000000044d000000, 0x000000044d800000, 0x000000044d800000|100%| O| |TAMS 0x000000044d000000| PB 0x000000044d000000| Untracked | 0 +| 141|0x000000044d800000, 0x000000044e000000, 0x000000044e000000|100%| O| |TAMS 0x000000044d800000| PB 0x000000044d800000| Untracked | 0 +| 142|0x000000044e000000, 0x000000044e800000, 0x000000044e800000|100%| O| |TAMS 0x000000044e000000| PB 0x000000044e000000| Untracked | 0 +| 143|0x000000044e800000, 0x000000044f000000, 0x000000044f000000|100%| O| |TAMS 0x000000044e800000| PB 0x000000044e800000| Untracked | 0 +| 144|0x000000044f000000, 0x000000044f800000, 0x000000044f800000|100%| O| |TAMS 0x000000044f000000| PB 0x000000044f000000| Untracked | 0 +| 145|0x000000044f800000, 0x0000000450000000, 0x0000000450000000|100%| O| |TAMS 0x000000044f800000| PB 0x000000044f800000| Untracked | 0 +| 146|0x0000000450000000, 0x0000000450800000, 0x0000000450800000|100%| O| |TAMS 0x0000000450000000| PB 0x0000000450000000| Untracked | 0 +| 147|0x0000000450800000, 0x0000000451000000, 0x0000000451000000|100%| O| |TAMS 0x0000000450800000| PB 0x0000000450800000| Untracked | 0 +| 148|0x0000000451000000, 0x0000000451800000, 0x0000000451800000|100%| O| |TAMS 0x0000000451000000| PB 0x0000000451000000| Untracked | 0 +| 149|0x0000000451800000, 0x0000000452000000, 0x0000000452000000|100%| O| |TAMS 0x0000000451800000| PB 0x0000000451800000| Untracked | 0 +| 150|0x0000000452000000, 0x0000000452800000, 0x0000000452800000|100%| O| |TAMS 0x0000000452000000| PB 0x0000000452000000| Untracked | 0 +| 151|0x0000000452800000, 0x0000000453000000, 0x0000000453000000|100%| O| |TAMS 0x0000000452800000| PB 0x0000000452800000| Untracked | 0 +| 152|0x0000000453000000, 0x0000000453800000, 0x0000000453800000|100%| O| |TAMS 0x0000000453000000| PB 0x0000000453000000| Untracked | 0 +| 153|0x0000000453800000, 0x0000000454000000, 0x0000000454000000|100%| O| |TAMS 0x0000000453800000| PB 0x0000000453800000| Untracked | 0 +| 154|0x0000000454000000, 0x0000000454800000, 0x0000000454800000|100%| O| |TAMS 0x0000000454000000| PB 0x0000000454000000| Untracked | 0 +| 155|0x0000000454800000, 0x0000000455000000, 0x0000000455000000|100%| O| |TAMS 0x0000000454800000| PB 0x0000000454800000| Untracked | 0 +| 156|0x0000000455000000, 0x0000000455800000, 0x0000000455800000|100%| O| |TAMS 0x0000000455000000| PB 0x0000000455000000| Untracked | 0 +| 157|0x0000000455800000, 0x0000000456000000, 0x0000000456000000|100%| O| |TAMS 0x0000000455800000| PB 0x0000000455800000| Untracked | 0 +| 158|0x0000000456000000, 0x0000000456800000, 0x0000000456800000|100%| O| |TAMS 0x0000000456000000| PB 0x0000000456000000| Untracked | 0 +| 159|0x0000000456800000, 0x0000000457000000, 0x0000000457000000|100%| O| |TAMS 0x0000000456800000| PB 0x0000000456800000| Untracked | 0 +| 160|0x0000000457000000, 0x0000000457800000, 0x0000000457800000|100%| O| |TAMS 0x0000000457000000| PB 0x0000000457000000| Untracked | 0 +| 161|0x0000000457800000, 0x0000000458000000, 0x0000000458000000|100%| O| |TAMS 0x0000000457800000| PB 0x0000000457800000| Untracked | 0 +| 162|0x0000000458000000, 0x0000000458800000, 0x0000000458800000|100%| O| |TAMS 0x0000000458000000| PB 0x0000000458000000| Untracked | 0 +| 163|0x0000000458800000, 0x0000000459000000, 0x0000000459000000|100%| O| |TAMS 0x0000000458800000| PB 0x0000000458800000| Untracked | 0 +| 164|0x0000000459000000, 0x0000000459800000, 0x0000000459800000|100%| O| |TAMS 0x0000000459000000| PB 0x0000000459000000| Untracked | 0 +| 165|0x0000000459800000, 0x000000045a000000, 0x000000045a000000|100%| O| |TAMS 0x0000000459800000| PB 0x0000000459800000| Untracked | 0 +| 166|0x000000045a000000, 0x000000045a800000, 0x000000045a800000|100%| O| |TAMS 0x000000045a000000| PB 0x000000045a000000| Untracked | 0 +| 167|0x000000045a800000, 0x000000045b000000, 0x000000045b000000|100%| O| |TAMS 0x000000045a800000| PB 0x000000045a800000| Untracked | 0 +| 168|0x000000045b000000, 0x000000045b800000, 0x000000045b800000|100%| O| |TAMS 0x000000045b000000| PB 0x000000045b000000| Untracked | 0 +| 169|0x000000045b800000, 0x000000045c000000, 0x000000045c000000|100%| O| |TAMS 0x000000045b800000| PB 0x000000045b800000| Untracked | 0 +| 170|0x000000045c000000, 0x000000045c800000, 0x000000045c800000|100%| O| |TAMS 0x000000045c000000| PB 0x000000045c000000| Untracked | 0 +| 171|0x000000045c800000, 0x000000045d000000, 0x000000045d000000|100%| O| |TAMS 0x000000045c800000| PB 0x000000045c800000| Untracked | 0 +| 172|0x000000045d000000, 0x000000045d800000, 0x000000045d800000|100%| O| |TAMS 0x000000045d000000| PB 0x000000045d000000| Untracked | 0 +| 173|0x000000045d800000, 0x000000045e000000, 0x000000045e000000|100%| O| |TAMS 0x000000045d800000| PB 0x000000045d800000| Untracked | 0 +| 174|0x000000045e000000, 0x000000045e800000, 0x000000045e800000|100%| O| |TAMS 0x000000045e000000| PB 0x000000045e000000| Untracked | 0 +| 175|0x000000045e800000, 0x000000045f000000, 0x000000045f000000|100%| O| |TAMS 0x000000045e800000| PB 0x000000045e800000| Untracked | 0 +| 176|0x000000045f000000, 0x000000045f800000, 0x000000045f800000|100%| O| |TAMS 0x000000045f000000| PB 0x000000045f000000| Untracked | 0 +| 177|0x000000045f800000, 0x0000000460000000, 0x0000000460000000|100%| O| |TAMS 0x000000045f800000| PB 0x000000045f800000| Untracked | 0 +| 178|0x0000000460000000, 0x0000000460800000, 0x0000000460800000|100%| O| |TAMS 0x0000000460000000| PB 0x0000000460000000| Untracked | 0 +| 179|0x0000000460800000, 0x0000000461000000, 0x0000000461000000|100%| O| |TAMS 0x0000000460800000| PB 0x0000000460800000| Untracked | 0 +| 180|0x0000000461000000, 0x0000000461800000, 0x0000000461800000|100%| O| |TAMS 0x0000000461000000| PB 0x0000000461000000| Untracked | 0 +| 181|0x0000000461800000, 0x0000000462000000, 0x0000000462000000|100%| O| |TAMS 0x0000000461800000| PB 0x0000000461800000| Untracked | 0 +| 182|0x0000000462000000, 0x0000000462800000, 0x0000000462800000|100%| O| |TAMS 0x0000000462000000| PB 0x0000000462000000| Untracked | 0 +| 183|0x0000000462800000, 0x0000000463000000, 0x0000000463000000|100%| O| |TAMS 0x0000000462800000| PB 0x0000000462800000| Untracked | 0 +| 184|0x0000000463000000, 0x0000000463800000, 0x0000000463800000|100%| O| |TAMS 0x0000000463000000| PB 0x0000000463000000| Untracked | 0 +| 185|0x0000000463800000, 0x0000000464000000, 0x0000000464000000|100%| O| |TAMS 0x0000000463800000| PB 0x0000000463800000| Untracked | 0 +| 186|0x0000000464000000, 0x0000000464800000, 0x0000000464800000|100%| O| |TAMS 0x0000000464000000| PB 0x0000000464000000| Untracked | 0 +| 187|0x0000000464800000, 0x0000000465000000, 0x0000000465000000|100%| O| |TAMS 0x0000000464800000| PB 0x0000000464800000| Untracked | 0 +| 188|0x0000000465000000, 0x0000000465800000, 0x0000000465800000|100%| O| |TAMS 0x0000000465000000| PB 0x0000000465000000| Untracked | 0 +| 189|0x0000000465800000, 0x0000000466000000, 0x0000000466000000|100%| O| |TAMS 0x0000000465800000| PB 0x0000000465800000| Untracked | 0 +| 190|0x0000000466000000, 0x0000000466800000, 0x0000000466800000|100%| O| |TAMS 0x0000000466000000| PB 0x0000000466000000| Untracked | 0 +| 191|0x0000000466800000, 0x0000000467000000, 0x0000000467000000|100%| O| |TAMS 0x0000000466800000| PB 0x0000000466800000| Untracked | 0 +| 192|0x0000000467000000, 0x0000000467800000, 0x0000000467800000|100%| O| |TAMS 0x0000000467000000| PB 0x0000000467000000| Untracked | 0 +| 193|0x0000000467800000, 0x0000000468000000, 0x0000000468000000|100%| O| |TAMS 0x0000000467800000| PB 0x0000000467800000| Untracked | 0 +| 194|0x0000000468000000, 0x0000000468800000, 0x0000000468800000|100%| O| |TAMS 0x0000000468000000| PB 0x0000000468000000| Untracked | 0 +| 195|0x0000000468800000, 0x0000000469000000, 0x0000000469000000|100%| O| |TAMS 0x0000000468800000| PB 0x0000000468800000| Untracked | 0 +| 196|0x0000000469000000, 0x0000000469800000, 0x0000000469800000|100%| O| |TAMS 0x0000000469000000| PB 0x0000000469000000| Untracked | 0 +| 197|0x0000000469800000, 0x000000046a000000, 0x000000046a000000|100%| O| |TAMS 0x0000000469800000| PB 0x0000000469800000| Untracked | 0 +| 198|0x000000046a000000, 0x000000046a800000, 0x000000046a800000|100%| O| |TAMS 0x000000046a000000| PB 0x000000046a000000| Untracked | 0 +| 199|0x000000046a800000, 0x000000046b000000, 0x000000046b000000|100%| O| |TAMS 0x000000046a800000| PB 0x000000046a800000| Untracked | 0 +| 200|0x000000046b000000, 0x000000046b800000, 0x000000046b800000|100%| O| |TAMS 0x000000046b000000| PB 0x000000046b000000| Untracked | 0 +| 201|0x000000046b800000, 0x000000046c000000, 0x000000046c000000|100%| O| |TAMS 0x000000046b800000| PB 0x000000046b800000| Untracked | 0 +| 202|0x000000046c000000, 0x000000046c800000, 0x000000046c800000|100%| O| |TAMS 0x000000046c000000| PB 0x000000046c000000| Untracked | 0 +| 203|0x000000046c800000, 0x000000046d000000, 0x000000046d000000|100%| O| |TAMS 0x000000046c800000| PB 0x000000046c800000| Untracked | 0 +| 204|0x000000046d000000, 0x000000046d800000, 0x000000046d800000|100%| O| |TAMS 0x000000046d000000| PB 0x000000046d000000| Untracked | 0 +| 205|0x000000046d800000, 0x000000046e000000, 0x000000046e000000|100%| O| |TAMS 0x000000046d800000| PB 0x000000046d800000| Untracked | 0 +| 206|0x000000046e000000, 0x000000046e800000, 0x000000046e800000|100%| O| |TAMS 0x000000046e000000| PB 0x000000046e000000| Untracked | 0 +| 207|0x000000046e800000, 0x000000046f000000, 0x000000046f000000|100%| O| |TAMS 0x000000046e800000| PB 0x000000046e800000| Untracked | 0 +| 208|0x000000046f000000, 0x000000046f800000, 0x000000046f800000|100%| O| |TAMS 0x000000046f000000| PB 0x000000046f000000| Untracked | 0 +| 209|0x000000046f800000, 0x0000000470000000, 0x0000000470000000|100%| O| |TAMS 0x000000046f800000| PB 0x000000046f800000| Untracked | 0 +| 210|0x0000000470000000, 0x0000000470800000, 0x0000000470800000|100%| O| |TAMS 0x0000000470000000| PB 0x0000000470000000| Untracked | 0 +| 211|0x0000000470800000, 0x0000000471000000, 0x0000000471000000|100%| O| |TAMS 0x0000000470800000| PB 0x0000000470800000| Untracked | 0 +| 212|0x0000000471000000, 0x0000000471800000, 0x0000000471800000|100%| O| |TAMS 0x0000000471000000| PB 0x0000000471000000| Untracked | 0 +| 213|0x0000000471800000, 0x0000000472000000, 0x0000000472000000|100%| O| |TAMS 0x0000000471800000| PB 0x0000000471800000| Untracked | 0 +| 214|0x0000000472000000, 0x0000000472800000, 0x0000000472800000|100%| O| |TAMS 0x0000000472000000| PB 0x0000000472000000| Untracked | 0 +| 215|0x0000000472800000, 0x0000000473000000, 0x0000000473000000|100%| O| |TAMS 0x0000000472800000| PB 0x0000000472800000| Untracked | 0 +| 216|0x0000000473000000, 0x0000000473800000, 0x0000000473800000|100%| O| |TAMS 0x0000000473000000| PB 0x0000000473000000| Untracked | 0 +| 217|0x0000000473800000, 0x0000000474000000, 0x0000000474000000|100%| O| |TAMS 0x0000000473800000| PB 0x0000000473800000| Untracked | 0 +| 218|0x0000000474000000, 0x0000000474800000, 0x0000000474800000|100%| O| |TAMS 0x0000000474000000| PB 0x0000000474000000| Untracked | 0 +| 219|0x0000000474800000, 0x0000000475000000, 0x0000000475000000|100%| O| |TAMS 0x0000000474800000| PB 0x0000000474800000| Untracked | 0 +| 220|0x0000000475000000, 0x0000000475800000, 0x0000000475800000|100%| O| |TAMS 0x0000000475000000| PB 0x0000000475000000| Untracked | 0 +| 221|0x0000000475800000, 0x0000000476000000, 0x0000000476000000|100%| O| |TAMS 0x0000000475800000| PB 0x0000000475800000| Untracked | 0 +| 222|0x0000000476000000, 0x0000000476800000, 0x0000000476800000|100%| O| |TAMS 0x0000000476000000| PB 0x0000000476000000| Untracked | 0 +| 223|0x0000000476800000, 0x0000000477000000, 0x0000000477000000|100%| O| |TAMS 0x0000000476800000| PB 0x0000000476800000| Untracked | 0 +| 224|0x0000000477000000, 0x0000000477800000, 0x0000000477800000|100%| O| |TAMS 0x0000000477000000| PB 0x0000000477000000| Untracked | 0 +| 225|0x0000000477800000, 0x0000000478000000, 0x0000000478000000|100%| O| |TAMS 0x0000000477800000| PB 0x0000000477800000| Untracked | 0 +| 226|0x0000000478000000, 0x0000000478800000, 0x0000000478800000|100%| O| |TAMS 0x0000000478000000| PB 0x0000000478000000| Untracked | 0 +| 227|0x0000000478800000, 0x0000000479000000, 0x0000000479000000|100%| O| |TAMS 0x0000000478800000| PB 0x0000000478800000| Untracked | 0 +| 228|0x0000000479000000, 0x0000000479800000, 0x0000000479800000|100%| O| |TAMS 0x0000000479000000| PB 0x0000000479000000| Untracked | 0 +| 229|0x0000000479800000, 0x000000047a000000, 0x000000047a000000|100%| O| |TAMS 0x0000000479800000| PB 0x0000000479800000| Untracked | 0 +| 230|0x000000047a000000, 0x000000047a800000, 0x000000047a800000|100%| O| |TAMS 0x000000047a000000| PB 0x000000047a000000| Untracked | 0 +| 231|0x000000047a800000, 0x000000047b000000, 0x000000047b000000|100%| O| |TAMS 0x000000047a800000| PB 0x000000047a800000| Untracked | 0 +| 232|0x000000047b000000, 0x000000047b800000, 0x000000047b800000|100%| O| |TAMS 0x000000047b000000| PB 0x000000047b000000| Untracked | 0 +| 233|0x000000047b800000, 0x000000047c000000, 0x000000047c000000|100%| O| |TAMS 0x000000047b800000| PB 0x000000047b800000| Untracked | 0 +| 234|0x000000047c000000, 0x000000047c800000, 0x000000047c800000|100%| O| |TAMS 0x000000047c000000| PB 0x000000047c000000| Untracked | 0 +| 235|0x000000047c800000, 0x000000047d000000, 0x000000047d000000|100%| O| |TAMS 0x000000047c800000| PB 0x000000047c800000| Untracked | 0 +| 236|0x000000047d000000, 0x000000047d800000, 0x000000047d800000|100%| O| |TAMS 0x000000047d000000| PB 0x000000047d000000| Untracked | 0 +| 237|0x000000047d800000, 0x000000047e000000, 0x000000047e000000|100%| O| |TAMS 0x000000047d800000| PB 0x000000047d800000| Untracked | 0 +| 238|0x000000047e000000, 0x000000047e800000, 0x000000047e800000|100%| O| |TAMS 0x000000047e000000| PB 0x000000047e000000| Untracked | 0 +| 239|0x000000047e800000, 0x000000047f000000, 0x000000047f000000|100%| O| |TAMS 0x000000047e800000| PB 0x000000047e800000| Untracked | 0 +| 240|0x000000047f000000, 0x000000047f800000, 0x000000047f800000|100%| O| |TAMS 0x000000047f000000| PB 0x000000047f000000| Untracked | 0 +| 241|0x000000047f800000, 0x0000000480000000, 0x0000000480000000|100%| O| |TAMS 0x000000047f800000| PB 0x000000047f800000| Untracked | 0 +| 242|0x0000000480000000, 0x0000000480800000, 0x0000000480800000|100%| O| |TAMS 0x0000000480000000| PB 0x0000000480000000| Untracked | 0 +| 243|0x0000000480800000, 0x0000000481000000, 0x0000000481000000|100%| O| |TAMS 0x0000000480800000| PB 0x0000000480800000| Untracked | 0 +| 244|0x0000000481000000, 0x0000000481800000, 0x0000000481800000|100%| O| |TAMS 0x0000000481000000| PB 0x0000000481000000| Untracked | 0 +| 245|0x0000000481800000, 0x0000000482000000, 0x0000000482000000|100%| O| |TAMS 0x0000000481800000| PB 0x0000000481800000| Untracked | 0 +| 246|0x0000000482000000, 0x0000000482800000, 0x0000000482800000|100%| O| |TAMS 0x0000000482000000| PB 0x0000000482000000| Untracked | 0 +| 247|0x0000000482800000, 0x0000000483000000, 0x0000000483000000|100%| O| |TAMS 0x0000000482800000| PB 0x0000000482800000| Untracked | 0 +| 248|0x0000000483000000, 0x0000000483800000, 0x0000000483800000|100%| O| |TAMS 0x0000000483000000| PB 0x0000000483000000| Untracked | 0 +| 249|0x0000000483800000, 0x0000000484000000, 0x0000000484000000|100%| O| |TAMS 0x0000000483800000| PB 0x0000000483800000| Untracked | 0 +| 250|0x0000000484000000, 0x0000000484800000, 0x0000000484800000|100%| O| |TAMS 0x0000000484000000| PB 0x0000000484000000| Untracked | 0 +| 251|0x0000000484800000, 0x0000000485000000, 0x0000000485000000|100%| O| |TAMS 0x0000000484800000| PB 0x0000000484800000| Untracked | 0 +| 252|0x0000000485000000, 0x0000000485800000, 0x0000000485800000|100%| O| |TAMS 0x0000000485000000| PB 0x0000000485000000| Untracked | 0 +| 253|0x0000000485800000, 0x0000000486000000, 0x0000000486000000|100%| O| |TAMS 0x0000000485800000| PB 0x0000000485800000| Untracked | 0 +| 254|0x0000000486000000, 0x0000000486800000, 0x0000000486800000|100%| O| |TAMS 0x0000000486000000| PB 0x0000000486000000| Untracked | 0 +| 255|0x0000000486800000, 0x0000000487000000, 0x0000000487000000|100%| O| |TAMS 0x0000000486800000| PB 0x0000000486800000| Untracked | 0 +| 256|0x0000000487000000, 0x0000000487800000, 0x0000000487800000|100%| O| |TAMS 0x0000000487000000| PB 0x0000000487000000| Untracked | 0 +| 257|0x0000000487800000, 0x0000000488000000, 0x0000000488000000|100%| O| |TAMS 0x0000000487800000| PB 0x0000000487800000| Untracked | 0 +| 258|0x0000000488000000, 0x0000000488800000, 0x0000000488800000|100%| O| |TAMS 0x0000000488000000| PB 0x0000000488000000| Untracked | 0 +| 259|0x0000000488800000, 0x0000000489000000, 0x0000000489000000|100%| O| |TAMS 0x0000000488800000| PB 0x0000000488800000| Untracked | 0 +| 260|0x0000000489000000, 0x0000000489800000, 0x0000000489800000|100%| O| |TAMS 0x0000000489000000| PB 0x0000000489000000| Untracked | 0 +| 261|0x0000000489800000, 0x000000048a000000, 0x000000048a000000|100%| O| |TAMS 0x0000000489800000| PB 0x0000000489800000| Untracked | 0 +| 262|0x000000048a000000, 0x000000048a800000, 0x000000048a800000|100%|HS| |TAMS 0x000000048a000000| PB 0x000000048a000000| Complete | 0 +| 263|0x000000048a800000, 0x000000048b000000, 0x000000048b000000|100%|HC| |TAMS 0x000000048a800000| PB 0x000000048a800000| Complete | 0 +| 264|0x000000048b000000, 0x000000048b800000, 0x000000048b800000|100%|HC| |TAMS 0x000000048b000000| PB 0x000000048b000000| Complete | 0 +| 265|0x000000048b800000, 0x000000048c000000, 0x000000048c000000|100%|HC| |TAMS 0x000000048b800000| PB 0x000000048b800000| Complete | 0 +| 266|0x000000048c000000, 0x000000048c800000, 0x000000048c800000|100%|HC| |TAMS 0x000000048c000000| PB 0x000000048c000000| Complete | 0 +| 267|0x000000048c800000, 0x000000048d000000, 0x000000048d000000|100%|HC| |TAMS 0x000000048c800000| PB 0x000000048c800000| Complete | 0 +| 268|0x000000048d000000, 0x000000048d800000, 0x000000048d800000|100%|HC| |TAMS 0x000000048d000000| PB 0x000000048d000000| Complete | 0 +| 269|0x000000048d800000, 0x000000048e000000, 0x000000048e000000|100%|HC| |TAMS 0x000000048d800000| PB 0x000000048d800000| Complete | 0 +| 270|0x000000048e000000, 0x000000048e800000, 0x000000048e800000|100%|HC| |TAMS 0x000000048e000000| PB 0x000000048e000000| Complete | 0 +| 271|0x000000048e800000, 0x000000048f000000, 0x000000048f000000|100%|HC| |TAMS 0x000000048e800000| PB 0x000000048e800000| Complete | 0 +| 272|0x000000048f000000, 0x000000048f800000, 0x000000048f800000|100%|HC| |TAMS 0x000000048f000000| PB 0x000000048f000000| Complete | 0 +| 273|0x000000048f800000, 0x0000000490000000, 0x0000000490000000|100%|HC| |TAMS 0x000000048f800000| PB 0x000000048f800000| Complete | 0 +| 274|0x0000000490000000, 0x0000000490800000, 0x0000000490800000|100%|HC| |TAMS 0x0000000490000000| PB 0x0000000490000000| Complete | 0 +| 275|0x0000000490800000, 0x0000000491000000, 0x0000000491000000|100%|HC| |TAMS 0x0000000490800000| PB 0x0000000490800000| Complete | 0 +| 276|0x0000000491000000, 0x0000000491800000, 0x0000000491800000|100%|HC| |TAMS 0x0000000491000000| PB 0x0000000491000000| Complete | 0 +| 277|0x0000000491800000, 0x0000000492000000, 0x0000000492000000|100%|HC| |TAMS 0x0000000491800000| PB 0x0000000491800000| Complete | 0 +| 278|0x0000000492000000, 0x0000000492800000, 0x0000000492800000|100%|HC| |TAMS 0x0000000492000000| PB 0x0000000492000000| Complete | 0 +| 279|0x0000000492800000, 0x0000000493000000, 0x0000000493000000|100%| O| |TAMS 0x0000000492800000| PB 0x0000000492800000| Untracked | 0 +| 280|0x0000000493000000, 0x0000000493800000, 0x0000000493800000|100%| O| |TAMS 0x0000000493000000| PB 0x0000000493000000| Untracked | 0 +| 281|0x0000000493800000, 0x0000000494000000, 0x0000000494000000|100%| O| |TAMS 0x0000000493800000| PB 0x0000000493800000| Untracked | 0 +| 282|0x0000000494000000, 0x0000000494800000, 0x0000000494800000|100%| O| |TAMS 0x0000000494000000| PB 0x0000000494000000| Untracked | 0 +| 283|0x0000000494800000, 0x0000000495000000, 0x0000000495000000|100%| O| |TAMS 0x0000000494800000| PB 0x0000000494800000| Untracked | 0 +| 284|0x0000000495000000, 0x0000000495800000, 0x0000000495800000|100%| O| |TAMS 0x0000000495000000| PB 0x0000000495000000| Untracked | 0 +| 285|0x0000000495800000, 0x0000000496000000, 0x0000000496000000|100%| O| |TAMS 0x0000000495800000| PB 0x0000000495800000| Untracked | 0 +| 286|0x0000000496000000, 0x0000000496800000, 0x0000000496800000|100%| O| |TAMS 0x0000000496000000| PB 0x0000000496000000| Untracked | 0 +| 287|0x0000000496800000, 0x0000000497000000, 0x0000000497000000|100%| O| |TAMS 0x0000000496800000| PB 0x0000000496800000| Untracked | 0 +| 288|0x0000000497000000, 0x0000000497800000, 0x0000000497800000|100%| O| |TAMS 0x0000000497000000| PB 0x0000000497000000| Untracked | 0 +| 289|0x0000000497800000, 0x0000000498000000, 0x0000000498000000|100%| O| |TAMS 0x0000000497800000| PB 0x0000000497800000| Untracked | 0 +| 290|0x0000000498000000, 0x0000000498800000, 0x0000000498800000|100%| O| |TAMS 0x0000000498000000| PB 0x0000000498000000| Untracked | 0 +| 291|0x0000000498800000, 0x0000000499000000, 0x0000000499000000|100%| O| |TAMS 0x0000000498800000| PB 0x0000000498800000| Untracked | 0 +| 292|0x0000000499000000, 0x0000000499800000, 0x0000000499800000|100%| O| |TAMS 0x0000000499000000| PB 0x0000000499000000| Untracked | 0 +| 293|0x0000000499800000, 0x000000049a000000, 0x000000049a000000|100%| O| |TAMS 0x0000000499800000| PB 0x0000000499800000| Untracked | 0 +| 294|0x000000049a000000, 0x000000049a800000, 0x000000049a800000|100%| O| |TAMS 0x000000049a000000| PB 0x000000049a000000| Untracked | 0 +| 295|0x000000049a800000, 0x000000049b000000, 0x000000049b000000|100%| O| |TAMS 0x000000049a800000| PB 0x000000049a800000| Untracked | 0 +| 296|0x000000049b000000, 0x000000049b800000, 0x000000049b800000|100%| O| |TAMS 0x000000049b000000| PB 0x000000049b000000| Untracked | 0 +| 297|0x000000049b800000, 0x000000049c000000, 0x000000049c000000|100%| O| |TAMS 0x000000049b800000| PB 0x000000049b800000| Untracked | 0 +| 298|0x000000049c000000, 0x000000049c800000, 0x000000049c800000|100%| O| |TAMS 0x000000049c000000| PB 0x000000049c000000| Untracked | 0 +| 299|0x000000049c800000, 0x000000049d000000, 0x000000049d000000|100%| O| |TAMS 0x000000049c800000| PB 0x000000049c800000| Untracked | 0 +| 300|0x000000049d000000, 0x000000049d800000, 0x000000049d800000|100%| O| |TAMS 0x000000049d000000| PB 0x000000049d000000| Untracked | 0 +| 301|0x000000049d800000, 0x000000049e000000, 0x000000049e000000|100%| O| |TAMS 0x000000049d800000| PB 0x000000049d800000| Untracked | 0 +| 302|0x000000049e000000, 0x000000049e800000, 0x000000049e800000|100%| O| |TAMS 0x000000049e000000| PB 0x000000049e000000| Untracked | 0 +| 303|0x000000049e800000, 0x000000049f000000, 0x000000049f000000|100%| O| |TAMS 0x000000049e800000| PB 0x000000049e800000| Untracked | 0 +| 304|0x000000049f000000, 0x000000049f800000, 0x000000049f800000|100%| O| |TAMS 0x000000049f000000| PB 0x000000049f000000| Untracked | 0 +| 305|0x000000049f800000, 0x00000004a0000000, 0x00000004a0000000|100%| O| |TAMS 0x000000049f800000| PB 0x000000049f800000| Untracked | 0 +| 306|0x00000004a0000000, 0x00000004a0800000, 0x00000004a0800000|100%| O| |TAMS 0x00000004a0000000| PB 0x00000004a0000000| Untracked | 0 +| 307|0x00000004a0800000, 0x00000004a1000000, 0x00000004a1000000|100%| O| |TAMS 0x00000004a0800000| PB 0x00000004a0800000| Untracked | 0 +| 308|0x00000004a1000000, 0x00000004a1800000, 0x00000004a1800000|100%| O| |TAMS 0x00000004a1000000| PB 0x00000004a1000000| Untracked | 0 +| 309|0x00000004a1800000, 0x00000004a2000000, 0x00000004a2000000|100%| O| |TAMS 0x00000004a1800000| PB 0x00000004a1800000| Untracked | 0 +| 310|0x00000004a2000000, 0x00000004a2800000, 0x00000004a2800000|100%| O| |TAMS 0x00000004a2000000| PB 0x00000004a2000000| Untracked | 0 +| 311|0x00000004a2800000, 0x00000004a3000000, 0x00000004a3000000|100%| O| |TAMS 0x00000004a2800000| PB 0x00000004a2800000| Untracked | 0 +| 312|0x00000004a3000000, 0x00000004a3800000, 0x00000004a3800000|100%| O| |TAMS 0x00000004a3000000| PB 0x00000004a3000000| Untracked | 0 +| 313|0x00000004a3800000, 0x00000004a4000000, 0x00000004a4000000|100%| O| |TAMS 0x00000004a3800000| PB 0x00000004a3800000| Untracked | 0 +| 314|0x00000004a4000000, 0x00000004a4800000, 0x00000004a4800000|100%| O| |TAMS 0x00000004a4000000| PB 0x00000004a4000000| Untracked | 0 +| 315|0x00000004a4800000, 0x00000004a5000000, 0x00000004a5000000|100%| O| |TAMS 0x00000004a4800000| PB 0x00000004a4800000| Untracked | 0 +| 316|0x00000004a5000000, 0x00000004a5800000, 0x00000004a5800000|100%| O| |TAMS 0x00000004a5000000| PB 0x00000004a5000000| Untracked | 0 +| 317|0x00000004a5800000, 0x00000004a6000000, 0x00000004a6000000|100%| O| |TAMS 0x00000004a5800000| PB 0x00000004a5800000| Untracked | 0 +| 318|0x00000004a6000000, 0x00000004a6800000, 0x00000004a6800000|100%| O| |TAMS 0x00000004a6000000| PB 0x00000004a6000000| Untracked | 0 +| 319|0x00000004a6800000, 0x00000004a7000000, 0x00000004a7000000|100%| O| |TAMS 0x00000004a6800000| PB 0x00000004a6800000| Untracked | 0 +| 320|0x00000004a7000000, 0x00000004a7800000, 0x00000004a7800000|100%| O| |TAMS 0x00000004a7000000| PB 0x00000004a7000000| Untracked | 0 +| 321|0x00000004a7800000, 0x00000004a8000000, 0x00000004a8000000|100%| O| |TAMS 0x00000004a7800000| PB 0x00000004a7800000| Untracked | 0 +| 322|0x00000004a8000000, 0x00000004a8800000, 0x00000004a8800000|100%| O| |TAMS 0x00000004a8000000| PB 0x00000004a8000000| Untracked | 0 +| 323|0x00000004a8800000, 0x00000004a9000000, 0x00000004a9000000|100%| O| |TAMS 0x00000004a8800000| PB 0x00000004a8800000| Untracked | 0 +| 324|0x00000004a9000000, 0x00000004a9800000, 0x00000004a9800000|100%| O| |TAMS 0x00000004a9000000| PB 0x00000004a9000000| Untracked | 0 +| 325|0x00000004a9800000, 0x00000004aa000000, 0x00000004aa000000|100%| O| |TAMS 0x00000004a9800000| PB 0x00000004a9800000| Untracked | 0 +| 326|0x00000004aa000000, 0x00000004aa800000, 0x00000004aa800000|100%| O| |TAMS 0x00000004aa000000| PB 0x00000004aa000000| Untracked | 0 +| 327|0x00000004aa800000, 0x00000004ab000000, 0x00000004ab000000|100%| O| |TAMS 0x00000004aa800000| PB 0x00000004aa800000| Untracked | 0 +| 328|0x00000004ab000000, 0x00000004ab800000, 0x00000004ab800000|100%| O| |TAMS 0x00000004ab000000| PB 0x00000004ab000000| Untracked | 0 +| 329|0x00000004ab800000, 0x00000004ac000000, 0x00000004ac000000|100%| O| |TAMS 0x00000004ab800000| PB 0x00000004ab800000| Untracked | 0 +| 330|0x00000004ac000000, 0x00000004ac800000, 0x00000004ac800000|100%| O| |TAMS 0x00000004ac000000| PB 0x00000004ac000000| Untracked | 0 +| 331|0x00000004ac800000, 0x00000004ad000000, 0x00000004ad000000|100%| O| |TAMS 0x00000004ac800000| PB 0x00000004ac800000| Untracked | 0 +| 332|0x00000004ad000000, 0x00000004ad800000, 0x00000004ad800000|100%| O| |TAMS 0x00000004ad000000| PB 0x00000004ad000000| Untracked | 0 +| 333|0x00000004ad800000, 0x00000004ae000000, 0x00000004ae000000|100%| O| |TAMS 0x00000004ad800000| PB 0x00000004ad800000| Untracked | 0 +| 334|0x00000004ae000000, 0x00000004ae800000, 0x00000004ae800000|100%| O| |TAMS 0x00000004ae000000| PB 0x00000004ae000000| Untracked | 0 +| 335|0x00000004ae800000, 0x00000004af000000, 0x00000004af000000|100%| O| |TAMS 0x00000004ae800000| PB 0x00000004ae800000| Untracked | 0 +| 336|0x00000004af000000, 0x00000004af800000, 0x00000004af800000|100%| O| |TAMS 0x00000004af000000| PB 0x00000004af000000| Untracked | 0 +| 337|0x00000004af800000, 0x00000004b0000000, 0x00000004b0000000|100%| O| |TAMS 0x00000004af800000| PB 0x00000004af800000| Untracked | 0 +| 338|0x00000004b0000000, 0x00000004b0800000, 0x00000004b0800000|100%| O| |TAMS 0x00000004b0000000| PB 0x00000004b0000000| Untracked | 0 +| 339|0x00000004b0800000, 0x00000004b1000000, 0x00000004b1000000|100%| O| |TAMS 0x00000004b0800000| PB 0x00000004b0800000| Untracked | 0 +| 340|0x00000004b1000000, 0x00000004b1800000, 0x00000004b1800000|100%| O| |TAMS 0x00000004b1000000| PB 0x00000004b1000000| Untracked | 0 +| 341|0x00000004b1800000, 0x00000004b2000000, 0x00000004b2000000|100%| O| |TAMS 0x00000004b1800000| PB 0x00000004b1800000| Untracked | 0 +| 342|0x00000004b2000000, 0x00000004b2800000, 0x00000004b2800000|100%| O| |TAMS 0x00000004b2000000| PB 0x00000004b2000000| Untracked | 0 +| 343|0x00000004b2800000, 0x00000004b3000000, 0x00000004b3000000|100%| O| |TAMS 0x00000004b2800000| PB 0x00000004b2800000| Untracked | 0 +| 344|0x00000004b3000000, 0x00000004b3800000, 0x00000004b3800000|100%| O| |TAMS 0x00000004b3000000| PB 0x00000004b3000000| Untracked | 0 +| 345|0x00000004b3800000, 0x00000004b4000000, 0x00000004b4000000|100%| O| |TAMS 0x00000004b3800000| PB 0x00000004b3800000| Untracked | 0 +| 346|0x00000004b4000000, 0x00000004b4800000, 0x00000004b4800000|100%| O| |TAMS 0x00000004b4000000| PB 0x00000004b4000000| Untracked | 0 +| 347|0x00000004b4800000, 0x00000004b5000000, 0x00000004b5000000|100%| O| |TAMS 0x00000004b4800000| PB 0x00000004b4800000| Untracked | 0 +| 348|0x00000004b5000000, 0x00000004b5800000, 0x00000004b5800000|100%| O| |TAMS 0x00000004b5000000| PB 0x00000004b5000000| Untracked | 0 +| 349|0x00000004b5800000, 0x00000004b6000000, 0x00000004b6000000|100%| O| |TAMS 0x00000004b5800000| PB 0x00000004b5800000| Untracked | 0 +| 350|0x00000004b6000000, 0x00000004b6800000, 0x00000004b6800000|100%| O| |TAMS 0x00000004b6000000| PB 0x00000004b6000000| Untracked | 0 +| 351|0x00000004b6800000, 0x00000004b7000000, 0x00000004b7000000|100%| O| |TAMS 0x00000004b6800000| PB 0x00000004b6800000| Untracked | 0 +| 352|0x00000004b7000000, 0x00000004b7800000, 0x00000004b7800000|100%| O| |TAMS 0x00000004b7000000| PB 0x00000004b7000000| Untracked | 0 +| 353|0x00000004b7800000, 0x00000004b8000000, 0x00000004b8000000|100%| O| |TAMS 0x00000004b7800000| PB 0x00000004b7800000| Untracked | 0 +| 354|0x00000004b8000000, 0x00000004b8800000, 0x00000004b8800000|100%| O| |TAMS 0x00000004b8000000| PB 0x00000004b8000000| Untracked | 0 +| 355|0x00000004b8800000, 0x00000004b9000000, 0x00000004b9000000|100%| O| |TAMS 0x00000004b8800000| PB 0x00000004b8800000| Untracked | 0 +| 356|0x00000004b9000000, 0x00000004b9800000, 0x00000004b9800000|100%| O| |TAMS 0x00000004b9000000| PB 0x00000004b9000000| Untracked | 0 +| 357|0x00000004b9800000, 0x00000004ba000000, 0x00000004ba000000|100%| O| |TAMS 0x00000004b9800000| PB 0x00000004b9800000| Untracked | 0 +| 358|0x00000004ba000000, 0x00000004ba800000, 0x00000004ba800000|100%| O| |TAMS 0x00000004ba000000| PB 0x00000004ba000000| Untracked | 0 +| 359|0x00000004ba800000, 0x00000004bb000000, 0x00000004bb000000|100%| O| |TAMS 0x00000004ba800000| PB 0x00000004ba800000| Untracked | 0 +| 360|0x00000004bb000000, 0x00000004bb800000, 0x00000004bb800000|100%| O| |TAMS 0x00000004bb000000| PB 0x00000004bb000000| Untracked | 0 +| 361|0x00000004bb800000, 0x00000004bc000000, 0x00000004bc000000|100%| O| |TAMS 0x00000004bb800000| PB 0x00000004bb800000| Untracked | 0 +| 362|0x00000004bc000000, 0x00000004bc800000, 0x00000004bc800000|100%| O| |TAMS 0x00000004bc000000| PB 0x00000004bc000000| Untracked | 0 +| 363|0x00000004bc800000, 0x00000004bd000000, 0x00000004bd000000|100%| O| |TAMS 0x00000004bc800000| PB 0x00000004bc800000| Untracked | 0 +| 364|0x00000004bd000000, 0x00000004bd800000, 0x00000004bd800000|100%| O| |TAMS 0x00000004bd000000| PB 0x00000004bd000000| Untracked | 0 +| 365|0x00000004bd800000, 0x00000004be000000, 0x00000004be000000|100%| O| |TAMS 0x00000004bd800000| PB 0x00000004bd800000| Untracked | 0 +| 366|0x00000004be000000, 0x00000004be800000, 0x00000004be800000|100%| O| |TAMS 0x00000004be000000| PB 0x00000004be000000| Untracked | 0 +| 367|0x00000004be800000, 0x00000004bf000000, 0x00000004bf000000|100%| O| |TAMS 0x00000004be800000| PB 0x00000004be800000| Untracked | 0 +| 368|0x00000004bf000000, 0x00000004bf800000, 0x00000004bf800000|100%| O| |TAMS 0x00000004bf000000| PB 0x00000004bf000000| Untracked | 0 +| 369|0x00000004bf800000, 0x00000004c0000000, 0x00000004c0000000|100%| O| |TAMS 0x00000004bf800000| PB 0x00000004bf800000| Untracked | 0 +| 370|0x00000004c0000000, 0x00000004c0800000, 0x00000004c0800000|100%| O| |TAMS 0x00000004c0000000| PB 0x00000004c0000000| Untracked | 0 +| 371|0x00000004c0800000, 0x00000004c1000000, 0x00000004c1000000|100%| O| |TAMS 0x00000004c0800000| PB 0x00000004c0800000| Untracked | 0 +| 372|0x00000004c1000000, 0x00000004c1800000, 0x00000004c1800000|100%| O| |TAMS 0x00000004c1000000| PB 0x00000004c1000000| Untracked | 0 +| 373|0x00000004c1800000, 0x00000004c2000000, 0x00000004c2000000|100%| O| |TAMS 0x00000004c1800000| PB 0x00000004c1800000| Untracked | 0 +| 374|0x00000004c2000000, 0x00000004c2800000, 0x00000004c2800000|100%| O| |TAMS 0x00000004c2000000| PB 0x00000004c2000000| Untracked | 0 +| 375|0x00000004c2800000, 0x00000004c3000000, 0x00000004c3000000|100%| O| |TAMS 0x00000004c2800000| PB 0x00000004c2800000| Untracked | 0 +| 376|0x00000004c3000000, 0x00000004c3800000, 0x00000004c3800000|100%| O| |TAMS 0x00000004c3000000| PB 0x00000004c3000000| Untracked | 0 +| 377|0x00000004c3800000, 0x00000004c4000000, 0x00000004c4000000|100%| O| |TAMS 0x00000004c3800000| PB 0x00000004c3800000| Untracked | 0 +| 378|0x00000004c4000000, 0x00000004c4800000, 0x00000004c4800000|100%| O| |TAMS 0x00000004c4000000| PB 0x00000004c4000000| Untracked | 0 +| 379|0x00000004c4800000, 0x00000004c5000000, 0x00000004c5000000|100%| O| |TAMS 0x00000004c4800000| PB 0x00000004c4800000| Untracked | 0 +| 380|0x00000004c5000000, 0x00000004c5800000, 0x00000004c5800000|100%| O| |TAMS 0x00000004c5000000| PB 0x00000004c5000000| Untracked | 0 +| 381|0x00000004c5800000, 0x00000004c6000000, 0x00000004c6000000|100%| O| |TAMS 0x00000004c5800000| PB 0x00000004c5800000| Untracked | 0 +| 382|0x00000004c6000000, 0x00000004c6800000, 0x00000004c6800000|100%| O| |TAMS 0x00000004c6000000| PB 0x00000004c6000000| Untracked | 0 +| 383|0x00000004c6800000, 0x00000004c7000000, 0x00000004c7000000|100%| O| |TAMS 0x00000004c6800000| PB 0x00000004c6800000| Untracked | 0 +| 384|0x00000004c7000000, 0x00000004c7800000, 0x00000004c7800000|100%| O| |TAMS 0x00000004c7000000| PB 0x00000004c7000000| Untracked | 0 +| 385|0x00000004c7800000, 0x00000004c8000000, 0x00000004c8000000|100%| O| |TAMS 0x00000004c7800000| PB 0x00000004c7800000| Untracked | 0 +| 386|0x00000004c8000000, 0x00000004c8800000, 0x00000004c8800000|100%| O| |TAMS 0x00000004c8000000| PB 0x00000004c8000000| Untracked | 0 +| 387|0x00000004c8800000, 0x00000004c9000000, 0x00000004c9000000|100%| O| |TAMS 0x00000004c8800000| PB 0x00000004c8800000| Untracked | 0 +| 388|0x00000004c9000000, 0x00000004c9800000, 0x00000004c9800000|100%| O| |TAMS 0x00000004c9000000| PB 0x00000004c9000000| Untracked | 0 +| 389|0x00000004c9800000, 0x00000004ca000000, 0x00000004ca000000|100%| O| |TAMS 0x00000004c9800000| PB 0x00000004c9800000| Untracked | 0 +| 390|0x00000004ca000000, 0x00000004ca800000, 0x00000004ca800000|100%| O| |TAMS 0x00000004ca000000| PB 0x00000004ca000000| Untracked | 0 +| 391|0x00000004ca800000, 0x00000004cb000000, 0x00000004cb000000|100%| O| |TAMS 0x00000004ca800000| PB 0x00000004ca800000| Untracked | 0 +| 392|0x00000004cb000000, 0x00000004cb800000, 0x00000004cb800000|100%| O| |TAMS 0x00000004cb000000| PB 0x00000004cb000000| Untracked | 0 +| 393|0x00000004cb800000, 0x00000004cc000000, 0x00000004cc000000|100%| O| |TAMS 0x00000004cb800000| PB 0x00000004cb800000| Untracked | 0 +| 394|0x00000004cc000000, 0x00000004cc800000, 0x00000004cc800000|100%| O| |TAMS 0x00000004cc000000| PB 0x00000004cc000000| Untracked | 0 +| 395|0x00000004cc800000, 0x00000004cd000000, 0x00000004cd000000|100%| O| |TAMS 0x00000004cc800000| PB 0x00000004cc800000| Untracked | 0 +| 396|0x00000004cd000000, 0x00000004cd800000, 0x00000004cd800000|100%| O| |TAMS 0x00000004cd000000| PB 0x00000004cd000000| Untracked | 0 +| 397|0x00000004cd800000, 0x00000004ce000000, 0x00000004ce000000|100%| O| |TAMS 0x00000004cd800000| PB 0x00000004cd800000| Untracked | 0 +| 398|0x00000004ce000000, 0x00000004ce800000, 0x00000004ce800000|100%| O| |TAMS 0x00000004ce000000| PB 0x00000004ce000000| Untracked | 0 +| 399|0x00000004ce800000, 0x00000004cf000000, 0x00000004cf000000|100%| O| |TAMS 0x00000004ce800000| PB 0x00000004ce800000| Untracked | 0 +| 400|0x00000004cf000000, 0x00000004cf800000, 0x00000004cf800000|100%| O| |TAMS 0x00000004cf000000| PB 0x00000004cf000000| Untracked | 0 +| 401|0x00000004cf800000, 0x00000004d0000000, 0x00000004d0000000|100%| O| |TAMS 0x00000004cf800000| PB 0x00000004cf800000| Untracked | 0 +| 402|0x00000004d0000000, 0x00000004d0800000, 0x00000004d0800000|100%| O| |TAMS 0x00000004d0000000| PB 0x00000004d0000000| Untracked | 0 +| 403|0x00000004d0800000, 0x00000004d1000000, 0x00000004d1000000|100%| O| |TAMS 0x00000004d0800000| PB 0x00000004d0800000| Untracked | 0 +| 404|0x00000004d1000000, 0x00000004d1800000, 0x00000004d1800000|100%| O| |TAMS 0x00000004d1000000| PB 0x00000004d1000000| Untracked | 0 +| 405|0x00000004d1800000, 0x00000004d2000000, 0x00000004d2000000|100%| O| |TAMS 0x00000004d1800000| PB 0x00000004d1800000| Untracked | 0 +| 406|0x00000004d2000000, 0x00000004d2800000, 0x00000004d2800000|100%| O| |TAMS 0x00000004d2000000| PB 0x00000004d2000000| Untracked | 0 +| 407|0x00000004d2800000, 0x00000004d3000000, 0x00000004d3000000|100%| O| |TAMS 0x00000004d2800000| PB 0x00000004d2800000| Untracked | 0 +| 408|0x00000004d3000000, 0x00000004d3800000, 0x00000004d3800000|100%| O| |TAMS 0x00000004d3000000| PB 0x00000004d3000000| Untracked | 0 +| 409|0x00000004d3800000, 0x00000004d4000000, 0x00000004d4000000|100%| O| |TAMS 0x00000004d3800000| PB 0x00000004d3800000| Untracked | 0 +| 410|0x00000004d4000000, 0x00000004d4800000, 0x00000004d4800000|100%| O| |TAMS 0x00000004d4000000| PB 0x00000004d4000000| Untracked | 0 +| 411|0x00000004d4800000, 0x00000004d5000000, 0x00000004d5000000|100%| O| |TAMS 0x00000004d4800000| PB 0x00000004d4800000| Untracked | 0 +| 412|0x00000004d5000000, 0x00000004d5800000, 0x00000004d5800000|100%| O| |TAMS 0x00000004d5000000| PB 0x00000004d5000000| Untracked | 0 +| 413|0x00000004d5800000, 0x00000004d6000000, 0x00000004d6000000|100%| O| |TAMS 0x00000004d5800000| PB 0x00000004d5800000| Untracked | 0 +| 414|0x00000004d6000000, 0x00000004d6800000, 0x00000004d6800000|100%| O| |TAMS 0x00000004d6000000| PB 0x00000004d6000000| Untracked | 0 +| 415|0x00000004d6800000, 0x00000004d7000000, 0x00000004d7000000|100%| O| |TAMS 0x00000004d6800000| PB 0x00000004d6800000| Untracked | 0 +| 416|0x00000004d7000000, 0x00000004d7800000, 0x00000004d7800000|100%| O| |TAMS 0x00000004d7000000| PB 0x00000004d7000000| Untracked | 0 +| 417|0x00000004d7800000, 0x00000004d8000000, 0x00000004d8000000|100%| O| |TAMS 0x00000004d7800000| PB 0x00000004d7800000| Untracked | 0 +| 418|0x00000004d8000000, 0x00000004d8800000, 0x00000004d8800000|100%| O| |TAMS 0x00000004d8000000| PB 0x00000004d8000000| Untracked | 0 +| 419|0x00000004d8800000, 0x00000004d9000000, 0x00000004d9000000|100%| O| |TAMS 0x00000004d8800000| PB 0x00000004d8800000| Untracked | 0 +| 420|0x00000004d9000000, 0x00000004d9800000, 0x00000004d9800000|100%| O| |TAMS 0x00000004d9000000| PB 0x00000004d9000000| Untracked | 0 +| 421|0x00000004d9800000, 0x00000004da000000, 0x00000004da000000|100%| O| |TAMS 0x00000004d9800000| PB 0x00000004d9800000| Untracked | 0 +| 422|0x00000004da000000, 0x00000004da800000, 0x00000004da800000|100%| O| |TAMS 0x00000004da000000| PB 0x00000004da000000| Untracked | 0 +| 423|0x00000004da800000, 0x00000004db000000, 0x00000004db000000|100%| O| |TAMS 0x00000004da800000| PB 0x00000004da800000| Untracked | 0 +| 424|0x00000004db000000, 0x00000004db800000, 0x00000004db800000|100%| O| |TAMS 0x00000004db000000| PB 0x00000004db000000| Untracked | 0 +| 425|0x00000004db800000, 0x00000004dc000000, 0x00000004dc000000|100%| O| |TAMS 0x00000004db800000| PB 0x00000004db800000| Untracked | 0 +| 426|0x00000004dc000000, 0x00000004dc800000, 0x00000004dc800000|100%| O| |TAMS 0x00000004dc000000| PB 0x00000004dc000000| Untracked | 0 +| 427|0x00000004dc800000, 0x00000004dd000000, 0x00000004dd000000|100%| O| |TAMS 0x00000004dc800000| PB 0x00000004dc800000| Untracked | 0 +| 428|0x00000004dd000000, 0x00000004dd800000, 0x00000004dd800000|100%| O| |TAMS 0x00000004dd000000| PB 0x00000004dd000000| Untracked | 0 +| 429|0x00000004dd800000, 0x00000004de000000, 0x00000004de000000|100%| O| |TAMS 0x00000004dd800000| PB 0x00000004dd800000| Untracked | 0 +| 430|0x00000004de000000, 0x00000004de800000, 0x00000004de800000|100%| O| |TAMS 0x00000004de000000| PB 0x00000004de000000| Untracked | 0 +| 431|0x00000004de800000, 0x00000004df000000, 0x00000004df000000|100%| O| |TAMS 0x00000004de800000| PB 0x00000004de800000| Untracked | 0 +| 432|0x00000004df000000, 0x00000004df800000, 0x00000004df800000|100%| O| |TAMS 0x00000004df000000| PB 0x00000004df000000| Untracked | 0 +| 433|0x00000004df800000, 0x00000004e0000000, 0x00000004e0000000|100%| O| |TAMS 0x00000004df800000| PB 0x00000004df800000| Untracked | 0 +| 434|0x00000004e0000000, 0x00000004e0800000, 0x00000004e0800000|100%| O| |TAMS 0x00000004e0000000| PB 0x00000004e0000000| Untracked | 0 +| 435|0x00000004e0800000, 0x00000004e1000000, 0x00000004e1000000|100%| O| |TAMS 0x00000004e0800000| PB 0x00000004e0800000| Untracked | 0 +| 436|0x00000004e1000000, 0x00000004e1800000, 0x00000004e1800000|100%| O| |TAMS 0x00000004e1000000| PB 0x00000004e1000000| Untracked | 0 +| 437|0x00000004e1800000, 0x00000004e2000000, 0x00000004e2000000|100%| O| |TAMS 0x00000004e1800000| PB 0x00000004e1800000| Untracked | 0 +| 438|0x00000004e2000000, 0x00000004e2800000, 0x00000004e2800000|100%| O| |TAMS 0x00000004e2000000| PB 0x00000004e2000000| Untracked | 0 +| 439|0x00000004e2800000, 0x00000004e3000000, 0x00000004e3000000|100%| O| |TAMS 0x00000004e2800000| PB 0x00000004e2800000| Untracked | 0 +| 440|0x00000004e3000000, 0x00000004e3800000, 0x00000004e3800000|100%| O| |TAMS 0x00000004e3000000| PB 0x00000004e3000000| Untracked | 0 +| 441|0x00000004e3800000, 0x00000004e4000000, 0x00000004e4000000|100%| O| |TAMS 0x00000004e3800000| PB 0x00000004e3800000| Untracked | 0 +| 442|0x00000004e4000000, 0x00000004e4800000, 0x00000004e4800000|100%| O| |TAMS 0x00000004e4000000| PB 0x00000004e4000000| Untracked | 0 +| 443|0x00000004e4800000, 0x00000004e5000000, 0x00000004e5000000|100%| O| |TAMS 0x00000004e4800000| PB 0x00000004e4800000| Untracked | 0 +| 444|0x00000004e5000000, 0x00000004e5800000, 0x00000004e5800000|100%| O| |TAMS 0x00000004e5000000| PB 0x00000004e5000000| Untracked | 0 +| 445|0x00000004e5800000, 0x00000004e6000000, 0x00000004e6000000|100%| O| |TAMS 0x00000004e5800000| PB 0x00000004e5800000| Untracked | 0 +| 446|0x00000004e6000000, 0x00000004e6800000, 0x00000004e6800000|100%| O| |TAMS 0x00000004e6000000| PB 0x00000004e6000000| Untracked | 0 +| 447|0x00000004e6800000, 0x00000004e7000000, 0x00000004e7000000|100%| O| |TAMS 0x00000004e6800000| PB 0x00000004e6800000| Untracked | 0 +| 448|0x00000004e7000000, 0x00000004e7800000, 0x00000004e7800000|100%| O| |TAMS 0x00000004e7000000| PB 0x00000004e7000000| Untracked | 0 +| 449|0x00000004e7800000, 0x00000004e8000000, 0x00000004e8000000|100%| O| |TAMS 0x00000004e7800000| PB 0x00000004e7800000| Untracked | 0 +| 450|0x00000004e8000000, 0x00000004e8800000, 0x00000004e8800000|100%| O| |TAMS 0x00000004e8000000| PB 0x00000004e8000000| Untracked | 0 +| 451|0x00000004e8800000, 0x00000004e9000000, 0x00000004e9000000|100%| O| |TAMS 0x00000004e8800000| PB 0x00000004e8800000| Untracked | 0 +| 452|0x00000004e9000000, 0x00000004e9800000, 0x00000004e9800000|100%| O| |TAMS 0x00000004e9000000| PB 0x00000004e9000000| Untracked | 0 +| 453|0x00000004e9800000, 0x00000004ea000000, 0x00000004ea000000|100%| O| |TAMS 0x00000004e9800000| PB 0x00000004e9800000| Untracked | 0 +| 454|0x00000004ea000000, 0x00000004ea800000, 0x00000004ea800000|100%| O| |TAMS 0x00000004ea000000| PB 0x00000004ea000000| Untracked | 0 +| 455|0x00000004ea800000, 0x00000004eb000000, 0x00000004eb000000|100%| O| |TAMS 0x00000004ea800000| PB 0x00000004ea800000| Untracked | 0 +| 456|0x00000004eb000000, 0x00000004eb800000, 0x00000004eb800000|100%| O| |TAMS 0x00000004eb000000| PB 0x00000004eb000000| Untracked | 0 +| 457|0x00000004eb800000, 0x00000004ec000000, 0x00000004ec000000|100%| O| |TAMS 0x00000004eb800000| PB 0x00000004eb800000| Untracked | 0 +| 458|0x00000004ec000000, 0x00000004ec800000, 0x00000004ec800000|100%| O| |TAMS 0x00000004ec000000| PB 0x00000004ec000000| Untracked | 0 +| 459|0x00000004ec800000, 0x00000004ed000000, 0x00000004ed000000|100%| O| |TAMS 0x00000004ec800000| PB 0x00000004ec800000| Untracked | 0 +| 460|0x00000004ed000000, 0x00000004ed800000, 0x00000004ed800000|100%| O| |TAMS 0x00000004ed000000| PB 0x00000004ed000000| Untracked | 0 +| 461|0x00000004ed800000, 0x00000004ee000000, 0x00000004ee000000|100%| O| |TAMS 0x00000004ed800000| PB 0x00000004ed800000| Untracked | 0 +| 462|0x00000004ee000000, 0x00000004ee800000, 0x00000004ee800000|100%| O| |TAMS 0x00000004ee000000| PB 0x00000004ee000000| Untracked | 0 +| 463|0x00000004ee800000, 0x00000004ef000000, 0x00000004ef000000|100%| O| |TAMS 0x00000004ee800000| PB 0x00000004ee800000| Untracked | 0 +| 464|0x00000004ef000000, 0x00000004ef800000, 0x00000004ef800000|100%| O| |TAMS 0x00000004ef000000| PB 0x00000004ef000000| Untracked | 0 +| 465|0x00000004ef800000, 0x00000004f0000000, 0x00000004f0000000|100%| O| |TAMS 0x00000004ef800000| PB 0x00000004ef800000| Untracked | 0 +| 466|0x00000004f0000000, 0x00000004f0800000, 0x00000004f0800000|100%| O| |TAMS 0x00000004f0000000| PB 0x00000004f0000000| Untracked | 0 +| 467|0x00000004f0800000, 0x00000004f1000000, 0x00000004f1000000|100%| O| |TAMS 0x00000004f0800000| PB 0x00000004f0800000| Untracked | 0 +| 468|0x00000004f1000000, 0x00000004f1800000, 0x00000004f1800000|100%| O| |TAMS 0x00000004f1000000| PB 0x00000004f1000000| Untracked | 0 +| 469|0x00000004f1800000, 0x00000004f2000000, 0x00000004f2000000|100%| O| |TAMS 0x00000004f1800000| PB 0x00000004f1800000| Untracked | 0 +| 470|0x00000004f2000000, 0x00000004f2800000, 0x00000004f2800000|100%| O| |TAMS 0x00000004f2000000| PB 0x00000004f2000000| Untracked | 0 +| 471|0x00000004f2800000, 0x00000004f3000000, 0x00000004f3000000|100%| O| |TAMS 0x00000004f2800000| PB 0x00000004f2800000| Untracked | 0 +| 472|0x00000004f3000000, 0x00000004f3800000, 0x00000004f3800000|100%| O| |TAMS 0x00000004f3000000| PB 0x00000004f3000000| Untracked | 0 +| 473|0x00000004f3800000, 0x00000004f4000000, 0x00000004f4000000|100%| O| |TAMS 0x00000004f3800000| PB 0x00000004f3800000| Untracked | 0 +| 474|0x00000004f4000000, 0x00000004f4800000, 0x00000004f4800000|100%| O| |TAMS 0x00000004f4000000| PB 0x00000004f4000000| Untracked | 0 +| 475|0x00000004f4800000, 0x00000004f5000000, 0x00000004f5000000|100%| O| |TAMS 0x00000004f4800000| PB 0x00000004f4800000| Untracked | 0 +| 476|0x00000004f5000000, 0x00000004f5800000, 0x00000004f5800000|100%| O| |TAMS 0x00000004f5000000| PB 0x00000004f5000000| Untracked | 0 +| 477|0x00000004f5800000, 0x00000004f6000000, 0x00000004f6000000|100%| O| |TAMS 0x00000004f5800000| PB 0x00000004f5800000| Untracked | 0 +| 478|0x00000004f6000000, 0x00000004f6800000, 0x00000004f6800000|100%| O| |TAMS 0x00000004f6000000| PB 0x00000004f6000000| Untracked | 0 +| 479|0x00000004f6800000, 0x00000004f7000000, 0x00000004f7000000|100%| O| |TAMS 0x00000004f6800000| PB 0x00000004f6800000| Untracked | 0 +| 480|0x00000004f7000000, 0x00000004f7800000, 0x00000004f7800000|100%| O| |TAMS 0x00000004f7000000| PB 0x00000004f7000000| Untracked | 0 +| 481|0x00000004f7800000, 0x00000004f8000000, 0x00000004f8000000|100%| O| |TAMS 0x00000004f7800000| PB 0x00000004f7800000| Untracked | 0 +| 482|0x00000004f8000000, 0x00000004f8800000, 0x00000004f8800000|100%| O| |TAMS 0x00000004f8000000| PB 0x00000004f8000000| Untracked | 0 +| 483|0x00000004f8800000, 0x00000004f9000000, 0x00000004f9000000|100%| O| |TAMS 0x00000004f8800000| PB 0x00000004f8800000| Untracked | 0 +| 484|0x00000004f9000000, 0x00000004f9800000, 0x00000004f9800000|100%| O| |TAMS 0x00000004f9000000| PB 0x00000004f9000000| Untracked | 0 +| 485|0x00000004f9800000, 0x00000004fa000000, 0x00000004fa000000|100%| O| |TAMS 0x00000004f9800000| PB 0x00000004f9800000| Untracked | 0 +| 486|0x00000004fa000000, 0x00000004fa800000, 0x00000004fa800000|100%| O| |TAMS 0x00000004fa000000| PB 0x00000004fa000000| Untracked | 0 +| 487|0x00000004fa800000, 0x00000004fb000000, 0x00000004fb000000|100%| O| |TAMS 0x00000004fa800000| PB 0x00000004fa800000| Untracked | 0 +| 488|0x00000004fb000000, 0x00000004fb800000, 0x00000004fb800000|100%| O| |TAMS 0x00000004fb000000| PB 0x00000004fb000000| Untracked | 0 +| 489|0x00000004fb800000, 0x00000004fc000000, 0x00000004fc000000|100%| O| |TAMS 0x00000004fb800000| PB 0x00000004fb800000| Untracked | 0 +| 490|0x00000004fc000000, 0x00000004fc800000, 0x00000004fc800000|100%| O| |TAMS 0x00000004fc000000| PB 0x00000004fc000000| Untracked | 0 +| 491|0x00000004fc800000, 0x00000004fd000000, 0x00000004fd000000|100%| O| |TAMS 0x00000004fc800000| PB 0x00000004fc800000| Untracked | 0 +| 492|0x00000004fd000000, 0x00000004fd800000, 0x00000004fd800000|100%| O| |TAMS 0x00000004fd000000| PB 0x00000004fd000000| Untracked | 0 +| 493|0x00000004fd800000, 0x00000004fe000000, 0x00000004fe000000|100%| O| |TAMS 0x00000004fd800000| PB 0x00000004fd800000| Untracked | 0 +| 494|0x00000004fe000000, 0x00000004fe800000, 0x00000004fe800000|100%| O| |TAMS 0x00000004fe000000| PB 0x00000004fe000000| Untracked | 0 +| 495|0x00000004fe800000, 0x00000004ff000000, 0x00000004ff000000|100%| O| |TAMS 0x00000004fe800000| PB 0x00000004fe800000| Untracked | 0 +| 496|0x00000004ff000000, 0x00000004ff800000, 0x00000004ff800000|100%| O| |TAMS 0x00000004ff000000| PB 0x00000004ff000000| Untracked | 0 +| 497|0x00000004ff800000, 0x0000000500000000, 0x0000000500000000|100%| O| |TAMS 0x00000004ff800000| PB 0x00000004ff800000| Untracked | 0 +| 498|0x0000000500000000, 0x0000000500800000, 0x0000000500800000|100%| O| |TAMS 0x0000000500000000| PB 0x0000000500000000| Untracked | 0 +| 499|0x0000000500800000, 0x0000000501000000, 0x0000000501000000|100%| O| |TAMS 0x0000000500800000| PB 0x0000000500800000| Untracked | 0 +| 500|0x0000000501000000, 0x0000000501800000, 0x0000000501800000|100%| O| |TAMS 0x0000000501000000| PB 0x0000000501000000| Untracked | 0 +| 501|0x0000000501800000, 0x0000000502000000, 0x0000000502000000|100%| O| |TAMS 0x0000000501800000| PB 0x0000000501800000| Untracked | 0 +| 502|0x0000000502000000, 0x0000000502800000, 0x0000000502800000|100%| O| |TAMS 0x0000000502000000| PB 0x0000000502000000| Untracked | 0 +| 503|0x0000000502800000, 0x0000000503000000, 0x0000000503000000|100%| O| |TAMS 0x0000000502800000| PB 0x0000000502800000| Untracked | 0 +| 504|0x0000000503000000, 0x0000000503800000, 0x0000000503800000|100%| O| |TAMS 0x0000000503000000| PB 0x0000000503000000| Untracked | 0 +| 505|0x0000000503800000, 0x0000000504000000, 0x0000000504000000|100%| O| |TAMS 0x0000000503800000| PB 0x0000000503800000| Untracked | 0 +| 506|0x0000000504000000, 0x0000000504800000, 0x0000000504800000|100%| O| |TAMS 0x0000000504000000| PB 0x0000000504000000| Untracked | 0 +| 507|0x0000000504800000, 0x0000000505000000, 0x0000000505000000|100%| O| |TAMS 0x0000000504800000| PB 0x0000000504800000| Untracked | 0 +| 508|0x0000000505000000, 0x0000000505800000, 0x0000000505800000|100%| O| |TAMS 0x0000000505000000| PB 0x0000000505000000| Untracked | 0 +| 509|0x0000000505800000, 0x0000000506000000, 0x0000000506000000|100%| O| |TAMS 0x0000000505800000| PB 0x0000000505800000| Untracked | 0 +| 510|0x0000000506000000, 0x0000000506800000, 0x0000000506800000|100%| O| |TAMS 0x0000000506000000| PB 0x0000000506000000| Untracked | 0 +| 511|0x0000000506800000, 0x0000000507000000, 0x0000000507000000|100%| O| |TAMS 0x0000000506800000| PB 0x0000000506800000| Untracked | 0 +| 512|0x0000000507000000, 0x0000000507800000, 0x0000000507800000|100%| O| |TAMS 0x0000000507000000| PB 0x0000000507000000| Untracked | 0 +| 513|0x0000000507800000, 0x0000000508000000, 0x0000000508000000|100%| O| |TAMS 0x0000000507800000| PB 0x0000000507800000| Untracked | 0 +| 514|0x0000000508000000, 0x0000000508800000, 0x0000000508800000|100%| O| |TAMS 0x0000000508000000| PB 0x0000000508000000| Untracked | 0 +| 515|0x0000000508800000, 0x0000000509000000, 0x0000000509000000|100%| O| |TAMS 0x0000000508800000| PB 0x0000000508800000| Untracked | 0 +| 516|0x0000000509000000, 0x0000000509800000, 0x0000000509800000|100%| O| |TAMS 0x0000000509000000| PB 0x0000000509000000| Untracked | 0 +| 517|0x0000000509800000, 0x000000050a000000, 0x000000050a000000|100%| O| |TAMS 0x0000000509800000| PB 0x0000000509800000| Untracked | 0 +| 518|0x000000050a000000, 0x000000050a800000, 0x000000050a800000|100%| O| |TAMS 0x000000050a000000| PB 0x000000050a000000| Untracked | 0 +| 519|0x000000050a800000, 0x000000050b000000, 0x000000050b000000|100%| O| |TAMS 0x000000050a800000| PB 0x000000050a800000| Untracked | 0 +| 520|0x000000050b000000, 0x000000050b7b5480, 0x000000050b800000| 96%| O| |TAMS 0x000000050b000000| PB 0x000000050b000000| Untracked | 0 +| 521|0x000000050b800000, 0x000000050b800000, 0x000000050c000000| 0%| F| |TAMS 0x000000050b800000| PB 0x000000050b800000| Untracked | 0 +| 522|0x000000050c000000, 0x000000050c000000, 0x000000050c800000| 0%| F| |TAMS 0x000000050c000000| PB 0x000000050c000000| Untracked | 0 +| 523|0x000000050c800000, 0x000000050c800000, 0x000000050d000000| 0%| F| |TAMS 0x000000050c800000| PB 0x000000050c800000| Untracked | 0 +| 524|0x000000050d000000, 0x000000050d000000, 0x000000050d800000| 0%| F| |TAMS 0x000000050d000000| PB 0x000000050d000000| Untracked | 0 +| 525|0x000000050d800000, 0x000000050d800000, 0x000000050e000000| 0%| F| |TAMS 0x000000050d800000| PB 0x000000050d800000| Untracked | 0 +| 526|0x000000050e000000, 0x000000050e000000, 0x000000050e800000| 0%| F| |TAMS 0x000000050e000000| PB 0x000000050e000000| Untracked | 0 +| 527|0x000000050e800000, 0x000000050e800000, 0x000000050f000000| 0%| F| |TAMS 0x000000050e800000| PB 0x000000050e800000| Untracked | 0 +| 528|0x000000050f000000, 0x000000050f000000, 0x000000050f800000| 0%| F| |TAMS 0x000000050f000000| PB 0x000000050f000000| Untracked | 0 +| 529|0x000000050f800000, 0x000000050f800000, 0x0000000510000000| 0%| F| |TAMS 0x000000050f800000| PB 0x000000050f800000| Untracked | 0 +| 530|0x0000000510000000, 0x0000000510000000, 0x0000000510800000| 0%| F| |TAMS 0x0000000510000000| PB 0x0000000510000000| Untracked | 0 +| 531|0x0000000510800000, 0x0000000510800000, 0x0000000511000000| 0%| F| |TAMS 0x0000000510800000| PB 0x0000000510800000| Untracked | 0 +| 532|0x0000000511000000, 0x0000000511000000, 0x0000000511800000| 0%| F| |TAMS 0x0000000511000000| PB 0x0000000511000000| Untracked | 0 +| 533|0x0000000511800000, 0x0000000511800000, 0x0000000512000000| 0%| F| |TAMS 0x0000000511800000| PB 0x0000000511800000| Untracked | 0 +| 534|0x0000000512000000, 0x0000000512000000, 0x0000000512800000| 0%| F| |TAMS 0x0000000512000000| PB 0x0000000512000000| Untracked | 0 +| 535|0x0000000512800000, 0x0000000512800000, 0x0000000513000000| 0%| F| |TAMS 0x0000000512800000| PB 0x0000000512800000| Untracked | 0 +| 536|0x0000000513000000, 0x0000000513000000, 0x0000000513800000| 0%| F| |TAMS 0x0000000513000000| PB 0x0000000513000000| Untracked | 0 +| 537|0x0000000513800000, 0x0000000513800000, 0x0000000514000000| 0%| F| |TAMS 0x0000000513800000| PB 0x0000000513800000| Untracked | 0 +| 538|0x0000000514000000, 0x0000000514000000, 0x0000000514800000| 0%| F| |TAMS 0x0000000514000000| PB 0x0000000514000000| Untracked | 0 +| 539|0x0000000514800000, 0x0000000514800000, 0x0000000515000000| 0%| F| |TAMS 0x0000000514800000| PB 0x0000000514800000| Untracked | 0 +| 540|0x0000000515000000, 0x0000000515000000, 0x0000000515800000| 0%| F| |TAMS 0x0000000515000000| PB 0x0000000515000000| Untracked | 0 +| 541|0x0000000515800000, 0x0000000515800000, 0x0000000516000000| 0%| F| |TAMS 0x0000000515800000| PB 0x0000000515800000| Untracked | 0 +| 542|0x0000000516000000, 0x0000000516000000, 0x0000000516800000| 0%| F| |TAMS 0x0000000516000000| PB 0x0000000516000000| Untracked | 0 +| 543|0x0000000516800000, 0x0000000516800000, 0x0000000517000000| 0%| F| |TAMS 0x0000000516800000| PB 0x0000000516800000| Untracked | 0 +| 544|0x0000000517000000, 0x0000000517000000, 0x0000000517800000| 0%| F| |TAMS 0x0000000517000000| PB 0x0000000517000000| Untracked | 0 +| 545|0x0000000517800000, 0x0000000517800000, 0x0000000518000000| 0%| F| |TAMS 0x0000000517800000| PB 0x0000000517800000| Untracked | 0 +| 546|0x0000000518000000, 0x0000000518000000, 0x0000000518800000| 0%| F| |TAMS 0x0000000518000000| PB 0x0000000518000000| Untracked | 0 +| 547|0x0000000518800000, 0x0000000518800000, 0x0000000519000000| 0%| F| |TAMS 0x0000000518800000| PB 0x0000000518800000| Untracked | 0 +| 548|0x0000000519000000, 0x0000000519000000, 0x0000000519800000| 0%| F| |TAMS 0x0000000519000000| PB 0x0000000519000000| Untracked | 0 +| 549|0x0000000519800000, 0x0000000519800000, 0x000000051a000000| 0%| F| |TAMS 0x0000000519800000| PB 0x0000000519800000| Untracked | 0 +| 550|0x000000051a000000, 0x000000051a000000, 0x000000051a800000| 0%| F| |TAMS 0x000000051a000000| PB 0x000000051a000000| Untracked | 0 +| 551|0x000000051a800000, 0x000000051a800000, 0x000000051b000000| 0%| F| |TAMS 0x000000051a800000| PB 0x000000051a800000| Untracked | 0 +| 552|0x000000051b000000, 0x000000051b000000, 0x000000051b800000| 0%| F| |TAMS 0x000000051b000000| PB 0x000000051b000000| Untracked | 0 +| 553|0x000000051b800000, 0x000000051b800000, 0x000000051c000000| 0%| F| |TAMS 0x000000051b800000| PB 0x000000051b800000| Untracked | 0 +| 554|0x000000051c000000, 0x000000051c000000, 0x000000051c800000| 0%| F| |TAMS 0x000000051c000000| PB 0x000000051c000000| Untracked | 0 +| 555|0x000000051c800000, 0x000000051c800000, 0x000000051d000000| 0%| F| |TAMS 0x000000051c800000| PB 0x000000051c800000| Untracked | 0 +| 556|0x000000051d000000, 0x000000051d000000, 0x000000051d800000| 0%| F| |TAMS 0x000000051d000000| PB 0x000000051d000000| Untracked | 0 +| 557|0x000000051d800000, 0x000000051d800000, 0x000000051e000000| 0%| F| |TAMS 0x000000051d800000| PB 0x000000051d800000| Untracked | 0 +| 558|0x000000051e000000, 0x000000051e000000, 0x000000051e800000| 0%| F| |TAMS 0x000000051e000000| PB 0x000000051e000000| Untracked | 0 +| 559|0x000000051e800000, 0x000000051e800000, 0x000000051f000000| 0%| F| |TAMS 0x000000051e800000| PB 0x000000051e800000| Untracked | 0 +| 560|0x000000051f000000, 0x000000051f000000, 0x000000051f800000| 0%| F| |TAMS 0x000000051f000000| PB 0x000000051f000000| Untracked | 0 +| 561|0x000000051f800000, 0x000000051f800000, 0x0000000520000000| 0%| F| |TAMS 0x000000051f800000| PB 0x000000051f800000| Untracked | 0 +| 562|0x0000000520000000, 0x0000000520000000, 0x0000000520800000| 0%| F| |TAMS 0x0000000520000000| PB 0x0000000520000000| Untracked | 0 +| 563|0x0000000520800000, 0x0000000520800000, 0x0000000521000000| 0%| F| |TAMS 0x0000000520800000| PB 0x0000000520800000| Untracked | 0 +| 564|0x0000000521000000, 0x0000000521000000, 0x0000000521800000| 0%| F| |TAMS 0x0000000521000000| PB 0x0000000521000000| Untracked | 0 +| 565|0x0000000521800000, 0x0000000521800000, 0x0000000522000000| 0%| F| |TAMS 0x0000000521800000| PB 0x0000000521800000| Untracked | 0 +| 566|0x0000000522000000, 0x0000000522000000, 0x0000000522800000| 0%| F| |TAMS 0x0000000522000000| PB 0x0000000522000000| Untracked | 0 +| 567|0x0000000522800000, 0x0000000522800000, 0x0000000523000000| 0%| F| |TAMS 0x0000000522800000| PB 0x0000000522800000| Untracked | 0 +| 568|0x0000000523000000, 0x0000000523000000, 0x0000000523800000| 0%| F| |TAMS 0x0000000523000000| PB 0x0000000523000000| Untracked | 0 +| 569|0x0000000523800000, 0x0000000523800000, 0x0000000524000000| 0%| F| |TAMS 0x0000000523800000| PB 0x0000000523800000| Untracked | 0 +| 570|0x0000000524000000, 0x0000000524000000, 0x0000000524800000| 0%| F| |TAMS 0x0000000524000000| PB 0x0000000524000000| Untracked | 0 +| 571|0x0000000524800000, 0x0000000524800000, 0x0000000525000000| 0%| F| |TAMS 0x0000000524800000| PB 0x0000000524800000| Untracked | 0 +| 572|0x0000000525000000, 0x0000000525000000, 0x0000000525800000| 0%| F| |TAMS 0x0000000525000000| PB 0x0000000525000000| Untracked | 0 +| 573|0x0000000525800000, 0x0000000525800000, 0x0000000526000000| 0%| F| |TAMS 0x0000000525800000| PB 0x0000000525800000| Untracked | 0 +| 574|0x0000000526000000, 0x0000000526000000, 0x0000000526800000| 0%| F| |TAMS 0x0000000526000000| PB 0x0000000526000000| Untracked | 0 +| 575|0x0000000526800000, 0x0000000526800000, 0x0000000527000000| 0%| F| |TAMS 0x0000000526800000| PB 0x0000000526800000| Untracked | 0 +| 576|0x0000000527000000, 0x0000000527000000, 0x0000000527800000| 0%| F| |TAMS 0x0000000527000000| PB 0x0000000527000000| Untracked | 0 +| 577|0x0000000527800000, 0x0000000527800000, 0x0000000528000000| 0%| F| |TAMS 0x0000000527800000| PB 0x0000000527800000| Untracked | 0 +| 578|0x0000000528000000, 0x0000000528000000, 0x0000000528800000| 0%| F| |TAMS 0x0000000528000000| PB 0x0000000528000000| Untracked | 0 +| 579|0x0000000528800000, 0x0000000528800000, 0x0000000529000000| 0%| F| |TAMS 0x0000000528800000| PB 0x0000000528800000| Untracked | 0 +| 580|0x0000000529000000, 0x0000000529000000, 0x0000000529800000| 0%| F| |TAMS 0x0000000529000000| PB 0x0000000529000000| Untracked | 0 +| 581|0x0000000529800000, 0x0000000529800000, 0x000000052a000000| 0%| F| |TAMS 0x0000000529800000| PB 0x0000000529800000| Untracked | 0 +| 582|0x000000052a000000, 0x000000052a000000, 0x000000052a800000| 0%| F| |TAMS 0x000000052a000000| PB 0x000000052a000000| Untracked | 0 +| 583|0x000000052a800000, 0x000000052a800000, 0x000000052b000000| 0%| F| |TAMS 0x000000052a800000| PB 0x000000052a800000| Untracked | 0 +| 584|0x000000052b000000, 0x000000052b000000, 0x000000052b800000| 0%| F| |TAMS 0x000000052b000000| PB 0x000000052b000000| Untracked | 0 +| 585|0x000000052b800000, 0x000000052b800000, 0x000000052c000000| 0%| F| |TAMS 0x000000052b800000| PB 0x000000052b800000| Untracked | 0 +| 586|0x000000052c000000, 0x000000052c000000, 0x000000052c800000| 0%| F| |TAMS 0x000000052c000000| PB 0x000000052c000000| Untracked | 0 +| 587|0x000000052c800000, 0x000000052c800000, 0x000000052d000000| 0%| F| |TAMS 0x000000052c800000| PB 0x000000052c800000| Untracked | 0 +| 588|0x000000052d000000, 0x000000052d000000, 0x000000052d800000| 0%| F| |TAMS 0x000000052d000000| PB 0x000000052d000000| Untracked | 0 +| 589|0x000000052d800000, 0x000000052d800000, 0x000000052e000000| 0%| F| |TAMS 0x000000052d800000| PB 0x000000052d800000| Untracked | 0 +| 590|0x000000052e000000, 0x000000052e000000, 0x000000052e800000| 0%| F| |TAMS 0x000000052e000000| PB 0x000000052e000000| Untracked | 0 +| 591|0x000000052e800000, 0x000000052e800000, 0x000000052f000000| 0%| F| |TAMS 0x000000052e800000| PB 0x000000052e800000| Untracked | 0 +| 592|0x000000052f000000, 0x000000052f000000, 0x000000052f800000| 0%| F| |TAMS 0x000000052f000000| PB 0x000000052f000000| Untracked | 0 +| 593|0x000000052f800000, 0x000000052f800000, 0x0000000530000000| 0%| F| |TAMS 0x000000052f800000| PB 0x000000052f800000| Untracked | 0 +| 594|0x0000000530000000, 0x0000000530000000, 0x0000000530800000| 0%| F| |TAMS 0x0000000530000000| PB 0x0000000530000000| Untracked | 0 +| 595|0x0000000530800000, 0x0000000530800000, 0x0000000531000000| 0%| F| |TAMS 0x0000000530800000| PB 0x0000000530800000| Untracked | 0 +| 596|0x0000000531000000, 0x0000000531000000, 0x0000000531800000| 0%| F| |TAMS 0x0000000531000000| PB 0x0000000531000000| Untracked | 0 +| 597|0x0000000531800000, 0x0000000531800000, 0x0000000532000000| 0%| F| |TAMS 0x0000000531800000| PB 0x0000000531800000| Untracked | 0 +| 598|0x0000000532000000, 0x0000000532000000, 0x0000000532800000| 0%| F| |TAMS 0x0000000532000000| PB 0x0000000532000000| Untracked | 0 +| 599|0x0000000532800000, 0x0000000532800000, 0x0000000533000000| 0%| F| |TAMS 0x0000000532800000| PB 0x0000000532800000| Untracked | 0 +| 600|0x0000000533000000, 0x0000000533000000, 0x0000000533800000| 0%| F| |TAMS 0x0000000533000000| PB 0x0000000533000000| Untracked | 0 +| 601|0x0000000533800000, 0x0000000533800000, 0x0000000534000000| 0%| F| |TAMS 0x0000000533800000| PB 0x0000000533800000| Untracked | 0 +| 602|0x0000000534000000, 0x0000000534000000, 0x0000000534800000| 0%| F| |TAMS 0x0000000534000000| PB 0x0000000534000000| Untracked | 0 +| 603|0x0000000534800000, 0x0000000534800000, 0x0000000535000000| 0%| F| |TAMS 0x0000000534800000| PB 0x0000000534800000| Untracked | 0 +| 604|0x0000000535000000, 0x0000000535000000, 0x0000000535800000| 0%| F| |TAMS 0x0000000535000000| PB 0x0000000535000000| Untracked | 0 +| 605|0x0000000535800000, 0x0000000535800000, 0x0000000536000000| 0%| F| |TAMS 0x0000000535800000| PB 0x0000000535800000| Untracked | 0 +| 606|0x0000000536000000, 0x0000000536000000, 0x0000000536800000| 0%| F| |TAMS 0x0000000536000000| PB 0x0000000536000000| Untracked | 0 +| 607|0x0000000536800000, 0x0000000536800000, 0x0000000537000000| 0%| F| |TAMS 0x0000000536800000| PB 0x0000000536800000| Untracked | 0 +| 608|0x0000000537000000, 0x0000000537000000, 0x0000000537800000| 0%| F| |TAMS 0x0000000537000000| PB 0x0000000537000000| Untracked | 0 +| 609|0x0000000537800000, 0x0000000537800000, 0x0000000538000000| 0%| F| |TAMS 0x0000000537800000| PB 0x0000000537800000| Untracked | 0 +| 610|0x0000000538000000, 0x0000000538000000, 0x0000000538800000| 0%| F| |TAMS 0x0000000538000000| PB 0x0000000538000000| Untracked | 0 +| 611|0x0000000538800000, 0x0000000538800000, 0x0000000539000000| 0%| F| |TAMS 0x0000000538800000| PB 0x0000000538800000| Untracked | 0 +| 612|0x0000000539000000, 0x0000000539000000, 0x0000000539800000| 0%| F| |TAMS 0x0000000539000000| PB 0x0000000539000000| Untracked | 0 +| 613|0x0000000539800000, 0x0000000539800000, 0x000000053a000000| 0%| F| |TAMS 0x0000000539800000| PB 0x0000000539800000| Untracked | 0 +| 614|0x000000053a000000, 0x000000053a000000, 0x000000053a800000| 0%| F| |TAMS 0x000000053a000000| PB 0x000000053a000000| Untracked | 0 +| 615|0x000000053a800000, 0x000000053a800000, 0x000000053b000000| 0%| F| |TAMS 0x000000053a800000| PB 0x000000053a800000| Untracked | 0 +| 616|0x000000053b000000, 0x000000053b000000, 0x000000053b800000| 0%| F| |TAMS 0x000000053b000000| PB 0x000000053b000000| Untracked | 0 +| 617|0x000000053b800000, 0x000000053b800000, 0x000000053c000000| 0%| F| |TAMS 0x000000053b800000| PB 0x000000053b800000| Untracked | 0 +| 618|0x000000053c000000, 0x000000053c000000, 0x000000053c800000| 0%| F| |TAMS 0x000000053c000000| PB 0x000000053c000000| Untracked | 0 +| 619|0x000000053c800000, 0x000000053c800000, 0x000000053d000000| 0%| F| |TAMS 0x000000053c800000| PB 0x000000053c800000| Untracked | 0 +| 620|0x000000053d000000, 0x000000053d000000, 0x000000053d800000| 0%| F| |TAMS 0x000000053d000000| PB 0x000000053d000000| Untracked | 0 +| 621|0x000000053d800000, 0x000000053d800000, 0x000000053e000000| 0%| F| |TAMS 0x000000053d800000| PB 0x000000053d800000| Untracked | 0 +| 622|0x000000053e000000, 0x000000053e000000, 0x000000053e800000| 0%| F| |TAMS 0x000000053e000000| PB 0x000000053e000000| Untracked | 0 +| 623|0x000000053e800000, 0x000000053e800000, 0x000000053f000000| 0%| F| |TAMS 0x000000053e800000| PB 0x000000053e800000| Untracked | 0 +| 624|0x000000053f000000, 0x000000053f000000, 0x000000053f800000| 0%| F| |TAMS 0x000000053f000000| PB 0x000000053f000000| Untracked | 0 +| 625|0x000000053f800000, 0x000000053f800000, 0x0000000540000000| 0%| F| |TAMS 0x000000053f800000| PB 0x000000053f800000| Untracked | 0 +| 626|0x0000000540000000, 0x0000000540000000, 0x0000000540800000| 0%| F| |TAMS 0x0000000540000000| PB 0x0000000540000000| Untracked | 0 +| 627|0x0000000540800000, 0x0000000540800000, 0x0000000541000000| 0%| F| |TAMS 0x0000000540800000| PB 0x0000000540800000| Untracked | 0 +| 628|0x0000000541000000, 0x0000000541000000, 0x0000000541800000| 0%| F| |TAMS 0x0000000541000000| PB 0x0000000541000000| Untracked | 0 +| 629|0x0000000541800000, 0x0000000541800000, 0x0000000542000000| 0%| F| |TAMS 0x0000000541800000| PB 0x0000000541800000| Untracked | 0 +| 630|0x0000000542000000, 0x0000000542000000, 0x0000000542800000| 0%| F| |TAMS 0x0000000542000000| PB 0x0000000542000000| Untracked | 0 +| 631|0x0000000542800000, 0x0000000542800000, 0x0000000543000000| 0%| F| |TAMS 0x0000000542800000| PB 0x0000000542800000| Untracked | 0 +| 632|0x0000000543000000, 0x0000000543000000, 0x0000000543800000| 0%| F| |TAMS 0x0000000543000000| PB 0x0000000543000000| Untracked | 0 +| 633|0x0000000543800000, 0x0000000543800000, 0x0000000544000000| 0%| F| |TAMS 0x0000000543800000| PB 0x0000000543800000| Untracked | 0 +| 634|0x0000000544000000, 0x0000000544000000, 0x0000000544800000| 0%| F| |TAMS 0x0000000544000000| PB 0x0000000544000000| Untracked | 0 +| 635|0x0000000544800000, 0x0000000544800000, 0x0000000545000000| 0%| F| |TAMS 0x0000000544800000| PB 0x0000000544800000| Untracked | 0 +| 636|0x0000000545000000, 0x0000000545000000, 0x0000000545800000| 0%| F| |TAMS 0x0000000545000000| PB 0x0000000545000000| Untracked | 0 +| 637|0x0000000545800000, 0x0000000545800000, 0x0000000546000000| 0%| F| |TAMS 0x0000000545800000| PB 0x0000000545800000| Untracked | 0 +| 638|0x0000000546000000, 0x0000000546000000, 0x0000000546800000| 0%| F| |TAMS 0x0000000546000000| PB 0x0000000546000000| Untracked | 0 +| 639|0x0000000546800000, 0x0000000546800000, 0x0000000547000000| 0%| F| |TAMS 0x0000000546800000| PB 0x0000000546800000| Untracked | 0 +| 640|0x0000000547000000, 0x0000000547000000, 0x0000000547800000| 0%| F| |TAMS 0x0000000547000000| PB 0x0000000547000000| Untracked | 0 +| 641|0x0000000547800000, 0x0000000547800000, 0x0000000548000000| 0%| F| |TAMS 0x0000000547800000| PB 0x0000000547800000| Untracked | 0 +| 642|0x0000000548000000, 0x0000000548000000, 0x0000000548800000| 0%| F| |TAMS 0x0000000548000000| PB 0x0000000548000000| Untracked | 0 +| 643|0x0000000548800000, 0x0000000548800000, 0x0000000549000000| 0%| F| |TAMS 0x0000000548800000| PB 0x0000000548800000| Untracked | 0 +| 644|0x0000000549000000, 0x0000000549000000, 0x0000000549800000| 0%| F| |TAMS 0x0000000549000000| PB 0x0000000549000000| Untracked | 0 +| 645|0x0000000549800000, 0x0000000549800000, 0x000000054a000000| 0%| F| |TAMS 0x0000000549800000| PB 0x0000000549800000| Untracked | 0 +| 646|0x000000054a000000, 0x000000054a000000, 0x000000054a800000| 0%| F| |TAMS 0x000000054a000000| PB 0x000000054a000000| Untracked | 0 +| 647|0x000000054a800000, 0x000000054a800000, 0x000000054b000000| 0%| F| |TAMS 0x000000054a800000| PB 0x000000054a800000| Untracked | 0 +| 648|0x000000054b000000, 0x000000054b000000, 0x000000054b800000| 0%| F| |TAMS 0x000000054b000000| PB 0x000000054b000000| Untracked | 0 +| 649|0x000000054b800000, 0x000000054b800000, 0x000000054c000000| 0%| F| |TAMS 0x000000054b800000| PB 0x000000054b800000| Untracked | 0 +| 650|0x000000054c000000, 0x000000054c000000, 0x000000054c800000| 0%| F| |TAMS 0x000000054c000000| PB 0x000000054c000000| Untracked | 0 +| 651|0x000000054c800000, 0x000000054c800000, 0x000000054d000000| 0%| F| |TAMS 0x000000054c800000| PB 0x000000054c800000| Untracked | 0 +| 652|0x000000054d000000, 0x000000054d000000, 0x000000054d800000| 0%| F| |TAMS 0x000000054d000000| PB 0x000000054d000000| Untracked | 0 +| 653|0x000000054d800000, 0x000000054d800000, 0x000000054e000000| 0%| F| |TAMS 0x000000054d800000| PB 0x000000054d800000| Untracked | 0 +| 654|0x000000054e000000, 0x000000054e000000, 0x000000054e800000| 0%| F| |TAMS 0x000000054e000000| PB 0x000000054e000000| Untracked | 0 +| 655|0x000000054e800000, 0x000000054e800000, 0x000000054f000000| 0%| F| |TAMS 0x000000054e800000| PB 0x000000054e800000| Untracked | 0 +| 656|0x000000054f000000, 0x000000054f000000, 0x000000054f800000| 0%| F| |TAMS 0x000000054f000000| PB 0x000000054f000000| Untracked | 0 +| 657|0x000000054f800000, 0x000000054f800000, 0x0000000550000000| 0%| F| |TAMS 0x000000054f800000| PB 0x000000054f800000| Untracked | 0 +| 658|0x0000000550000000, 0x0000000550000000, 0x0000000550800000| 0%| F| |TAMS 0x0000000550000000| PB 0x0000000550000000| Untracked | 0 +| 659|0x0000000550800000, 0x0000000550800000, 0x0000000551000000| 0%| F| |TAMS 0x0000000550800000| PB 0x0000000550800000| Untracked | 0 +| 660|0x0000000551000000, 0x0000000551000000, 0x0000000551800000| 0%| F| |TAMS 0x0000000551000000| PB 0x0000000551000000| Untracked | 0 +| 661|0x0000000551800000, 0x0000000551800000, 0x0000000552000000| 0%| F| |TAMS 0x0000000551800000| PB 0x0000000551800000| Untracked | 0 +| 662|0x0000000552000000, 0x0000000552000000, 0x0000000552800000| 0%| F| |TAMS 0x0000000552000000| PB 0x0000000552000000| Untracked | 0 +| 663|0x0000000552800000, 0x0000000552800000, 0x0000000553000000| 0%| F| |TAMS 0x0000000552800000| PB 0x0000000552800000| Untracked | 0 +| 664|0x0000000553000000, 0x0000000553000000, 0x0000000553800000| 0%| F| |TAMS 0x0000000553000000| PB 0x0000000553000000| Untracked | 0 +| 665|0x0000000553800000, 0x0000000553800000, 0x0000000554000000| 0%| F| |TAMS 0x0000000553800000| PB 0x0000000553800000| Untracked | 0 +| 666|0x0000000554000000, 0x0000000554000000, 0x0000000554800000| 0%| F| |TAMS 0x0000000554000000| PB 0x0000000554000000| Untracked | 0 +| 667|0x0000000554800000, 0x0000000554800000, 0x0000000555000000| 0%| F| |TAMS 0x0000000554800000| PB 0x0000000554800000| Untracked | 0 +| 668|0x0000000555000000, 0x0000000555000000, 0x0000000555800000| 0%| F| |TAMS 0x0000000555000000| PB 0x0000000555000000| Untracked | 0 +| 669|0x0000000555800000, 0x0000000555800000, 0x0000000556000000| 0%| F| |TAMS 0x0000000555800000| PB 0x0000000555800000| Untracked | 0 +| 670|0x0000000556000000, 0x0000000556000000, 0x0000000556800000| 0%| F| |TAMS 0x0000000556000000| PB 0x0000000556000000| Untracked | 0 +| 671|0x0000000556800000, 0x0000000556800000, 0x0000000557000000| 0%| F| |TAMS 0x0000000556800000| PB 0x0000000556800000| Untracked | 0 +| 672|0x0000000557000000, 0x0000000557000000, 0x0000000557800000| 0%| F| |TAMS 0x0000000557000000| PB 0x0000000557000000| Untracked | 0 +| 673|0x0000000557800000, 0x0000000557800000, 0x0000000558000000| 0%| F| |TAMS 0x0000000557800000| PB 0x0000000557800000| Untracked | 0 +| 674|0x0000000558000000, 0x0000000558000000, 0x0000000558800000| 0%| F| |TAMS 0x0000000558000000| PB 0x0000000558000000| Untracked | 0 +| 675|0x0000000558800000, 0x0000000558800000, 0x0000000559000000| 0%| F| |TAMS 0x0000000558800000| PB 0x0000000558800000| Untracked | 0 +| 676|0x0000000559000000, 0x0000000559000000, 0x0000000559800000| 0%| F| |TAMS 0x0000000559000000| PB 0x0000000559000000| Untracked | 0 +| 677|0x0000000559800000, 0x0000000559800000, 0x000000055a000000| 0%| F| |TAMS 0x0000000559800000| PB 0x0000000559800000| Untracked | 0 +| 678|0x000000055a000000, 0x000000055a000000, 0x000000055a800000| 0%| F| |TAMS 0x000000055a000000| PB 0x000000055a000000| Untracked | 0 +| 679|0x000000055a800000, 0x000000055a800000, 0x000000055b000000| 0%| F| |TAMS 0x000000055a800000| PB 0x000000055a800000| Untracked | 0 +| 680|0x000000055b000000, 0x000000055b000000, 0x000000055b800000| 0%| F| |TAMS 0x000000055b000000| PB 0x000000055b000000| Untracked | 0 +| 681|0x000000055b800000, 0x000000055b800000, 0x000000055c000000| 0%| F| |TAMS 0x000000055b800000| PB 0x000000055b800000| Untracked | 0 +| 682|0x000000055c000000, 0x000000055c000000, 0x000000055c800000| 0%| F| |TAMS 0x000000055c000000| PB 0x000000055c000000| Untracked | 0 +| 683|0x000000055c800000, 0x000000055c800000, 0x000000055d000000| 0%| F| |TAMS 0x000000055c800000| PB 0x000000055c800000| Untracked | 0 +| 684|0x000000055d000000, 0x000000055d000000, 0x000000055d800000| 0%| F| |TAMS 0x000000055d000000| PB 0x000000055d000000| Untracked | 0 +| 685|0x000000055d800000, 0x000000055d800000, 0x000000055e000000| 0%| F| |TAMS 0x000000055d800000| PB 0x000000055d800000| Untracked | 0 +| 686|0x000000055e000000, 0x000000055e000000, 0x000000055e800000| 0%| F| |TAMS 0x000000055e000000| PB 0x000000055e000000| Untracked | 0 +| 687|0x000000055e800000, 0x000000055e800000, 0x000000055f000000| 0%| F| |TAMS 0x000000055e800000| PB 0x000000055e800000| Untracked | 0 +| 688|0x000000055f000000, 0x000000055f000000, 0x000000055f800000| 0%| F| |TAMS 0x000000055f000000| PB 0x000000055f000000| Untracked | 0 +| 689|0x000000055f800000, 0x000000055f800000, 0x0000000560000000| 0%| F| |TAMS 0x000000055f800000| PB 0x000000055f800000| Untracked | 0 +| 690|0x0000000560000000, 0x0000000560000000, 0x0000000560800000| 0%| F| |TAMS 0x0000000560000000| PB 0x0000000560000000| Untracked | 0 +| 691|0x0000000560800000, 0x0000000560800000, 0x0000000561000000| 0%| F| |TAMS 0x0000000560800000| PB 0x0000000560800000| Untracked | 0 +| 692|0x0000000561000000, 0x0000000561000000, 0x0000000561800000| 0%| F| |TAMS 0x0000000561000000| PB 0x0000000561000000| Untracked | 0 +| 693|0x0000000561800000, 0x0000000561800000, 0x0000000562000000| 0%| F| |TAMS 0x0000000561800000| PB 0x0000000561800000| Untracked | 0 +| 694|0x0000000562000000, 0x0000000562000000, 0x0000000562800000| 0%| F| |TAMS 0x0000000562000000| PB 0x0000000562000000| Untracked | 0 +| 695|0x0000000562800000, 0x0000000562800000, 0x0000000563000000| 0%| F| |TAMS 0x0000000562800000| PB 0x0000000562800000| Untracked | 0 +| 696|0x0000000563000000, 0x0000000563000000, 0x0000000563800000| 0%| F| |TAMS 0x0000000563000000| PB 0x0000000563000000| Untracked | 0 +| 697|0x0000000563800000, 0x0000000563800000, 0x0000000564000000| 0%| F| |TAMS 0x0000000563800000| PB 0x0000000563800000| Untracked | 0 +| 698|0x0000000564000000, 0x0000000564000000, 0x0000000564800000| 0%| F| |TAMS 0x0000000564000000| PB 0x0000000564000000| Untracked | 0 +| 699|0x0000000564800000, 0x0000000564800000, 0x0000000565000000| 0%| F| |TAMS 0x0000000564800000| PB 0x0000000564800000| Untracked | 0 +| 700|0x0000000565000000, 0x0000000565000000, 0x0000000565800000| 0%| F| |TAMS 0x0000000565000000| PB 0x0000000565000000| Untracked | 0 +| 701|0x0000000565800000, 0x0000000565800000, 0x0000000566000000| 0%| F| |TAMS 0x0000000565800000| PB 0x0000000565800000| Untracked | 0 +| 702|0x0000000566000000, 0x0000000566000000, 0x0000000566800000| 0%| F| |TAMS 0x0000000566000000| PB 0x0000000566000000| Untracked | 0 +| 703|0x0000000566800000, 0x0000000566800000, 0x0000000567000000| 0%| F| |TAMS 0x0000000566800000| PB 0x0000000566800000| Untracked | 0 +| 704|0x0000000567000000, 0x0000000567000000, 0x0000000567800000| 0%| F| |TAMS 0x0000000567000000| PB 0x0000000567000000| Untracked | 0 +| 705|0x0000000567800000, 0x0000000567800000, 0x0000000568000000| 0%| F| |TAMS 0x0000000567800000| PB 0x0000000567800000| Untracked | 0 +| 706|0x0000000568000000, 0x0000000568000000, 0x0000000568800000| 0%| F| |TAMS 0x0000000568000000| PB 0x0000000568000000| Untracked | 0 +| 707|0x0000000568800000, 0x0000000568800000, 0x0000000569000000| 0%| F| |TAMS 0x0000000568800000| PB 0x0000000568800000| Untracked | 0 +| 708|0x0000000569000000, 0x0000000569000000, 0x0000000569800000| 0%| F| |TAMS 0x0000000569000000| PB 0x0000000569000000| Untracked | 0 +| 709|0x0000000569800000, 0x0000000569800000, 0x000000056a000000| 0%| F| |TAMS 0x0000000569800000| PB 0x0000000569800000| Untracked | 0 +| 710|0x000000056a000000, 0x000000056a000000, 0x000000056a800000| 0%| F| |TAMS 0x000000056a000000| PB 0x000000056a000000| Untracked | 0 +| 711|0x000000056a800000, 0x000000056a800000, 0x000000056b000000| 0%| F| |TAMS 0x000000056a800000| PB 0x000000056a800000| Untracked | 0 +| 712|0x000000056b000000, 0x000000056b000000, 0x000000056b800000| 0%| F| |TAMS 0x000000056b000000| PB 0x000000056b000000| Untracked | 0 +| 713|0x000000056b800000, 0x000000056b800000, 0x000000056c000000| 0%| F| |TAMS 0x000000056b800000| PB 0x000000056b800000| Untracked | 0 +| 714|0x000000056c000000, 0x000000056c000000, 0x000000056c800000| 0%| F| |TAMS 0x000000056c000000| PB 0x000000056c000000| Untracked | 0 +| 715|0x000000056c800000, 0x000000056c800000, 0x000000056d000000| 0%| F| |TAMS 0x000000056c800000| PB 0x000000056c800000| Untracked | 0 +| 716|0x000000056d000000, 0x000000056d000000, 0x000000056d800000| 0%| F| |TAMS 0x000000056d000000| PB 0x000000056d000000| Untracked | 0 +| 717|0x000000056d800000, 0x000000056d800000, 0x000000056e000000| 0%| F| |TAMS 0x000000056d800000| PB 0x000000056d800000| Untracked | 0 +| 718|0x000000056e000000, 0x000000056e000000, 0x000000056e800000| 0%| F| |TAMS 0x000000056e000000| PB 0x000000056e000000| Untracked | 0 +| 719|0x000000056e800000, 0x000000056e800000, 0x000000056f000000| 0%| F| |TAMS 0x000000056e800000| PB 0x000000056e800000| Untracked | 0 +| 720|0x000000056f000000, 0x000000056f000000, 0x000000056f800000| 0%| F| |TAMS 0x000000056f000000| PB 0x000000056f000000| Untracked | 0 +| 721|0x000000056f800000, 0x000000056f800000, 0x0000000570000000| 0%| F| |TAMS 0x000000056f800000| PB 0x000000056f800000| Untracked | 0 +| 722|0x0000000570000000, 0x0000000570000000, 0x0000000570800000| 0%| F| |TAMS 0x0000000570000000| PB 0x0000000570000000| Untracked | 0 +| 723|0x0000000570800000, 0x0000000570800000, 0x0000000571000000| 0%| F| |TAMS 0x0000000570800000| PB 0x0000000570800000| Untracked | 0 +| 724|0x0000000571000000, 0x0000000571000000, 0x0000000571800000| 0%| F| |TAMS 0x0000000571000000| PB 0x0000000571000000| Untracked | 0 +| 725|0x0000000571800000, 0x0000000571800000, 0x0000000572000000| 0%| F| |TAMS 0x0000000571800000| PB 0x0000000571800000| Untracked | 0 +| 726|0x0000000572000000, 0x0000000572000000, 0x0000000572800000| 0%| F| |TAMS 0x0000000572000000| PB 0x0000000572000000| Untracked | 0 +| 727|0x0000000572800000, 0x0000000572800000, 0x0000000573000000| 0%| F| |TAMS 0x0000000572800000| PB 0x0000000572800000| Untracked | 0 +| 728|0x0000000573000000, 0x0000000573000000, 0x0000000573800000| 0%| F| |TAMS 0x0000000573000000| PB 0x0000000573000000| Untracked | 0 +| 729|0x0000000573800000, 0x0000000573800000, 0x0000000574000000| 0%| F| |TAMS 0x0000000573800000| PB 0x0000000573800000| Untracked | 0 +| 730|0x0000000574000000, 0x0000000574000000, 0x0000000574800000| 0%| F| |TAMS 0x0000000574000000| PB 0x0000000574000000| Untracked | 0 +| 731|0x0000000574800000, 0x0000000574800000, 0x0000000575000000| 0%| F| |TAMS 0x0000000574800000| PB 0x0000000574800000| Untracked | 0 +| 732|0x0000000575000000, 0x0000000575000000, 0x0000000575800000| 0%| F| |TAMS 0x0000000575000000| PB 0x0000000575000000| Untracked | 0 +| 733|0x0000000575800000, 0x0000000575800000, 0x0000000576000000| 0%| F| |TAMS 0x0000000575800000| PB 0x0000000575800000| Untracked | 0 +| 734|0x0000000576000000, 0x0000000576000000, 0x0000000576800000| 0%| F| |TAMS 0x0000000576000000| PB 0x0000000576000000| Untracked | 0 +| 735|0x0000000576800000, 0x0000000576800000, 0x0000000577000000| 0%| F| |TAMS 0x0000000576800000| PB 0x0000000576800000| Untracked | 0 +| 736|0x0000000577000000, 0x0000000577000000, 0x0000000577800000| 0%| F| |TAMS 0x0000000577000000| PB 0x0000000577000000| Untracked | 0 +| 737|0x0000000577800000, 0x0000000577800000, 0x0000000578000000| 0%| F| |TAMS 0x0000000577800000| PB 0x0000000577800000| Untracked | 0 +| 738|0x0000000578000000, 0x0000000578000000, 0x0000000578800000| 0%| F| |TAMS 0x0000000578000000| PB 0x0000000578000000| Untracked | 0 +| 739|0x0000000578800000, 0x0000000578800000, 0x0000000579000000| 0%| F| |TAMS 0x0000000578800000| PB 0x0000000578800000| Untracked | 0 +| 740|0x0000000579000000, 0x0000000579000000, 0x0000000579800000| 0%| F| |TAMS 0x0000000579000000| PB 0x0000000579000000| Untracked | 0 +| 741|0x0000000579800000, 0x0000000579800000, 0x000000057a000000| 0%| F| |TAMS 0x0000000579800000| PB 0x0000000579800000| Untracked | 0 +| 742|0x000000057a000000, 0x000000057a000000, 0x000000057a800000| 0%| F| |TAMS 0x000000057a000000| PB 0x000000057a000000| Untracked | 0 +| 743|0x000000057a800000, 0x000000057a800000, 0x000000057b000000| 0%| F| |TAMS 0x000000057a800000| PB 0x000000057a800000| Untracked | 0 +| 744|0x000000057b000000, 0x000000057b000000, 0x000000057b800000| 0%| F| |TAMS 0x000000057b000000| PB 0x000000057b000000| Untracked | 0 +| 745|0x000000057b800000, 0x000000057b800000, 0x000000057c000000| 0%| F| |TAMS 0x000000057b800000| PB 0x000000057b800000| Untracked | 0 +| 746|0x000000057c000000, 0x000000057c000000, 0x000000057c800000| 0%| F| |TAMS 0x000000057c000000| PB 0x000000057c000000| Untracked | 0 +| 747|0x000000057c800000, 0x000000057c800000, 0x000000057d000000| 0%| F| |TAMS 0x000000057c800000| PB 0x000000057c800000| Untracked | 0 +| 748|0x000000057d000000, 0x000000057d000000, 0x000000057d800000| 0%| F| |TAMS 0x000000057d000000| PB 0x000000057d000000| Untracked | 0 +| 749|0x000000057d800000, 0x000000057d800000, 0x000000057e000000| 0%| F| |TAMS 0x000000057d800000| PB 0x000000057d800000| Untracked | 0 +| 750|0x000000057e000000, 0x000000057e000000, 0x000000057e800000| 0%| F| |TAMS 0x000000057e000000| PB 0x000000057e000000| Untracked | 0 +| 751|0x000000057e800000, 0x000000057e800000, 0x000000057f000000| 0%| F| |TAMS 0x000000057e800000| PB 0x000000057e800000| Untracked | 0 +| 752|0x000000057f000000, 0x000000057f000000, 0x000000057f800000| 0%| F| |TAMS 0x000000057f000000| PB 0x000000057f000000| Untracked | 0 +| 753|0x000000057f800000, 0x000000057f800000, 0x0000000580000000| 0%| F| |TAMS 0x000000057f800000| PB 0x000000057f800000| Untracked | 0 +| 754|0x0000000580000000, 0x0000000580000000, 0x0000000580800000| 0%| F| |TAMS 0x0000000580000000| PB 0x0000000580000000| Untracked | 0 +| 755|0x0000000580800000, 0x0000000580800000, 0x0000000581000000| 0%| F| |TAMS 0x0000000580800000| PB 0x0000000580800000| Untracked | 0 +| 756|0x0000000581000000, 0x0000000581000000, 0x0000000581800000| 0%| F| |TAMS 0x0000000581000000| PB 0x0000000581000000| Untracked | 0 +| 757|0x0000000581800000, 0x0000000581800000, 0x0000000582000000| 0%| F| |TAMS 0x0000000581800000| PB 0x0000000581800000| Untracked | 0 +| 758|0x0000000582000000, 0x0000000582000000, 0x0000000582800000| 0%| F| |TAMS 0x0000000582000000| PB 0x0000000582000000| Untracked | 0 +| 759|0x0000000582800000, 0x0000000582800000, 0x0000000583000000| 0%| F| |TAMS 0x0000000582800000| PB 0x0000000582800000| Untracked | 0 +| 760|0x0000000583000000, 0x0000000583000000, 0x0000000583800000| 0%| F| |TAMS 0x0000000583000000| PB 0x0000000583000000| Untracked | 0 +| 761|0x0000000583800000, 0x0000000583800000, 0x0000000584000000| 0%| F| |TAMS 0x0000000583800000| PB 0x0000000583800000| Untracked | 0 +| 762|0x0000000584000000, 0x0000000584000000, 0x0000000584800000| 0%| F| |TAMS 0x0000000584000000| PB 0x0000000584000000| Untracked | 0 +| 763|0x0000000584800000, 0x0000000584800000, 0x0000000585000000| 0%| F| |TAMS 0x0000000584800000| PB 0x0000000584800000| Untracked | 0 +| 764|0x0000000585000000, 0x0000000585000000, 0x0000000585800000| 0%| F| |TAMS 0x0000000585000000| PB 0x0000000585000000| Untracked | 0 +| 765|0x0000000585800000, 0x0000000585800000, 0x0000000586000000| 0%| F| |TAMS 0x0000000585800000| PB 0x0000000585800000| Untracked | 0 +| 766|0x0000000586000000, 0x0000000586000000, 0x0000000586800000| 0%| F| |TAMS 0x0000000586000000| PB 0x0000000586000000| Untracked | 0 +| 767|0x0000000586800000, 0x0000000586800000, 0x0000000587000000| 0%| F| |TAMS 0x0000000586800000| PB 0x0000000586800000| Untracked | 0 +| 768|0x0000000587000000, 0x0000000587000000, 0x0000000587800000| 0%| F| |TAMS 0x0000000587000000| PB 0x0000000587000000| Untracked | 0 +| 769|0x0000000587800000, 0x0000000587800000, 0x0000000588000000| 0%| F| |TAMS 0x0000000587800000| PB 0x0000000587800000| Untracked | 0 +| 770|0x0000000588000000, 0x0000000588000000, 0x0000000588800000| 0%| F| |TAMS 0x0000000588000000| PB 0x0000000588000000| Untracked | 0 +| 771|0x0000000588800000, 0x0000000588800000, 0x0000000589000000| 0%| F| |TAMS 0x0000000588800000| PB 0x0000000588800000| Untracked | 0 +| 772|0x0000000589000000, 0x0000000589000000, 0x0000000589800000| 0%| F| |TAMS 0x0000000589000000| PB 0x0000000589000000| Untracked | 0 +| 773|0x0000000589800000, 0x0000000589800000, 0x000000058a000000| 0%| F| |TAMS 0x0000000589800000| PB 0x0000000589800000| Untracked | 0 +| 774|0x000000058a000000, 0x000000058a000000, 0x000000058a800000| 0%| F| |TAMS 0x000000058a000000| PB 0x000000058a000000| Untracked | 0 +| 775|0x000000058a800000, 0x000000058a800000, 0x000000058b000000| 0%| F| |TAMS 0x000000058a800000| PB 0x000000058a800000| Untracked | 0 +| 776|0x000000058b000000, 0x000000058b000000, 0x000000058b800000| 0%| F| |TAMS 0x000000058b000000| PB 0x000000058b000000| Untracked | 0 +| 777|0x000000058b800000, 0x000000058b800000, 0x000000058c000000| 0%| F| |TAMS 0x000000058b800000| PB 0x000000058b800000| Untracked | 0 +| 778|0x000000058c000000, 0x000000058c000000, 0x000000058c800000| 0%| F| |TAMS 0x000000058c000000| PB 0x000000058c000000| Untracked | 0 +| 779|0x000000058c800000, 0x000000058c800000, 0x000000058d000000| 0%| F| |TAMS 0x000000058c800000| PB 0x000000058c800000| Untracked | 0 +| 780|0x000000058d000000, 0x000000058d000000, 0x000000058d800000| 0%| F| |TAMS 0x000000058d000000| PB 0x000000058d000000| Untracked | 0 +| 781|0x000000058d800000, 0x000000058d800000, 0x000000058e000000| 0%| F| |TAMS 0x000000058d800000| PB 0x000000058d800000| Untracked | 0 +| 782|0x000000058e000000, 0x000000058e000000, 0x000000058e800000| 0%| F| |TAMS 0x000000058e000000| PB 0x000000058e000000| Untracked | 0 +| 783|0x000000058e800000, 0x000000058e800000, 0x000000058f000000| 0%| F| |TAMS 0x000000058e800000| PB 0x000000058e800000| Untracked | 0 +| 784|0x000000058f000000, 0x000000058f000000, 0x000000058f800000| 0%| F| |TAMS 0x000000058f000000| PB 0x000000058f000000| Untracked | 0 +| 785|0x000000058f800000, 0x000000058f800000, 0x0000000590000000| 0%| F| |TAMS 0x000000058f800000| PB 0x000000058f800000| Untracked | 0 +| 786|0x0000000590000000, 0x0000000590000000, 0x0000000590800000| 0%| F| |TAMS 0x0000000590000000| PB 0x0000000590000000| Untracked | 0 +| 787|0x0000000590800000, 0x0000000590800000, 0x0000000591000000| 0%| F| |TAMS 0x0000000590800000| PB 0x0000000590800000| Untracked | 0 +| 788|0x0000000591000000, 0x0000000591000000, 0x0000000591800000| 0%| F| |TAMS 0x0000000591000000| PB 0x0000000591000000| Untracked | 0 +| 789|0x0000000591800000, 0x0000000591800000, 0x0000000592000000| 0%| F| |TAMS 0x0000000591800000| PB 0x0000000591800000| Untracked | 0 +| 790|0x0000000592000000, 0x0000000592000000, 0x0000000592800000| 0%| F| |TAMS 0x0000000592000000| PB 0x0000000592000000| Untracked | 0 +| 791|0x0000000592800000, 0x0000000592800000, 0x0000000593000000| 0%| F| |TAMS 0x0000000592800000| PB 0x0000000592800000| Untracked | 0 +| 792|0x0000000593000000, 0x0000000593000000, 0x0000000593800000| 0%| F| |TAMS 0x0000000593000000| PB 0x0000000593000000| Untracked | 0 +| 793|0x0000000593800000, 0x0000000593800000, 0x0000000594000000| 0%| F| |TAMS 0x0000000593800000| PB 0x0000000593800000| Untracked | 0 +| 794|0x0000000594000000, 0x0000000594000000, 0x0000000594800000| 0%| F| |TAMS 0x0000000594000000| PB 0x0000000594000000| Untracked | 0 +| 795|0x0000000594800000, 0x0000000594800000, 0x0000000595000000| 0%| F| |TAMS 0x0000000594800000| PB 0x0000000594800000| Untracked | 0 +| 796|0x0000000595000000, 0x0000000595000000, 0x0000000595800000| 0%| F| |TAMS 0x0000000595000000| PB 0x0000000595000000| Untracked | 0 +| 797|0x0000000595800000, 0x0000000595800000, 0x0000000596000000| 0%| F| |TAMS 0x0000000595800000| PB 0x0000000595800000| Untracked | 0 +| 798|0x0000000596000000, 0x0000000596000000, 0x0000000596800000| 0%| F| |TAMS 0x0000000596000000| PB 0x0000000596000000| Untracked | 0 +| 799|0x0000000596800000, 0x0000000596800000, 0x0000000597000000| 0%| F| |TAMS 0x0000000596800000| PB 0x0000000596800000| Untracked | 0 +| 800|0x0000000597000000, 0x0000000597000000, 0x0000000597800000| 0%| F| |TAMS 0x0000000597000000| PB 0x0000000597000000| Untracked | 0 +| 801|0x0000000597800000, 0x0000000597800000, 0x0000000598000000| 0%| F| |TAMS 0x0000000597800000| PB 0x0000000597800000| Untracked | 0 +| 802|0x0000000598000000, 0x0000000598000000, 0x0000000598800000| 0%| F| |TAMS 0x0000000598000000| PB 0x0000000598000000| Untracked | 0 +| 803|0x0000000598800000, 0x0000000598800000, 0x0000000599000000| 0%| F| |TAMS 0x0000000598800000| PB 0x0000000598800000| Untracked | 0 +| 804|0x0000000599000000, 0x0000000599000000, 0x0000000599800000| 0%| F| |TAMS 0x0000000599000000| PB 0x0000000599000000| Untracked | 0 +| 805|0x0000000599800000, 0x0000000599800000, 0x000000059a000000| 0%| F| |TAMS 0x0000000599800000| PB 0x0000000599800000| Untracked | 0 +| 806|0x000000059a000000, 0x000000059a000000, 0x000000059a800000| 0%| F| |TAMS 0x000000059a000000| PB 0x000000059a000000| Untracked | 0 +| 807|0x000000059a800000, 0x000000059a800000, 0x000000059b000000| 0%| F| |TAMS 0x000000059a800000| PB 0x000000059a800000| Untracked | 0 +| 808|0x000000059b000000, 0x000000059b000000, 0x000000059b800000| 0%| F| |TAMS 0x000000059b000000| PB 0x000000059b000000| Untracked | 0 +| 809|0x000000059b800000, 0x000000059b800000, 0x000000059c000000| 0%| F| |TAMS 0x000000059b800000| PB 0x000000059b800000| Untracked | 0 +| 810|0x000000059c000000, 0x000000059c000000, 0x000000059c800000| 0%| F| |TAMS 0x000000059c000000| PB 0x000000059c000000| Untracked | 0 +| 811|0x000000059c800000, 0x000000059c800000, 0x000000059d000000| 0%| F| |TAMS 0x000000059c800000| PB 0x000000059c800000| Untracked | 0 +| 812|0x000000059d000000, 0x000000059d000000, 0x000000059d800000| 0%| F| |TAMS 0x000000059d000000| PB 0x000000059d000000| Untracked | 0 +| 813|0x000000059d800000, 0x000000059d800000, 0x000000059e000000| 0%| F| |TAMS 0x000000059d800000| PB 0x000000059d800000| Untracked | 0 +| 814|0x000000059e000000, 0x000000059e000000, 0x000000059e800000| 0%| F| |TAMS 0x000000059e000000| PB 0x000000059e000000| Untracked | 0 +| 815|0x000000059e800000, 0x000000059e800000, 0x000000059f000000| 0%| F| |TAMS 0x000000059e800000| PB 0x000000059e800000| Untracked | 0 +| 816|0x000000059f000000, 0x000000059f000000, 0x000000059f800000| 0%| F| |TAMS 0x000000059f000000| PB 0x000000059f000000| Untracked | 0 +| 817|0x000000059f800000, 0x000000059f800000, 0x00000005a0000000| 0%| F| |TAMS 0x000000059f800000| PB 0x000000059f800000| Untracked | 0 +| 818|0x00000005a0000000, 0x00000005a0000000, 0x00000005a0800000| 0%| F| |TAMS 0x00000005a0000000| PB 0x00000005a0000000| Untracked | 0 +| 819|0x00000005a0800000, 0x00000005a0800000, 0x00000005a1000000| 0%| F| |TAMS 0x00000005a0800000| PB 0x00000005a0800000| Untracked | 0 +| 820|0x00000005a1000000, 0x00000005a1000000, 0x00000005a1800000| 0%| F| |TAMS 0x00000005a1000000| PB 0x00000005a1000000| Untracked | 0 +| 821|0x00000005a1800000, 0x00000005a1800000, 0x00000005a2000000| 0%| F| |TAMS 0x00000005a1800000| PB 0x00000005a1800000| Untracked | 0 +| 822|0x00000005a2000000, 0x00000005a2000000, 0x00000005a2800000| 0%| F| |TAMS 0x00000005a2000000| PB 0x00000005a2000000| Untracked | 0 +| 823|0x00000005a2800000, 0x00000005a2800000, 0x00000005a3000000| 0%| F| |TAMS 0x00000005a2800000| PB 0x00000005a2800000| Untracked | 0 +| 824|0x00000005a3000000, 0x00000005a3000000, 0x00000005a3800000| 0%| F| |TAMS 0x00000005a3000000| PB 0x00000005a3000000| Untracked | 0 +| 825|0x00000005a3800000, 0x00000005a3800000, 0x00000005a4000000| 0%| F| |TAMS 0x00000005a3800000| PB 0x00000005a3800000| Untracked | 0 +| 826|0x00000005a4000000, 0x00000005a4000000, 0x00000005a4800000| 0%| F| |TAMS 0x00000005a4000000| PB 0x00000005a4000000| Untracked | 0 +| 827|0x00000005a4800000, 0x00000005a4800000, 0x00000005a5000000| 0%| F| |TAMS 0x00000005a4800000| PB 0x00000005a4800000| Untracked | 0 +| 828|0x00000005a5000000, 0x00000005a5000000, 0x00000005a5800000| 0%| F| |TAMS 0x00000005a5000000| PB 0x00000005a5000000| Untracked | 0 +| 829|0x00000005a5800000, 0x00000005a5800000, 0x00000005a6000000| 0%| F| |TAMS 0x00000005a5800000| PB 0x00000005a5800000| Untracked | 0 +| 830|0x00000005a6000000, 0x00000005a6000000, 0x00000005a6800000| 0%| F| |TAMS 0x00000005a6000000| PB 0x00000005a6000000| Untracked | 0 +| 831|0x00000005a6800000, 0x00000005a6800000, 0x00000005a7000000| 0%| F| |TAMS 0x00000005a6800000| PB 0x00000005a6800000| Untracked | 0 +| 832|0x00000005a7000000, 0x00000005a7000000, 0x00000005a7800000| 0%| F| |TAMS 0x00000005a7000000| PB 0x00000005a7000000| Untracked | 0 +| 833|0x00000005a7800000, 0x00000005a7800000, 0x00000005a8000000| 0%| F| |TAMS 0x00000005a7800000| PB 0x00000005a7800000| Untracked | 0 +| 834|0x00000005a8000000, 0x00000005a8000000, 0x00000005a8800000| 0%| F| |TAMS 0x00000005a8000000| PB 0x00000005a8000000| Untracked | 0 +| 835|0x00000005a8800000, 0x00000005a8800000, 0x00000005a9000000| 0%| F| |TAMS 0x00000005a8800000| PB 0x00000005a8800000| Untracked | 0 +| 836|0x00000005a9000000, 0x00000005a9000000, 0x00000005a9800000| 0%| F| |TAMS 0x00000005a9000000| PB 0x00000005a9000000| Untracked | 0 +| 837|0x00000005a9800000, 0x00000005a9800000, 0x00000005aa000000| 0%| F| |TAMS 0x00000005a9800000| PB 0x00000005a9800000| Untracked | 0 +| 838|0x00000005aa000000, 0x00000005aa000000, 0x00000005aa800000| 0%| F| |TAMS 0x00000005aa000000| PB 0x00000005aa000000| Untracked | 0 +| 839|0x00000005aa800000, 0x00000005aa800000, 0x00000005ab000000| 0%| F| |TAMS 0x00000005aa800000| PB 0x00000005aa800000| Untracked | 0 +| 840|0x00000005ab000000, 0x00000005ab000000, 0x00000005ab800000| 0%| F| |TAMS 0x00000005ab000000| PB 0x00000005ab000000| Untracked | 0 +| 841|0x00000005ab800000, 0x00000005ab800000, 0x00000005ac000000| 0%| F| |TAMS 0x00000005ab800000| PB 0x00000005ab800000| Untracked | 0 +| 842|0x00000005ac000000, 0x00000005ac000000, 0x00000005ac800000| 0%| F| |TAMS 0x00000005ac000000| PB 0x00000005ac000000| Untracked | 0 +| 843|0x00000005ac800000, 0x00000005ac800000, 0x00000005ad000000| 0%| F| |TAMS 0x00000005ac800000| PB 0x00000005ac800000| Untracked | 0 +| 844|0x00000005ad000000, 0x00000005ad000000, 0x00000005ad800000| 0%| F| |TAMS 0x00000005ad000000| PB 0x00000005ad000000| Untracked | 0 +| 845|0x00000005ad800000, 0x00000005ad800000, 0x00000005ae000000| 0%| F| |TAMS 0x00000005ad800000| PB 0x00000005ad800000| Untracked | 0 +| 846|0x00000005ae000000, 0x00000005ae000000, 0x00000005ae800000| 0%| F| |TAMS 0x00000005ae000000| PB 0x00000005ae000000| Untracked | 0 +| 847|0x00000005ae800000, 0x00000005ae800000, 0x00000005af000000| 0%| F| |TAMS 0x00000005ae800000| PB 0x00000005ae800000| Untracked | 0 +| 848|0x00000005af000000, 0x00000005af000000, 0x00000005af800000| 0%| F| |TAMS 0x00000005af000000| PB 0x00000005af000000| Untracked | 0 +| 849|0x00000005af800000, 0x00000005af800000, 0x00000005b0000000| 0%| F| |TAMS 0x00000005af800000| PB 0x00000005af800000| Untracked | 0 +| 850|0x00000005b0000000, 0x00000005b0000000, 0x00000005b0800000| 0%| F| |TAMS 0x00000005b0000000| PB 0x00000005b0000000| Untracked | 0 +| 851|0x00000005b0800000, 0x00000005b0800000, 0x00000005b1000000| 0%| F| |TAMS 0x00000005b0800000| PB 0x00000005b0800000| Untracked | 0 +| 852|0x00000005b1000000, 0x00000005b1000000, 0x00000005b1800000| 0%| F| |TAMS 0x00000005b1000000| PB 0x00000005b1000000| Untracked | 0 +| 853|0x00000005b1800000, 0x00000005b1800000, 0x00000005b2000000| 0%| F| |TAMS 0x00000005b1800000| PB 0x00000005b1800000| Untracked | 0 +| 854|0x00000005b2000000, 0x00000005b2000000, 0x00000005b2800000| 0%| F| |TAMS 0x00000005b2000000| PB 0x00000005b2000000| Untracked | 0 +| 855|0x00000005b2800000, 0x00000005b2800000, 0x00000005b3000000| 0%| F| |TAMS 0x00000005b2800000| PB 0x00000005b2800000| Untracked | 0 +| 856|0x00000005b3000000, 0x00000005b3000000, 0x00000005b3800000| 0%| F| |TAMS 0x00000005b3000000| PB 0x00000005b3000000| Untracked | 0 +| 857|0x00000005b3800000, 0x00000005b3800000, 0x00000005b4000000| 0%| F| |TAMS 0x00000005b3800000| PB 0x00000005b3800000| Untracked | 0 +| 858|0x00000005b4000000, 0x00000005b4000000, 0x00000005b4800000| 0%| F| |TAMS 0x00000005b4000000| PB 0x00000005b4000000| Untracked | 0 +| 859|0x00000005b4800000, 0x00000005b4800000, 0x00000005b5000000| 0%| F| |TAMS 0x00000005b4800000| PB 0x00000005b4800000| Untracked | 0 +| 860|0x00000005b5000000, 0x00000005b5000000, 0x00000005b5800000| 0%| F| |TAMS 0x00000005b5000000| PB 0x00000005b5000000| Untracked | 0 +| 861|0x00000005b5800000, 0x00000005b5800000, 0x00000005b6000000| 0%| F| |TAMS 0x00000005b5800000| PB 0x00000005b5800000| Untracked | 0 +| 862|0x00000005b6000000, 0x00000005b6000000, 0x00000005b6800000| 0%| F| |TAMS 0x00000005b6000000| PB 0x00000005b6000000| Untracked | 0 +| 863|0x00000005b6800000, 0x00000005b6800000, 0x00000005b7000000| 0%| F| |TAMS 0x00000005b6800000| PB 0x00000005b6800000| Untracked | 0 +| 864|0x00000005b7000000, 0x00000005b7000000, 0x00000005b7800000| 0%| F| |TAMS 0x00000005b7000000| PB 0x00000005b7000000| Untracked | 0 +| 865|0x00000005b7800000, 0x00000005b7800000, 0x00000005b8000000| 0%| F| |TAMS 0x00000005b7800000| PB 0x00000005b7800000| Untracked | 0 +| 866|0x00000005b8000000, 0x00000005b8000000, 0x00000005b8800000| 0%| F| |TAMS 0x00000005b8000000| PB 0x00000005b8000000| Untracked | 0 +| 867|0x00000005b8800000, 0x00000005b8800000, 0x00000005b9000000| 0%| F| |TAMS 0x00000005b8800000| PB 0x00000005b8800000| Untracked | 0 +| 868|0x00000005b9000000, 0x00000005b9000000, 0x00000005b9800000| 0%| F| |TAMS 0x00000005b9000000| PB 0x00000005b9000000| Untracked | 0 +| 869|0x00000005b9800000, 0x00000005b9800000, 0x00000005ba000000| 0%| F| |TAMS 0x00000005b9800000| PB 0x00000005b9800000| Untracked | 0 +| 870|0x00000005ba000000, 0x00000005ba000000, 0x00000005ba800000| 0%| F| |TAMS 0x00000005ba000000| PB 0x00000005ba000000| Untracked | 0 +| 871|0x00000005ba800000, 0x00000005ba800000, 0x00000005bb000000| 0%| F| |TAMS 0x00000005ba800000| PB 0x00000005ba800000| Untracked | 0 +| 872|0x00000005bb000000, 0x00000005bb000000, 0x00000005bb800000| 0%| F| |TAMS 0x00000005bb000000| PB 0x00000005bb000000| Untracked | 0 +| 873|0x00000005bb800000, 0x00000005bb800000, 0x00000005bc000000| 0%| F| |TAMS 0x00000005bb800000| PB 0x00000005bb800000| Untracked | 0 +| 874|0x00000005bc000000, 0x00000005bc000000, 0x00000005bc800000| 0%| F| |TAMS 0x00000005bc000000| PB 0x00000005bc000000| Untracked | 0 +| 875|0x00000005bc800000, 0x00000005bc800000, 0x00000005bd000000| 0%| F| |TAMS 0x00000005bc800000| PB 0x00000005bc800000| Untracked | 0 +| 876|0x00000005bd000000, 0x00000005bd000000, 0x00000005bd800000| 0%| F| |TAMS 0x00000005bd000000| PB 0x00000005bd000000| Untracked | 0 +| 877|0x00000005bd800000, 0x00000005bd800000, 0x00000005be000000| 0%| F| |TAMS 0x00000005bd800000| PB 0x00000005bd800000| Untracked | 0 +| 878|0x00000005be000000, 0x00000005be000000, 0x00000005be800000| 0%| F| |TAMS 0x00000005be000000| PB 0x00000005be000000| Untracked | 0 +| 879|0x00000005be800000, 0x00000005be800000, 0x00000005bf000000| 0%| F| |TAMS 0x00000005be800000| PB 0x00000005be800000| Untracked | 0 +| 880|0x00000005bf000000, 0x00000005bf000000, 0x00000005bf800000| 0%| F| |TAMS 0x00000005bf000000| PB 0x00000005bf000000| Untracked | 0 +| 881|0x00000005bf800000, 0x00000005bf800000, 0x00000005c0000000| 0%| F| |TAMS 0x00000005bf800000| PB 0x00000005bf800000| Untracked | 0 +| 882|0x00000005c0000000, 0x00000005c0000000, 0x00000005c0800000| 0%| F| |TAMS 0x00000005c0000000| PB 0x00000005c0000000| Untracked | 0 +| 883|0x00000005c0800000, 0x00000005c0800000, 0x00000005c1000000| 0%| F| |TAMS 0x00000005c0800000| PB 0x00000005c0800000| Untracked | 0 +| 884|0x00000005c1000000, 0x00000005c1000000, 0x00000005c1800000| 0%| F| |TAMS 0x00000005c1000000| PB 0x00000005c1000000| Untracked | 0 +| 885|0x00000005c1800000, 0x00000005c1800000, 0x00000005c2000000| 0%| F| |TAMS 0x00000005c1800000| PB 0x00000005c1800000| Untracked | 0 +| 886|0x00000005c2000000, 0x00000005c2000000, 0x00000005c2800000| 0%| F| |TAMS 0x00000005c2000000| PB 0x00000005c2000000| Untracked | 0 +| 887|0x00000005c2800000, 0x00000005c2800000, 0x00000005c3000000| 0%| F| |TAMS 0x00000005c2800000| PB 0x00000005c2800000| Untracked | 0 +| 888|0x00000005c3000000, 0x00000005c3000000, 0x00000005c3800000| 0%| F| |TAMS 0x00000005c3000000| PB 0x00000005c3000000| Untracked | 0 +| 889|0x00000005c3800000, 0x00000005c3800000, 0x00000005c4000000| 0%| F| |TAMS 0x00000005c3800000| PB 0x00000005c3800000| Untracked | 0 +| 890|0x00000005c4000000, 0x00000005c4000000, 0x00000005c4800000| 0%| F| |TAMS 0x00000005c4000000| PB 0x00000005c4000000| Untracked | 0 +| 891|0x00000005c4800000, 0x00000005c4800000, 0x00000005c5000000| 0%| F| |TAMS 0x00000005c4800000| PB 0x00000005c4800000| Untracked | 0 +| 892|0x00000005c5000000, 0x00000005c5000000, 0x00000005c5800000| 0%| F| |TAMS 0x00000005c5000000| PB 0x00000005c5000000| Untracked | 0 +| 893|0x00000005c5800000, 0x00000005c5800000, 0x00000005c6000000| 0%| F| |TAMS 0x00000005c5800000| PB 0x00000005c5800000| Untracked | 0 +| 894|0x00000005c6000000, 0x00000005c6000000, 0x00000005c6800000| 0%| F| |TAMS 0x00000005c6000000| PB 0x00000005c6000000| Untracked | 0 +| 895|0x00000005c6800000, 0x00000005c6800000, 0x00000005c7000000| 0%| F| |TAMS 0x00000005c6800000| PB 0x00000005c6800000| Untracked | 0 +| 896|0x00000005c7000000, 0x00000005c7000000, 0x00000005c7800000| 0%| F| |TAMS 0x00000005c7000000| PB 0x00000005c7000000| Untracked | 0 +| 897|0x00000005c7800000, 0x00000005c7800000, 0x00000005c8000000| 0%| F| |TAMS 0x00000005c7800000| PB 0x00000005c7800000| Untracked | 0 +| 898|0x00000005c8000000, 0x00000005c8000000, 0x00000005c8800000| 0%| F| |TAMS 0x00000005c8000000| PB 0x00000005c8000000| Untracked | 0 +| 899|0x00000005c8800000, 0x00000005c8800000, 0x00000005c9000000| 0%| F| |TAMS 0x00000005c8800000| PB 0x00000005c8800000| Untracked | 0 +| 900|0x00000005c9000000, 0x00000005c9000000, 0x00000005c9800000| 0%| F| |TAMS 0x00000005c9000000| PB 0x00000005c9000000| Untracked | 0 +| 901|0x00000005c9800000, 0x00000005c9800000, 0x00000005ca000000| 0%| F| |TAMS 0x00000005c9800000| PB 0x00000005c9800000| Untracked | 0 +| 902|0x00000005ca000000, 0x00000005ca000000, 0x00000005ca800000| 0%| F| |TAMS 0x00000005ca000000| PB 0x00000005ca000000| Untracked | 0 +| 903|0x00000005ca800000, 0x00000005ca800000, 0x00000005cb000000| 0%| F| |TAMS 0x00000005ca800000| PB 0x00000005ca800000| Untracked | 0 +| 904|0x00000005cb000000, 0x00000005cb000000, 0x00000005cb800000| 0%| F| |TAMS 0x00000005cb000000| PB 0x00000005cb000000| Untracked | 0 +| 905|0x00000005cb800000, 0x00000005cb800000, 0x00000005cc000000| 0%| F| |TAMS 0x00000005cb800000| PB 0x00000005cb800000| Untracked | 0 +| 906|0x00000005cc000000, 0x00000005cc000000, 0x00000005cc800000| 0%| F| |TAMS 0x00000005cc000000| PB 0x00000005cc000000| Untracked | 0 +| 907|0x00000005cc800000, 0x00000005cc800000, 0x00000005cd000000| 0%| F| |TAMS 0x00000005cc800000| PB 0x00000005cc800000| Untracked | 0 +| 908|0x00000005cd000000, 0x00000005cd000000, 0x00000005cd800000| 0%| F| |TAMS 0x00000005cd000000| PB 0x00000005cd000000| Untracked | 0 +| 909|0x00000005cd800000, 0x00000005cd800000, 0x00000005ce000000| 0%| F| |TAMS 0x00000005cd800000| PB 0x00000005cd800000| Untracked | 0 +| 910|0x00000005ce000000, 0x00000005ce000000, 0x00000005ce800000| 0%| F| |TAMS 0x00000005ce000000| PB 0x00000005ce000000| Untracked | 0 +| 911|0x00000005ce800000, 0x00000005ce800000, 0x00000005cf000000| 0%| F| |TAMS 0x00000005ce800000| PB 0x00000005ce800000| Untracked | 0 +| 912|0x00000005cf000000, 0x00000005cf000000, 0x00000005cf800000| 0%| F| |TAMS 0x00000005cf000000| PB 0x00000005cf000000| Untracked | 0 +| 913|0x00000005cf800000, 0x00000005cf800000, 0x00000005d0000000| 0%| F| |TAMS 0x00000005cf800000| PB 0x00000005cf800000| Untracked | 0 +| 914|0x00000005d0000000, 0x00000005d0000000, 0x00000005d0800000| 0%| F| |TAMS 0x00000005d0000000| PB 0x00000005d0000000| Untracked | 0 +| 915|0x00000005d0800000, 0x00000005d0800000, 0x00000005d1000000| 0%| F| |TAMS 0x00000005d0800000| PB 0x00000005d0800000| Untracked | 0 +| 916|0x00000005d1000000, 0x00000005d1000000, 0x00000005d1800000| 0%| F| |TAMS 0x00000005d1000000| PB 0x00000005d1000000| Untracked | 0 +| 917|0x00000005d1800000, 0x00000005d1800000, 0x00000005d2000000| 0%| F| |TAMS 0x00000005d1800000| PB 0x00000005d1800000| Untracked | 0 +| 918|0x00000005d2000000, 0x00000005d2000000, 0x00000005d2800000| 0%| F| |TAMS 0x00000005d2000000| PB 0x00000005d2000000| Untracked | 0 +| 919|0x00000005d2800000, 0x00000005d2800000, 0x00000005d3000000| 0%| F| |TAMS 0x00000005d2800000| PB 0x00000005d2800000| Untracked | 0 +| 920|0x00000005d3000000, 0x00000005d3000000, 0x00000005d3800000| 0%| F| |TAMS 0x00000005d3000000| PB 0x00000005d3000000| Untracked | 0 +| 921|0x00000005d3800000, 0x00000005d3800000, 0x00000005d4000000| 0%| F| |TAMS 0x00000005d3800000| PB 0x00000005d3800000| Untracked | 0 +| 922|0x00000005d4000000, 0x00000005d4000000, 0x00000005d4800000| 0%| F| |TAMS 0x00000005d4000000| PB 0x00000005d4000000| Untracked | 0 +| 923|0x00000005d4800000, 0x00000005d4800000, 0x00000005d5000000| 0%| F| |TAMS 0x00000005d4800000| PB 0x00000005d4800000| Untracked | 0 +| 924|0x00000005d5000000, 0x00000005d5000000, 0x00000005d5800000| 0%| F| |TAMS 0x00000005d5000000| PB 0x00000005d5000000| Untracked | 0 +| 925|0x00000005d5800000, 0x00000005d5800000, 0x00000005d6000000| 0%| F| |TAMS 0x00000005d5800000| PB 0x00000005d5800000| Untracked | 0 +| 926|0x00000005d6000000, 0x00000005d6000000, 0x00000005d6800000| 0%| F| |TAMS 0x00000005d6000000| PB 0x00000005d6000000| Untracked | 0 +| 927|0x00000005d6800000, 0x00000005d6800000, 0x00000005d7000000| 0%| F| |TAMS 0x00000005d6800000| PB 0x00000005d6800000| Untracked | 0 +| 928|0x00000005d7000000, 0x00000005d7000000, 0x00000005d7800000| 0%| F| |TAMS 0x00000005d7000000| PB 0x00000005d7000000| Untracked | 0 +| 929|0x00000005d7800000, 0x00000005d7800000, 0x00000005d8000000| 0%| F| |TAMS 0x00000005d7800000| PB 0x00000005d7800000| Untracked | 0 +| 930|0x00000005d8000000, 0x00000005d8000000, 0x00000005d8800000| 0%| F| |TAMS 0x00000005d8000000| PB 0x00000005d8000000| Untracked | 0 +| 931|0x00000005d8800000, 0x00000005d8800000, 0x00000005d9000000| 0%| F| |TAMS 0x00000005d8800000| PB 0x00000005d8800000| Untracked | 0 +| 932|0x00000005d9000000, 0x00000005d9000000, 0x00000005d9800000| 0%| F| |TAMS 0x00000005d9000000| PB 0x00000005d9000000| Untracked | 0 +| 933|0x00000005d9800000, 0x00000005d9800000, 0x00000005da000000| 0%| F| |TAMS 0x00000005d9800000| PB 0x00000005d9800000| Untracked | 0 +| 934|0x00000005da000000, 0x00000005da000000, 0x00000005da800000| 0%| F| |TAMS 0x00000005da000000| PB 0x00000005da000000| Untracked | 0 +| 935|0x00000005da800000, 0x00000005da800000, 0x00000005db000000| 0%| F| |TAMS 0x00000005da800000| PB 0x00000005da800000| Untracked | 0 +| 936|0x00000005db000000, 0x00000005db000000, 0x00000005db800000| 0%| F| |TAMS 0x00000005db000000| PB 0x00000005db000000| Untracked | 0 +| 937|0x00000005db800000, 0x00000005db800000, 0x00000005dc000000| 0%| F| |TAMS 0x00000005db800000| PB 0x00000005db800000| Untracked | 0 +| 938|0x00000005dc000000, 0x00000005dc000000, 0x00000005dc800000| 0%| F| |TAMS 0x00000005dc000000| PB 0x00000005dc000000| Untracked | 0 +| 939|0x00000005dc800000, 0x00000005dc800000, 0x00000005dd000000| 0%| F| |TAMS 0x00000005dc800000| PB 0x00000005dc800000| Untracked | 0 +| 940|0x00000005dd000000, 0x00000005dd000000, 0x00000005dd800000| 0%| F| |TAMS 0x00000005dd000000| PB 0x00000005dd000000| Untracked | 0 +| 941|0x00000005dd800000, 0x00000005dd800000, 0x00000005de000000| 0%| F| |TAMS 0x00000005dd800000| PB 0x00000005dd800000| Untracked | 0 +| 942|0x00000005de000000, 0x00000005de000000, 0x00000005de800000| 0%| F| |TAMS 0x00000005de000000| PB 0x00000005de000000| Untracked | 0 +| 943|0x00000005de800000, 0x00000005de800000, 0x00000005df000000| 0%| F| |TAMS 0x00000005de800000| PB 0x00000005de800000| Untracked | 0 +| 944|0x00000005df000000, 0x00000005df000000, 0x00000005df800000| 0%| F| |TAMS 0x00000005df000000| PB 0x00000005df000000| Untracked | 0 +| 945|0x00000005df800000, 0x00000005df800000, 0x00000005e0000000| 0%| F| |TAMS 0x00000005df800000| PB 0x00000005df800000| Untracked | 0 +| 946|0x00000005e0000000, 0x00000005e0000000, 0x00000005e0800000| 0%| F| |TAMS 0x00000005e0000000| PB 0x00000005e0000000| Untracked | 0 +| 947|0x00000005e0800000, 0x00000005e0800000, 0x00000005e1000000| 0%| F| |TAMS 0x00000005e0800000| PB 0x00000005e0800000| Untracked | 0 +| 948|0x00000005e1000000, 0x00000005e1000000, 0x00000005e1800000| 0%| F| |TAMS 0x00000005e1000000| PB 0x00000005e1000000| Untracked | 0 +| 949|0x00000005e1800000, 0x00000005e1800000, 0x00000005e2000000| 0%| F| |TAMS 0x00000005e1800000| PB 0x00000005e1800000| Untracked | 0 +| 950|0x00000005e2000000, 0x00000005e2000000, 0x00000005e2800000| 0%| F| |TAMS 0x00000005e2000000| PB 0x00000005e2000000| Untracked | 0 +| 951|0x00000005e2800000, 0x00000005e2800000, 0x00000005e3000000| 0%| F| |TAMS 0x00000005e2800000| PB 0x00000005e2800000| Untracked | 0 +| 952|0x00000005e3000000, 0x00000005e3000000, 0x00000005e3800000| 0%| F| |TAMS 0x00000005e3000000| PB 0x00000005e3000000| Untracked | 0 +| 953|0x00000005e3800000, 0x00000005e3800000, 0x00000005e4000000| 0%| F| |TAMS 0x00000005e3800000| PB 0x00000005e3800000| Untracked | 0 +| 954|0x00000005e4000000, 0x00000005e4000000, 0x00000005e4800000| 0%| F| |TAMS 0x00000005e4000000| PB 0x00000005e4000000| Untracked | 0 +| 955|0x00000005e4800000, 0x00000005e4800000, 0x00000005e5000000| 0%| F| |TAMS 0x00000005e4800000| PB 0x00000005e4800000| Untracked | 0 +| 956|0x00000005e5000000, 0x00000005e5000000, 0x00000005e5800000| 0%| F| |TAMS 0x00000005e5000000| PB 0x00000005e5000000| Untracked | 0 +| 957|0x00000005e5800000, 0x00000005e5800000, 0x00000005e6000000| 0%| F| |TAMS 0x00000005e5800000| PB 0x00000005e5800000| Untracked | 0 +| 958|0x00000005e6000000, 0x00000005e6000000, 0x00000005e6800000| 0%| F| |TAMS 0x00000005e6000000| PB 0x00000005e6000000| Untracked | 0 +| 959|0x00000005e6800000, 0x00000005e6800000, 0x00000005e7000000| 0%| F| |TAMS 0x00000005e6800000| PB 0x00000005e6800000| Untracked | 0 +| 960|0x00000005e7000000, 0x00000005e7000000, 0x00000005e7800000| 0%| F| |TAMS 0x00000005e7000000| PB 0x00000005e7000000| Untracked | 0 +| 961|0x00000005e7800000, 0x00000005e7800000, 0x00000005e8000000| 0%| F| |TAMS 0x00000005e7800000| PB 0x00000005e7800000| Untracked | 0 +| 962|0x00000005e8000000, 0x00000005e8000000, 0x00000005e8800000| 0%| F| |TAMS 0x00000005e8000000| PB 0x00000005e8000000| Untracked | 0 +| 963|0x00000005e8800000, 0x00000005e8800000, 0x00000005e9000000| 0%| F| |TAMS 0x00000005e8800000| PB 0x00000005e8800000| Untracked | 0 +| 964|0x00000005e9000000, 0x00000005e9000000, 0x00000005e9800000| 0%| F| |TAMS 0x00000005e9000000| PB 0x00000005e9000000| Untracked | 0 +| 965|0x00000005e9800000, 0x00000005e9800000, 0x00000005ea000000| 0%| F| |TAMS 0x00000005e9800000| PB 0x00000005e9800000| Untracked | 0 +| 966|0x00000005ea000000, 0x00000005ea000000, 0x00000005ea800000| 0%| F| |TAMS 0x00000005ea000000| PB 0x00000005ea000000| Untracked | 0 +| 967|0x00000005ea800000, 0x00000005ea800000, 0x00000005eb000000| 0%| F| |TAMS 0x00000005ea800000| PB 0x00000005ea800000| Untracked | 0 +| 968|0x00000005eb000000, 0x00000005eb000000, 0x00000005eb800000| 0%| F| |TAMS 0x00000005eb000000| PB 0x00000005eb000000| Untracked | 0 +| 969|0x00000005eb800000, 0x00000005eb800000, 0x00000005ec000000| 0%| F| |TAMS 0x00000005eb800000| PB 0x00000005eb800000| Untracked | 0 +| 970|0x00000005ec000000, 0x00000005ec000000, 0x00000005ec800000| 0%| F| |TAMS 0x00000005ec000000| PB 0x00000005ec000000| Untracked | 0 +| 971|0x00000005ec800000, 0x00000005ec800000, 0x00000005ed000000| 0%| F| |TAMS 0x00000005ec800000| PB 0x00000005ec800000| Untracked | 0 +| 972|0x00000005ed000000, 0x00000005ed000000, 0x00000005ed800000| 0%| F| |TAMS 0x00000005ed000000| PB 0x00000005ed000000| Untracked | 0 +| 973|0x00000005ed800000, 0x00000005ed800000, 0x00000005ee000000| 0%| F| |TAMS 0x00000005ed800000| PB 0x00000005ed800000| Untracked | 0 +| 974|0x00000005ee000000, 0x00000005ee000000, 0x00000005ee800000| 0%| F| |TAMS 0x00000005ee000000| PB 0x00000005ee000000| Untracked | 0 +| 975|0x00000005ee800000, 0x00000005ee800000, 0x00000005ef000000| 0%| F| |TAMS 0x00000005ee800000| PB 0x00000005ee800000| Untracked | 0 +| 976|0x00000005ef000000, 0x00000005ef000000, 0x00000005ef800000| 0%| F| |TAMS 0x00000005ef000000| PB 0x00000005ef000000| Untracked | 0 +| 977|0x00000005ef800000, 0x00000005ef800000, 0x00000005f0000000| 0%| F| |TAMS 0x00000005ef800000| PB 0x00000005ef800000| Untracked | 0 +| 978|0x00000005f0000000, 0x00000005f0000000, 0x00000005f0800000| 0%| F| |TAMS 0x00000005f0000000| PB 0x00000005f0000000| Untracked | 0 +| 979|0x00000005f0800000, 0x00000005f0800000, 0x00000005f1000000| 0%| F| |TAMS 0x00000005f0800000| PB 0x00000005f0800000| Untracked | 0 +| 980|0x00000005f1000000, 0x00000005f1000000, 0x00000005f1800000| 0%| F| |TAMS 0x00000005f1000000| PB 0x00000005f1000000| Untracked | 0 +| 981|0x00000005f1800000, 0x00000005f1800000, 0x00000005f2000000| 0%| F| |TAMS 0x00000005f1800000| PB 0x00000005f1800000| Untracked | 0 +| 982|0x00000005f2000000, 0x00000005f2000000, 0x00000005f2800000| 0%| F| |TAMS 0x00000005f2000000| PB 0x00000005f2000000| Untracked | 0 +| 983|0x00000005f2800000, 0x00000005f2800000, 0x00000005f3000000| 0%| F| |TAMS 0x00000005f2800000| PB 0x00000005f2800000| Untracked | 0 +| 984|0x00000005f3000000, 0x00000005f3000000, 0x00000005f3800000| 0%| F| |TAMS 0x00000005f3000000| PB 0x00000005f3000000| Untracked | 0 +| 985|0x00000005f3800000, 0x00000005f3800000, 0x00000005f4000000| 0%| F| |TAMS 0x00000005f3800000| PB 0x00000005f3800000| Untracked | 0 +| 986|0x00000005f4000000, 0x00000005f4000000, 0x00000005f4800000| 0%| F| |TAMS 0x00000005f4000000| PB 0x00000005f4000000| Untracked | 0 +| 987|0x00000005f4800000, 0x00000005f4800000, 0x00000005f5000000| 0%| F| |TAMS 0x00000005f4800000| PB 0x00000005f4800000| Untracked | 0 +| 988|0x00000005f5000000, 0x00000005f5000000, 0x00000005f5800000| 0%| F| |TAMS 0x00000005f5000000| PB 0x00000005f5000000| Untracked | 0 +| 989|0x00000005f5800000, 0x00000005f5800000, 0x00000005f6000000| 0%| F| |TAMS 0x00000005f5800000| PB 0x00000005f5800000| Untracked | 0 +| 990|0x00000005f6000000, 0x00000005f6000000, 0x00000005f6800000| 0%| F| |TAMS 0x00000005f6000000| PB 0x00000005f6000000| Untracked | 0 +| 991|0x00000005f6800000, 0x00000005f6800000, 0x00000005f7000000| 0%| F| |TAMS 0x00000005f6800000| PB 0x00000005f6800000| Untracked | 0 +| 992|0x00000005f7000000, 0x00000005f7000000, 0x00000005f7800000| 0%| F| |TAMS 0x00000005f7000000| PB 0x00000005f7000000| Untracked | 0 +| 993|0x00000005f7800000, 0x00000005f7800000, 0x00000005f8000000| 0%| F| |TAMS 0x00000005f7800000| PB 0x00000005f7800000| Untracked | 0 +| 994|0x00000005f8000000, 0x00000005f8000000, 0x00000005f8800000| 0%| F| |TAMS 0x00000005f8000000| PB 0x00000005f8000000| Untracked | 0 +| 995|0x00000005f8800000, 0x00000005f8800000, 0x00000005f9000000| 0%| F| |TAMS 0x00000005f8800000| PB 0x00000005f8800000| Untracked | 0 +| 996|0x00000005f9000000, 0x00000005f9000000, 0x00000005f9800000| 0%| F| |TAMS 0x00000005f9000000| PB 0x00000005f9000000| Untracked | 0 +| 997|0x00000005f9800000, 0x00000005f9800000, 0x00000005fa000000| 0%| F| |TAMS 0x00000005f9800000| PB 0x00000005f9800000| Untracked | 0 +| 998|0x00000005fa000000, 0x00000005fa000000, 0x00000005fa800000| 0%| F| |TAMS 0x00000005fa000000| PB 0x00000005fa000000| Untracked | 0 +| 999|0x00000005fa800000, 0x00000005fa800000, 0x00000005fb000000| 0%| F| |TAMS 0x00000005fa800000| PB 0x00000005fa800000| Untracked | 0 +|1000|0x00000005fb000000, 0x00000005fb000000, 0x00000005fb800000| 0%| F| |TAMS 0x00000005fb000000| PB 0x00000005fb000000| Untracked | 0 +|1001|0x00000005fb800000, 0x00000005fb800000, 0x00000005fc000000| 0%| F| |TAMS 0x00000005fb800000| PB 0x00000005fb800000| Untracked | 0 +|1002|0x00000005fc000000, 0x00000005fc000000, 0x00000005fc800000| 0%| F| |TAMS 0x00000005fc000000| PB 0x00000005fc000000| Untracked | 0 +|1003|0x00000005fc800000, 0x00000005fc800000, 0x00000005fd000000| 0%| F| |TAMS 0x00000005fc800000| PB 0x00000005fc800000| Untracked | 0 +|1004|0x00000005fd000000, 0x00000005fd000000, 0x00000005fd800000| 0%| F| |TAMS 0x00000005fd000000| PB 0x00000005fd000000| Untracked | 0 +|1005|0x00000005fd800000, 0x00000005fd800000, 0x00000005fe000000| 0%| F| |TAMS 0x00000005fd800000| PB 0x00000005fd800000| Untracked | 0 +|1006|0x00000005fe000000, 0x00000005fe000000, 0x00000005fe800000| 0%| F| |TAMS 0x00000005fe000000| PB 0x00000005fe000000| Untracked | 0 +|1007|0x00000005fe800000, 0x00000005fe800000, 0x00000005ff000000| 0%| F| |TAMS 0x00000005fe800000| PB 0x00000005fe800000| Untracked | 0 +|1008|0x00000005ff000000, 0x00000005ff000000, 0x00000005ff800000| 0%| F| |TAMS 0x00000005ff000000| PB 0x00000005ff000000| Untracked | 0 +|1009|0x00000005ff800000, 0x00000005ff800000, 0x0000000600000000| 0%| F| |TAMS 0x00000005ff800000| PB 0x00000005ff800000| Untracked | 0 +|1010|0x0000000600000000, 0x0000000600000000, 0x0000000600800000| 0%| F| |TAMS 0x0000000600000000| PB 0x0000000600000000| Untracked | 0 +|1011|0x0000000600800000, 0x0000000600800000, 0x0000000601000000| 0%| F| |TAMS 0x0000000600800000| PB 0x0000000600800000| Untracked | 0 +|1012|0x0000000601000000, 0x0000000601000000, 0x0000000601800000| 0%| F| |TAMS 0x0000000601000000| PB 0x0000000601000000| Untracked | 0 +|1013|0x0000000601800000, 0x0000000601800000, 0x0000000602000000| 0%| F| |TAMS 0x0000000601800000| PB 0x0000000601800000| Untracked | 0 +|1014|0x0000000602000000, 0x0000000602000000, 0x0000000602800000| 0%| F| |TAMS 0x0000000602000000| PB 0x0000000602000000| Untracked | 0 +|1015|0x0000000602800000, 0x0000000602800000, 0x0000000603000000| 0%| F| |TAMS 0x0000000602800000| PB 0x0000000602800000| Untracked | 0 +|1016|0x0000000603000000, 0x0000000603000000, 0x0000000603800000| 0%| F| |TAMS 0x0000000603000000| PB 0x0000000603000000| Untracked | 0 +|1017|0x0000000603800000, 0x0000000603800000, 0x0000000604000000| 0%| F| |TAMS 0x0000000603800000| PB 0x0000000603800000| Untracked | 0 +|1018|0x0000000604000000, 0x0000000604000000, 0x0000000604800000| 0%| F| |TAMS 0x0000000604000000| PB 0x0000000604000000| Untracked | 0 +|1019|0x0000000604800000, 0x0000000604800000, 0x0000000605000000| 0%| F| |TAMS 0x0000000604800000| PB 0x0000000604800000| Untracked | 0 +|1020|0x0000000605000000, 0x0000000605000000, 0x0000000605800000| 0%| F| |TAMS 0x0000000605000000| PB 0x0000000605000000| Untracked | 0 +|1021|0x0000000605800000, 0x0000000605800000, 0x0000000606000000| 0%| F| |TAMS 0x0000000605800000| PB 0x0000000605800000| Untracked | 0 +|1022|0x0000000606000000, 0x0000000606000000, 0x0000000606800000| 0%| F| |TAMS 0x0000000606000000| PB 0x0000000606000000| Untracked | 0 +|1023|0x0000000606800000, 0x0000000606800000, 0x0000000607000000| 0%| F| |TAMS 0x0000000606800000| PB 0x0000000606800000| Untracked | 0 +|1024|0x0000000607000000, 0x0000000607000000, 0x0000000607800000| 0%| F| |TAMS 0x0000000607000000| PB 0x0000000607000000| Untracked | 0 +|1025|0x0000000607800000, 0x0000000607800000, 0x0000000608000000| 0%| F| |TAMS 0x0000000607800000| PB 0x0000000607800000| Untracked | 0 +|1026|0x0000000608000000, 0x0000000608000000, 0x0000000608800000| 0%| F| |TAMS 0x0000000608000000| PB 0x0000000608000000| Untracked | 0 +|1027|0x0000000608800000, 0x0000000608800000, 0x0000000609000000| 0%| F| |TAMS 0x0000000608800000| PB 0x0000000608800000| Untracked | 0 +|1028|0x0000000609000000, 0x0000000609000000, 0x0000000609800000| 0%| F| |TAMS 0x0000000609000000| PB 0x0000000609000000| Untracked | 0 +|1029|0x0000000609800000, 0x0000000609800000, 0x000000060a000000| 0%| F| |TAMS 0x0000000609800000| PB 0x0000000609800000| Untracked | 0 +|1030|0x000000060a000000, 0x000000060a000000, 0x000000060a800000| 0%| F| |TAMS 0x000000060a000000| PB 0x000000060a000000| Untracked | 0 +|1031|0x000000060a800000, 0x000000060a800000, 0x000000060b000000| 0%| F| |TAMS 0x000000060a800000| PB 0x000000060a800000| Untracked | 0 +|1032|0x000000060b000000, 0x000000060b000000, 0x000000060b800000| 0%| F| |TAMS 0x000000060b000000| PB 0x000000060b000000| Untracked | 0 +|1033|0x000000060b800000, 0x000000060b800000, 0x000000060c000000| 0%| F| |TAMS 0x000000060b800000| PB 0x000000060b800000| Untracked | 0 +|1034|0x000000060c000000, 0x000000060c000000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +|1035|0x000000060c800000, 0x000000060c800000, 0x000000060d000000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +|1036|0x000000060d000000, 0x000000060d000000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 +|1037|0x000000060d800000, 0x000000060d800000, 0x000000060e000000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 +|1038|0x000000060e000000, 0x000000060e000000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 +|1039|0x000000060e800000, 0x000000060e800000, 0x000000060f000000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 +|1040|0x000000060f000000, 0x000000060f000000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 +|1041|0x000000060f800000, 0x000000060f800000, 0x0000000610000000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 +|1042|0x0000000610000000, 0x0000000610000000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 +|1043|0x0000000610800000, 0x0000000610800000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 +|1044|0x0000000611000000, 0x0000000611000000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 +|1045|0x0000000611800000, 0x0000000611800000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 +|1046|0x0000000612000000, 0x0000000612000000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 +|1047|0x0000000612800000, 0x0000000612800000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 +|1048|0x0000000613000000, 0x0000000613000000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 +|1049|0x0000000613800000, 0x0000000613800000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 +|1050|0x0000000614000000, 0x0000000614000000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 +|1051|0x0000000614800000, 0x0000000614800000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 +|1052|0x0000000615000000, 0x0000000615000000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 +|1053|0x0000000615800000, 0x0000000615800000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 +|1054|0x0000000616000000, 0x0000000616000000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 +|1055|0x0000000616800000, 0x0000000616800000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 +|1056|0x0000000617000000, 0x0000000617000000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 +|1057|0x0000000617800000, 0x0000000617800000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 +|1058|0x0000000618000000, 0x0000000618000000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 +|1059|0x0000000618800000, 0x0000000618800000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 +|1060|0x0000000619000000, 0x0000000619000000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 +|1061|0x0000000619800000, 0x0000000619800000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 +|1062|0x000000061a000000, 0x000000061a000000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 +|1063|0x000000061a800000, 0x000000061a800000, 0x000000061b000000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 +|1064|0x000000061b000000, 0x000000061b000000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 +|1065|0x000000061b800000, 0x000000061b800000, 0x000000061c000000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 +|1066|0x000000061c000000, 0x000000061c000000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 +|1067|0x000000061c800000, 0x000000061c800000, 0x000000061d000000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 +|1068|0x000000061d000000, 0x000000061d000000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 +|1069|0x000000061d800000, 0x000000061d800000, 0x000000061e000000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 +|1070|0x000000061e000000, 0x000000061e000000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 +|1071|0x000000061e800000, 0x000000061e800000, 0x000000061f000000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 +|1072|0x000000061f000000, 0x000000061f000000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 +|1073|0x000000061f800000, 0x000000061f800000, 0x0000000620000000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 +|1074|0x0000000620000000, 0x0000000620000000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 +|1075|0x0000000620800000, 0x0000000620800000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 +|1076|0x0000000621000000, 0x0000000621000000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 +|1077|0x0000000621800000, 0x0000000621800000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 +|1078|0x0000000622000000, 0x0000000622000000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 +|1079|0x0000000622800000, 0x0000000622800000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 +|1080|0x0000000623000000, 0x0000000623000000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 +|1081|0x0000000623800000, 0x0000000623800000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 +|1082|0x0000000624000000, 0x0000000624000000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 +|1083|0x0000000624800000, 0x0000000624800000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 +|1084|0x0000000625000000, 0x0000000625000000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 +|1085|0x0000000625800000, 0x0000000625800000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 +|1086|0x0000000626000000, 0x0000000626000000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 +|1087|0x0000000626800000, 0x0000000626800000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 +|1088|0x0000000627000000, 0x0000000627000000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 +|1089|0x0000000627800000, 0x0000000627800000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 +|1090|0x0000000628000000, 0x0000000628000000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 +|1091|0x0000000628800000, 0x0000000628800000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 +|1092|0x0000000629000000, 0x0000000629000000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 +|1093|0x0000000629800000, 0x0000000629800000, 0x000000062a000000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 +|1094|0x000000062a000000, 0x000000062a000000, 0x000000062a800000| 0%| F| |TAMS 0x000000062a000000| PB 0x000000062a000000| Untracked | 0 +|1095|0x000000062a800000, 0x000000062a800000, 0x000000062b000000| 0%| F| |TAMS 0x000000062a800000| PB 0x000000062a800000| Untracked | 0 +|1096|0x000000062b000000, 0x000000062b000000, 0x000000062b800000| 0%| F| |TAMS 0x000000062b000000| PB 0x000000062b000000| Untracked | 0 +|1097|0x000000062b800000, 0x000000062b800000, 0x000000062c000000| 0%| F| |TAMS 0x000000062b800000| PB 0x000000062b800000| Untracked | 0 +|1098|0x000000062c000000, 0x000000062c000000, 0x000000062c800000| 0%| F| |TAMS 0x000000062c000000| PB 0x000000062c000000| Untracked | 0 +|1099|0x000000062c800000, 0x000000062c800000, 0x000000062d000000| 0%| F| |TAMS 0x000000062c800000| PB 0x000000062c800000| Untracked | 0 +|1100|0x000000062d000000, 0x000000062d000000, 0x000000062d800000| 0%| F| |TAMS 0x000000062d000000| PB 0x000000062d000000| Untracked | 0 +|1101|0x000000062d800000, 0x000000062d800000, 0x000000062e000000| 0%| F| |TAMS 0x000000062d800000| PB 0x000000062d800000| Untracked | 0 +|1102|0x000000062e000000, 0x000000062e000000, 0x000000062e800000| 0%| F| |TAMS 0x000000062e000000| PB 0x000000062e000000| Untracked | 0 +|1103|0x000000062e800000, 0x000000062e800000, 0x000000062f000000| 0%| F| |TAMS 0x000000062e800000| PB 0x000000062e800000| Untracked | 0 +|1104|0x000000062f000000, 0x000000062f000000, 0x000000062f800000| 0%| F| |TAMS 0x000000062f000000| PB 0x000000062f000000| Untracked | 0 +|1105|0x000000062f800000, 0x000000062f800000, 0x0000000630000000| 0%| F| |TAMS 0x000000062f800000| PB 0x000000062f800000| Untracked | 0 +|1106|0x0000000630000000, 0x0000000630000000, 0x0000000630800000| 0%| F| |TAMS 0x0000000630000000| PB 0x0000000630000000| Untracked | 0 +|1107|0x0000000630800000, 0x0000000630800000, 0x0000000631000000| 0%| F| |TAMS 0x0000000630800000| PB 0x0000000630800000| Untracked | 0 +|1108|0x0000000631000000, 0x0000000631000000, 0x0000000631800000| 0%| F| |TAMS 0x0000000631000000| PB 0x0000000631000000| Untracked | 0 +|1109|0x0000000631800000, 0x0000000631800000, 0x0000000632000000| 0%| F| |TAMS 0x0000000631800000| PB 0x0000000631800000| Untracked | 0 +|1110|0x0000000632000000, 0x0000000632000000, 0x0000000632800000| 0%| F| |TAMS 0x0000000632000000| PB 0x0000000632000000| Untracked | 0 +|1111|0x0000000632800000, 0x0000000632800000, 0x0000000633000000| 0%| F| |TAMS 0x0000000632800000| PB 0x0000000632800000| Untracked | 0 +|1112|0x0000000633000000, 0x0000000633000000, 0x0000000633800000| 0%| F| |TAMS 0x0000000633000000| PB 0x0000000633000000| Untracked | 0 +|1113|0x0000000633800000, 0x0000000633800000, 0x0000000634000000| 0%| F| |TAMS 0x0000000633800000| PB 0x0000000633800000| Untracked | 0 +|1114|0x0000000634000000, 0x0000000634000000, 0x0000000634800000| 0%| F| |TAMS 0x0000000634000000| PB 0x0000000634000000| Untracked | 0 +|1115|0x0000000634800000, 0x0000000634800000, 0x0000000635000000| 0%| F| |TAMS 0x0000000634800000| PB 0x0000000634800000| Untracked | 0 +|1116|0x0000000635000000, 0x0000000635000000, 0x0000000635800000| 0%| F| |TAMS 0x0000000635000000| PB 0x0000000635000000| Untracked | 0 +|1117|0x0000000635800000, 0x0000000635800000, 0x0000000636000000| 0%| F| |TAMS 0x0000000635800000| PB 0x0000000635800000| Untracked | 0 +|1118|0x0000000636000000, 0x0000000636000000, 0x0000000636800000| 0%| F| |TAMS 0x0000000636000000| PB 0x0000000636000000| Untracked | 0 +|1119|0x0000000636800000, 0x0000000636800000, 0x0000000637000000| 0%| F| |TAMS 0x0000000636800000| PB 0x0000000636800000| Untracked | 0 +|1120|0x0000000637000000, 0x0000000637000000, 0x0000000637800000| 0%| F| |TAMS 0x0000000637000000| PB 0x0000000637000000| Untracked | 0 +|1121|0x0000000637800000, 0x0000000637800000, 0x0000000638000000| 0%| F| |TAMS 0x0000000637800000| PB 0x0000000637800000| Untracked | 0 +|1122|0x0000000638000000, 0x0000000638000000, 0x0000000638800000| 0%| F| |TAMS 0x0000000638000000| PB 0x0000000638000000| Untracked | 0 +|1123|0x0000000638800000, 0x0000000638800000, 0x0000000639000000| 0%| F| |TAMS 0x0000000638800000| PB 0x0000000638800000| Untracked | 0 +|1124|0x0000000639000000, 0x0000000639000000, 0x0000000639800000| 0%| F| |TAMS 0x0000000639000000| PB 0x0000000639000000| Untracked | 0 +|1125|0x0000000639800000, 0x0000000639800000, 0x000000063a000000| 0%| F| |TAMS 0x0000000639800000| PB 0x0000000639800000| Untracked | 0 +|1126|0x000000063a000000, 0x000000063a000000, 0x000000063a800000| 0%| F| |TAMS 0x000000063a000000| PB 0x000000063a000000| Untracked | 0 +|1127|0x000000063a800000, 0x000000063a800000, 0x000000063b000000| 0%| F| |TAMS 0x000000063a800000| PB 0x000000063a800000| Untracked | 0 +|1128|0x000000063b000000, 0x000000063b000000, 0x000000063b800000| 0%| F| |TAMS 0x000000063b000000| PB 0x000000063b000000| Untracked | 0 +|1129|0x000000063b800000, 0x000000063b800000, 0x000000063c000000| 0%| F| |TAMS 0x000000063b800000| PB 0x000000063b800000| Untracked | 0 +|1130|0x000000063c000000, 0x000000063c000000, 0x000000063c800000| 0%| F| |TAMS 0x000000063c000000| PB 0x000000063c000000| Untracked | 0 +|1131|0x000000063c800000, 0x000000063c800000, 0x000000063d000000| 0%| F| |TAMS 0x000000063c800000| PB 0x000000063c800000| Untracked | 0 +|1132|0x000000063d000000, 0x000000063d000000, 0x000000063d800000| 0%| F| |TAMS 0x000000063d000000| PB 0x000000063d000000| Untracked | 0 +|1133|0x000000063d800000, 0x000000063d800000, 0x000000063e000000| 0%| F| |TAMS 0x000000063d800000| PB 0x000000063d800000| Untracked | 0 +|1134|0x000000063e000000, 0x000000063e000000, 0x000000063e800000| 0%| F| |TAMS 0x000000063e000000| PB 0x000000063e000000| Untracked | 0 +|1135|0x000000063e800000, 0x000000063e800000, 0x000000063f000000| 0%| F| |TAMS 0x000000063e800000| PB 0x000000063e800000| Untracked | 0 +|1136|0x000000063f000000, 0x000000063f000000, 0x000000063f800000| 0%| F| |TAMS 0x000000063f000000| PB 0x000000063f000000| Untracked | 0 +|1137|0x000000063f800000, 0x000000063f800000, 0x0000000640000000| 0%| F| |TAMS 0x000000063f800000| PB 0x000000063f800000| Untracked | 0 +|1138|0x0000000640000000, 0x0000000640000000, 0x0000000640800000| 0%| F| |TAMS 0x0000000640000000| PB 0x0000000640000000| Untracked | 0 +|1139|0x0000000640800000, 0x0000000640800000, 0x0000000641000000| 0%| F| |TAMS 0x0000000640800000| PB 0x0000000640800000| Untracked | 0 +|1140|0x0000000641000000, 0x0000000641000000, 0x0000000641800000| 0%| F| |TAMS 0x0000000641000000| PB 0x0000000641000000| Untracked | 0 +|1141|0x0000000641800000, 0x0000000641800000, 0x0000000642000000| 0%| F| |TAMS 0x0000000641800000| PB 0x0000000641800000| Untracked | 0 +|1142|0x0000000642000000, 0x0000000642000000, 0x0000000642800000| 0%| F| |TAMS 0x0000000642000000| PB 0x0000000642000000| Untracked | 0 +|1143|0x0000000642800000, 0x0000000642800000, 0x0000000643000000| 0%| F| |TAMS 0x0000000642800000| PB 0x0000000642800000| Untracked | 0 +|1144|0x0000000643000000, 0x0000000643000000, 0x0000000643800000| 0%| F| |TAMS 0x0000000643000000| PB 0x0000000643000000| Untracked | 0 +|1145|0x0000000643800000, 0x0000000643800000, 0x0000000644000000| 0%| F| |TAMS 0x0000000643800000| PB 0x0000000643800000| Untracked | 0 +|1146|0x0000000644000000, 0x0000000644000000, 0x0000000644800000| 0%| F| |TAMS 0x0000000644000000| PB 0x0000000644000000| Untracked | 0 +|1147|0x0000000644800000, 0x0000000644800000, 0x0000000645000000| 0%| F| |TAMS 0x0000000644800000| PB 0x0000000644800000| Untracked | 0 +|1148|0x0000000645000000, 0x0000000645000000, 0x0000000645800000| 0%| F| |TAMS 0x0000000645000000| PB 0x0000000645000000| Untracked | 0 +|1149|0x0000000645800000, 0x0000000645800000, 0x0000000646000000| 0%| F| |TAMS 0x0000000645800000| PB 0x0000000645800000| Untracked | 0 +|1150|0x0000000646000000, 0x0000000646000000, 0x0000000646800000| 0%| F| |TAMS 0x0000000646000000| PB 0x0000000646000000| Untracked | 0 +|1151|0x0000000646800000, 0x0000000646800000, 0x0000000647000000| 0%| F| |TAMS 0x0000000646800000| PB 0x0000000646800000| Untracked | 0 +|1152|0x0000000647000000, 0x0000000647000000, 0x0000000647800000| 0%| F| |TAMS 0x0000000647000000| PB 0x0000000647000000| Untracked | 0 +|1153|0x0000000647800000, 0x0000000647800000, 0x0000000648000000| 0%| F| |TAMS 0x0000000647800000| PB 0x0000000647800000| Untracked | 0 +|1154|0x0000000648000000, 0x0000000648000000, 0x0000000648800000| 0%| F| |TAMS 0x0000000648000000| PB 0x0000000648000000| Untracked | 0 +|1155|0x0000000648800000, 0x0000000648800000, 0x0000000649000000| 0%| F| |TAMS 0x0000000648800000| PB 0x0000000648800000| Untracked | 0 +|1156|0x0000000649000000, 0x0000000649000000, 0x0000000649800000| 0%| F| |TAMS 0x0000000649000000| PB 0x0000000649000000| Untracked | 0 +|1157|0x0000000649800000, 0x0000000649800000, 0x000000064a000000| 0%| F| |TAMS 0x0000000649800000| PB 0x0000000649800000| Untracked | 0 +|1158|0x000000064a000000, 0x000000064a000000, 0x000000064a800000| 0%| F| |TAMS 0x000000064a000000| PB 0x000000064a000000| Untracked | 0 +|1159|0x000000064a800000, 0x000000064a800000, 0x000000064b000000| 0%| F| |TAMS 0x000000064a800000| PB 0x000000064a800000| Untracked | 0 +|1160|0x000000064b000000, 0x000000064b000000, 0x000000064b800000| 0%| F| |TAMS 0x000000064b000000| PB 0x000000064b000000| Untracked | 0 +|1161|0x000000064b800000, 0x000000064b800000, 0x000000064c000000| 0%| F| |TAMS 0x000000064b800000| PB 0x000000064b800000| Untracked | 0 +|1162|0x000000064c000000, 0x000000064c000000, 0x000000064c800000| 0%| F| |TAMS 0x000000064c000000| PB 0x000000064c000000| Untracked | 0 +|1163|0x000000064c800000, 0x000000064c800000, 0x000000064d000000| 0%| F| |TAMS 0x000000064c800000| PB 0x000000064c800000| Untracked | 0 +|1164|0x000000064d000000, 0x000000064d000000, 0x000000064d800000| 0%| F| |TAMS 0x000000064d000000| PB 0x000000064d000000| Untracked | 0 +|1165|0x000000064d800000, 0x000000064d800000, 0x000000064e000000| 0%| F| |TAMS 0x000000064d800000| PB 0x000000064d800000| Untracked | 0 +|1166|0x000000064e000000, 0x000000064e000000, 0x000000064e800000| 0%| F| |TAMS 0x000000064e000000| PB 0x000000064e000000| Untracked | 0 +|1167|0x000000064e800000, 0x000000064e800000, 0x000000064f000000| 0%| F| |TAMS 0x000000064e800000| PB 0x000000064e800000| Untracked | 0 +|1168|0x000000064f000000, 0x000000064f000000, 0x000000064f800000| 0%| F| |TAMS 0x000000064f000000| PB 0x000000064f000000| Untracked | 0 +|1169|0x000000064f800000, 0x000000064f800000, 0x0000000650000000| 0%| F| |TAMS 0x000000064f800000| PB 0x000000064f800000| Untracked | 0 +|1170|0x0000000650000000, 0x0000000650000000, 0x0000000650800000| 0%| F| |TAMS 0x0000000650000000| PB 0x0000000650000000| Untracked | 0 +|1171|0x0000000650800000, 0x0000000650800000, 0x0000000651000000| 0%| F| |TAMS 0x0000000650800000| PB 0x0000000650800000| Untracked | 0 +|1172|0x0000000651000000, 0x0000000651000000, 0x0000000651800000| 0%| F| |TAMS 0x0000000651000000| PB 0x0000000651000000| Untracked | 0 +|1173|0x0000000651800000, 0x0000000651800000, 0x0000000652000000| 0%| F| |TAMS 0x0000000651800000| PB 0x0000000651800000| Untracked | 0 +|1174|0x0000000652000000, 0x0000000652000000, 0x0000000652800000| 0%| F| |TAMS 0x0000000652000000| PB 0x0000000652000000| Untracked | 0 +|1175|0x0000000652800000, 0x0000000652800000, 0x0000000653000000| 0%| F| |TAMS 0x0000000652800000| PB 0x0000000652800000| Untracked | 0 +|1176|0x0000000653000000, 0x0000000653000000, 0x0000000653800000| 0%| F| |TAMS 0x0000000653000000| PB 0x0000000653000000| Untracked | 0 +|1177|0x0000000653800000, 0x0000000653800000, 0x0000000654000000| 0%| F| |TAMS 0x0000000653800000| PB 0x0000000653800000| Untracked | 0 +|1178|0x0000000654000000, 0x0000000654000000, 0x0000000654800000| 0%| F| |TAMS 0x0000000654000000| PB 0x0000000654000000| Untracked | 0 +|1179|0x0000000654800000, 0x0000000654800000, 0x0000000655000000| 0%| F| |TAMS 0x0000000654800000| PB 0x0000000654800000| Untracked | 0 +|1180|0x0000000655000000, 0x0000000655000000, 0x0000000655800000| 0%| F| |TAMS 0x0000000655000000| PB 0x0000000655000000| Untracked | 0 +|1181|0x0000000655800000, 0x0000000655800000, 0x0000000656000000| 0%| F| |TAMS 0x0000000655800000| PB 0x0000000655800000| Untracked | 0 +|1182|0x0000000656000000, 0x0000000656000000, 0x0000000656800000| 0%| F| |TAMS 0x0000000656000000| PB 0x0000000656000000| Untracked | 0 +|1183|0x0000000656800000, 0x0000000656800000, 0x0000000657000000| 0%| F| |TAMS 0x0000000656800000| PB 0x0000000656800000| Untracked | 0 +|1184|0x0000000657000000, 0x0000000657000000, 0x0000000657800000| 0%| F| |TAMS 0x0000000657000000| PB 0x0000000657000000| Untracked | 0 +|1185|0x0000000657800000, 0x0000000657800000, 0x0000000658000000| 0%| F| |TAMS 0x0000000657800000| PB 0x0000000657800000| Untracked | 0 +|1186|0x0000000658000000, 0x0000000658000000, 0x0000000658800000| 0%| F| |TAMS 0x0000000658000000| PB 0x0000000658000000| Untracked | 0 +|1187|0x0000000658800000, 0x0000000658800000, 0x0000000659000000| 0%| F| |TAMS 0x0000000658800000| PB 0x0000000658800000| Untracked | 0 +|1188|0x0000000659000000, 0x0000000659000000, 0x0000000659800000| 0%| F| |TAMS 0x0000000659000000| PB 0x0000000659000000| Untracked | 0 +|1189|0x0000000659800000, 0x0000000659800000, 0x000000065a000000| 0%| F| |TAMS 0x0000000659800000| PB 0x0000000659800000| Untracked | 0 +|1190|0x000000065a000000, 0x000000065a000000, 0x000000065a800000| 0%| F| |TAMS 0x000000065a000000| PB 0x000000065a000000| Untracked | 0 +|1191|0x000000065a800000, 0x000000065a800000, 0x000000065b000000| 0%| F| |TAMS 0x000000065a800000| PB 0x000000065a800000| Untracked | 0 +|1192|0x000000065b000000, 0x000000065b000000, 0x000000065b800000| 0%| F| |TAMS 0x000000065b000000| PB 0x000000065b000000| Untracked | 0 +|1193|0x000000065b800000, 0x000000065b800000, 0x000000065c000000| 0%| F| |TAMS 0x000000065b800000| PB 0x000000065b800000| Untracked | 0 +|1194|0x000000065c000000, 0x000000065c000000, 0x000000065c800000| 0%| F| |TAMS 0x000000065c000000| PB 0x000000065c000000| Untracked | 0 +|1195|0x000000065c800000, 0x000000065c800000, 0x000000065d000000| 0%| F| |TAMS 0x000000065c800000| PB 0x000000065c800000| Untracked | 0 +|1196|0x000000065d000000, 0x000000065d000000, 0x000000065d800000| 0%| F| |TAMS 0x000000065d000000| PB 0x000000065d000000| Untracked | 0 +|1197|0x000000065d800000, 0x000000065d800000, 0x000000065e000000| 0%| F| |TAMS 0x000000065d800000| PB 0x000000065d800000| Untracked | 0 +|1198|0x000000065e000000, 0x000000065e000000, 0x000000065e800000| 0%| F| |TAMS 0x000000065e000000| PB 0x000000065e000000| Untracked | 0 +|1199|0x000000065e800000, 0x000000065e800000, 0x000000065f000000| 0%| F| |TAMS 0x000000065e800000| PB 0x000000065e800000| Untracked | 0 +|1200|0x000000065f000000, 0x000000065f000000, 0x000000065f800000| 0%| F| |TAMS 0x000000065f000000| PB 0x000000065f000000| Untracked | 0 +|1201|0x000000065f800000, 0x000000065f800000, 0x0000000660000000| 0%| F| |TAMS 0x000000065f800000| PB 0x000000065f800000| Untracked | 0 +|1202|0x0000000660000000, 0x0000000660000000, 0x0000000660800000| 0%| F| |TAMS 0x0000000660000000| PB 0x0000000660000000| Untracked | 0 +|1203|0x0000000660800000, 0x0000000660800000, 0x0000000661000000| 0%| F| |TAMS 0x0000000660800000| PB 0x0000000660800000| Untracked | 0 +|1204|0x0000000661000000, 0x0000000661000000, 0x0000000661800000| 0%| F| |TAMS 0x0000000661000000| PB 0x0000000661000000| Untracked | 0 +|1205|0x0000000661800000, 0x0000000661800000, 0x0000000662000000| 0%| F| |TAMS 0x0000000661800000| PB 0x0000000661800000| Untracked | 0 +|1206|0x0000000662000000, 0x0000000662000000, 0x0000000662800000| 0%| F| |TAMS 0x0000000662000000| PB 0x0000000662000000| Untracked | 0 +|1207|0x0000000662800000, 0x0000000662800000, 0x0000000663000000| 0%| F| |TAMS 0x0000000662800000| PB 0x0000000662800000| Untracked | 0 +|1208|0x0000000663000000, 0x0000000663000000, 0x0000000663800000| 0%| F| |TAMS 0x0000000663000000| PB 0x0000000663000000| Untracked | 0 +|1209|0x0000000663800000, 0x0000000663800000, 0x0000000664000000| 0%| F| |TAMS 0x0000000663800000| PB 0x0000000663800000| Untracked | 0 +|1210|0x0000000664000000, 0x0000000664000000, 0x0000000664800000| 0%| F| |TAMS 0x0000000664000000| PB 0x0000000664000000| Untracked | 0 +|1211|0x0000000664800000, 0x0000000664800000, 0x0000000665000000| 0%| F| |TAMS 0x0000000664800000| PB 0x0000000664800000| Untracked | 0 +|1212|0x0000000665000000, 0x0000000665000000, 0x0000000665800000| 0%| F| |TAMS 0x0000000665000000| PB 0x0000000665000000| Untracked | 0 +|1213|0x0000000665800000, 0x0000000665800000, 0x0000000666000000| 0%| F| |TAMS 0x0000000665800000| PB 0x0000000665800000| Untracked | 0 +|1214|0x0000000666000000, 0x0000000666000000, 0x0000000666800000| 0%| F| |TAMS 0x0000000666000000| PB 0x0000000666000000| Untracked | 0 +|1215|0x0000000666800000, 0x0000000666800000, 0x0000000667000000| 0%| F| |TAMS 0x0000000666800000| PB 0x0000000666800000| Untracked | 0 +|1216|0x0000000667000000, 0x0000000667000000, 0x0000000667800000| 0%| F| |TAMS 0x0000000667000000| PB 0x0000000667000000| Untracked | 0 +|1217|0x0000000667800000, 0x0000000667800000, 0x0000000668000000| 0%| F| |TAMS 0x0000000667800000| PB 0x0000000667800000| Untracked | 0 +|1218|0x0000000668000000, 0x0000000668000000, 0x0000000668800000| 0%| F| |TAMS 0x0000000668000000| PB 0x0000000668000000| Untracked | 0 +|1219|0x0000000668800000, 0x0000000668800000, 0x0000000669000000| 0%| F| |TAMS 0x0000000668800000| PB 0x0000000668800000| Untracked | 0 +|1220|0x0000000669000000, 0x0000000669000000, 0x0000000669800000| 0%| F| |TAMS 0x0000000669000000| PB 0x0000000669000000| Untracked | 0 +|1221|0x0000000669800000, 0x0000000669800000, 0x000000066a000000| 0%| F| |TAMS 0x0000000669800000| PB 0x0000000669800000| Untracked | 0 +|1222|0x000000066a000000, 0x000000066a000000, 0x000000066a800000| 0%| F| |TAMS 0x000000066a000000| PB 0x000000066a000000| Untracked | 0 +|1223|0x000000066a800000, 0x000000066a800000, 0x000000066b000000| 0%| F| |TAMS 0x000000066a800000| PB 0x000000066a800000| Untracked | 0 +|1224|0x000000066b000000, 0x000000066b000000, 0x000000066b800000| 0%| F| |TAMS 0x000000066b000000| PB 0x000000066b000000| Untracked | 0 +|1225|0x000000066b800000, 0x000000066b800000, 0x000000066c000000| 0%| F| |TAMS 0x000000066b800000| PB 0x000000066b800000| Untracked | 0 +|1226|0x000000066c000000, 0x000000066c000000, 0x000000066c800000| 0%| F| |TAMS 0x000000066c000000| PB 0x000000066c000000| Untracked | 0 +|1227|0x000000066c800000, 0x000000066c800000, 0x000000066d000000| 0%| F| |TAMS 0x000000066c800000| PB 0x000000066c800000| Untracked | 0 +|1228|0x000000066d000000, 0x000000066d000000, 0x000000066d800000| 0%| F| |TAMS 0x000000066d000000| PB 0x000000066d000000| Untracked | 0 +|1229|0x000000066d800000, 0x000000066d800000, 0x000000066e000000| 0%| F| |TAMS 0x000000066d800000| PB 0x000000066d800000| Untracked | 0 +|1230|0x000000066e000000, 0x000000066e000000, 0x000000066e800000| 0%| F| |TAMS 0x000000066e000000| PB 0x000000066e000000| Untracked | 0 +|1231|0x000000066e800000, 0x000000066e800000, 0x000000066f000000| 0%| F| |TAMS 0x000000066e800000| PB 0x000000066e800000| Untracked | 0 +|1232|0x000000066f000000, 0x000000066f000000, 0x000000066f800000| 0%| F| |TAMS 0x000000066f000000| PB 0x000000066f000000| Untracked | 0 +|1233|0x000000066f800000, 0x000000066f800000, 0x0000000670000000| 0%| F| |TAMS 0x000000066f800000| PB 0x000000066f800000| Untracked | 0 +|1234|0x0000000670000000, 0x0000000670000000, 0x0000000670800000| 0%| F| |TAMS 0x0000000670000000| PB 0x0000000670000000| Untracked | 0 +|1235|0x0000000670800000, 0x0000000670800000, 0x0000000671000000| 0%| F| |TAMS 0x0000000670800000| PB 0x0000000670800000| Untracked | 0 +|1236|0x0000000671000000, 0x0000000671000000, 0x0000000671800000| 0%| F| |TAMS 0x0000000671000000| PB 0x0000000671000000| Untracked | 0 +|1237|0x0000000671800000, 0x0000000671800000, 0x0000000672000000| 0%| F| |TAMS 0x0000000671800000| PB 0x0000000671800000| Untracked | 0 +|1238|0x0000000672000000, 0x0000000672000000, 0x0000000672800000| 0%| F| |TAMS 0x0000000672000000| PB 0x0000000672000000| Untracked | 0 +|1239|0x0000000672800000, 0x0000000672800000, 0x0000000673000000| 0%| F| |TAMS 0x0000000672800000| PB 0x0000000672800000| Untracked | 0 +|1240|0x0000000673000000, 0x0000000673000000, 0x0000000673800000| 0%| F| |TAMS 0x0000000673000000| PB 0x0000000673000000| Untracked | 0 +|1241|0x0000000673800000, 0x0000000673800000, 0x0000000674000000| 0%| F| |TAMS 0x0000000673800000| PB 0x0000000673800000| Untracked | 0 +|1242|0x0000000674000000, 0x0000000674000000, 0x0000000674800000| 0%| F| |TAMS 0x0000000674000000| PB 0x0000000674000000| Untracked | 0 +|1243|0x0000000674800000, 0x0000000674800000, 0x0000000675000000| 0%| F| |TAMS 0x0000000674800000| PB 0x0000000674800000| Untracked | 0 +|1244|0x0000000675000000, 0x0000000675000000, 0x0000000675800000| 0%| F| |TAMS 0x0000000675000000| PB 0x0000000675000000| Untracked | 0 +|1245|0x0000000675800000, 0x0000000675800000, 0x0000000676000000| 0%| F| |TAMS 0x0000000675800000| PB 0x0000000675800000| Untracked | 0 +|1246|0x0000000676000000, 0x0000000676000000, 0x0000000676800000| 0%| F| |TAMS 0x0000000676000000| PB 0x0000000676000000| Untracked | 0 +|1247|0x0000000676800000, 0x0000000676800000, 0x0000000677000000| 0%| F| |TAMS 0x0000000676800000| PB 0x0000000676800000| Untracked | 0 +|1248|0x0000000677000000, 0x0000000677000000, 0x0000000677800000| 0%| F| |TAMS 0x0000000677000000| PB 0x0000000677000000| Untracked | 0 +|1249|0x0000000677800000, 0x0000000677800000, 0x0000000678000000| 0%| F| |TAMS 0x0000000677800000| PB 0x0000000677800000| Untracked | 0 +|1250|0x0000000678000000, 0x0000000678000000, 0x0000000678800000| 0%| F| |TAMS 0x0000000678000000| PB 0x0000000678000000| Untracked | 0 +|1251|0x0000000678800000, 0x0000000678800000, 0x0000000679000000| 0%| F| |TAMS 0x0000000678800000| PB 0x0000000678800000| Untracked | 0 +|1252|0x0000000679000000, 0x0000000679000000, 0x0000000679800000| 0%| F| |TAMS 0x0000000679000000| PB 0x0000000679000000| Untracked | 0 +|1253|0x0000000679800000, 0x0000000679800000, 0x000000067a000000| 0%| F| |TAMS 0x0000000679800000| PB 0x0000000679800000| Untracked | 0 +|1254|0x000000067a000000, 0x000000067a000000, 0x000000067a800000| 0%| F| |TAMS 0x000000067a000000| PB 0x000000067a000000| Untracked | 0 +|1255|0x000000067a800000, 0x000000067a800000, 0x000000067b000000| 0%| F| |TAMS 0x000000067a800000| PB 0x000000067a800000| Untracked | 0 +|1256|0x000000067b000000, 0x000000067b000000, 0x000000067b800000| 0%| F| |TAMS 0x000000067b000000| PB 0x000000067b000000| Untracked | 0 +|1257|0x000000067b800000, 0x000000067b800000, 0x000000067c000000| 0%| F| |TAMS 0x000000067b800000| PB 0x000000067b800000| Untracked | 0 +|1258|0x000000067c000000, 0x000000067c000000, 0x000000067c800000| 0%| F| |TAMS 0x000000067c000000| PB 0x000000067c000000| Untracked | 0 +|1259|0x000000067c800000, 0x000000067c800000, 0x000000067d000000| 0%| F| |TAMS 0x000000067c800000| PB 0x000000067c800000| Untracked | 0 +|1260|0x000000067d000000, 0x000000067d000000, 0x000000067d800000| 0%| F| |TAMS 0x000000067d000000| PB 0x000000067d000000| Untracked | 0 +|1261|0x000000067d800000, 0x000000067d800000, 0x000000067e000000| 0%| F| |TAMS 0x000000067d800000| PB 0x000000067d800000| Untracked | 0 +|1262|0x000000067e000000, 0x000000067e000000, 0x000000067e800000| 0%| F| |TAMS 0x000000067e000000| PB 0x000000067e000000| Untracked | 0 +|1263|0x000000067e800000, 0x000000067e800000, 0x000000067f000000| 0%| F| |TAMS 0x000000067e800000| PB 0x000000067e800000| Untracked | 0 +|1264|0x000000067f000000, 0x000000067f000000, 0x000000067f800000| 0%| F| |TAMS 0x000000067f000000| PB 0x000000067f000000| Untracked | 0 +|1265|0x000000067f800000, 0x000000067f800000, 0x0000000680000000| 0%| F| |TAMS 0x000000067f800000| PB 0x000000067f800000| Untracked | 0 +|1266|0x0000000680000000, 0x0000000680000000, 0x0000000680800000| 0%| F| |TAMS 0x0000000680000000| PB 0x0000000680000000| Untracked | 0 +|1267|0x0000000680800000, 0x0000000680800000, 0x0000000681000000| 0%| F| |TAMS 0x0000000680800000| PB 0x0000000680800000| Untracked | 0 +|1268|0x0000000681000000, 0x0000000681000000, 0x0000000681800000| 0%| F| |TAMS 0x0000000681000000| PB 0x0000000681000000| Untracked | 0 +|1269|0x0000000681800000, 0x0000000681800000, 0x0000000682000000| 0%| F| |TAMS 0x0000000681800000| PB 0x0000000681800000| Untracked | 0 +|1270|0x0000000682000000, 0x0000000682000000, 0x0000000682800000| 0%| F| |TAMS 0x0000000682000000| PB 0x0000000682000000| Untracked | 0 +|1271|0x0000000682800000, 0x0000000682800000, 0x0000000683000000| 0%| F| |TAMS 0x0000000682800000| PB 0x0000000682800000| Untracked | 0 +|1272|0x0000000683000000, 0x0000000683000000, 0x0000000683800000| 0%| F| |TAMS 0x0000000683000000| PB 0x0000000683000000| Untracked | 0 +|1273|0x0000000683800000, 0x0000000683800000, 0x0000000684000000| 0%| F| |TAMS 0x0000000683800000| PB 0x0000000683800000| Untracked | 0 +|1274|0x0000000684000000, 0x0000000684000000, 0x0000000684800000| 0%| F| |TAMS 0x0000000684000000| PB 0x0000000684000000| Untracked | 0 +|1275|0x0000000684800000, 0x0000000684800000, 0x0000000685000000| 0%| F| |TAMS 0x0000000684800000| PB 0x0000000684800000| Untracked | 0 +|1276|0x0000000685000000, 0x0000000685000000, 0x0000000685800000| 0%| F| |TAMS 0x0000000685000000| PB 0x0000000685000000| Untracked | 0 +|1277|0x0000000685800000, 0x0000000685800000, 0x0000000686000000| 0%| F| |TAMS 0x0000000685800000| PB 0x0000000685800000| Untracked | 0 +|1278|0x0000000686000000, 0x0000000686000000, 0x0000000686800000| 0%| F| |TAMS 0x0000000686000000| PB 0x0000000686000000| Untracked | 0 +|1279|0x0000000686800000, 0x0000000686800000, 0x0000000687000000| 0%| F| |TAMS 0x0000000686800000| PB 0x0000000686800000| Untracked | 0 +|1280|0x0000000687000000, 0x0000000687000000, 0x0000000687800000| 0%| F| |TAMS 0x0000000687000000| PB 0x0000000687000000| Untracked | 0 +|1281|0x0000000687800000, 0x0000000687800000, 0x0000000688000000| 0%| F| |TAMS 0x0000000687800000| PB 0x0000000687800000| Untracked | 0 +|1282|0x0000000688000000, 0x0000000688000000, 0x0000000688800000| 0%| F| |TAMS 0x0000000688000000| PB 0x0000000688000000| Untracked | 0 +|1283|0x0000000688800000, 0x0000000688800000, 0x0000000689000000| 0%| F| |TAMS 0x0000000688800000| PB 0x0000000688800000| Untracked | 0 +|1284|0x0000000689000000, 0x0000000689000000, 0x0000000689800000| 0%| F| |TAMS 0x0000000689000000| PB 0x0000000689000000| Untracked | 0 +|1285|0x0000000689800000, 0x0000000689800000, 0x000000068a000000| 0%| F| |TAMS 0x0000000689800000| PB 0x0000000689800000| Untracked | 0 +|1286|0x000000068a000000, 0x000000068a000000, 0x000000068a800000| 0%| F| |TAMS 0x000000068a000000| PB 0x000000068a000000| Untracked | 0 +|1287|0x000000068a800000, 0x000000068a800000, 0x000000068b000000| 0%| F| |TAMS 0x000000068a800000| PB 0x000000068a800000| Untracked | 0 +|1288|0x000000068b000000, 0x000000068b000000, 0x000000068b800000| 0%| F| |TAMS 0x000000068b000000| PB 0x000000068b000000| Untracked | 0 +|1289|0x000000068b800000, 0x000000068b800000, 0x000000068c000000| 0%| F| |TAMS 0x000000068b800000| PB 0x000000068b800000| Untracked | 0 +|1290|0x000000068c000000, 0x000000068c000000, 0x000000068c800000| 0%| F| |TAMS 0x000000068c000000| PB 0x000000068c000000| Untracked | 0 +|1291|0x000000068c800000, 0x000000068c800000, 0x000000068d000000| 0%| F| |TAMS 0x000000068c800000| PB 0x000000068c800000| Untracked | 0 +|1292|0x000000068d000000, 0x000000068d000000, 0x000000068d800000| 0%| F| |TAMS 0x000000068d000000| PB 0x000000068d000000| Untracked | 0 +|1293|0x000000068d800000, 0x000000068d800000, 0x000000068e000000| 0%| F| |TAMS 0x000000068d800000| PB 0x000000068d800000| Untracked | 0 +|1294|0x000000068e000000, 0x000000068e000000, 0x000000068e800000| 0%| F| |TAMS 0x000000068e000000| PB 0x000000068e000000| Untracked | 0 +|1295|0x000000068e800000, 0x000000068e800000, 0x000000068f000000| 0%| F| |TAMS 0x000000068e800000| PB 0x000000068e800000| Untracked | 0 +|1296|0x000000068f000000, 0x000000068f000000, 0x000000068f800000| 0%| F| |TAMS 0x000000068f000000| PB 0x000000068f000000| Untracked | 0 +|1297|0x000000068f800000, 0x000000068f800000, 0x0000000690000000| 0%| F| |TAMS 0x000000068f800000| PB 0x000000068f800000| Untracked | 0 +|1298|0x0000000690000000, 0x0000000690000000, 0x0000000690800000| 0%| F| |TAMS 0x0000000690000000| PB 0x0000000690000000| Untracked | 0 +|1299|0x0000000690800000, 0x0000000690800000, 0x0000000691000000| 0%| F| |TAMS 0x0000000690800000| PB 0x0000000690800000| Untracked | 0 +|1300|0x0000000691000000, 0x0000000691000000, 0x0000000691800000| 0%| F| |TAMS 0x0000000691000000| PB 0x0000000691000000| Untracked | 0 +|1301|0x0000000691800000, 0x0000000691800000, 0x0000000692000000| 0%| F| |TAMS 0x0000000691800000| PB 0x0000000691800000| Untracked | 0 +|1302|0x0000000692000000, 0x0000000692000000, 0x0000000692800000| 0%| F| |TAMS 0x0000000692000000| PB 0x0000000692000000| Untracked | 0 +|1303|0x0000000692800000, 0x0000000692800000, 0x0000000693000000| 0%| F| |TAMS 0x0000000692800000| PB 0x0000000692800000| Untracked | 0 +|1304|0x0000000693000000, 0x0000000693000000, 0x0000000693800000| 0%| F| |TAMS 0x0000000693000000| PB 0x0000000693000000| Untracked | 0 +|1305|0x0000000693800000, 0x0000000693800000, 0x0000000694000000| 0%| F| |TAMS 0x0000000693800000| PB 0x0000000693800000| Untracked | 0 +|1306|0x0000000694000000, 0x0000000694000000, 0x0000000694800000| 0%| F| |TAMS 0x0000000694000000| PB 0x0000000694000000| Untracked | 0 +|1307|0x0000000694800000, 0x0000000694800000, 0x0000000695000000| 0%| F| |TAMS 0x0000000694800000| PB 0x0000000694800000| Untracked | 0 +|1308|0x0000000695000000, 0x0000000695000000, 0x0000000695800000| 0%| F| |TAMS 0x0000000695000000| PB 0x0000000695000000| Untracked | 0 +|1309|0x0000000695800000, 0x0000000695800000, 0x0000000696000000| 0%| F| |TAMS 0x0000000695800000| PB 0x0000000695800000| Untracked | 0 +|1310|0x0000000696000000, 0x0000000696000000, 0x0000000696800000| 0%| F| |TAMS 0x0000000696000000| PB 0x0000000696000000| Untracked | 0 +|1311|0x0000000696800000, 0x0000000696800000, 0x0000000697000000| 0%| F| |TAMS 0x0000000696800000| PB 0x0000000696800000| Untracked | 0 +|1312|0x0000000697000000, 0x0000000697000000, 0x0000000697800000| 0%| F| |TAMS 0x0000000697000000| PB 0x0000000697000000| Untracked | 0 +|1313|0x0000000697800000, 0x0000000697800000, 0x0000000698000000| 0%| F| |TAMS 0x0000000697800000| PB 0x0000000697800000| Untracked | 0 +|1314|0x0000000698000000, 0x0000000698000000, 0x0000000698800000| 0%| F| |TAMS 0x0000000698000000| PB 0x0000000698000000| Untracked | 0 +|1315|0x0000000698800000, 0x0000000698800000, 0x0000000699000000| 0%| F| |TAMS 0x0000000698800000| PB 0x0000000698800000| Untracked | 0 +|1316|0x0000000699000000, 0x0000000699000000, 0x0000000699800000| 0%| F| |TAMS 0x0000000699000000| PB 0x0000000699000000| Untracked | 0 +|1317|0x0000000699800000, 0x0000000699800000, 0x000000069a000000| 0%| F| |TAMS 0x0000000699800000| PB 0x0000000699800000| Untracked | 0 +|1318|0x000000069a000000, 0x000000069a000000, 0x000000069a800000| 0%| F| |TAMS 0x000000069a000000| PB 0x000000069a000000| Untracked | 0 +|1319|0x000000069a800000, 0x000000069a800000, 0x000000069b000000| 0%| F| |TAMS 0x000000069a800000| PB 0x000000069a800000| Untracked | 0 +|1320|0x000000069b000000, 0x000000069b000000, 0x000000069b800000| 0%| F| |TAMS 0x000000069b000000| PB 0x000000069b000000| Untracked | 0 +|1321|0x000000069b800000, 0x000000069b800000, 0x000000069c000000| 0%| F| |TAMS 0x000000069b800000| PB 0x000000069b800000| Untracked | 0 +|1322|0x000000069c000000, 0x000000069c000000, 0x000000069c800000| 0%| F| |TAMS 0x000000069c000000| PB 0x000000069c000000| Untracked | 0 +|1323|0x000000069c800000, 0x000000069c800000, 0x000000069d000000| 0%| F| |TAMS 0x000000069c800000| PB 0x000000069c800000| Untracked | 0 +|1324|0x000000069d000000, 0x000000069d000000, 0x000000069d800000| 0%| F| |TAMS 0x000000069d000000| PB 0x000000069d000000| Untracked | 0 +|1325|0x000000069d800000, 0x000000069d800000, 0x000000069e000000| 0%| F| |TAMS 0x000000069d800000| PB 0x000000069d800000| Untracked | 0 +|1326|0x000000069e000000, 0x000000069e000000, 0x000000069e800000| 0%| F| |TAMS 0x000000069e000000| PB 0x000000069e000000| Untracked | 0 +|1327|0x000000069e800000, 0x000000069e800000, 0x000000069f000000| 0%| F| |TAMS 0x000000069e800000| PB 0x000000069e800000| Untracked | 0 +|1328|0x000000069f000000, 0x000000069f000000, 0x000000069f800000| 0%| F| |TAMS 0x000000069f000000| PB 0x000000069f000000| Untracked | 0 +|1329|0x000000069f800000, 0x000000069f800000, 0x00000006a0000000| 0%| F| |TAMS 0x000000069f800000| PB 0x000000069f800000| Untracked | 0 +|1330|0x00000006a0000000, 0x00000006a0000000, 0x00000006a0800000| 0%| F| |TAMS 0x00000006a0000000| PB 0x00000006a0000000| Untracked | 0 +|1331|0x00000006a0800000, 0x00000006a0800000, 0x00000006a1000000| 0%| F| |TAMS 0x00000006a0800000| PB 0x00000006a0800000| Untracked | 0 +|1332|0x00000006a1000000, 0x00000006a1000000, 0x00000006a1800000| 0%| F| |TAMS 0x00000006a1000000| PB 0x00000006a1000000| Untracked | 0 +|1333|0x00000006a1800000, 0x00000006a1800000, 0x00000006a2000000| 0%| F| |TAMS 0x00000006a1800000| PB 0x00000006a1800000| Untracked | 0 +|1334|0x00000006a2000000, 0x00000006a2000000, 0x00000006a2800000| 0%| F| |TAMS 0x00000006a2000000| PB 0x00000006a2000000| Untracked | 0 +|1335|0x00000006a2800000, 0x00000006a2800000, 0x00000006a3000000| 0%| F| |TAMS 0x00000006a2800000| PB 0x00000006a2800000| Untracked | 0 +|1336|0x00000006a3000000, 0x00000006a3000000, 0x00000006a3800000| 0%| F| |TAMS 0x00000006a3000000| PB 0x00000006a3000000| Untracked | 0 +|1337|0x00000006a3800000, 0x00000006a3800000, 0x00000006a4000000| 0%| F| |TAMS 0x00000006a3800000| PB 0x00000006a3800000| Untracked | 0 +|1338|0x00000006a4000000, 0x00000006a4000000, 0x00000006a4800000| 0%| F| |TAMS 0x00000006a4000000| PB 0x00000006a4000000| Untracked | 0 +|1339|0x00000006a4800000, 0x00000006a4800000, 0x00000006a5000000| 0%| F| |TAMS 0x00000006a4800000| PB 0x00000006a4800000| Untracked | 0 +|1340|0x00000006a5000000, 0x00000006a5000000, 0x00000006a5800000| 0%| F| |TAMS 0x00000006a5000000| PB 0x00000006a5000000| Untracked | 0 +|1341|0x00000006a5800000, 0x00000006a5800000, 0x00000006a6000000| 0%| F| |TAMS 0x00000006a5800000| PB 0x00000006a5800000| Untracked | 0 +|1342|0x00000006a6000000, 0x00000006a6000000, 0x00000006a6800000| 0%| F| |TAMS 0x00000006a6000000| PB 0x00000006a6000000| Untracked | 0 +|1343|0x00000006a6800000, 0x00000006a6800000, 0x00000006a7000000| 0%| F| |TAMS 0x00000006a6800000| PB 0x00000006a6800000| Untracked | 0 +|1344|0x00000006a7000000, 0x00000006a7000000, 0x00000006a7800000| 0%| F| |TAMS 0x00000006a7000000| PB 0x00000006a7000000| Untracked | 0 +|1345|0x00000006a7800000, 0x00000006a8000000, 0x00000006a8000000|100%| S|CS|TAMS 0x00000006a7800000| PB 0x00000006a7800000| Complete | 0 +|1346|0x00000006a8000000, 0x00000006a8800000, 0x00000006a8800000|100%| S|CS|TAMS 0x00000006a8000000| PB 0x00000006a8000000| Complete | 0 +|1347|0x00000006a8800000, 0x00000006a9000000, 0x00000006a9000000|100%| S|CS|TAMS 0x00000006a8800000| PB 0x00000006a8800000| Complete | 0 +|1348|0x00000006a9000000, 0x00000006a9800000, 0x00000006a9800000|100%| S|CS|TAMS 0x00000006a9000000| PB 0x00000006a9000000| Complete | 0 +|1349|0x00000006a9800000, 0x00000006aa000000, 0x00000006aa000000|100%| S|CS|TAMS 0x00000006a9800000| PB 0x00000006a9800000| Complete | 0 +|1350|0x00000006aa000000, 0x00000006aa800000, 0x00000006aa800000|100%| S|CS|TAMS 0x00000006aa000000| PB 0x00000006aa000000| Complete | 0 +|1351|0x00000006aa800000, 0x00000006ab000000, 0x00000006ab000000|100%| S|CS|TAMS 0x00000006aa800000| PB 0x00000006aa800000| Complete | 0 +|1352|0x00000006ab000000, 0x00000006ab800000, 0x00000006ab800000|100%| S|CS|TAMS 0x00000006ab000000| PB 0x00000006ab000000| Complete | 0 +|1353|0x00000006ab800000, 0x00000006ac000000, 0x00000006ac000000|100%| S|CS|TAMS 0x00000006ab800000| PB 0x00000006ab800000| Complete | 0 +|1354|0x00000006ac000000, 0x00000006ac000000, 0x00000006ac800000| 0%| F| |TAMS 0x00000006ac000000| PB 0x00000006ac000000| Untracked | 0 +|1355|0x00000006ac800000, 0x00000006ac800000, 0x00000006ad000000| 0%| F| |TAMS 0x00000006ac800000| PB 0x00000006ac800000| Untracked | 0 +|1356|0x00000006ad000000, 0x00000006ad000000, 0x00000006ad800000| 0%| F| |TAMS 0x00000006ad000000| PB 0x00000006ad000000| Untracked | 0 +|1357|0x00000006ad800000, 0x00000006ad800000, 0x00000006ae000000| 0%| F| |TAMS 0x00000006ad800000| PB 0x00000006ad800000| Untracked | 0 +|1358|0x00000006ae000000, 0x00000006ae000000, 0x00000006ae800000| 0%| F| |TAMS 0x00000006ae000000| PB 0x00000006ae000000| Untracked | 0 +|1359|0x00000006ae800000, 0x00000006ae800000, 0x00000006af000000| 0%| F| |TAMS 0x00000006ae800000| PB 0x00000006ae800000| Untracked | 0 +|1360|0x00000006af000000, 0x00000006af000000, 0x00000006af800000| 0%| F| |TAMS 0x00000006af000000| PB 0x00000006af000000| Untracked | 0 +|1361|0x00000006af800000, 0x00000006af800000, 0x00000006b0000000| 0%| F| |TAMS 0x00000006af800000| PB 0x00000006af800000| Untracked | 0 +|1362|0x00000006b0000000, 0x00000006b0000000, 0x00000006b0800000| 0%| F| |TAMS 0x00000006b0000000| PB 0x00000006b0000000| Untracked | 0 +|1363|0x00000006b0800000, 0x00000006b0800000, 0x00000006b1000000| 0%| F| |TAMS 0x00000006b0800000| PB 0x00000006b0800000| Untracked | 0 +|1364|0x00000006b1000000, 0x00000006b1000000, 0x00000006b1800000| 0%| F| |TAMS 0x00000006b1000000| PB 0x00000006b1000000| Untracked | 0 +|1365|0x00000006b1800000, 0x00000006b1800000, 0x00000006b2000000| 0%| F| |TAMS 0x00000006b1800000| PB 0x00000006b1800000| Untracked | 0 +|1366|0x00000006b2000000, 0x00000006b2000000, 0x00000006b2800000| 0%| F| |TAMS 0x00000006b2000000| PB 0x00000006b2000000| Untracked | 0 +|1367|0x00000006b2800000, 0x00000006b2800000, 0x00000006b3000000| 0%| F| |TAMS 0x00000006b2800000| PB 0x00000006b2800000| Untracked | 0 +|1368|0x00000006b3000000, 0x00000006b3000000, 0x00000006b3800000| 0%| F| |TAMS 0x00000006b3000000| PB 0x00000006b3000000| Untracked | 0 +|1369|0x00000006b3800000, 0x00000006b3800000, 0x00000006b4000000| 0%| F| |TAMS 0x00000006b3800000| PB 0x00000006b3800000| Untracked | 0 +|1370|0x00000006b4000000, 0x00000006b4000000, 0x00000006b4800000| 0%| F| |TAMS 0x00000006b4000000| PB 0x00000006b4000000| Untracked | 0 +|1371|0x00000006b4800000, 0x00000006b4800000, 0x00000006b5000000| 0%| F| |TAMS 0x00000006b4800000| PB 0x00000006b4800000| Untracked | 0 +|1372|0x00000006b5000000, 0x00000006b5000000, 0x00000006b5800000| 0%| F| |TAMS 0x00000006b5000000| PB 0x00000006b5000000| Untracked | 0 +|1373|0x00000006b5800000, 0x00000006b5800000, 0x00000006b6000000| 0%| F| |TAMS 0x00000006b5800000| PB 0x00000006b5800000| Untracked | 0 +|1374|0x00000006b6000000, 0x00000006b6000000, 0x00000006b6800000| 0%| F| |TAMS 0x00000006b6000000| PB 0x00000006b6000000| Untracked | 0 +|1375|0x00000006b6800000, 0x00000006b6800000, 0x00000006b7000000| 0%| F| |TAMS 0x00000006b6800000| PB 0x00000006b6800000| Untracked | 0 +|1376|0x00000006b7000000, 0x00000006b7000000, 0x00000006b7800000| 0%| F| |TAMS 0x00000006b7000000| PB 0x00000006b7000000| Untracked | 0 +|1377|0x00000006b7800000, 0x00000006b7800000, 0x00000006b8000000| 0%| F| |TAMS 0x00000006b7800000| PB 0x00000006b7800000| Untracked | 0 +|1378|0x00000006b8000000, 0x00000006b8000000, 0x00000006b8800000| 0%| F| |TAMS 0x00000006b8000000| PB 0x00000006b8000000| Untracked | 0 +|1379|0x00000006b8800000, 0x00000006b8800000, 0x00000006b9000000| 0%| F| |TAMS 0x00000006b8800000| PB 0x00000006b8800000| Untracked | 0 +|1380|0x00000006b9000000, 0x00000006b9000000, 0x00000006b9800000| 0%| F| |TAMS 0x00000006b9000000| PB 0x00000006b9000000| Untracked | 0 +|1381|0x00000006b9800000, 0x00000006b9800000, 0x00000006ba000000| 0%| F| |TAMS 0x00000006b9800000| PB 0x00000006b9800000| Untracked | 0 +|1382|0x00000006ba000000, 0x00000006ba000000, 0x00000006ba800000| 0%| F| |TAMS 0x00000006ba000000| PB 0x00000006ba000000| Untracked | 0 +|1383|0x00000006ba800000, 0x00000006ba800000, 0x00000006bb000000| 0%| F| |TAMS 0x00000006ba800000| PB 0x00000006ba800000| Untracked | 0 +|1384|0x00000006bb000000, 0x00000006bb000000, 0x00000006bb800000| 0%| F| |TAMS 0x00000006bb000000| PB 0x00000006bb000000| Untracked | 0 +|1385|0x00000006bb800000, 0x00000006bb800000, 0x00000006bc000000| 0%| F| |TAMS 0x00000006bb800000| PB 0x00000006bb800000| Untracked | 0 +|1386|0x00000006bc000000, 0x00000006bc000000, 0x00000006bc800000| 0%| F| |TAMS 0x00000006bc000000| PB 0x00000006bc000000| Untracked | 0 +|1387|0x00000006bc800000, 0x00000006bc800000, 0x00000006bd000000| 0%| F| |TAMS 0x00000006bc800000| PB 0x00000006bc800000| Untracked | 0 +|1388|0x00000006bd000000, 0x00000006bd000000, 0x00000006bd800000| 0%| F| |TAMS 0x00000006bd000000| PB 0x00000006bd000000| Untracked | 0 +|1389|0x00000006bd800000, 0x00000006bd800000, 0x00000006be000000| 0%| F| |TAMS 0x00000006bd800000| PB 0x00000006bd800000| Untracked | 0 +|1390|0x00000006be000000, 0x00000006be000000, 0x00000006be800000| 0%| F| |TAMS 0x00000006be000000| PB 0x00000006be000000| Untracked | 0 +|1391|0x00000006be800000, 0x00000006be800000, 0x00000006bf000000| 0%| F| |TAMS 0x00000006be800000| PB 0x00000006be800000| Untracked | 0 +|1392|0x00000006bf000000, 0x00000006bf000000, 0x00000006bf800000| 0%| F| |TAMS 0x00000006bf000000| PB 0x00000006bf000000| Untracked | 0 +|1393|0x00000006bf800000, 0x00000006bf800000, 0x00000006c0000000| 0%| F| |TAMS 0x00000006bf800000| PB 0x00000006bf800000| Untracked | 0 +|1394|0x00000006c0000000, 0x00000006c0000000, 0x00000006c0800000| 0%| F| |TAMS 0x00000006c0000000| PB 0x00000006c0000000| Untracked | 0 +|1395|0x00000006c0800000, 0x00000006c0800000, 0x00000006c1000000| 0%| F| |TAMS 0x00000006c0800000| PB 0x00000006c0800000| Untracked | 0 +|1396|0x00000006c1000000, 0x00000006c1000000, 0x00000006c1800000| 0%| F| |TAMS 0x00000006c1000000| PB 0x00000006c1000000| Untracked | 0 +|1397|0x00000006c1800000, 0x00000006c1800000, 0x00000006c2000000| 0%| F| |TAMS 0x00000006c1800000| PB 0x00000006c1800000| Untracked | 0 +|1398|0x00000006c2000000, 0x00000006c2000000, 0x00000006c2800000| 0%| F| |TAMS 0x00000006c2000000| PB 0x00000006c2000000| Untracked | 0 +|1399|0x00000006c2800000, 0x00000006c2800000, 0x00000006c3000000| 0%| F| |TAMS 0x00000006c2800000| PB 0x00000006c2800000| Untracked | 0 +|1400|0x00000006c3000000, 0x00000006c3000000, 0x00000006c3800000| 0%| F| |TAMS 0x00000006c3000000| PB 0x00000006c3000000| Untracked | 0 +|1401|0x00000006c3800000, 0x00000006c3800000, 0x00000006c4000000| 0%| F| |TAMS 0x00000006c3800000| PB 0x00000006c3800000| Untracked | 0 +|1402|0x00000006c4000000, 0x00000006c4000000, 0x00000006c4800000| 0%| F| |TAMS 0x00000006c4000000| PB 0x00000006c4000000| Untracked | 0 +|1403|0x00000006c4800000, 0x00000006c4800000, 0x00000006c5000000| 0%| F| |TAMS 0x00000006c4800000| PB 0x00000006c4800000| Untracked | 0 +|1404|0x00000006c5000000, 0x00000006c5000000, 0x00000006c5800000| 0%| F| |TAMS 0x00000006c5000000| PB 0x00000006c5000000| Untracked | 0 +|1405|0x00000006c5800000, 0x00000006c5800000, 0x00000006c6000000| 0%| F| |TAMS 0x00000006c5800000| PB 0x00000006c5800000| Untracked | 0 +|1406|0x00000006c6000000, 0x00000006c6000000, 0x00000006c6800000| 0%| F| |TAMS 0x00000006c6000000| PB 0x00000006c6000000| Untracked | 0 +|1407|0x00000006c6800000, 0x00000006c6800000, 0x00000006c7000000| 0%| F| |TAMS 0x00000006c6800000| PB 0x00000006c6800000| Untracked | 0 +|1408|0x00000006c7000000, 0x00000006c7000000, 0x00000006c7800000| 0%| F| |TAMS 0x00000006c7000000| PB 0x00000006c7000000| Untracked | 0 +|1409|0x00000006c7800000, 0x00000006c7800000, 0x00000006c8000000| 0%| F| |TAMS 0x00000006c7800000| PB 0x00000006c7800000| Untracked | 0 +|1410|0x00000006c8000000, 0x00000006c8000000, 0x00000006c8800000| 0%| F| |TAMS 0x00000006c8000000| PB 0x00000006c8000000| Untracked | 0 +|1411|0x00000006c8800000, 0x00000006c8800000, 0x00000006c9000000| 0%| F| |TAMS 0x00000006c8800000| PB 0x00000006c8800000| Untracked | 0 +|1412|0x00000006c9000000, 0x00000006c9000000, 0x00000006c9800000| 0%| F| |TAMS 0x00000006c9000000| PB 0x00000006c9000000| Untracked | 0 +|1413|0x00000006c9800000, 0x00000006c9800000, 0x00000006ca000000| 0%| F| |TAMS 0x00000006c9800000| PB 0x00000006c9800000| Untracked | 0 +|1414|0x00000006ca000000, 0x00000006ca000000, 0x00000006ca800000| 0%| F| |TAMS 0x00000006ca000000| PB 0x00000006ca000000| Untracked | 0 +|1415|0x00000006ca800000, 0x00000006ca800000, 0x00000006cb000000| 0%| F| |TAMS 0x00000006ca800000| PB 0x00000006ca800000| Untracked | 0 + +Card table byte_map: [0x000001b9b9340000,0x000001b9bb310000] _byte_map_base: 0x000001b9b7308000 + +Marking Bits: (CMBitMap*) 0x000001b9cb3df9a0 + Bits: [0x000001b9bb310000, 0x000001b9cb150000) + +Polling page: 0x000001b999ce0000 + +Metaspace: + +Usage: + Non-class: 2.67 MB used. + Class: 283.77 KB used. + Both: 2.95 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 2.75 MB ( 4%) committed, 1 nodes. + Class space: 1.00 GB reserved, 384.00 KB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 3.12 MB ( <1%) committed. + +Chunk freelists: + Non-Class: 11.83 MB + Class: 15.60 MB + Both: 27.43 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 36. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 50. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 51. +num_chunk_merges: 0. +num_chunk_splits: 33. +num_chunks_enlarged: 20. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=117248Kb used=559Kb max_used=559Kb free=116688Kb + bounds [0x000001b9addc0000, 0x000001b9ae030000, 0x000001b9b5040000] +CodeHeap 'profiled nmethods': size=117184Kb used=943Kb max_used=943Kb free=116240Kb + bounds [0x000001b9a6040000, 0x000001b9a62b0000, 0x000001b9ad2b0000] +CodeHeap 'non-nmethods': size=11328Kb used=1427Kb max_used=3160Kb free=9900Kb + bounds [0x000001b9ad2b0000, 0x000001b9ad5d0000, 0x000001b9addc0000] +CodeCache: size=245760Kb, used=2929Kb, max_used=4662Kb, free=242828Kb + total_blobs=1285, nmethods=821, adapters=376, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +JVMCI Events (20 events): +Event: 17.806 Thread 0x000001ba112526c0 done waiting for JavaVM references initialization in JVMCI runtime 2 +Event: 17.806 Thread 0x000001ba112526c0 initialized JVMCI runtime 2 +Event: 18.871 Thread 0x000001ba160bc010 detaching from JVMCI runtime 1: releasing idle compiler thread (0 other threads still attached) +Event: 18.871 Thread 0x000001ba160bc010 shutting down HotSpotJVMCIRuntime for JVMCI runtime 1 +Event: 18.871 Thread 0x000001ba160bc010 shut down JVMCI runtime 1 +Event: 18.874 Thread 0x000001ba160bc010 destroyed JavaVM[13]@0x000001ca17a1bd38 for JVMCI runtime 1 +Event: 18.874 Thread 0x000001ba160bc010 releasing handles for JVMCI runtime 1: oop handles=98, metadata handles={total=155, live=146, blocks=6} +Event: 18.874 Thread 0x000001ba160bc010 detached from JVMCI runtime 1 +Event: 18.887 Thread 0x000001ba112526c0 detaching from JVMCI runtime 2: releasing idle compiler thread (0 other threads still attached) +Event: 18.887 Thread 0x000001ba112526c0 shutting down HotSpotJVMCIRuntime for JVMCI runtime 2 +Event: 18.888 Thread 0x000001ba112526c0 shut down JVMCI runtime 2 +Event: 18.892 Thread 0x000001ba112526c0 destroyed JavaVM[14]@0x000001c217a1bd38 for JVMCI runtime 2 +Event: 18.892 Thread 0x000001ba112526c0 releasing handles for JVMCI runtime 2: oop handles=71, metadata handles={total=128, live=120, blocks=8} +Event: 18.892 Thread 0x000001ba112526c0 detached from JVMCI runtime 2 +Event: 19.189 Thread 0x000001ba11105a80 detaching from JVMCI runtime 3: releasing idle compiler thread (0 other threads still attached) +Event: 19.189 Thread 0x000001ba11105a80 shutting down HotSpotJVMCIRuntime for JVMCI runtime 3 +Event: 19.189 Thread 0x000001ba11105a80 shut down JVMCI runtime 3 +Event: 19.197 Thread 0x000001ba11105a80 destroyed JavaVM[12]@0x000001ba17a1bd38 for JVMCI runtime 3 +Event: 19.197 Thread 0x000001ba11105a80 releasing handles for JVMCI runtime 3: oop handles=57, metadata handles={total=224, live=211, blocks=7} +Event: 19.197 Thread 0x000001ba11105a80 detached from JVMCI runtime 3 + +Compilation events (20 events): +Event: 17.769 Thread 0x000001ba11106660 nmethod 816% 0x000001b9a612a688 code [0x000001b9a612a7e0, 0x000001b9a612ab18] +Event: 17.769 Thread 0x000001ba11106660 811 3 java.util.concurrent.ThreadLocalRandom::getProbe (13 bytes) +Event: 17.769 Thread 0x000001ba11106660 nmethod 811 0x000001b9a612ab88 code [0x000001b9a612aca0, 0x000001b9a612adb0] +Event: 17.771 Thread 0x000001ba11106660 817 3 org.kne.cloud.network.monitor.TimestampMonitor::recordPacket (119 bytes) +Event: 17.771 Thread 0x000001ba11106660 nmethod 817 0x000001b9a612ae88 code [0x000001b9a612b0a0, 0x000001b9a612bbc0] +Event: 17.797 Thread 0x000001ba11105a80 nmethod 812 0x000001b9ade37888 code [0x000001b9ade37980, 0x000001b9ade37b90] +Event: 17.797 Thread 0x000001ba11105a80 820 ! 4 java.util.concurrent.ConcurrentHashMap::putVal (432 bytes) +Event: 17.797 Thread 0x000001ba112526c0 818 4 java.util.concurrent.ConcurrentHashMap::addCount (280 bytes) +Event: 17.797 Thread 0x000001ba160bc010 819 4 org.kne.cloud.network.monitor.TimestampMonitor::recordPacket (119 bytes) +Event: 17.838 Thread 0x000001ba11105a80 nmethod 820 0x000001b9ade37c08 code [0x000001b9ade37da0, 0x000001b9ade38e40] +Event: 17.838 Thread 0x000001ba11105a80 813 4 java.util.concurrent.ConcurrentHashMap::spread (10 bytes) +Event: 17.840 Thread 0x000001ba11105a80 nmethod 813 0x000001b9ade38f08 code [0x000001b9ade39000, 0x000001b9ade39070] +Event: 17.840 Thread 0x000001ba11105a80 814 4 org.kne.cloud.network.monitor.TimestampMonitor$TimestampMonitorKey::hashCode (25 bytes) +Event: 17.842 Thread 0x000001ba11105a80 nmethod 814 0x000001b9ade39208 code [0x000001b9ade39300, 0x000001b9ade39420] +Event: 17.842 Thread 0x000001ba11105a80 821 % 4 org.kne.cloud.network.monitor.TimestampMonitor::lambda$8 @ 0 (18 bytes) +Event: 17.867 Thread 0x000001ba160bc010 nmethod 819 0x000001b9ade39508 code [0x000001b9ade39740, 0x000001b9ade3b290] +Event: 17.868 Thread 0x000001ba160bc010 815 4 java.lang.Long::hashCode (8 bytes) +Event: 17.870 Thread 0x000001ba160bc010 nmethod 815 0x000001b9ade3b408 code [0x000001b9ade3b500, 0x000001b9ade3b590] +Event: 17.888 Thread 0x000001ba112526c0 nmethod 818 0x000001b9ade3b708 code [0x000001b9ade3b900, 0x000001b9ade3dad8] +Event: 18.183 Thread 0x000001ba11105a80 nmethod 821% 0x000001b9ade3dc08 code [0x000001b9ade3e9e0, 0x000001b9ade4baf8] + +GC Heap History (20 events): +Event: 7.310 GC heap after +{Heap after GC invocations=12 (full 0): + garbage-first heap total reserved 16662528K, committed 6340608K, used 1094795K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 5 young (40960K), 5 survivors (40960K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 9.227 GC heap before +{Heap before GC invocations=12 (full 0): + garbage-first heap total reserved 16662528K, committed 6340608K, used 1438859K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 38 young (311296K), 5 survivors (40960K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 9.478 GC heap after +{Heap after GC invocations=13 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 1359872K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 5 young (40960K), 5 survivors (40960K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 10.494 GC heap before +{Heap before GC invocations=13 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 1794048K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 58 young (475136K), 5 survivors (40960K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 10.829 GC heap after +{Heap after GC invocations=14 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 1653724K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 11.413 GC heap before +{Heap before GC invocations=14 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 2063324K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 58 young (475136K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 11.717 GC heap after +{Heap after GC invocations=15 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 1932225K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 12.260 GC heap before +{Heap before GC invocations=15 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 2341825K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 58 young (475136K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 12.501 GC heap after +{Heap after GC invocations=16 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 2211407K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 16.862 GC heap before +{Heap before GC invocations=16 (full 0): + garbage-first heap total reserved 16662528K, committed 9633792K, used 2760271K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 58 young (475136K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 17.160 GC heap after +{Heap after GC invocations=17 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 2652625K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 8 young (65536K), 8 survivors (65536K) + Metaspace used 3018K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 18.284 GC heap before +{Heap before GC invocations=17 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 3160529K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 70 young (573440K), 8 survivors (65536K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 18.575 GC heap after +{Heap after GC invocations=18 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 2998272K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 19.499 GC heap before +{Heap before GC invocations=18 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 3497984K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 70 young (573440K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 19.812 GC heap after +{Heap after GC invocations=19 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 3340337K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 20.618 GC heap before +{Heap before GC invocations=19 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 3840049K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 70 young (573440K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 20.887 GC heap after +{Heap after GC invocations=20 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 3678208K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 21.550 GC heap before +{Heap before GC invocations=20 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 4177920K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 70 young (573440K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 21.760 GC heap after +{Heap after GC invocations=21 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 4012216K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 9 young (73728K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} +Event: 22.342 GC heap before +{Heap before GC invocations=21 (full 0): + garbage-first heap total reserved 16662528K, committed 11599872K, used 4511928K [0x0000000407000000, 0x0000000800000000) + region size 8192K, 70 young (573440K), 9 survivors (73728K) + Metaspace used 3019K, committed 3200K, reserved 1114112K + class space used 283K, committed 384K, reserved 1048576K +} + +Dll operation events (9 events): +Event: 0.010 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\java.dll +Event: 0.098 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jsvml.dll +Event: 0.100 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jvmcicompiler.dll +Event: 0.216 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\zip.dll +Event: 0.220 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\instrument.dll +Event: 0.225 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\net.dll +Event: 0.226 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\nio.dll +Event: 0.232 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\zip.dll +Event: 0.695 Loaded shared library C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jimage.dll + +Deoptimization events (20 events): +Event: 6.004 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9a612726f sp=0x000000b5e09ff630 +Event: 6.004 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09feb28 mode 0 +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: trap_request=0xffffffed fr.pc=0x000001b9ade35d34 relative=0x0000000000008cf4 +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x000001b9ade35d34 method=java.util.concurrent.ConcurrentHashMap.addCount(JI)V @ 4 jvmci +Event: 17.764 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9ade35d34 sp=0x000000b5e09ff370 +Event: 17.764 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09fe7f8 mode 3 +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: trap_request=0xffffffed fr.pc=0x000001b9addecc85 relative=0x0000000000000e45 +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x000001b9addecc85 method=java.util.concurrent.ConcurrentHashMap.addCount(JI)V @ 4 jvmci +Event: 17.764 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9addecc85 sp=0x000000b5e09ff510 +Event: 17.764 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09fe8e0 mode 3 +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: trap_request=0xffffffed fr.pc=0x000001b9addee9fa relative=0x00000000000012da +Event: 17.764 Thread 0x000001ba1197c280 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x000001b9addee9fa method=java.util.concurrent.ConcurrentHashMap.addCount(JI)V @ 4 jvmci +Event: 17.764 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9addee9fa sp=0x000000b5e09ff3e0 +Event: 17.764 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09fe8e0 mode 3 +Event: 17.770 Thread 0x000001ba1197c280 Uncommon trap: trap_request=0xffffffed fr.pc=0x000001b9addfb072 relative=0x0000000000001732 +Event: 17.770 Thread 0x000001ba1197c280 Uncommon trap: reason=null_assert_or_unreached0 action=reinterpret pc=0x000001b9addfb072 method=java.util.concurrent.ConcurrentHashMap.addCount(JI)V @ 4 jvmci +Event: 17.770 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9addfb072 sp=0x000000b5e09ff540 +Event: 17.770 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09fe830 mode 3 +Event: 18.185 Thread 0x000001ba1197c280 DEOPT PACKING pc=0x000001b9a612aa6f sp=0x000000b5e09ff630 +Event: 18.185 Thread 0x000001ba1197c280 DEOPT UNPACKING pc=0x000001b9ad3049a3 sp=0x000000b5e09feb28 mode 0 + +Classes loaded (20 events): +Event: 4.768 Loading class java/util/stream/ReferencePipeline$5 +Event: 4.768 Loading class java/util/stream/LongPipeline$StatelessOp +Event: 4.768 Loading class java/util/stream/LongPipeline +Event: 4.768 Loading class java/util/stream/LongStream +Event: 4.768 Loading class java/util/stream/LongStream done +Event: 4.769 Loading class java/util/stream/LongPipeline done +Event: 4.769 Loading class java/util/stream/LongPipeline$StatelessOp done +Event: 4.769 Loading class java/util/stream/ReferencePipeline$5 done +Event: 4.770 Loading class java/util/function/LongBinaryOperator +Event: 4.770 Loading class java/util/function/LongBinaryOperator done +Event: 4.780 Loading class java/util/stream/ReduceOps$10 +Event: 4.780 Loading class java/util/stream/ReduceOps$10 done +Event: 4.792 Loading class java/util/stream/ReduceOps$8ReducingSink +Event: 4.792 Loading class java/util/stream/Sink$OfLong +Event: 4.792 Loading class java/util/stream/Sink$OfLong done +Event: 4.792 Loading class java/util/stream/ReduceOps$8ReducingSink done +Event: 4.792 Loading class java/util/stream/ReferencePipeline$5$1 +Event: 4.792 Loading class java/util/stream/ReferencePipeline$5$1 done +Event: 4.792 Loading class java/util/concurrent/ConcurrentHashMap$TableStack +Event: 4.792 Loading class java/util/concurrent/ConcurrentHashMap$TableStack done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (6 events): +Event: 0.486 Thread 0x000001b99bf22130 Exception (0x0000000446fa9ed8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 0.538 Thread 0x000001b99bf22130 Exception (0x0000000446fbd270) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 0.673 Thread 0x000001b99bf22130 Exception (0x00000004461931f8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 0.845 Thread 0x000001b99bf22130 Exception (0x0000000446276f68) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 4.408 Thread 0x000001b99bf22130 Exception (0x0000000589a65d00) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] +Event: 4.697 Thread 0x000001b99bf22130 Exception (0x00000005886bdd70) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 796] + +VM Operations (20 events): +Event: 16.787 Executing VM operation: ChangeSingleStep done +Event: 16.788 Executing VM operation: ChangeSingleStep +Event: 16.788 Executing VM operation: ChangeSingleStep done +Event: 16.862 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 17.161 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 17.751 Executing VM operation: ChangeSingleStep +Event: 17.751 Executing VM operation: ChangeSingleStep done +Event: 17.760 Executing VM operation: ChangeSingleStep +Event: 17.761 Executing VM operation: ChangeSingleStep done +Event: 17.762 Executing VM operation: get/set locals +Event: 17.762 Executing VM operation: get/set locals done +Event: 18.284 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 18.575 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 19.499 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 19.812 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 20.618 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 20.887 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 21.550 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 21.760 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 22.342 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) + +Memory protections (0 events): +No events + +Nmethod flushes (0 events): +No events + +Events (20 events): +Event: 4.807 Thread 0x000001ba16035350 Thread added: 0x000001ba1605a7e0 +Event: 4.852 Thread 0x000001ba160387d0 Thread added: 0x000001ba1605ae70 +Event: 4.853 Thread 0x000001ba160359e0 Thread added: 0x000001ba1609f9b0 +Event: 4.853 Thread 0x000001ba112526c0 Thread added: 0x000001ba16051d90 +Event: 4.877 Thread 0x000001ba16051d90 Thread added: 0x000001ba160a8bd0 +Event: 4.879 Thread 0x000001ba16051d90 Thread added: 0x000001ba160a9ab0 +Event: 4.880 Thread 0x000001ba16051d90 Thread added: 0x000001ba160ac180 +Event: 5.092 Thread 0x000001ba160ac180 Thread exited: 0x000001ba160ac180 +Event: 5.117 Thread 0x000001ba160a9ab0 Thread exited: 0x000001ba160a9ab0 +Event: 5.254 Thread 0x000001ba16051d90 Thread added: 0x000001ba160bc010 +Event: 5.421 Thread 0x000001ba11105a80 Thread added: 0x000001ba11bec360 +Event: 5.422 Thread 0x000001ba11105a80 Thread added: 0x000001ba11beca20 +Event: 10.829 Thread 0x000001ba160bc010 Thread exited: 0x000001ba160bc010 +Event: 11.717 Thread 0x000001ba11bec360 Thread exited: 0x000001ba11bec360 +Event: 11.717 Thread 0x000001ba11beca20 Thread exited: 0x000001ba11beca20 +Event: 12.014 Thread 0x000001ba160a8bd0 Thread exited: 0x000001ba160a8bd0 +Event: 15.829 Thread 0x000001ba16051d90 Thread exited: 0x000001ba16051d90 +Event: 17.765 Thread 0x000001ba112526c0 Thread exited: 0x000001ba112526c0 +Event: 17.797 Thread 0x000001ba11105a80 Thread added: 0x000001ba112526c0 +Event: 17.797 Thread 0x000001ba11105a80 Thread added: 0x000001ba160bc010 + + +Dynamic libraries: +0x00007ff63b640000 - 0x00007ff63b650000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\javaw.exe +0x00007fff302e0000 - 0x00007fff304e1000 C:\Windows\SYSTEM32\ntdll.dll +0x00007fff2ef90000 - 0x00007fff2f04e000 C:\Windows\System32\KERNEL32.DLL +0x00007fff2d9a0000 - 0x00007fff2dd0e000 C:\Windows\System32\KERNELBASE.dll +0x00007fff2df20000 - 0x00007fff2e030000 C:\Windows\System32\ucrtbase.dll +0x00007fff28080000 - 0x00007fff28097000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jli.dll +0x00007fff28040000 - 0x00007fff2805b000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\VCRUNTIME140.dll +0x00007fff2e9c0000 - 0x00007fff2eb65000 C:\Windows\System32\USER32.dll +0x00007fff13dd0000 - 0x00007fff14075000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.20348.1_none_88d3d41d702dedea\COMCTL32.dll +0x00007fff2ddd0000 - 0x00007fff2ddf6000 C:\Windows\System32\win32u.dll +0x00007fff2e3e0000 - 0x00007fff2e40b000 C:\Windows\System32\GDI32.dll +0x00007fff2f460000 - 0x00007fff2f503000 C:\Windows\System32\msvcrt.dll +0x00007fff2de00000 - 0x00007fff2df1a000 C:\Windows\System32\gdi32full.dll +0x00007fff2d900000 - 0x00007fff2d9a0000 C:\Windows\System32\msvcp_win.dll +0x00007fff2fe80000 - 0x00007fff2feb1000 C:\Windows\System32\IMM32.DLL +0x00007fff1a850000 - 0x00007fff1a85c000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\vcruntime140_1.dll +0x00007ffefd890000 - 0x00007ffefd91e000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\msvcp140.dll +0x00007ffdac1c0000 - 0x00007ffdacf0f000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\server\jvm.dll +0x00007fff2f3b0000 - 0x00007fff2f45e000 C:\Windows\System32\ADVAPI32.dll +0x00007fff2e920000 - 0x00007fff2e9bf000 C:\Windows\System32\sechost.dll +0x00007fff2fd50000 - 0x00007fff2fe6f000 C:\Windows\System32\RPCRT4.dll +0x00007fff2f0f0000 - 0x00007fff2f161000 C:\Windows\System32\WS2_32.dll +0x00007fff2d770000 - 0x00007fff2d7bd000 C:\Windows\SYSTEM32\POWRPROF.dll +0x00007fff293d0000 - 0x00007fff293da000 C:\Windows\SYSTEM32\VERSION.dll +0x00007fff26410000 - 0x00007fff26437000 C:\Windows\SYSTEM32\WINMM.dll +0x00007fff2d750000 - 0x00007fff2d763000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007fff2c1f0000 - 0x00007fff2c207000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007fff19fd0000 - 0x00007fff19fda000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jimage.dll +0x00007fff179e0000 - 0x00007fff17bf2000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007fff16980000 - 0x00007fff169b0000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007fff2e030000 - 0x00007fff2e0ad000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffef4bb0000 - 0x00007ffef4bec000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jdwp.dll +0x00007fff0f250000 - 0x00007fff0f25f000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\instrument.dll +0x00007fff16340000 - 0x00007fff1635e000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\java.dll +0x00007fff2f170000 - 0x00007fff2f2a5000 C:\Windows\System32\ole32.dll +0x00007fff2ff20000 - 0x00007fff30291000 C:\Windows\System32\combase.dll +0x00007fff2f570000 - 0x00007fff2fcca000 C:\Windows\System32\SHELL32.dll +0x00007fff23550000 - 0x00007fff23d96000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007fff2eea0000 - 0x00007fff2ef8a000 C:\Windows\System32\SHCORE.dll +0x00007fff2fcf0000 - 0x00007fff2fd4f000 C:\Windows\System32\shlwapi.dll +0x00007fff2d7c0000 - 0x00007fff2d7e1000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffee94d0000 - 0x00007ffee95a7000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jsvml.dll +0x00007ffd377e0000 - 0x00007ffd3a408000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\jvmcicompiler.dll +0x00007fff2f0e0000 - 0x00007fff2f0e8000 C:\Windows\System32\PSAPI.DLL +0x00007fff2e0b0000 - 0x00007fff2e210000 C:\Windows\System32\CRYPT32.dll +0x00007fff2ce60000 - 0x00007fff2ce8e000 C:\Windows\SYSTEM32\USERENV.dll +0x00007fff2d0d0000 - 0x00007fff2d0fe000 C:\Windows\SYSTEM32\ncrypt.dll +0x00007fff2caa0000 - 0x00007fff2cacd000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007fff2cd60000 - 0x00007fff2cdc8000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007fff2d090000 - 0x00007fff2d0c7000 C:\Windows\SYSTEM32\NTASN1.dll +0x00007fff0f240000 - 0x00007fff0f24c000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\dt_socket.dll +0x00007fff2cad0000 - 0x00007fff2cbae000 C:\Windows\SYSTEM32\DNSAPI.dll +0x00007fff2e210000 - 0x00007fff2e219000 C:\Windows\System32\NSI.dll +0x00007fff262e0000 - 0x00007fff262ea000 C:\Windows\System32\rasadhlp.dll +0x00007fff26c90000 - 0x00007fff26d12000 C:\Windows\System32\fwpuclnt.dll +0x00007fff0fc50000 - 0x00007fff0fc67000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\zip.dll +0x00007fff19fc0000 - 0x00007fff19fd0000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\net.dll +0x00007fff16320000 - 0x00007fff16336000 C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\nio.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.20348.1_none_88d3d41d702dedea;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\server + +VM Arguments: +jvm_args: -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions --add-exports=java.base/jdk.internal.misc=jdk.graal.compiler -XX:+ShowCodeDetailsInExceptionMessages -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:41761 -javaagent:C:\Program Files\eclipse\configuration\org.eclipse.osgi\837\0\.cp\lib\javaagent-shaded.jar --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/jdk.internal.foreign=ALL-UNNAMED +java_command: org.kne.cloud.network.monitor.TimestampMonitor +java_class_path (initial): C:\KNEļ\coding\java\KLALB\bin;C:\KNEļ\coding\java\KNElib\bin;C:\KNEļ\coding\java\KLALB\lib\gson-2.1.jar;C:\KNEļ\coding\java\KLALB\lib\javassist.jar;C:\KNEļ\coding\java\KLALB\lib\ini4j.jar;C:\KNEļ\coding\java\KLALB\lib\JFreeChart1.5.2.jar;C:\KNEļ\coding\java\KLALB\lib\toml4j-0.7.1.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-core-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-packetfactory-propertiesbased-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-packetfactory-static-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\pcap4j-sample-1.8.2.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-javadoc.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-sources.jar;C:\KNEļ\coding\java\KLALB\lib\slf4j-api-2.0.9-tests.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0-javadoc.jar;C:\KNEļ\coding\java\KLALB\lib\disruptor-4.0.0-sources.jar;C:\KNEļ\coding\java\KLALB\lib\JavaTUN.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 15 {product} {ergonomic} + uint ConcGCThreads = 10 {product} {ergonomic} + bool EnableJVMCIProduct = true {JVMCI product} {jimage} + uint G1ConcRefinementThreads = 38 {product} {ergonomic} + size_t G1HeapRegionSize = 8388608 {product} {ergonomic} + size_t InitialHeapSize = 1073741824 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 17062428672 {product} {ergonomic} + size_t MaxNewSize = 10234101760 {product} {ergonomic} + size_t MinHeapDeltaBytes = 8388608 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 11599872 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 120061952 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 119996416 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 17062428672 {manageable} {ergonomic} + int ThreadPriorityPolicy = 1 {product} {jimage} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=C:\Program Files\Java\jdk-19 +PATH=C:/Program Files/Java/graalvm-ce-java19-22.3.1/bin/server;C:/Program Files/Java/graalvm-ce-java19-22.3.1/bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk-19\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Bandizip\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\chocolatey\bin;C:\tools\Manim\Scripts;C:\Program Files\MiKTeX\miktex\bin\x64\;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\NetSarang\Xftp 7\;C:\Program Files\010 Editor;C:\Program Files\nodejs\;C:\Program Files\Microsoft VS Code Insiders\bin;C:\Program Files\Disktrix\UltimateDefrag;C:\Program Files\Sunshine;C:\Program Files\Sunshine\tools;C:\Program Files\NVIDIA Corporation\Nsight Compute 2023.1.0\;C:\Users\Administrator\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\Administrator\AppData\Local\Programs\Python\Python310\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\AppData\Roaming\npm;C:\Program Files\eclipse; +USERNAME=Administrator +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 85 Stepping 4, GenuineIntel +TMP=C:\Users\ADMINI~1\AppData\Local\Temp +TEMP=C:\Users\ADMINI~1\AppData\Local\Temp + + + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: + Windows Server 2022 , 64 bit Build 20348 (10.0.20348.1726) +OS uptime: 20 days 23:58 hours + +CPU: total 56 (initial active 56) (14 cores per cpu, 2 threads per core) family 6 model 85 stepping 4 microcode 0x2006b06, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, clflushopt, clwb, rdtscp, f16c, pku +Processor Information for the first 56 processors : + Max Mhz: 2195, Current Mhz: 2195, Mhz Limit: 2195 + +Memory: 4k page, system-wide physical 65072M (9754M free) +TotalPageFile size 97840M (AvailPageFile size 448M) +current process WorkingSet (physical memory assigned to process): 5394M, peak: 5394M +current process commit charge ("private bytes"): 11760M, peak: 13040M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.1+11-jvmci-b01) for windows-amd64 JRE (23.0.1+11-jvmci-b01), built on 2024-10-01T10:34:46Z with MS VC++ 17.6 (VS2022) + +END. diff --git a/hs_err_pid29580.mdmp b/hs_err_pid29580.mdmp new file mode 100644 index 0000000..e69de29 diff --git a/klalb-config.json b/klalb-config.json index e1d69a5..a67b291 100644 --- a/klalb-config.json +++ b/klalb-config.json @@ -1 +1,102 @@ -[{"language":"ZH_CN","nogui":false,"VirtualAddress":"2486:1:0:0:0:0:0:8888","DNS":["2486:1:0:0:0:0:0:8888"],"TCPListen":"0.0.0.0:4565","UDPListen":"{UDP}0.0.0.0:4572","VirtualSocketName":"KLALB_Stream","LineTable":["07f4acdef99b.ofalias.net:4565"],"ConnectLineTable":[],"Type":"KLALBController"},{"Listen":"0.0.0.0:4572","Bridge":{"KLALB":"SocketBridge","RDP":"SocketBridge","HTTP":"SocketBridge","HTTPS":"SocketBridge","DEFAULT":"MinecraftSocketBridge23332"},"Connect":{"KLALB":"127.0.0.1:4565","RDP":"127.0.0.1:3389","HTTP":"127.0.0.1:5212","HTTPS":"192.168.1.235:443","DEFAULT":"127.0.0.1:36555"},"Type":"SocketBridge"},{"Listen":"{KLALB_Stream}[::0]:23332","Bridge":{"DEFAULT":"MinecraftSocketBridge23332"},"Connect":{"DEFAULT":"127.0.0.1:36555"},"Type":"SocketBridge"},{"Listen":"{KLALB_Stream}[::0]:23333","Bridge":{"DEFAULT":"SocketBridge"},"Connect":{"DEFAULT":"127.0.0.1:5212"},"Type":"SocketBridge"},{"Listen":"0.0.0.0:25561","Bridge":{"KLALB":"SocketBridge","DEFAULT":"MinecraftSocketBridge23330"},"Connect":{"KLALB":"127.0.0.1:4565","DEFAULT":"127.0.0.1:25562"},"Type":"SocketBridge"},{"Listen":"{KLALB_Stream}[::0]:23330","Bridge":{"DEFAULT":"MinecraftSocketBridge23330"},"Connect":{"DEFAULT":"127.0.0.1:25562"},"Type":"SocketBridge"}] \ No newline at end of file +[ + { + "language": "ZH_CN", + "nogui": false, + "VirtualAddress": "2486:1:0:0:0:0:0:8888", + "VirtualASN": 2142606939373348329, + "DNS": [ + "2486:1:0:0:0:0:0:8888" + ], + "TCPListen": "0.0.0.0:4565", + "UDPListen": "{UDP}0.0.0.0:4572", + "VirtualSocketName": "KLALB_Stream", + "LineTable": [ + "07f4acdef99b.ofalias.net:4565" + ], + "ConnectLineTable": [ + "home-ipv6.sliveridc1.cn:4565", + "home-ltipv6.sliveridc1.cn:4565" + ], + "ntpServerTable": [ + "{UDP}ntp1.aliyun.com:123", + "{UDP}ntp2.aliyun.com:123", + "{UDP}ntp3.aliyun.com:123", + "{UDP}ntp4.aliyun.com:123", + "{UDP}ntp5.aliyun.com:123", + "{UDP}ntp6.aliyun.com:123", + "{UDP}ntp7.aliyun.com:123", + "{UDP}ntp1.tencent.com:123", + "{UDP}ntp2.tencent.com:123", + "{UDP}ntp3.tencent.com:123", + "{UDP}ntp4.tencent.com:123", + "{UDP}ntp5.tencent.com:123", + "{UDP}time.google.com:123", + "{UDP}time.apple.com:123", + "{UDP}pool.ntp.org:123", + "{UDP}ntp.ntsc.ac.cn:123", + "{UDP}us.ntp.org.cn:123" + ], + "NetworkInterfaceExcepts": [], + "Type": "KLALBController" + }, + { + "Listen": "0.0.0.0:4572", + "Bridge": { + "KLALB": "SocketBridge", + "RDP": "SocketBridge", + "HTTP": "SocketBridge", + "HTTPS": "SocketBridge", + "DEFAULT": "MinecraftSocketBridge23332" + }, + "Connect": { + "KLALB": "127.0.0.1:4565", + "RDP": "127.0.0.1:3389", + "HTTP": "127.0.0.1:5212", + "HTTPS": "192.168.1.235:443", + "DEFAULT": "127.0.0.1:36555" + }, + "Type": "SocketBridge" + }, + { + "Listen": "{KLALB_Stream}[::0]:23332", + "Bridge": { + "DEFAULT": "MinecraftSocketBridge23332" + }, + "Connect": { + "DEFAULT": "127.0.0.1:36555" + }, + "Type": "SocketBridge" + }, + { + "Listen": "{KLALB_Stream}[::0]:23333", + "Bridge": { + "DEFAULT": "SocketBridge" + }, + "Connect": { + "DEFAULT": "127.0.0.1:5212" + }, + "Type": "SocketBridge" + }, + { + "Listen": "0.0.0.0:25561", + "Bridge": { + "KLALB": "SocketBridge", + "DEFAULT": "MinecraftSocketBridge23330" + }, + "Connect": { + "KLALB": "127.0.0.1:4565", + "DEFAULT": "127.0.0.1:25562" + }, + "Type": "SocketBridge" + }, + { + "Listen": "{KLALB_Stream}[::0]:23330", + "Bridge": { + "DEFAULT": "MinecraftSocketBridge23330" + }, + "Connect": { + "DEFAULT": "127.0.0.1:25562" + }, + "Type": "SocketBridge" + } +] \ No newline at end of file diff --git a/lib/KNElib1.0.jar b/lib/KNElib1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..66e202d21238d8c092404846c9d72d1612fca880 GIT binary patch literal 431952 zcmeFZb95!&x;4C`j%_>X*jC53ZQJNr9ot67wr$&X(lI*5n?C2_oHM?A#{K?#-!XnQ zcCFH`J!)62=UH>knrq2Pf`Fm`ARr(B(`vSwfPa`!0H6SAVI_VVaTyUhX?_`T5n)9o zT4|B@Q2-z@k^!oZ9!A(T;Bp&U&05vAz=@KAP|#IBVUanOU*SSmFpbb~@WH)(i!eEM zem7i5@&JX_?!L0G_nI}=0!n%F${2Xuors^!~j(4R-8oQxfv zXbr9O9UX%d&TWw75qO%Ysmqlpmo+4F=T)?Gsx`U>%w|Q9;~H3cVsg5Y4!+n1Y1g); zbpDXt#TO%a2Jj}>U(g~-hh0RcX0{wc0+S3*YqN=fn0!7q69ZEoyHr( zP#4)|xJ)(U(vxICih@pI8hEr!AF`EZT|@SRHdrj|Sf1>+=~g-6^}!CsQcg@d@te6ZhTJ|I z+bU~7$(SA%Yi;{R^wv1?um*psKGA%R~$+k0o1T<(7PGi zNGS^DKIW5~aoB$Hl^St6L_CKUQF;_$Uv;F&4ii(LBB&Tui!g!YSt?fGeG}$1lcF+J z+1P&qvyp3*4TY=5s)S`Aa*6586|S~`!X|UR6gj~Xc^<8HAciuU#JZ0X3I$z$5boF4 zofwap10^EN^&agTagQ;HTTuaJ)~knhLW5e^7Y_Fx2!-n_ zt7TmSX~0hd!@l>IpPndd9;*;5JysxGU89i86n){ds3JlF^=PbJ=hJmJRKfKGwM_yqhwpXLKWX14Iy z5OH@p1_zU3N`E@ORcB1E>zCX6APW^9Yz=eO!oFs6Ikn$J4RG%0yUP}MJLlYrJ!8pu zmBVF^JvdqV9cm@4zEaP6-(;3`&`hEN{ho^784G8%vK&{|(KKm5)RXr?;^jh`Y3w&V zs*#HnX8WK-dGUBIpiXR;Q;5A(tH=b%n}LNjscV<@Y%46TQ1cvG9Lp*zcsfm&5VGr1 z$1^IV@$b$bipNfthcUkENrfr|S-+A;y2HVofgI@Rlp8W9-9WkOL1e8c=|QtbMpB7B zvo)?5Byd}=^S->t{r0LVNX`xM$9`;Ogv5`QXka<}j?p(nOOy)bB|2yg8U&0Ja=lra z)YL~J>XvohgzhmcB5(f8@Dnqb#0qatOV%)tR-OGREb2?MT3r4@m-)?g!8_2OCyt|D zK-LNb06hQG6aUwg0{{8M4Q;J#9h{8a{xhv8ohr=9A-u~JNNe^EByr^l%R_(VztSmR z2$QQ&ra(uu&E-j;H=h+(uvPRTf0D<{yaw_F#UHenCCZtV;Bve-sxzJPZre(}VT zu|vj2@`TCtFG)}8+u}shz~F3}UndORS{n)UR`G`Q}LtHEY-IhrO}uz)KBM3o*}g`uiILIqceqB zlXvC`#JdweeuGxojEtFy2J$yjfz)quZ84#YJ~sJrab&@P*w66AJ^r*6^Shyjhdq15 zUWhn*4}!Jbw?TRtMlsZ#Sx9Bqc7|faj99z0+%Af*n5KwD7ZBima-Pg<%*=?r7?a`{ zrtCA!W+XHow0qoS5VyT&xWPMz6dlKbU!4>N!K4@-StVdb9&=6KRm~94F<)= z;S`mCGDt?sEKuu2w2&?;)F@RL+1t2@TT;Zj$PBiB<y;E8_m$0(4uBF}~?2~^uEX_ZW=*+$lb7U}7Ds9t(A^t&{ z%Z8+<+pZs?rvfKyRK80gKSbci;DqQ5=cF?HD>dS%(v7Ew8Z(U?lb^Fph%=H^j>LY5 zRxWbp3<&3rHpBJENfp_`c1!UoFocxQSV&Dn)f(&T#K1X>bfAO4t7m=w6l4Vw4}}q? z`p2>9*&ez zd#J!#3waH5buqSlF9{v7MR90DTh!!ZxPxz(aaY_Z!f3=>*v1(-9u1Gnd)s#EC^R@7A6UyfY2!b8JzNX;QKR~SGOgUuJ77pGbs^F2L^ zMSnIKN?s~Z#I%{7Z9Re}X=}<(Gir^E6yPU?n8ep{{QNFbLunPNh-T&6Vk4j+q(y<; zM7G_!fTd~4)|AmTN86DV*tQyHB-@5E&c(Gck96zUPWN}swUaW4?sj*4l#_No`(81TB zIhxhCU}X$nBut3+Me{+OgdZ_rCu;`o89I1+Y*1 zmRixBAMj?cZ{t#_5Op*LD!^d#a76q*6y)<3MKQC>T%$#e8g{J~+AK#TJ>=e^5GzDD zlDLa>;=_22pY#S9?+Obj50>qgX#{T=v+DM~00It&Q=4@GeDl7giNJ!61t6F*GrB(j z0P$T<(ch?m029eS_W*$QV+^h01azrE2mnAR$B(j_9~`C!rMw$1qX)OW8y#5xi_kY1 zl5TDUfiL^MI8eD5N&J{f-JHvy4b>o6If!XH2=zS-?661MNLqfUcIaR9FtU0v+JhlM z`G+Bp^$9sc5DlW1i6$Y?Q=>qM^u?Ite18(0grLY14GcT{1TGPAwz{H>)JA1iDy$8pAq8D85rDbI2Ss~(TXw=u71M)KI% z3E&kLW#~J@0A~`hqOTS4Ls&0V4U23D&G0~tMJ1ZW5Lb=O1r@tHOaBsr1UTFm`3yoQ z5TVz~KPE<0O-fC$nDmUe9;p>V6*3@@p_iN}zF4-N)C1|M-_3xtCPq!9oa}-Sk1&f= zha3)BH(rbcZX|AB28xh0hEW_^+)`{!jOM4}Pu^Js^9(7n(-`ZK&3%Yk-*STF*rpix z7}>a&k-q&V6wZN=T`9;s5`~`$ND?f@dOwC0X+jr6HWz8sgSDE^>5= zKT439ozqAs($NIRe$wPGOsAQfnm?G)ojA2ZZUo>7Cr>BOS{{R+9GwK*xx&B(!v+kA z8GOaG#Qcs~gwcdamnu~VHkX__tVF-Wh@EPh0-s{5tVVfH>4_RUij>HisFLWNcvPyS z?5NDQ;9d%?RHh7HrlaCjD56{^w^sr=k5;x&f~(wC!df}0;HnTUHzlu|->LiN|7-|b z8yqB(6D*dmWY{!_8A*sX$Y^}6Ca~zB0&+@inIdhVS^IP*R|U)TG=b z)+F=LegX(?ux9&;Vf>Qs=>L#IokQ@>ZP+? z=C@4h%-@{WoDa^Bt*ou`twF78&Qrg5=L}EXPauDf{)Ri*m=XPLeV6|m{nzE< zJu?Jr45k$WyW!P%jN!3mih1+QRp3rB;+R=$Y`)e9bY7EkTO5OO z=1t>uOKyDwbH=rw{XYlxJ1Hg-EYnO{XX@vi#>a=L*UOj7N6w-+7BVce^gCDD*Ipxo z3WPHTB*Iz4hmuy4JjcM2q>~=XQ&f0W+*N+7ER~BdYMoM_S}&?v$ziLe!=!Vjk2Mxo zq*wI2q+4&H?4m?d%u@VTv{_|1dp(0XOFR2=&T+4QPkL{CKZQGvgM_=t<;3Ob;N(2+ zVrAEU`g4c5ucW`E??lxU+ceiP^Ogm@P%>r=DcL0%UD3KItjH$YV=VCi>!NkGVeWT+ zdRzK>#ftU(#yHP_SJ{g+Z94Xdb|23r|J~Jt+OGZhUS?5xQSWWc5uJ{Uj=IiE2cB$Q z23gi3z4h=~zvgzw*mpfnULND;$rBLXL0;f&kL(|vg`GrOJe|bei{7c;;ICOPT+d@~ z(T`m_?l)-HGGKZ@JwOLQ9e!ATbs&}?_@Jqv1>h`Tkzj3K=wNtJ1z;dy)$twTZM)HL zu%8T>)=jC?W>7~VGEp_KpXtZRr0^CIqk^X(wh+8+3!kJ;#v36*wneQ%n(@ssQ_-Ki zP$(!FOKE?}*DE^NJ3UY@mhY>-n07>6N0&sjaIIN1I=GmYTUaSr8J?v#`!<(0`?>vi z6uwSIazZA7JP+OPU+(7#-E#y!vPxsh*iTbRax$zuSkG%gKRlTn%W~ybXHk#wWDiO~ zO0MNQ2p|xUqr;FrD6)~pMZO7450Vw`%!|yEuW4$Q;Ep@YR7t#N-{A5Rd^QV~6>%P9 zf|OODa*xG~YazasRuNjM@+R` zb9LQvvzz+$Hc^*w8ya!ABDyOrgSJAek(>F|tk;;?SZ&gq+^(8}@{NW2`c0HVz-&Q* zAeFx=b7D!t$e2y#okoixs(zx8@}))cf~JZOC3>Q6xm|g2*O3R!$cp}6@E!bK`0~`k$<}JUs;jFO(prHv5>JfN?jYUQb~XJx z&9%W!gA%Tn|DcC_tI+fNp4@TnWZ!z<#8#?L({G4VF?Xt2&MxP2ntbaVp4^Vh?RIxW4+d+bO_CKnl{})}c5gdkRhqV^#t&oXs@#=MchaX^ zGnaEd&lcSaj!TbAwA$J39hZY=*iANM8#v9Rt-l{#?$6O(p)RD>wLPNUs$M%+-+qBV z!~gQBf3Gp_w%&f!>(-m8p71gEV`o-$Ty%k0gg7!f6CWQN7OUgNXfl4M zsI~}sYSdfh!~N8;>}cz4_eF9_?REJI`YC*>tJ1yX*5R_Oq>6KhcnH6J(w*nJ@U>!c z&FixHvUO{y13&fa>$i8g+nHy>p`vNo2i_yk_gA`yz}pwn*=(jyv`JtnrXURfc#r}B zz5xKh)5quX1ORZR2LOKQ0RWsS006peobG_g=XZaJ3-K$tttP}V*!Oc0#yZlRelZ~HJj-G-8OfiBxtu=!} zNB|;2-;!TmmVOI)t||*vKF%(LOb_mX@6+R* z=dX67D6(YR7X2L=l{n4-?IN1|08~$^&j}( zTHnpw+4^q;01NuyF9Prv0r-mm{6zr%A^?98fWHX9Uj*PU0`M0B_QC^xP0a%do7gut;_9MoB(tWzHiDT!U z`{MSAi$6X<0HF`W%Ui|kKL3iYo3g`Z@jsC@)<2=^e^uB25nY?x{3p78g985j{~@pc zc@Oe;d3_$`-RX1VFM0hhdHpYW{V#d_FM0hhdHpYW{V#d_FM0hhdHw$md7bj_=-S}* zEl0CYq)II0KEmhb20KgrWlPXj!_pWylJ z(_!-8^7Ox2@rXaqvUM<}GjVn_cC>YNFf^vK(6@0kr{n)Dq-~9i|HJhg|0Ijdk22IH zSY@paN98~~mfJWckI)m~5F{9iLxvhRm>tZRK)ObAVZ-pMs=Seq6z;rp0{`7YALg9-!E+W@At?YDLk{L(dZZI+tI*;edO~oSGXJM}?gkV&>wFk~^ z>`0!i;UobTEH~&{;T3$5_z^~qNd#^1BiSmOSyDJmuXqDZCu+V^*$HEpD%lFs`G%xa zTWd}2d@Dn9MQxlO1OH-OSn|kftmf4`_#08n2tq~?7%U;IeXvSmMUVAbj6feUzGUwR zB;A)_GFBga0R4SjnkP0^hH~7#E!5znHh*-O zF{b7n=q5dm^`sD5T*T06W(*ib$9r<`W6T$2v4CK9gh}fxszw^sea{*i_YO|xzysB; zD2-znSgIuAMTsDqoz5f8#+V|Var^J_ZAtZsOu+!88|pZiiG`@`@@*ho`Tk?yH|??f z^jP%w-UV+~(zpdqEZ%Jw@t7R8*!Hqa2JV46h(Qdjsu(yPT@ye~mx;hDnoZ zRUI)Y#i}GCdkEpB3!xk!YOzKTX2a^N(tGXduRO92F?j@FO=gB z_K>td2X#q02qVEenuwVyIEr66>opE+w3!e_wU{C;m3r|N>h>0lwmjnvDnA=ciC#V~ zLa85lKe73c@wwI(v89f&7f?`57!p64xAH2 zD`kNaFp#&0FiBG3b@!-8$fEWMS3EU0Y_|z@s`i}XshQL&^gAWcN66F*oLYm}y#g=A zTT=iE8cy)MROdJ`QWtUkdC@e2-0^aw0VMhKN2F6DX~h~Ugi1G%4FsY&a%}6(p;$<2 z>}hFi>x^qYtyc%MVccO)(R;Z$eQ||WMrDpLK1}+Lkw?ONyhkZA)5E~gr@sg6*lyL` zy!6aJ%{e({>3A;zIaj;x-(*EbO1dv~yDe6gMNQ0%#83wDr9GB`B^MW2uY4?M&wL2B ze?;a|5Lm7YVW=G?yL^b*QHi^44>=Frf0^f^PIyKRlcZh6S0hX2_)5-!lJ7#GXiWugDiGFeHjmPrjJ#t7{YN`(@7HD%51T8YcvMw9=4qCOz z_orIYfC*fPepXAy&%FOXr*rCmS1lEcZH$Z^j2%b>|0}OYCcEn?EuaogWm3ndYV{Jw z1d>=05@JhMqpo4)j0cKKVUn@Ne*<3|B!saikg_xJA4pm(XlQ6CSXlj>b`{W3i~#B= z{a|1y=vvbj;mfTHs}>c|+Vxu;mt>f;zOS)Q7Z2YrHyt-SOefQE9?gzyh@RU^9pVJ# zjb+=*Y|L$m;*L)uT}6H+1sR5#WrE{Z#4g8)aU)fk9jhbRD-`Cn8}BIZv|iYimrbId zYUh3(JAGgtS5!LZYf%1$YFz((XkegNHia&ifP3@wMgxs%?D2NaD?Is>MW&lG0Wytn zvmIO>WXjTX9n{h(BHPv_EiYrJ_yaOMGM9R2y!^Pg+E%`3ee|@I;g@b&O$X-`6VPLn zAI9eAr}J-RJ;vrc#^&AM%Fmtk80r zHq_bw_-^0q=&ssc#MTH}MlC?r`R(O33=HqgLQZ~yqew@KgNdsxzsAgg^;dbT36Lrx z?Y>-6xXBz2d05t9wjBfY><02uf-rkmEi!n+WtnSy-WO>{NX>YjIiZSjneY92jChgG z3vBS4329)ozz3x;&_AJctA(=HZuu^dvrGt%LC2Q@neI~ZlGr-IJ5hW z*Bsoylg6*g(k-mK$)eq9_C;jYdl1pSKNxsr=jgHN_7Lsx_E6Jqtk(O8w|Cls>^FS_ z^GX%nFNE&{9xSjXq1CK93r7r?{3n)JBK6{@4%5?aRw9fXYYJnnL~5QI3+1h#mOWJ! zfzkz7x0aNK3qvO0Sx{>*Ck}_wMCvF^91{x-SV^tC3rhl}DbjV#D2qoaXG7`zxUl8lsokLEsbpD zksl98mC;*Gu^{r{7NR-qIzO${>J=l}w+xf7q-1qa_8Ou&__{95!s-<#+Sd}ZE2m^} z&}SR*%4m?zJk4q^`SX{8uBp-rmmgX1fMktd(WMowUsXR>4PRZQ=d51gqJ2-7UlkQ` z(@(5;rltYE#x#Ip!=8p8_Ou(pT| zld9m=){PVhbQ;2nda$-g4L?vrKdtOL5b{-v5b&pK5$=ns@G_30)T#{2md6fHlc_>I zm9RizuI^h9@-;!l}m}Avjh1?(~_C7euR^dO>N-w6gH@*Ol5x< zYlpfR&5Bu+4YKrB`ED{xsW1iLMu_Gytn@rAtyHLT>k@1SRB)k9d>c`u;c1bS60 zgu?KU%jDa>%1L>mpg1U3%`6PUvJmVf+va85!c!3J)Z6Z5M8aL@S9!jC8u1EFLf!H} zKDCsJccws9P;MKg5;NGqng%wT-UJI|w1o+l zTfg-uOt@R=LHJe6gCW2`3l%KqhuedY{0j*}4Fwn@AO|BJL1`NdAz>p3VSW`00_uzi zqV$&ngv1FW#IGX%Zl&>|liP*HDO(4%%Z|Go}Hf8-8K zf5UZ%o*iqy?O~U1c5-cm>{;Lh>hWjCFrKL@6gtV>a`N->?H(}dfUkk3^JTUBX_ zcr0KyiWXpSmy#P=+2dYoaj3T-j^(ycX5h<8DLG&?3CDlfm$*5mPsxS}BzGh3k?MG>N@7^xy7E1S zmdi+kAQ|#!g5tq4uI?tRCryz{c;1WI{rQ_{2F)w1`dU`D;iAfD!MfnYmSEi_4)aF^ z;n7jn*Z1e1>n%)&PL;mks4j22*N5PY>?QoJ$?>UP&!O$@p;olRVwFCT~rm*nByp*p(OrRnkuG|^HoKXZU>1rnB;JiU~S!k ztx1{7x~)>%e5qn1{d*1eX`|TE)X-Za{yp1D?PW{o&Ti$*+qVn%N%yQvcb(27jvpVM zPg84v&ZsFAH&DDWbf%h%VUc4;YDM2`8lGrJX*rGcu6l zB#zSw9zIU9z*a^B7Uufu$AkNEYFnfU(bF%WL8tZwM7~;BZ>Us;F@1qagH>ld;qWd) zSrO&x_fe4(m@cB*oz8G)TxG8LsZvlx_-yp2c>>yb}ScM8i$B#{p2J@K)UV}zy4WaI9 zFz(Z0qe&H`QqsXAGkBHK(&xkT6*LuyvKMO&HD+QQoM&zKp-5{*?bbPu{YlK349rg) z$?N^Ck%iE+RIcW+kW?~Mu3=iiPy&Rt#iXIF97fb?nN~vjj^*tFbK4HY56lTbK+<@K zuYMvI_=r$N9Un=0&}x%UX&)b5r- zr#6B$Deq%xMBj*%6*ENguEL(uwg%0Lum7&Ijfswpj=Z#oR9$Z%Qq+{b&NR@A{hEHT z#gTv8S#FP;jJZ_4kmQ@wRd1-%h@K; z4Ci;lNsGF%_b%L81z6o=#~g;E$26$!D2w`d&``ANJSL=L!-HqYb&9Azt%#$Nj1|IBFbtcBz zgz?_{K6HbZd{@>!JQTvbZIvZO`A;# z&!ArG#PQ)5mc1t!ED&u89moE=y^>;;>rG+ynb@z>L#8Ti-cd_WazoiiCOy9WeuR!M z?#?O*UQ_v{J|*d_pLU&{M*IaF)u%sOt;dPi)LbMg-MYo+gO8?a{v63=Fz0X*oQr4+ zf%ty6F1Q__nGyc7&s#3cn7n5{VnODI@*3F(oo}H+uaB*7jjbWjr}7f5xKR! zTw3RegmX(0C~)V94&K+3C)dwmnvhMw#$ouB!q#q>#*?4hKa!;-@urZ4QPR*uCax?oI{eNK?v z&E8Wq7aQO2+Cv>IPG{{V=KJyyYt26y?~ZX5E%*DZ1H%cSQv4-zDc70sTWY}*mB z)!H*}T3+mw-EctsOo3S-mHm%-9g#dD5rIe)IF~04uX@L2t$Pom^9o){mzTcxX%8RF zp;nNcZtE?q2D|PiKAfuy_=W_A<_M)GBv`7%0hR2J17bE6lM@}%yJQUDEA9X{zu%aK zP%?~{Mb%(?p30peG8y~{8nTAK_Gav1;y+^wgQDc6ZUIwQuUNzSNjx7oX!JkI+JQF* z-P=WBQ%83sI7>?s^7SL=weeUJD*L_!q;Pwy~6oMfuY>9A?U1pr>#=pz}|7R45B5@6IzYYjibu#UWo`vv4Fu*;& z=oU2uL^(u{#A%Z@*`2Nz6Jgen82oea)wB?C8A3FSfeN>mziC zPq-w)mTnJqB#zO$I%MPKyD=g*k;By<<0iK|2-gJ^U%@ox5TB+{JkOIiW*58r3YAz} zv?^~X^+HHp^bBArrSgbY(esKsc-a`lahY4Xqje9rX*IoSlk_GQ?9j>P5a%p_q0c78T)#p%`s zeyN{Qo~=;Ro~Q@=VprYu@cT+p}xhBI*Sz=GlZEfh&Sb4 z+I^80^jMUze1$E`6x(mNeHI|>t3&bYH~dJyVq9Ms4}XT(FjEw(&=+V#`|W5#T}cFn zz!3{vNVFd~tOA>*?h;h{kXp&Caj8ZSrp48RRY7o|WRgX;1zJ8>Fs$j3eF=3kakSv_ zKx1EseU2lGHo={mm6{`nvy5YIKK6+Q1}3w7D`s+ICZ;DstYZlE#uDj8Uaw1FaaMZWANM#5P;=7#Q}!K&*Ai}np~HXLQE1-E zQ457gh9`4qI;fGsb4S_>S0A287}e)va%#i~J${KWcI9!`dJMmX_c1Rm;w);y*j zS48M~p_UQa*TLgNDNedx1AZ9Ne@&jX>QV2u9CM%`H2D=$z2A~1UV2FRV>oWIZ>gq_ zL_&d?)2*uU)qhTa@u$NtL*`r?z=xPBR2KcXLhgj>kedPjK=&SGX&i))AT(=m-HAufsB1aSyu(S}#OH0JHDJ)7|z+~DTeLRt+I^7M~{Wq_tHh0Q6Hy`U4AKhQSMDFa*w?Vf1fU_xH>Rtq4 zZ_5j5yOsSK&TdpXmtaAKm%1se3@PZWO^?0#z0Hznp>G`&{Jp@iglNTrood&a_64KO zymq8JnyAw#Hl6ksHQLx&#a=VV)9Cr9*G#-aYSHy#E2EjTB71F|~kfrugwT-2jM30h;VkRxpWVvX;Sukk65lY=(k;nNP$>Pz6-MdCEOX zYD78eeB(US?UxSVNMn&FzX8)CVmqx1?GAq|CH=;l8L~PCibv>Di+4R>ZfS-NQvH-7 z^-vrP|Jp2bSG`rvQZ*6WGGrd^vWYxJ!Yh(9eAeI#t7g7(`E*SSLF&}QOu05eW0n@; z>9V1b-r30lSOI7lV^1KoQk3V!z||<<6V*3zY3^RQ-afM~Znmd!J^n7v^htkY zq%L_?JuP06+*#1!&%J&FhZs@Cq>QbM*N-Qo5p=KF=|<3ySPFG(??1#?d1M+c9v$E` zAS`MRnY5kbdb)kvgKtw?czDBq4og$6+A{fhQe@Iq_r$)#^SVlH%Y}54E{WS9>XNU- z6{X0m!&x%nP{=9vi?pIs+kmT|bDU_+3!KZIw!$WJO`G$bJxa(kTD6|TCpe{|+LPf| zXLw=tvE-Obz09icJ00iXH9kqL0I?gox_8%K?@}gO+_o4xG4@ym z;i`ej^sSule2*SMWx}S3Mwuepm;{T8=oZMc3vGgC%Q!cl7$iS&@{7^pUR}Ds)ZOW> zlKOQ$DsGomI|QbOO)@UTa9AR1#AcRB2p6`GP88ut9`tgv#Fo52DK?aS4m-;PfG2y~ z@Z6ExeqpRa7hMCJ{qWqX$~~zn46}d?|7Dd5G=6S`oV`y3fN_7LV9?j9FYAPN$)Srr z>V)hQ*0=kEuz@Eatlcl!;PGV9`4%cenV6i|^>IQWAj;!%E%B_Ei-z>EFfv=$ZL>L{ z*j3u)JW?dSOhL`lZ1xjasY<(?n8*3F9&NJQN$NipjQm)-aFOs>AW_wQ)3a3Su&hN=SYP>$1&uyiCS{Beb z;2YeGlkI^{>~m(GV^JQf{(9Y%PH}DwTMo`O%;bvY6vMpCFEcsG`3+~z&hT;__I0a0 zeMC*rB45O+ubj8sv}45WxFx@E$74G1lf8;aXKZH3(8`L4SV+domvM+1w&S|Rb}RhM zJZBr6EkpdN9oCqsE5F85UX}fE4Yr#ZVl7Bt#u)RZVArC7dgV)^3zHxp83#jS;I+PM zyNaMM?>XA<*IJOmk#e_m)ku?38^cq#1;aF-?4P{tc?faFBkeveu&t2R)S8mY$CPgh{Cp5bgyr;0OE5+`YENyFI3qB835rl_NU4Kx^ zQKM~w!Dq+*CY*mnE&spl07~w5|7izMvQ%6XLE#COo6^^$}0`$gjW z(?j$U0530BFG7D3zAZ6;WH&ZD&{~J1wqv+t{yv^ROOe>tl{wG za*g9SrVaBuddDDr=aH~D!lV8;7ff=x37s??vZwbf^in6y!O_G177|L-opjcxZv_f<-;ObHIrf#m zQXUR>tgaj_6S5Ig!UJzIypf=VU~{7Q$thFQCsZKQO+3=y#b4w;^B4*s51SYDOR1}gaR5~Xb`Gz{vcPn z?=s~?#Kdi#iuqD#jmI8%FW3s5;S2q!jf-`&dyy3-nUX_c#*Vio?(xFC-teGJyL#GW z-DLhFYWN^87={elV}_=s~bSCM>AkUUTR{N{1ycw37iX%aj0wdR~G0{}fR zE9{uBkBbe3$0!v=|2seB!D;>q7PbaA*rn?n+{9$A=Qx?9M z;|Qn5DYqI1?{vAp2?k!|I=vEC*zyQ5%PW2aVj^xn8h0jGl6>A(7&mjwp_TbnTeS4wlGIW@6-G9s86DLn@f7^nk|(zXck-6!AL?62ru zM?U@yFvNzQk6e|V{q<6&b%V~SlVkJam~6(aU+1E42dz`lj5SmuxEQrnKJvJky6YE4 z;plA}96+cwDqaD?Wd$(RRvkhI=pM%yD#x6}#xn86nB#_MW6e>Nht<*n&n4wZKF<@}XOt3$!_^%o59QJiEq+1LEht9~lUi1M zM=j&ao;^6&wHD8ZhgL`fUKBe-XqPDSx3Tb*u;fzo-YA8F&oVO6-8n6AU0FV==TdtnRNpc-x);jRG+!+x`pP85KX_CfM^(vYn^?*c0sX zzHRs!4mdnx5+S<@SvRB5N1Gsce4`Kazpf}^mjH+5@{d8w;NRW;a^Eh}os5$RMoW+! zS;~RTAuwjWuz;!7j^u{NzCX$6&mwGT{K_eyeGFuTeoPW|z~Af%S^E?#p1Rg-S146W_O0ScnB|MrY6Y%;>4b089hjJ6LgX@YiL@O%{e-FNVW4l%vpX!{QO+-B}{%T~oJuTP+ zw~RbcYwvudigD*N<&b$zn~kyiBhW=1L;Sml=yc59VSnwQe&43-O-Bc)J4_SmN&pH2pwq^gUqU^^kPYSXVtlg zdS1|`CAig44fSPt;j|&`+zrVehUdpCuBx<+@T zjKC07W}@JNu9MaM9&g1Y8NhU@{<(Cf$t^7tpC+>=?=Kx7ea0!{8{Z^8M|Y!a$8qh5 z*jtv-X{N10G9ri_*QT838LBQd$Lu&xo*qK@pj)fv-cegu+KNFwe9iC&f?@nxrmDa^ zI%h<`E>9oWri4z>oaIHI`$oG(H#9%kfg09RhRbcfT^{!J#A&o z#%BNFPP-#!>Qi{nI!ajIfg)lu$ zd)U}WieQJ0L>!DHjOt@l%I1Xu9#txT?K0R9M?6Izqa|WqN>Qn$VvWTEzDY6 zY%g&(_ZWRbb1w}J`+d!prhsIMX$Z?CjOIq|x(U88sbS(dR6$oa!|*3v?X+{+3*bXV zy|52%+=b%7J>P3d|8_jVC2ss=owbCuN2>4F?U8?~-iP1xeu~VpXLwRmGI7-fs4(*w zk*HT3VY)e2EQ0VV6vj5H#f{7sY!+5A{}OXaf-i#Js+o+gncQc3EG{}}_p%R65D%UQ zVeklyL?RaW{)CWLhqjL_-~{~BO5hOzlW5P0h?k_#-^WtKe3)(h3<$%23W$HznZEun1LAMP zzA3KReCB(vBPtQ@)M17|iNx7rcv^-MR9d9qysu$-19;qopKddxZzp66&{=4aMFB_T_+M%;}JY*?3^R`=QDz0as&)9hooJx7Oq?J^>MwH&AiNm<6IhWKxtrW2df}EyX zuR$U~2?Bo>>#pSiog2O`LJuiKjl2t6+Vl&Q4Pq@Q9?`<*O*Ji|z=BTbLvu8LwXBl7OTx8$Qq7xsdzb4teyE z?vi_i*RRATxx?zzOb|wGsb(-=N!Y3%w@{zGvJy~_e!FwBG9*8J;fAus8tE0BlIjLB z`F}`z$KXoaZEZBRZQHilvF(m+t7F@?ZQD*dwrxB4@~*W{o!YxY7ze z&SlN&O`4!;R;+6l&}In~w2jR{0{Fqkrf|xn^3%)X*M+ zG{;q0GLLN|A(@WAg#1>#{3>eAq6G9%Z0UbQkciEt+JRe7R7hIsN_;U&-oCFLVPMc= zaLT)hiW96H#H3ONXy)+htHvnC!&gV z0D%gJzZii|FxW$(!h&HDb&oEYyEGOzz5lMd?<&Xh@7iL%&;>7q%*yv?U zvT+qN*bHS-RCnlBnPK=FZ~w2}4%tYGWX3#ZVB;@%wBK=lP=X3;2L(f4zedq%8VZz9 zpXNf)&|R zj3g~gdnwmXHFShV{5p!xz4NWQ^Ucy9w>O6WoY+6Kc>*o)X?mxDesp=r_ny1g=bdJ> zb0G@5xOA?HyD@Pdr_GFjm40v`ukngHUZ%7LDS(>CV{ztl*ln22ZNyo_cz7p*lpsre zO4~hYjIEif>0h6`i2P=mqnee31gnDoO>|&)D~ffQXzkisnnOmk(8P)G zAa@^vH6Y{Um#?pZu?BDUJK=Iurdyd)i-Hr?Wbb?fBP1}rA5qi^uqy?K=~l)sG5rON z-P2mca;5HSU6~n@!9Glw_0l&-;;$_zWA*54~-=}AypJ8fg+ExGW`hlv|W9$Af) z@-yyN{M{LeF_6XH8c8K14vcty_*Hu$8QkPxj5_q2(SyR)id+H6V>C%q{JglgBYzdr zLd)9e(L#zD%dpeASzUp9hyEZU1pHO69L$IM4zERx#^4pADx@d*RX(&k0CoSzB{XhP zY>g7>qm4?^HDV;Kw(G;1<({bv9z{|9U?Vl}b;CUYB-3pKiHu`vI%WE%1Qxc@o{vch zFhmfs51x?dE6u$>C!^!u0v&gnQpVD@8TJ~F}&x=RdM=s$oF6={H z(gPLNoK7-|12ek?x8fyv_$`2u4tCIln2@c(@5dDBCY&)_EjMuq7sTItyv3YS_67V{ zMTm7(mn!^U7V_S`dO@5PGS9h#^cWr!4e)c9_c;35xFbuv>~kQC?MUz%M(G&0%)~uCIgrk6 z^H1UpLNkQV37kc&OX7Yr00gWZ#ZD8dJ*4mL5>_@R6!!d*3dUq|n$^haNbKDmaVRD# zH<+nGFpSgHu-=TENff4D5HM(MSrvsF@ z?(6s;yx3oCtdkScQnCpeJVF`7eyMtC-J^4%S*5n43U)ROMVaR4(IA>YIP_iJzoZ&7 zAH|O}ndEeYc%t>#Zyp*x#!qP)>jflgq&?{=lAxr}${07TM3r-N+*zb52x*_>nE}it1Qu%*4is0H z@E%$i553AwNaz##=h(<$m!-`UY6%NdnO-hU6+WH};^r+5m)eJ_jKoiAvDKQ7Q~~;MiY6T+PuS z643G_lrhZ}a%6KiiPc%k!h-tzjGabjv}tEhFjD%eIm@x9{1YC63hZ8LJGsw$KIwO2 zeZwH*IEw6I8{}Z5lBq`)Qb~Nh7GAwk%^9B9Xb&d_#H-A!GnDfgzS0wOxUT22Ev>uy zg8D{pZnV-Xk6X-JK>ht6A{~}iSYK&Wya=ZkYaLt_{H6oOSLAgu;feBOFx7_s@o_^* zpZ<9AOPQ%@vTX0#L|E0W{jkwG3xuu4O?Dk#S=AU!qw)RX@a*y&dKlgK1R$|;3oM%m zUmA#)f?FoD@t&28iSm>M+DuK2hQ`XNkqp-~%5Q__q^6Md;wEy}((uoCQu+z%NWRso z@CYpoXEI~KxjFuf(wV5dr|1K8;oY4~OGB>Te)_B9D3mos3GnXo@xuM9T54S_+dt4Z zF$)tnEuE$xZRyqy)hOI+jk|8I-n3P#JA2878nzM15DRnpY*p_-) zT1ibVxUDF83Pn&DJN@MX8=qCN@y0BfEfdHX?U=zju*lewv#~E52(zaD5tT;)<-IQ1 z)STRm7!!yznM4G&Ort0-pdhljyMOjB#LTeihv*h-_E5Il(0FTc;Ii)bqz^JJ(fsJ6 zKsF+r?n_ViUVNx%zSnEB=;D_iS_&KIr zCj^!Q=9_dob&j$zw8`M=nAbO88Vt(=D*V!j1JoUI=M5Tcz)@D;x)g?)x02dJyhWmL zjCXJ$>f`;CYJ>97yB;*ALvbMlxvP_!-8)Ud_D;RZ?8!i#)IU6>()#*o&#TVhI_WYg zGfUIdmJ{c%=L3LFTFc7j;*PW)R(z4ftFDsO#pLM>zf?`y(Ug^{#Jsp

qldGo`EX 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%0AN|EtMPE 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�vBrAMh$0UlIKDQSWMq$dmdU$ zqk(y?;Y_fg_UJ@76MBK;JF?|`l#E7u!_1|qrL%4Eb%Q;N?gDW}8E%8wKet?KR#~Kw zJZ!C=6$Cic{?tKXK}_=#OQHWv=!0RJd~<&T;Sq+YB{s|m9RQ&WLIl^&w^Fi``%yYQ zeXaxtp=%zV%C`$&p!`ub?4mD951unL}Z1L|7`ujeW#Zr$pt&LcB$b96&AZ9v*)K z8EIeqyM;pBJv-i>hGbzZC}kKbg$6n+vPQT`RXfst%`mt!ox@)H&{`4;k^hctAdtW} z{ukm9AUzHcpFg(6?6v$4(sX`yZsYSEKg=Mjh*3{M6HQ z0!%B9IXR>&m8rijLYS7or_|Nh>6ePK7#_ECD1M`TwfZg1D_5R$+vTLp`1*R_7fmLG z4U|kLybn<={*`lvB;i#eL)yY80Tf9KarQt-nDo&Y26a~|Jv3DwJFqP0q|`NMx#|hq zp`aC9*JwE6(}De~Fsy`fT7#4L8H+QLiJ^EH-#?bVBntd;q_@G9tw;d6xoJfftFZI7 z{Kn$t$otNu2n}`1YBN*GxF`E5Yj9|s+B ziE6)`*mRyTYljf#@oid4f#LmHS{)%PVJ(SAKtZW3Ucr=GoEDpuO{%cp@Q^D$zt$5z zf(5JDa6|G}LbRdnm#F4m=y`lf*mU}EcBp0H1$s%P>B6DucOrl6EL8g&Vzdg15PMgIWMzTt9mg<$Dp)^9RZcpa#q-bq|UddBk^3ucOGdLfOzi23#AR) zK~tTK!U{J;T)=Wtrt-{@(@`mI2}F8Jh z>-rv~Fzov)D6x$lq)S)^pLD5;j6aJciN8nVeG&yCMjX4Jp6bx?xB(QbZ|brE2g1DF z((SjyXCsMt4C3VDq4A2VmtfyRUFE8{YWy|IbNU}l1Ce>ys-j-8U2lvJwbaZWCq_hb zrJSpPT$>V?LQw<5N0hiadS}omqdo!kPX)4_^3pJxxT~=39}J<6PyLfFBMq zIp^=vqKQb_eze0ouA{-}dPISF?E_h(<`+fhcQN&HKP!7{HfUKv;+C{qU$cw$oE>$1 zM*_YS*Aw^`Mg3UD=liifZ9As2KcT+8f+XFi1%JA@%H?HcWzloN@JZk}w@8MygmC(; z9@?t0H71V->yPL|X4IAa3imVH`HaJ+dNp7~(2Kw&=|h zhRy1d$WrUOO<%duwqI-F>tB}EO#AT~PtJBp9oXmPgCwT+Akl5 zmxqj}xE|e~up8tU-0N0He++w52rK&O16@}Bxd|G3o174~%=_Q5sG)+)4l>~1DsnIu zl)Vuf6rXfOF1}shO#{2HB!s8qdH`J+UGhCR*gQo?lsy;R=}eD*1^YN2#Xa-KZFvb^ zz&#E%e(Rq7im);R)z>h>=Z80n)qR<%r~;a*bsSUn z7v}^V==h+t zKF|$9Scdc)#RzbG!MR6Cc|9{t@v4^hDZxNTS|N5$ykJEqU8R8$aaXzd-^*+PpAcuG z(kuuO5;%GKe0EX!xz0~}L5O>oBEbgbIYS?rc$~WU!O`(9rAWY?Z?_-L{|a6{#n;3L z3UA`e&6NgEfQb8>Dk9dgKvwQR_~aAh zJ|HwQo8sYN-3JmV-=FM3ILJoZb&~tl_Nf=Z=f2SE*~uEDplJF))!}f|cHq7-q&VnK6 z94;ybkH#-9O8Nu0{a4T|Mj$uAZ~S+xm%Z5x!~K5AB^^j5-Wb&J;j#p(FM|#OjU!IT zVgQ{PLo*Bm9Bn^`F^T8sSJ<{%YTnq_5@po(68gO3$?Z}culEzEi^s1)mEcvxmPUhe zX@Ig7>9ys1*r!6P%2y2=O8Q8b^)`CvT2V8@dN FzI_8#rxJ!t(p%8jf^oEm7ULOFPQM#vBt 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 RsB}54C$Cho6 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

ijpXiy7 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 KuHNTcUilZgwmJI% literal 0 HcmV?d00001 diff --git a/src/assets/dashboard-3-fill.png b/src/assets/dashboard-3-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..10a8712c424bfb456ecac5a9a8d9106c41ce78c2 GIT binary patch literal 4485 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 literal 0 HcmV?d00001 diff --git a/src/assets/delete-bin-fill.png b/src/assets/delete-bin-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ff67799bf7381d73b46949d8cbe03c81535f35 GIT binary patch literal 2996 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 literal 0 HcmV?d00001 diff --git a/src/assets/graph.png b/src/assets/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..88209e32e2f8cc333e426ce86d7a74482c3855ed GIT binary patch literal 53893 zcmce;2T)bn)-_57$tXENy;t?9wp;euXYUo}nrn&FY1D8{$wv2{+dXwPadSs|Zc__KGbFc{ zy%XGxh9)8HL4sNS#L-y5^5; z&BZJb(o)P4UgGcod!(BwvzNV{gR8igB;x$J;_!FWWgZ0c`7Lg?k_cJU3z_e!Yck6_ zx*(ZFxcRuud3kx6MZ~yGMMVVo%)~gE`FZ*IczDI&A1+>AaRCu=0a50E{2<_UE*6&J z+6p)S@iO>L5@GG;<|NL;X4Df+%^cm`BoWZmzxrVBq^|z=gB@J|F;XyQJYJ?wJbc`|Jofge zj-B7_>Za%cU;alk{_EYYy53Gm9&Mznqq~baQqcqH;CA_6U)M(ds~7(lUx(ZO{<4Mn z-!FD@cdJHM^|e{r@z1QA20j+j&o3y%C1z^D55HQPS_ldYn(-rf|M@g!2Uj;!2XiFqY4Ch*8+a10 zps=ZsxsU)vo0ut=g(*Bl%*<4Ti(kl0j91Xo)J#B36ousk_!Ms56yxRNLoi#Ii(5Ln*qcI(*w~v|A$gn}tPsrq>VdqY zouiAoqXkkDA@J|lmF49%T^ucK?BD|gGitcSl~LcnYh&SN4fl#dzy5Vq4e4O@pO-aJ z^9@VT#l~FO!42u+<*FYwRn=RMYeYy&+L77`K=`p5m} zjku>^12g{Dch38G{;2bh^#9L~U=qdUU67`3NCo%<{o>^p;^O1w;uX>5=Mxv=7Z((} z&MPX;`&R^r!ywyOdjHp3MaB8}{^M2{D+^OM)Bo*eR0cecR3#f%H%Axmf21fKr1L-i zW@p2Eo*=|c&HoxrS5pt91>zqUZT?F{iXbidEX~a~!ZeC{g zyEYCMj-Ia9{`qWkYf}d+B;S78p2a_&|uyk>>XZ|bX zA37nenB5%z@f&IZ{Ev^cK)Trc+X(&p1OI*-^Z&a?|F1*;f0qpYe;;}t)E@O$Nb&ri z(e~Hx3V#jSP1K0Hy1@=1{{JPiP~V3<`*-I3-*enw?{xfslOIumaGqS`Y}`I2`i}D({tXSllg}>!#6bP^Z*T*@{0)zg4zMO%0Q}e@ zl19+by5^J>WOcpLel>chk5-FHGqu^%WF^$z-vy#%JR{9Q*bz(CrjC zM`^`nadHPR(^6;#+m5SGvN|^D3x4EuC}d|x1lg5$HI-KEX{+A7dvf|fqj$|EAZ~em z`K5Q?Vmt1OSM^18D^mMn`{S;UW9FU(z>myo*w=B~bA+lN1#c;@w1J-RQ$G0?|gQ)D;wxka6~7gwhZ(h9PVmYOtgfBEudz4gJn`l*c#nLWNwY>4aW8l9XyqnBbkJ%3F#pA8i0 zy?H2NKdO7VhhHpajxpCJ#bQkOTBOTCvVAJNR5@PZU__T={*{6N=eA=qZ5Z`AI`XX5IyBx&h+AkKND2BYo>!P)A}ekw|{hv6z>^lPaZpdrQ=k_ zr%#^>-@g~M9Q%FaweCv01%K_Yq1)0YF5imu^vdpi{(W@9s(eu_M!w2EVNTTH-Qwa) zje?0%XtY!&&v3G6DJis3CQD0(l&y&5SvhCDEEBqRJZrgqDq(w;$?+@|<_)){O_RtR zLreYd0}MAj1_Cj0+2fQn`CsNe;9bITRgUNPz&)Td>GT<`TEnr=X(y23NJMlxvyM|cx~S;Wu%T=3yY205gD=aww}*=jZdF!R=B?Hp zRlxXQ1j>9QMkfgAU+lqKz^m(O*m6C#I$WI_z@E4(c6A$XWtT+d#Ynh_72%BnOkF1w%IYA#&t+SkG5WoBb4& zmAiWr6BDIJ-6% z%uWgc+O5s#V^!VdoOSz?J{y|k^CgwG!%0k{PAx<)raQIR=Vf0sbF6);{C?K9|6m$!!Ym;9wx6;zqmXq}Po%efftho$cN7FC4KhE!K;)Lp9G4b^H z(DM6KXJ|g$eVO@2jJ#iSrd;+je$%!mM@4Vm6ui~1_(;^&`Kd1zlZcD)cuMp(BB#8Z zpH{+aGiGIF<;`Mm>b{?Nx`*fG$*Eh;;-q*rQDHgk>vGh1SnTNz8-Cb~2}6tr$^>xsxDdQ5NcXs3ugcT7n;{=YJW=L%^60LkKWkmVl>il#<-iHA04+K2V@^d@$@F2{1>g~-9eu}QgE&Y577!aa3cfu_!XNKn8cGX#Td6B}!k zS7uR0AhwhRPa{Qe`C_N@X`}C<3qBUcb0yaB@WR5va6$F!Kh%ETYjJiBA^R#LAzy8u zTIarc^J=E=_OX!dcf3hngJ@^0hVEpR!dIuj$}24fn^$s5wfIH%hcs?PtEi~3^{0w#M0iP*n8$4% z`f?WsuNy&3*Ok=M_-D&t`Jx93Kdp1n>*ggKbEbzymw!9cuO9+qW2(_d1d`=zT@HEg zxkSyXuMckPnuN0LZ zL}vXx@{8xmA?wCQ!wwa!#oMKZwO@LF%FcUTBR)>;p(KcY_SQ8;$#?9usx$ zch@HBhq>e)(WPL~hW0P!?)2U0pL}mK)Xmd;y#4V3uM*77>{gBHmJIrQVz6-7r2C9g4xiYMk_$^vZ$1r=3&!~2#&bb_VGNc@%W#bfRy z(#M;s$0@F`Yh1I>_`ND-hY<5c&CV?s~ zreT1&r`+~JbjZbBeJw3AB0Aw;iLX?XCmSEM2Fcfzq#EBH^xeo(2!&CL41D02vhb(0 z=}#oNB1=2(_{Q8B-f_MS^nZOxIxx4LmoSL@k}SR8%Y2*Nz8f2c0=@^EVGr6{CInN1 zJI@ydcJOVV*~@37Zl|lwr*CWpX^om~hq*;+g6}RE^BP|7qbu2VK1PcPK5O0F3KiWj zA0b_wJJ7X43VV)E#i^kjYC%&HKi#b0jMCL}U#!Im zmfd?lq%l?t=}n~mr%`T5%izvjt9QU^Xf?^w)uwl3TC((KWm)X_uyNh5u)Ifg4!3jsJjpmU6ns8?NebT>TC~Xp1LiMIW|w=%BzL1NdDSEPL16Y zQZWxo_l&VO_b(M|jb0FUTauZm_mp0Q-Q6%?<3eH#Ah+CB++@-?)oX^%9TXLmoc9J` zf5i`LS5TmNFQ2V}Z0o}uX-eLn4s5!jbTh6I7Xy8?-jnChw}}MCutCE&IkCURoL@ zUrz~WsHtA6v0a0_{weXg&DTOLrWjhGBFrVuoZ~g!^944eR4@eS3aL+NAk*hcU)1dZ|YR@l;}SZfNJbQm_eIdyRBg9-*u^K5qf4l};H=<}k)k0Br* z!iy%lxOU>d8l|>`fJ0+IMOL(h}}ckdk&0 zFjo>{VYn@(dusdv0CnWr&183pl%DLt&ivvRO|%^xuZ&vUU|9|hjvNSfZM{U8*m{{) z+Sk4aMnl{~qdoVvy8$}4U3~Du z)ifD}-BMkSJwN`J$7VYVy{pEL_r4izCfw4w#F`4B9AWG+f^5tgv@X?T-{sOzYBti- z`)1ppA?da`E$hk3;zt!oNs#XOgoRv{-P(MsRc?sfOHZZ2Q7)cU{ODK38ESt%j-3UE#=Gd`<|l$?blDYqJ4j;R=uWZa@y1|P>wIO z>dydl(s$hJ=vRSNPkqnirx{vwmKzopKDA+OkThUTeLrT>tP7Xejx7MLH`WxWGQ%WK zv@!_AwYrjcS)Zt?s@iN$w*sEqNE30Kywq*MAJGvwq$W|nFkRXm7CqdXQi&PZlA(Yo z>sj16>DkyHvag=_U959ka<2)sQN8{2NkxuFjw8`!3R3{%AZWJung!-$9afX&m~gRC zeG+%m!L0vi)x=;qCoD{h6tm_&UEPU8;>mX^8vCHqxN@S-_95Y>5)2j+mB}GJU)UsrZ;&gU)yPl-@>?i z6?ltPy8HK77|9bW&Y!h^#!(BG-6_C;4Uzm^rX>w#xipE}=uvXXDox-!jnqunVo5fs zZ^%(yz`b=P2}pgn?kmanfF>mKK;&(8GWq+WMLkOv*r()ZL}&8%T8LE)*x(SQ2qvVB zYS|k$k*>+fne9%zem7ODnWSq@T_x^w6JPs63IIp@HM#rR zXyT*&^^-2wen}D6{q+exsoTl6ecoENEdEUEJsXm-p`soQlqC6CjhsCQMXjYI0|y$0 z=$q2V2XnC#8<#8go2WJ(^a&rdL4-Y<@2@*MJt|n-cD*DHn*s(71~Uet5Jiv8KR)$d z>fvd2W8jJF&CwBJN`DUkT7uE@Rpw%b4|ifxQpVwQFp0)nKoNn)v+j5fm&Ttx!cNG} zI$%NUuO5>$eGKNm%NB46t2bKl#IKR15{Aplb-ZWl4k+@&2mMz0-b$)(c5cY8z z6#Lr5#3lYf+7;BA^`@wGW6Nx9us?XL?$)8xyZ%^h%Dzs`h__`y?Vq}&Kaz_S7Z+b&1u zo^u<#v8oemDSj_uc34myh;E55U%G})fkt{E9r zk*&FOH|vT^ahvnGID?IWUQ}HC3V1mH5OI%RN{^3zH=ZXCbLxPYbUd=h#W!j+(eL&F zNOhiH=uN#18>wz6k$lO_&LJ?q>dA}5VK#@`^D9p-Tp+GqApZZlb3rQggQM**xY2 z*;ePz@3mANWj5R($%o_s9nH$96Q4g<+s5&YnKSyOc%Fc=lxP8Zn|H^+VIV9+2suW@kT?_~CV+#)}{ieMfHo!LK99ugd05Phi@bGu-O=JYrH$nPhfY3+XN zpme}i9?ft=SlFsB?bN*!DT`CY9@#T>No%sfHwB+lEz8+%EdLhMn*}ADXtv0_d#%&@H0*o2XR$DLLm5F5VMFbOR-c2-ncdW>1vKVN=A@Lcc)Day9h8J2)2Ophu}^LTV{;@_gd2p)*q{JY8WPu~NCz`e5^WN=gc~ z-Lo>%N;jt=VMpe@L*L!sV~$hfr6$t*DNg;Fc4^X{bn{V>oIScaI`UVpTp1R8-?A;Y zA#yH1VG~;T1H)@9tg9Qfx1N;}Qb*_4!=mVt24qf6&1Z%sd3rF%!hGDW=A) zk8}dK#Plyr`Qmz6HoX{r@jtkDwTIt+^u2P^ukxO{%Pp=NCYs_v?g-uecFI|m7v-C* z#)MxNt^D~eh&?&OR7eEC7&L`YLK-;`D|e?@n4XODnk5OF2O!gz1i5m{s{ zDBjOY_{E*!WwmYV0QmzlmZA-fk8KbCg09L}(*^M}Rdv3Jp9h<0)7i>AoE#xqt{X1i+N-oQ^GR3yQR2!pvq858?x9_B0EAG1AUXAB=PADmOUb zM2J8b4X?>C^U4jqCv2kPZ^{o+B|79Ir=kLUUSw5 zrCG4?K(2Dz>Y(zRy&=JerYMt@h%P&^xD%})8@oDH@d^|7z~as9tQjDr(k(O7s>zCH zPVaZNaK7I)_D0%lOg0vS?0x;fR|>cxX}a4NWyu2!*M_KfD4hfwPvUbttCj@gMvFkN z9jy(|1~ z21=3Qr7abY;Ss~W8!}@Z%;hV^ic4ORzyC^;FhT>e!|t9+I2dPJ zmR`mIYyp^8S;JEDi+?xWlJAu+X5bZQ7c!}Hvv~_Sp+rM^_<>R7gqQ31)+3q-l&5p5p|yb??rC|c^7zhfU3`F_!Nf1mov(|@x6 zZJG7s^;;lF;LSMwsN|B_XNz=p$82-Q@@m=G*8%Ee!9Qa0Fl==*Vg=Ix5vQ~$Z)LnR zJsigMj_vOH&x>9rf|EkKjgA;7c}VawprSW50Zpksqh00WFfLGv0c3B~UNV<%vw~ec zIxp)#kR_X)dtz)5SZ!_O8U53DP>hJ-mJTyNfNIN|ywrKHCV=+7?*o$M;pgnU)e9R? zO+#H>imqOWYtHKHOT=NY9@!d2)J6}U*^O1b2E~2t*zYX+JO9Xv*UYQB70NjmsS^&S zmb9__b9iKl#p%R{d^ld?Yz}14>dxJ}u}0+<7s$vUXC+K+Ts0atN}bi^P~7s8xc-nq ziG-|yvnL1gksj&bN493K>+%yZZ{?c^Mq}o_PEU0L3OFD4w*l)Xb*m*easi?E|0pxR zl{w#&Tpvkl5tnaMHzH}_z0_on|7_4z`aqmuS|g~vzd=et0d}BI>LL?Ag$w8THao?v z{2LT~Pr^^Rj*xTRn6KC2+9?cxEEd4o>_;3g@yFWB~I+!7E2((rfNH9WarM zjwq^xd>aP=3i2Bbxx&Mp8z=Sa^f;G)?8q|v{8N`PC;~2pa6KBHG4~TuTeZ}qyl0+yv|KLy*2uJq+Dc9*IZ|8^Ws(M z!|tc>u1gXw7=bOr<=$geGx0BmT(^r{nF-VjhH~YzpMmgi=dc_wCy!oHDPlDvfCXr1 z`W|P}w;id`wiqKb@pR*EA2w9lvc`dA&#yl8O*z;Ex7R#{4JDMz1D6$C+Xk|ByjDGx z55O2OPj5U|kBbd6qZ>$1eR|9iKX$OKj()H0PHgy9I zMd+e$Cc23~zV`H2`M2d?z3bkZw_j0o2CocrzDH~H@+Mym0wwIh!ZaZYFbj~7}e=7b{H9iLwy;XSA}r3PN>mjWfjE-IG3 z30H^u$~HmuVXmFX>m^GS-aD3_&i#8ac1SlgGExT~Gs3rTHWOlKaR^MDzB3ytx0F6R%E?~07NLAxcJEib z^vTEj6OT3DIB_>~k=xTG%0mTa*bfRHG;XTg9%9CH(IDUd8Jjxw2=^z6XcK9? zbv~~c@WAebt5e&#Oeag-JWU5d@!fd_d5Wzhf$6FoS_cYR#JzWo{Un%VztKs&tN2ml ze0gtUs<{-Yf26B-1>vH1<1i;Jh3^hq`wc)o4UyA> z(d!OvI#Y+znoKI1NbAG!>IHrk*d|?e4rqL*$~i&#YdTqT^kjf4UH|p#*9!odMZ|Zr zvarjUU7*R`&t3?m*RR+=IzFpy;-1`pVumUrpz6(c^}Y!Rsk?e|4g|S6G{3_5XmQX0 z@|NmrXPTAT#f&j1qJIJc0wTE4a0OeB0!Dzt!%k-?=Il?F*&ms_2n!G=8~*8k36S^z z+w?0vuK~r)w)R+DqHQHkta8qwXpu?L8mRaUfu6k`e7Liy1GL|QU-`T$zy7lj@+-*v zIqbdOqn+3qm+XGLn|TV!P7(TGK3%+pd+ec#<6-_<_mj}OIa!MLy~l!Fyd8S8TQk2Vz}?PCL>xdeG_SB=&y7f$xI56x!ht^c@b%OG@Y;I=1$)!bWMJt zm>vJ*cu`t97pj64Ts^c$P+h2{Jp_g@N)IV%UR^a46>te@Gfsn-2hAh;)*sBIUf}Ih&iU5Lql#> z@%u7XX|_rhl{EzD#HGo zt+<|0Z2Md(B6EwAP1W>jORX`xn5IPna^&PO;^DSOv)J_B=b6PCudUg2oqV-gsf!V? zrnFUcnY{yLi1$^ozMyjB6S-^=^RgH96;ZI`wK=9(-kHoC_N#gL8ARlWs~PtaR9>kK zL>zE>q3@^4L0Jf!$gXnBG3WDJ1`-Y?LJW=|&o{H#7eeH=0bkrmbN)!fLrFnlRPHp> z_7s%js8vkyhV%;uG%HvpcO;VMjqjcc!;$?=OD3UV6L+f~}guUWnc}ZY_UwyHK!yj7>`H%%l5BiL#fS z6$j6`GB%NQ0@;E0W@m63EPrC7AwiL$o0Op)rrSTelW*n@-U3vd3FVX?y+y(ITn_6p zdh9ZR7yXlXOf;tce6LQb29#z8e1%W&j5!=inZm^sL8)vtp4LAO2S~}4WyhfIeT^}8 zEP+kE&UXG&;+cuCxJ@kfF52cJO^(Ez3`w6aqm{NMpMDQ>23`i@o4N$*=thYP9F zaG}686&q|cV6}l9DZ|VRWgNP|s@fJ?-UB=9f6`CU0qlA=PuN8)=v^u zSre3Dg_Ss=tz>c=)!BK0eZs@y=;Z!nhE7&*pzZV8TnjC&xF>Ic%GB2fIEix7gvvr; z@t_-2G;KN&hvO+2s5i3%+4AJXVG-f{_zsiInOxECwrJL*>FJ>?N<~EguaTf#qtM3e{?XLY%9~PlYC=nQ z-@DpQXWZQdsF0YnzM&%3^(#Ljk*+mU43r0iD?l_2myCye3 zf1w0)c}u4w@ps?U{<(HE_v0g``QWRpy{i2p<%$<3isxC&ERN2>$vok)zdgL~?Js~gO4>HnEjSUVc%USSW`1IM`L#<#4 zRTgOvBk`XHP5Xp~toBBLom&p5J_R@rlf`xTUsY9oPm}Q8zM`4pKHP~Y zoUErW3413cGd;t>l=Im}&)C*%qj`)&vrrveJ75o@Cal|5aJxhoD!a4T-+VJ^{*AEx zsN432|JhM=mPQKQyBiCZ-oW|+D_s0D80#m99LiVU2TeB$tS%64pxZ$`&agSlFf$l7 zpd_9i{yiw+_JfV3+sL5eLfi}!`r$6C@BzbDGneh8FX9DAxY2M=vFbK7f^> ztoMznKmEpjKfBzv5qb5+=_GVtOYVYa4L5lGB;OS}jefM13pE!!x6CLa$dnEtJ^8`{mcI3)1^nZR_Oh9pO;4yz7&ktONYSXFNL<7g8j^=?a77VeC^j%$y^2t+LFg7`>NCm=P2MbB=26;L;hletBLVcrF_Vv`RAE{roXSMaX04 zwnU+-`Sdq92HU1ie^)bD8~1c9Ud1@&<3GMEG>`YGz*&Z^kIC><1cPBJ67}K@)HJI_ zcg_u$-mm;*|8_Q^kQD8{_^aTom>k5hA?YUgQT$H+XelaotRC%eG@k+3GR80ZSY@BW zYuZ-b^k?NwHK<+&&we)X)=py2>^U1e|9n?mUxXl-Lj>uB=!e3J;U_#Sn?O@LkeMUch?;K>yHA^F*9I;?|g;A zQ5EzOtedHe=*_QqYR0#oIUa$2^cv;}RY||)G5|oFp8xOl9a-OmvtX)O~Thlcm9rl7egEvsTFvDAO|k zy-}iCBzxOsTS5!dzO7l_RhOf%6n3=JCOJ!g$@Xg>Lkn)PvT;q6W| zJ+2=^zwip{jB~m_MwXQ;{maY^MyTGufBzhZm|jW2ZNJoS?+xyu?lsLTPCpgi5#j{T z0K2;tv9~&0Ps7I)lcD;RXxS;2q{9=-g#POOz{ZcV%S1H%c^}K)Qo({eYXHJy1m2+) z?q4e5T}0t&ogd8tjxKaRDOq)cI?8@=VWFrrHKB0@>?{Is+x50-cd6sh+izzt$d_c8 z<6V-eX0Zu0d)v^E1`YBWlP8hf#q#{{#ND&%5-r)L-7T}Y#l>EohlWk_tNiJ|xvbXbgRoPd6f2L6Y-1Ezb zRc510Uz(WJ!<2lWJRp#yC!`VFFMy1BS?_eKATLjW1@Y_6ua%XDsc&%ZKWga~I#6HT zIRrSaTs`j6L((?0NkBlw{S;xos1xR7bm&1zz*F^`=tNCbAw37Fiimr00LGd#fjFfX zlWLSVSg`OnhiYztO<6Hl3;88a8Fvbn47;BcmAC^BskDrUbG=2ztDTo`k9T%Bv>w>q zU98=pe9w1PG*Ja?=74gciswl-4iyyy07X?6tPl!I!EK=!b$GivZyZ{DOq!Y`R*KgN@0fFw2N>b*=UtIlZ5ieGKbN$4ddf#(ZSkuMCfh}S;hP&p@Rp#A#mViK}ggwT9= zveC!$bSLv{+>|=B<0@k2=3?iCMnOhHJ83biZYJM#p_o+RWVDU&xi+imy_C+fE!;F! zu70t_G~(Qw(RCnh9sz7#w=@nRF2P;A9>STl%VVyKyZ$jPVg7vr}gior&Zrt8z&RPkxh4r zfKXFSW#xz`u2ALqjq(;tfnH;-tJkO&pBMFeW2#j5?p+;wdoIAx{Dke_$XrzlvNX6`>w!VJt^h>LZLj*t+Y!OZiFCr{Ti5CM47r*hi zHDqILytE}wl{PdKzNJ7@M94|#YYN*KFt~JGm*rQNDiS)0rEJH;7u z{>XTtyk3U@44Du`$tN?XVD6@gq7+?Ucv7v@)9lCUmwwhpe{Yja82QEzidu(v*V20nDh+W90Vpnq>Td+L6I-k1j_Ax|yl zB9eQ@v`)s)msWe_#@}E|x9ed_To2PN28j(-72@FHGJ0z>D&PnNg%0czMYHSCzN#t; zH2MgUISQ1uT!W%TkvNT{D(LVr`3A=Z1#A&#(6Fj(&X}MsQqN14ERqc2n4&cXtvWQ=t)Fh&8rhP z{Kl@~esMq^eRKJ#K;JvU_8P~@25(oWRuI!!Io|2<_A#vZ_$#QP-x0)F$m#_{5Sq37 zjr)_XHdsy6TNg}2$Ytn0Eg5JFPmy}%piB;sO}~PbmG9iI)5{`mO@=;2CmOLrR0+jQ z+tNl4YYL-}*FfFANV|tG_m9&kWgu9&zK>|5H{>-S_ z!6*y@C=UEtUzD44W?#Bw4~eJc1pdK#PR@gK@!J>=s_Yj|cG<0+cRd3n3<^ zXfvc48eLNDR;OWfD#kl55+RJ6&c5uvS*>%B*m;;FAMMsEDk}P;j4$Q>XMWmxLczbc zim;hUekwjN_O)BOFZkSaGjp*Bt?7CT6DPajov>82#W_)8*Z{=$zUp*4r`Hwye0s(J6`Bl*m9ObTS@2f|~9Ff-@?#s1oQND@b ze=Ws&8IIB9!7&;?@9CDnRll9oDb9ru;|*fcVLU~h4Cc+FoqMuVV~r8R1R-*6oeZAi z<$#T@Lchmxu4VQwTAqZ+tkM^6uBcnzZ)^NQN=g9M>XVP)O>gS-G&o!*=Q#-Ir&C)A zdhB(4ur=o^H6^c_#OYjrthw~zeL9dw=)c2*`Ni%vk4CET`fm#z0;e+Dzn)tiPfnnb z)rRmn6*nvqIPj!vB$TY84)7FYJmP@5Yo`m0R~&HgRjONPI|>k|z^PRM7$~I3x(*UL$9H zqQ2S0$VhUhtdr58WsT@v>Q08V2j+Or%MDAqdY?IWtP(baxY~x=OMc|wxlvQhBN(7 z#lU(fGQIUQE_|FWvqyM~l;vQ~)9ZJ~HR|I`X;O*c&fss)@}4fO3YSXAcRGZ4G9l(F zID6a`-d^9;IEMZ5xDA?X9-+|o@lfbaM;y^tZ1L{Jo!20p)HGLBd9?l6TQ!=G@I?P` z*#3cFI7C(Buq69g>y0bUpHuRo&pC{ek2Jwob4nf6VSKn(>VHDa?=gPsIAeAno6+sK z;qI4}N@6M6nrCR(hLa;S(Ko+ET)KL?hdT5^yp9CNdFC}%LGn!l@vuylS4##{e<-=` zy~~;l!X_ZzJesndP9pg!G3~=-=eOf?CE^(8=UQjN)!U~Ua9T-v(*Nx71${F7+gy#6 zr}v(*Mxaa=GfoG;^(!nTaUNkcT_F;x-z3&UxLkwcG<_6KKQ|qR+N9f%dhiX;b>DvA z5`OQ2v^<@1ys$|*bUW#tfX!O}T^-Z0svAS-^+KF&K<{rx(<%a~iDJDN!RmK4 z(;?p&x-!?gC8gwLGWj$pmGI@^ZT~+*Qh*%&%)#Y%Qsp?cPAL^m%!3E1!ZEiig+OY` z6tif1+l3Ys)+E?=-!OUqjEj}wVO}yz%}{w&=(#a@rQUNR1`N=t;rtKjp4|z$I2-tE z^^8I>&aq}DvC?^8Kv3h;=6C`vAIOus`V>hP6dQcAq9_4nmm4P7zbqEl++{IP5t z%)K=P*bDdMcXhK-bUIaux9hjk?Ub2dznSMsMy=W)iVBmQ!lW_YH840jNH+0X7OsY} zXJm&Nt8)Bm{lrBK4V@ODjpf~$*P@Wbyf#mdHk#=~C`&G%GDIl+yvJ!NyU*QIuC1eE zKAZm}pDB06iOYEn)w@>6+uqJFa_vw`NgTY_p~p5J_)asBd87Evw2z_Xr!Z4ql_xL_ zdI@T5j*sWTIyY7C>G)KKAC)_~K}f%XND;L8QUEdylVQPvGZm)Oku^f~m9_&0i<8Bs zhFzcdQ?MVR*y|;fIK)708t(8=@PTkXd#3%*E7O-AH&Ux8lyEn$J9aGY42Dn{|5ye* zck(OUb8=Zh!J#51-^N0p5~LCr`p&f``wNQA`2jpJ4Y3b)mj?4}M!jPtfB!gQN0WD< z!Vh8Xbk4KjxA9)aM|}Em<84KomJ z0)#|=1F%!gHy8&@$7Hr*OwqrWSH+;zWwijoe`zo`0g%wj*?#lcV>&w_ug1`RV+VJ7 zsX`2;xEh{lA5!=6Z8&e|`k0f_#}CdPmFV&@##%|dga3!fLtS$fRa|lgcILSqs5$H2 zzprvN!)q2r@FnAvSk(qhYckSwSU+(-GL54aw!3%e4Nx$5PPF-cnOVq@_nbico#*}@ z#^1DAg5Nyx3Vc4CNJ@A`IY&oBETqn3?av)|_dQJ1@y1*3`lWElfvDbclErB0hMMtC z&^%PP^I@af7y-IGd$UG$+qJEE$8=(lHekX9DyMwrAAQRJ=P;e2JaIUTa|hh?4;vQ> z<6vRBO4~VJCL^JSPW3y2Aml-z*3&k_3mb8KQISJyoDM$7kbcX>43oy_b`_?x9)Fe# zn)v`I^#BpHdto_qf6I;$d(27nEu6{1E=ASV+>Dz2PyX!bf@hac5^tE|WkfalQ;`Q0 z{0%A`rA7E`4yf~suy)RDdy=@II1aJ|*-L6lsRm-!BqectNz8@v1rV}rQY?p+)4pxZ zbxxJT`H5OUDKsHIC6pYjBbF?3TI5A<-{t`gMFHd+z{ndv3-($tlRop6%8XZHbsLCy zW|gb)h2w^OTsFdb>%m1roOzU(;h)THH0cY6!Z^Z-Ocuktvw=kKV-lb+AbAj zTUq9`*&k!uZGZvN@iTD4Sel~_JHnYJZ9&>}agaH1our+Y-&Tu74CkbntNKaEFht|} zxAQ`+wQj9yj9aB($Pswf*H`Y$TR&GA0z+ApFP@vqcbE9KT0tknYNh|^-XQy>%HFf{ z>4aBPoCtBIw89SzRKat@_ZIMcy}H*7TA40^%&=|&^1 z8j#K$_)Mm|s0FP_yUQgOz_5Q7E}|=2_0)gIkML{9JA=}3CpxL3oT#!CwP9WDUHj!j3( zkoVb(jx||h(hyc3tfnbQ(c7NZxke645`H#=OwIzKrNYS@ZQ-0Piq%%@x*3cI2hY{eFFunr+iE-9f>NX$hyZX# zLZ+x_QWBWvEwv#*Z-xk~e2E+OtIvr`-AUu<4w&C+l83Nqq>d7sCs9sMTlW~PDuSSSOOvQfp?1EP_}IT!}m1TGJqYm6GAw# z%rD@~3492rFq}Y|@gSsY-Eet>RlEq`YHlMj0_c1pfU7 z2&Yj67#04i5b>-12wyp3B>jcYJ?;I~zTpD-C&8ZbrRO>t*$`0ND0N#MMdHPw+Ilep z3e+Qox8%@fDBf;{ln!{rsS_VG%nhW9fp%0kpJWjFBEQxbWc9q&uxM<|z+gP~bM)PWf>ZTdgX+HG;w+YU_KK0> zXP8ZMU;F!89)Ab_CCZld2J&9|HcHI6yni|yV(lmW$Vd0UhhqHDD!6@7ThwB|s7M7> zF&u_PW@l1n)-lZSW6~(FWh+oe91!@$2rM}0ByxS>Wq9@GLZj^eL(+MN1KGZB99h{S zA)88BCE3|RB9dfR6w1t&nb%5IgR&!|fsCxoR79dwvPmIim(A~dzQ4cTOL-U0ZU@T^NS&&p}tT(&~sqqVK=iFJJ-HkC0VGRa8L7r=>V zeXuvUl47TPzGi=h;>hvOWCqlDVVdb*?>mjM6X(8@m$o)m+x@7dzVNDic`++j&rzdk zUzAEa=lm=FcjmK?Z5b6WNt%jiB_>$Dp1$^jJ9EX?_Wp~GiJsB}X^8kmgA*_t_%lIk zP>Vj2iapS2b$nmE!eczislr#{NHELr!g{-br+){b3bgr`d)1lo3a=~lm*zd0V~d`r z^4!@kNd4tIJyx5$et#$bhFxTrAS^#cXV0B`C%e0MmvD#6t^HK~b4|h@cX5yDqf{8& zzJZ;i$bN?Qoq|rneB&hPGnw*2jfZ!i`uv-qU*NKc4eOql&M5mDJX4QEWBPH`b9Q(UCKSMHqY^!>BtZC%1=j>n_^u;PdsDdAQy%h=G0Q5$t`mdy>OudwD zmAF=NYVIvuS@#YaId7mhpMKnD?t*mO-^yTaY9D8TR%+>$;CcR0@0v0yHqvw*Cd2UY z$fVpK9BStDEB>EG!;V`tfBt+%-e)fJS&%ecD7v!tC>+qG5+n-twB%eQa(pwv041%L#d8Q94`q6I1e7VL_ z8u5oe+O;+Q^2$pn3W{hpxI}J`Hl|lB+vxW6IzMosN$;___{;ymiJ3;nt2kubJDC$m zbSzAUh~rEDXZG$pi*4uM;P3HV;EyO{2}z}ul+w$FNy_OwY`=C`$PG`FeEG7{a8P}N zm*OjN8=z@8`z*H0Z2$X}WPPr&DLjABCbFCD(f1$L*Jf7kJ4wlLj)WB4ZP9_8GPwW; zYbX-1surT@Y3|2JyFFOGO3?LNQ&{i{^Ui7r^%e47X)xxkB=sFNGN;!zXk|*cR@KH# z6PEw{`E5!@9*g_hLWLQq#h$VIH68nux;^ei5_XRD+O-#;khC&S_%4Lr-tw+rADF~b zPeU+F?{~?kh^FWzjfY`A#>T&g8$)@6VC^?%fAA*at@L3O_LnejEjC1H4%A5ek@ z0pBZc1>8IfI5i%Vop>zQP-QVo!|>!1yj?`{iD)Ck!9vB=Y?`Q_XVO<*+w8{GRqhlM zDJpPhGcZU&=Z+t84k1bzMc(lF*SU}D_tpp1-x!ri%=kbVVLB0fi`rD4(-NjO&xy_u zeQeP5a5lW0X!$R;OJkEyklXGK+BE5gcC*d-%btO>?SAag7Kk&dmSZxSDe&g>c{VP4_8ABeUTVT!-%Q5GhsUE^+ z&hPI8Pl57xSQSn5x-2N@0%f}Qe3+tnUuESuLOhmGO8Ts`hmP40Lbzz#$pwd_RxwI> z{wpy*?~`3}8>Q8N6mFO9d&Th3eR+vpQU4vlZ*x3N|McpQXbCJqgm>v^d8z@Kii>k{ z?kml31zY!DqTB%#_CQ#SS*D8j-vwH3{&gE!k*v zis}24NNxK~!@A-;zx+lIlp_VsnAZM^{pM~VBK0+TX`ZvQgTfofnd^P-@)(W`1?Gl^pRCamPirh#VB5C1DWRnCmxGF|1sPNrUj_s4ekkQXJ#>7o zVaMaCwQkP*WSXMKZ3q+V>FJ#@{;B|0&F4IQM5D}cZq9vf_VSSWfK8t?cr;LNS>u|Y zJbwHi_&m@ctGG+scfxU%plvIfUlV_eYTv_C)f8140;)KSNnQV`Es$j$h)+Gp>cxdd zz$+|V*z&8BZ>X{`+3VV$4eto$*g6p|P6zB*E6$el;}M$B3oO*&n9H?UNp|4*5@> z@FQNH-tETKJ$?dk7G?Xh#$=`nJZFU^5FZxM`CN)#pU^J13ir;+F&kaz(?2Qq`7~R& zHc}|uY#a_oi*SNe>Q83yt>?Yh@;z&Yd;MJ&cax=FHg&$+NoeE)Fe|v=Q1(tho{R2N z3?2epY@emtEgvNBO*PUQi5_CqfMFFiq|}uU557WctGs|O^m3fyLW?!OUf6)Rykp}s zn_7&PN~YK&LrwFUJD^KF@H#xG9;O7p>VOgTx>a^6yxhFAN0j&SS2@Qb&HaC|MoNicJZz5R z%?XXafyXrdesw9l+_8_yin1RLMxMUsf0CbUy1mpP{_pNP*{{-DP<&?f@s_0Dv^Hc- zqH3N2N(7pz)Qx}BzC=tC?uhf3%{N|^e5lI zp70qUIC*iivI!FZ5l_nlO@|#j4QgJ+=BM|*e>Xor{42+6rMs#?1^p;|pH8+Ph!BquDkCK~@h*Ty{ zz)6>k<`KN=I4vtZ&Cjo_#*ZRSe;zXiHGFe+x(lr-DV298pkVxd!*Y6K1oCN@JN5yW z;cCGb>WMvO!}Lp8b$p$ipYnq{Jg1T@y-d3SBFp$G@&dMPu;w@#bFenzz#(x1`(UD4 zU1V^W&Hk$#Y1bk9=Cs0?-~RCExHq;KzbDV1i)J(2TpZ`PE**T%M_>J6u1 zipdJ&JVg?thKrbeOYWn6{mNuyL*&i3Iej|km*I)3t8nPrZ<28L8YFrs7Vzf|PxeMI zaIbwql`t>g-L-hhL6>GFQ|qw6XE&~7_^mx*yR>eoa!xnAVb>*1;aWm|nesgVQ05L` zB8@&uV}xs$k~dnC{Y-EcWDLnhL4dY%f@j8yd_-C@-3Fe-cPb|)H-2^RR z4;g=+TTRSqv5UGNBZ`BU&l%r`JtOcJI>f(Q1^DfL)=BqJYx`Hyp4AifrwVPHKhGqk zCx|#YU!0Az7?V`2ih0A49ZE7QaAA4BC;AhwHSe5$`F?lh?GhB!Wzfr_muH7~L;D#y z4ip`mQ{@O_n7&sNI!x5bmKsZ&Xu5c_3L1_nb~>i=Zqu!jP0BLBq4}(vVvj{9GImI! zVAVE%pgC%+8)2d*daInQfFtG>yN|FqPTacX&I6N5)T_e1^0A}x9_g;Hca~Z~-}!0~ z8GOU}eS?qo_k+Q8`~rSNKam^Fojut6ILdd&Ke!?|oRa%{a;s|LMB?S%x&Q?NKca&zxkQE2;_6gr}Lw98TPtom23;pC0pHyg7yH)}>;_EWL^Z`5deWCA_Gwmw5H3kHh zHsudVG)eDJ?)%)h=X3Ruw3BXb#r>Qg^;8<7Po(6beun<6tXXOxUCKMtF`8yhqi=5f zb#J8rm3>s08H1H8rAZvcSLl-HE!O;jN5ZF3O0VL5%(lODTu3){!`B0M-xtGSe0?YL zWslDCdsF^Gf9V;QVn+?IzML^Ld&-nx32If;iR|m@lw%(RCp-OO8jKfhG-wm&i1f|^>Ydj2Vp zDdy15?B__Y($uUu7uEY8W*4&TcCoCwe))dINWPe?I2MN4y7ifmk7)|q(RNF#G%Hk$ zJkaCsFwYtMPU$)UQ8x*k9;XthgX9A+c?F=)UA5#&Jd$U20i9P3V>e!jCryfPv(NhG1^{ z*jAJ9hbMD{;e?~*4B%NY+m+KqTZ%$#n5>{$c}A3s2(Eg1dftgVJNqIvd=ksM7%6@) z!mP_c1n|<0-7}JMNnTMDjn@HG3cEJZgoS&k+a+A)+{^!hyUxnSszVnQ5|Gqee1Z~# zGQ;2S5Il5k-%ZOND^YPlvO`fMl$4nG)MKTtqta)@mEDGOUl!e-v#;QfyK1kN+_FMp z#>u&Rj_`-n;W>EJC+hL;cD~ydS~)5!W!u8!hkCKwH~P&=Rry?l+f*3V=-N-uOp0#5 zJ<=V2`5|15zY$cNW#|>_JM_qcOz$RCIvQ^A56NefzTU|EwwVA4llZecLONg@WV0l| z-Ew(0wnVHyh^&A%Cd=cj@t@t%Z~N&KQpy-QxO`QLx`wuQ?vE9s3|*%jg~+{e0S<;mCT%x2c-4la|~mRyS+$yGCfc!DU9EX><@d4jl#n+C@nvb zno3gFr?P^=bpIMlC*6JI4tbe>#WYcQ7d@TiV80^Jc73og$mUj#ze!|Re8B7`*U1Z0$`3G0^7EL+MuuVeIScn4zWr5R`gdh% zwPmhWKi|sr7t@t-flfgkga>VIM*ftKO^=Mc(vdEv#UQAyAz65k+ls`sv<TDn7`W-`LN>q}p4GmR;Hm9t+ul&(76ZVk?Hk0U3 z2jt<?KLOg zI#MA&y;|guOtDyv9{s0_PjU~MhKVpX7)Z!sbwL20snDC)=Ga z=2J0Q?ljB9ads?HXJuSAwp7p>VPf}{k4(S16+f822(t^o-lh>TYc0YS-BS~3W_Q>Q z*~V7v#fPj9<9K>ULj#{dq7QRYHa&tZmGvTw@&yf#LBPfk3IBK8s`2v;yS5qVT_&{c?dkav z{68nRAeu5MuA`U0d~EYy|5)Hw`ulQ|^-*@ZT?sET_R0HOdRSIeed{m(!|5!Qq?i}_4J3#4@V*BQJUN3;PXvaLj%9c1BASVc!?WpX2!W+pu%8p^xNk^O{_Nr zZ7&Bc|0p}}O-@SD{DmD z%|Yv0W-?0i!bn)P<5Q{1Ffm$za_SZO<%0$TYH5tE(R;>Ffw}y+)-yI&%l5{H7d_x^ zPpq$GVd@$hcoEM)dV%zM4;o}n?2q>bi(hJEH#>s1-1`Wl#rtc|YLSm7=T5Za^gNV) zdrE9ZIVAC>;BjSk>s#!BA0iDcEuEMz`*n=}P*ovO-4P?Cqx#5w%g-r$X6TW>^JoP1Ri>i^MzEi-y%a$kjxrbc|2km!M!-ao02?_&Xops!jbV`{zG~ zdp$oo{(bYnzFkqEaSQF*NnphBS>41>znVr-vI}dWhQ_>4KX4(%;~g2+e+yg!p0QYg z%qQ5Egw@#CYN_2T2A`mb?7PKLXCp)tM>&hYX?%8lu1?3u?Q!=#&_Tij!?VT61NK7^e0<+=?${nEt#c z*F2M6SKYt4U(a&t4H}|<0>OTfy$mOT8mkC-xlvMQo3uag6a>h|Ct5`iQHLrflAvv` zA+%@rZk>(s#`e+fsK}GLx|a*fLl$VQwvhCh4?#ZYe(srr6>Ns)=GVS{`69H~Q!C0B zPcQXjwfKqnqld?Dc#Tdca5wi1bj~d}Dsm0(=ON#)l{CHHNU_JGp_`Lt!)d3mKsu1w z`*6T&eRkYs;N>6-HTm_iUB6`+K<3iccs#dP8og=+2s9&n{dSMv);C$A>Kvi7gkAa( z-q`!P=fv7xTTlrI_^tn`V6?pce&6nuI?=Wnag}@zax;P0rHz&nI^Kf<0>4lxe56^m z5fG@$`IzgwM}ksNqz`Na$P$@*k}ZdCO>nz^XB%E#KXNLSIKf1t6ha)V<~J(SH@X)A zSG}b$^zZ!e8LKT9(es`P+H$+1^6|m~RoS^CL?t|kDMdmT)s$GVQwjr*BD==c&=~`A;d7?Hot90_(1`~6h z*dLpx9+NyPPChMB6W1OF8a4cKX?cN=9z;SI+Q2*ca)&^)vll7*U1MBxZT*io@G!d~ z_yFF*r<4p#DhH;G9gdByEvhMQAD?D7HV$ij_u8)2*f4@CRUlG9JTnF9Q`V_ziP-Q2k$`hw-FX*d>ZXYmR%}7um6Pg`6Up&@m2?IZ#_at z49C-}?BO#x%op~5OAcX<0Gym~?JOgWeTRu;apb*~3`-(<6L&9vS6c|HI5K=vaC-Pw zbhO*7D!-sYtWB1}i^q@2d#YkC6@wItV&|E7W?Q+_0Ys~RRZ$r{E{TeSv(N_jfL=Mm zQlRir%K`-rx1N8XXdR2oy_0s3)m}lYs82Mt3q3QuM5j+vvk6V+_cwDFZhYAuvm}Y- zcYfIfiZUC5%2yWz6i0=zJnubyB##N)Dse_^S?7>q^E~%%1b?6@m=Jl!yR`SLOUA`r z%;@XNvC_QvlzDbGFWdX&cFUQ_mfIQvTi7fpRJkag%0JAFQkx~Ltyr_v8s(B|g~-UN zRE*Lyu+{GEh!E1j3K2wnG{$GoPG~$-qVFLY4_ghj>|WDH#p({u=k4iqyCkQ}g~CeD zFC3N?Owg_j5#hZ@}c zbg0}34oRK9@}YYMJ}`#G4m2SHgkCGvW&{C1o&_dT!r`!<5jUm*00^OtrcUBL@? zMm}vz;Zyg9Kj+`|X`Um$U9(xYB$yM>R^3^*gfs4u$t&+~mSQo(gWhfRxL`e9N5cyr z!Yu(W?6yQHzfa($bI697Q{7#t@RrQJ+VfCxYC)w<-qE3(Cj%%hneiTA_I z@3CmdfUfxlIlH3Ef7|7<3{{3xGM{vG;O<7RQU2@qpW^@k5Aqb>f^nd=w+g%Y+ z|G}|mD82jG1;m$@1I87Ge$zw=@C^G;bh^{0zH&%*RtYO(ik@N&oC~$WO|4M`@ITyP z?rI06f$+HWcb_7h@4Mjn8aGe8|LMl3?{Ci~>|lNN@IDU4HdUGdUTl*~_cDK^I(M>njK7*+@QZzh(D90(i)NeW$-RAT}Xv0gTX0 z>H{~e`tifNC%Jm!cVC+C^h_I;P}guatRz&fi%sDH@!<>8l}A*+?2p(WedzUW^nFm# z`r~khp;Q{?_tsyWO9yzf>5^MS#l(yg9(8-tBojNZ^&D4oBSV8wt~wi&y;#e;MWbcU z6wWS(=u@vC-s7X*L$D$)ey*aFS|!q+w7o{6(ziRV77wfTmpdUdgwYi@VhNT}Jn}JV z(bbfBwIyzw%qqU`Vr`ywZPqCfb)=7r#GXNR70V`j_N*rNi$)rcUvx0{(E7WvPAd&x zg;o4=jj|UBQ52Pd@>4*s=NlN=l18hl;g$W_qfodi}=lXpO4KG=)k3Iva2D&$QwWi{~J$)<$$z^xoL~c};`<11}_l zr_06FlUPu+IXCRQM}5e5fAPo_yN^NQcD`kGB!>CB?SHqtUKAWzg_;qQ;`27N?jm~} z6j^bXe>F7@`yZbA9Kjo?jZ~hWLYn?7uL?1a7upS3Y}DkeDD}`#^85-@v#Q45rby<< zs1lhyB<4y6LY0Gr&Jg`}hU!;SN^PZPV{yY#mb&v_V))9UB8dWWrunjfp~ z-x03@Z{}R_D;6eMwvxGx^N}nuS8HDH9Z|JL-g*eq%$=9PUF;Vwhst%ra(Z|LK-h=( z#7r-_1M&(}^GRqlV3z@=&vF1M3K;0kUgsDa%m;sb|4q@nQ*QY8ZcTLi@?kI}nBFxZ zVc~7u_3!Ow7j^r^cYF^?u) zvE`B-^oFCj^uX!#4Z)(b%&$UFK3tIg;1K0Mu~PNxXj19Iee-TlmgwF$Q7lCSRCC(| zbLDaM?5{!sB3um5WGS27GWoZX$9HWz&IinTGIQ0bL~A9c^JZ0l_x`Z_j5eLx0;0p6 z_dkmO-quwgzNnFSOZ3QIu2L+&!=nS~=H-r$&}7-FCq4#E4d)kFN&bgYo?%m8eXf0IqlYs3BR;NwFg3#uxl6q@Xm&x@*eTJ#tMQ{4sYdSt4T!yOFBR{({&l=z zhdWN~rGK8r*zi9cvb?T9F0j_SjX@{7k{33ls_olKN5Gn>leh2Wdu?H0n~{2T&P$$0 zg7w#nvM*A4GDiF5`}50S>fK5CTiXkNlnhQGc%Dh$0Iud3Z#1d#uh#qVeQN2i#@Tv7egVQwSqc24a@~z(XYbTUqHP}E zxn(OFe%v0Rfz$yVFAtu}+vFc6Z}@KWMrmxU)Sv(C*wU{pw^h}rr zF*8j9ZP7$OT`6qU{Kg{N`Sl%|`?QMgm|$Tq^|T+*hM;ZO9C+ZQy57MUv~XmY{1yG} z`&^*${sqc=D`EA!6vyC))F4Vv>1K_e@*Ad^C9%c_m^kWH%vGc_GESI^`1DOiMV34E zoH4Sn*r2lwV^3|P?<`4B9UU%i8$N+yPnDXZ#HgpwIl4u}@FC^eiL7XOgnZgM3)Ba? zxb&ky=>kdcBKyzf^(Uy%1q6T@IfoC)ViE3#y{7qc1V1BCOvj?2LcYa*?`|W(}(jt9; zC7SzudpkPN9g}$DcYvZ6S7VO!xG3fW72jA%bENby+ZLn^7f*|{a1fr@C6I-zd?#W% zs|&X|jw-DZp0wkry!|T@PKQw$jkL%N`7d$+OEWY^R59;i+pX+o6)7&9!W;%DiX*PF zQ(S)PbL*Qh0TYb?$%i%iT~f3!ANXJC)ZSGSMNvl;c>$WGr_{eyhkGZf-kvE82(NF& z56fNt)7Ra;P?d5;T6pK+@2J;Dl1vvkcRVMZJbPpbDWMDk2LYsD;QCQmIR_VIlYcUf z&lpF}MYmAVj!u22ADJ3)JzotR)0$qY?7XpMx3cAn3#t;+@-@5+H%0TFE`*>EMYX$kZO2aX}k4e=y}^qaOL=8U_2?h@^~g?=X=UH~M+hs46g>%HE%w z;)+xT=#rkB2lSGcPB*)KtK0n7mlTLD_?t8y+Kc-ol(Kh=oa@})=-B3}0nI$3Qbvn= zPvqiAO;ZByXZ70L>Vj7AGlmVQSL7kyYs(~-T08_njPQyGuXQOr;ugP=HF~aZuzA~^olL_ z(Hky`9IPq4)A9mE^AmvDiI#|Exl;#ZpP;p7m~rM!tOJZgDfpPETL8-Y@i4%0p9NTx z-#pU_YZh9qU>%V)GXAQ&8MqxM?c6Us+gH)?Yji3+_|+X_QNZhAow)kXl8L4qW23%( zfE_i9fDMchV}9J;-`N*YBb97YwU5tLDl*tw*8X|}RRAW^{l>=cyG9rVC~iIPkzBb- zWAIb6bIjuSRR)7kXg&~w*WglXjfq(W2*ZED>osTlZRrufjZ&cls6U4zCV55K&H zA`C^>p+Z1RLt!mOR@YF>M;17e`Mz2iKsKlhV4#Vzy;{Y!uD(UN68}l`Ybwe8n+OJb`SO4 zjK6Hk@phb8C$Zy=A!fNLQ;RVSf_p^IyOKzmrm0(7Ju=Lnx4 zK=G$`l8SoX#Gay5DoL2Z#=H)Mg zF^!#)cyl|R(06hIg`X-1CjQsqXR3C5+80dX^`yS|#gWW79eL;G?#@4$^DZYzvE|0! z0(ytVT4~ndrg^he$%FsVacJ5O-U#ks@#@MS1<(u(z>07yYWYZ zt{GI>sQzIGW6?syeq}eG2dYEFz8|J0g`Yb@j9!2T4tcB4L!c0&Do?h&BkbzI_gCl7szI2+VX5a@)A-!svHtY{4kE5H~p0^@bXHcT~Ak-wDD3nuB}bLGWhW zKjo=t%!o6D{SL3rcB`j`LyHjxW|W-S>`%}g;v|3*rUvKE{Zl5|XV5>lbMI(WCFcso zTV{TQ@t445MSGyH4yqUoDw#Mj)_Q|rRr3L8wx48{G%ImT^xLh#U!m#F=gjUDy+ zmYn-rKNXk71ApDn^28^bLu8~Swf?8vciGDuOoW$7fyQP#4iyYD4#Z%|Pp0DWxiCxU zUsNae(HWAubX+dBXg$Qo7tbptH=KQ#s#g9U_gsq!YZ&n_QoXy)v3MS>y8%ZDcDh?x zmb4_5UQ4WaV%-Le<-4JZ!vu$YuM|0QYfR>{tcM~ z`{VpRtT*+ohbL4Hh}%}II7YQNol~Ea*6XsIfWP*8N6GWu#D={L2i`h|>~1040c%^$ zhz?qJi)@A}9*-56+lkFw0w9I;3%FtMWM_KzME7vI64f}tDME2LK-nG4Z zXte0ppNo7?d2fEa!Nb=E=apapPQF1Yr~$^6H%1t5jI77cFNDhokxUq{y>rBhq4iP6 zqphTWOoY|R?!yB&!f`YMKE(kP3Xcq0ETs+)r^KCdY*Qh<2g(}HKL%oQ-%KR@N{$lb zMEG7EN3#-GI^Ua&Sgd>`DZ{i*A#|x>fcgVYI#UbJb)LCLA5;Vx>@)Dhha0hsS`WOu zW&%eY$5A_odQ+pHzcn8B!QmE87VHFR)moF^+P!jvY8t5DB1`ojwvLrP)K%*lgb!El zW7x!;FD!N9wzsl`LsT*^u!)j}e7l*dMXs-vxtq6VB0ElL?G+|>b~WGT7(JvsS+)T& z**(Bsj0~@dKms*VxzGkdI)tM^oa{V%vBHl;=CBtR)E*jvK!Ad1iQvL12%fktD~ow8 zi&2vY>_Rx7?^Sf6*&P?G@-G2$SVQPXU5^2^A4E1)%)Io9UIkh}LA<=X0CX{B;<)OL zK4GN?20{^5w$lOU4XDUM=(P0nGiXNERI44>DIwAlxI7eSx1rIk&R{FIMiL=nt@~@#af6L)`J5$@LBjZPGPa7t7ibN1nZ>AFu!qvo{w`Rfmm! zEN@IlHKk>BtK2>tLqG}{Yr7LG(Qr%0Pxy-deC;q|a^AFYPTclqLdkdCE!CI%#Y)6m zmmaA{oWW;lS!Zr+Otx)FO?tOu;j2^(;2*fV47Z3RF@z4Ux8UAnoSULcdXddsVo4e@ zEig`MZFmoYZinlyP#sK*08fZu;-=MO7{kZ$RQHclU}$&z9oenOw1GWXOCT28Un3T~ z>di@$`sA13+r{FPzjg;Q;9aLaTlNzt5-O?^PUc{{s@T&crRTju>n8<0Ts;Ha28sPR zFt{Uc{*S-4p94#xEtT)V-s_vkmerbn9b;_bPOA&W^rPJ(hFDr4=CHq@;J0N~^YiM@+ z>g1Ov%YsLSU$JiWj8qT1{|(H|ic?n^p0fY9lWQd0YNMBOyB@5&M@{BvLWls~} z9FGh@AOEd}jdg86Fi!D03`Zpwv?-f_B-bNMvF2!bN&<%_WAgm`5l*GQmC`N$+_*IE zB^`;@qODfcRyQqk8$CfxrZ|rAXWK7P9`ei+`Sg@gS>(X4z5KBE-^$ct5N%joa6|W} zY2)LzK^lL1_#~H6uwy_nVGFJVQ1l*B;5GPXPMb{H^_A=T^4)z$c9SGxIyp}IP1c<@ z{vXsQGQ}o>=&j(&67whBGu{Z)b4>UlR-+jI9w=m+SVv?xt^Y^$ip~1zmG#B!c&x2S#vA zJ=VGV?olkME(6vw%sFw+KXRHpfHXv~$@{sJ#Jj#<(VoWL1Lyy-?QeYoYc00lyR;Tq~@~b-}wcv;oA6-^F&>d(_-ncqtj{ zc%#u)BwSm#2bRQ;C~Bo2 zsS$lN`Mwa|hMbC`>__W4VwrqoN+rj68dh!_D^an*E4Vpr7m7v3$LP@gwYT6-5I)&L z?xU1Xn_fis(O>A@RkGA!^F$s(Q?=DGU_&N6b8(#}pM$ zTIQyBbmZ2+RuVsS@Zf3_j+AG4;+id|Xq;U-EgD{n>g>WT zPbv%*H3AO*-y{L#V?R86AOGKyJbc?5TM0^S zpVnA&Q?}q*7Nw17atpea0b#3~qvOrtX{66t;;R;C-FHZ`mil7w(@#RD1Cnd0 z9RqyNz?WZja@<}KnD`O@7sGCTjP-FN@`z)gFK-XemV{o0(x&{(^WJzzqfB3Z;_TJ4 zBd`#N)f|GqbsVQ+Icavfz~I^cBOvIFMz%R_?Rp2~w7eK-OB#G9UUVFLLEBKgjPS!xVmJdWQ3f&&*F?STGS|?2 z7vuh4NnRDz!{CLzn8nu)XLH95u-OtZU^9?Whr~~IMbT2ARoIpGC!4_V9tN|32Ca*C zyG|tMej)~kJp&(N02zrm9Flh`Ww=CMWFLUPXy9SZgari?-PBcTWLgNkyU?yDZd`Vz znCyV2_h(qaB-X*fEjf~){heBhIislR}SXqf6fv zy_hQ*4$JI#8UD7o>fKp^VW4oa?q`8#dVJ%%P27M}axQ(89S&>kxi>BO$O6p$hf^?r z7uW0Gp!_Z3-KxjN-bMt+`~z_YB;+|9daiY2#rJyplaTvmM4|{n}&c@yR+- z)bzS|ca?fmk?_fPSUR^)G@EiI@^fp zIc6P%9_gU;wR-P2{rC8yAs+1i^1IVx2*2lVk-ygi# zr*ZFMPD4<4iKxl3d%CVUEU_%-7&22;dhC<05JAb#gL$cvqaciU#WBT86VxsyGlx`%wA~#Lxlfa}Lmj=GS?|g~sg;83DYBR%3OnOax!H)JkK9e*Z zjl4AMk;V@y!!Ai!=^EavSzIP5JX(0LY%TTBA_fLH56GiU`&D^{2u5EUstYK?Nm@-+ zX2|j#`hmgcc;~9DQ+m>H8DRD{}^j~Zj zAqInW4}!p+bi>;o^Wk?EY{icAtfuOYSNmoat>@iP2(10KQ_*Jpt+{_(y-ZNR?CeiY ztx55BH{TdbP>%_}Tf^`^9INcsHn*7ZRV2{Q@Fdb%{bH;OA25{enAOf;S@Gp*kc+tw z>o+i^nDyj<&Qj1r zrFs>q3+S^ieN;mmx*MPLl~*=hyJ06f7ekUlB_PS`GaNF7ZuIGTsQ4CFX-p-Vt28H2 ziD9NtQTt^rvRiHJtRUP4pxB18^sOJoK!-O5V%-XneEPH%y(lz4u@Sv|OZVbf7XPce z<;3W?Segf27 zOS60X$DaE9+O4&zbxbP8c{6cnHV--t+-kC1Y#my(T9#e5p-LuBM^>Wunhocxgck|l z`tMXAAwA;WxS8Ugm*7$Iue|mu{$vi?Dw@M%;iFvT<|mjU+=Xc-0e2PZEANI*#O;kU z<*h93mIauG!fxki=E6lnF=pMZp_dEZ>O4&Nu7rweBA%c}1zi)S$@2 zR#vGwZxI{sDB9^1J&N@LCO?a|c+|Rpt>+TKt*h9^sp^T5bMLrr;#?Rq9ju!r7dP~c z56YtBhnmE8jp!$W?x@9m8H)} z*j|u+$It9#+5Yja6z%K?Zdust;*5q-^Ig)9%6$8Hy>?dr@b;G?EIF%T`ht4@)bK#{e)U!14 zUHRANa+=VMW;%We9GsJX0=GaU6xWL0lIPpNYItDKX|xseZp*oQuWQ43cJ)7#wHr)m ze>GS2e9@jhHLN_J7%U?Mw*mqXX=Uilr|6y`rH#2J{ReN}Rs|@^`b@YV zaj85K+^lT4>2E2J<)a8B*gedSBD8*&cF@~zpd(9O9~VrvPR~QlG`-*?o+L6SplIFT zL(0|2+fANPoFzP2P%*fcZ6GWa2zZw|BbRJ^ap(9Y)t}$?&ikZ7wRrOMBwB-DZSDa+ zb_g{<8>;xNdSU>cI_{`wTM56&nAdnd>AW1xiVWoxarswB>Uaj_U%XI}R>pMR2vnBJ zmr+1+Jj6-w`q2Zn3llT#c_wl)i9lLIe|hpW*=-14nO#Nz(!XBwFtrceWZV`09K5{S z6k@D2mu;iOIH(tD#u^n`K`A0Kps`mF!2I9PYA`pl(X|@I8Ef{exw&rf`40p8G85G_ z^y-up^ZjZIWrvH&BYH8O3B4Mr3k@WA(@z7`y8a$^sX*>z>iJdRdWyux{NG&FHSfgm zQ+vt7hieg(0Zb2KbfHKdzF&fiKs5mtB>sl=a`9Fs)uJoo0NBGkw-)^XYT(oSqK*r z8Ch;gI-753WNt4ZRy(6!jQFU`k>KmJ88>u8kt))=i6LuHa<$IbuC(;W8-oGz7bE6< z++Z_Teu4qDpeo@ETDao?kAL0Uj%F|R=8lT#!DY(0n4K5!Ov=G^E$kvfzV{!5l2DzS z*a9|g-`)2$vRPxh&d0mOz+af=FKDIp!(D_CT=yo?Y4yr}4WglBKGtu5a6X{j( zLKyer-KzJN;&B;_%Aj?}YZg!(%YjpGvadn{J$pMP94H_12Cj@KSw*Yv3JrggSRTrP z#;FcTTIloxJC$KosWSuedU08ahXIQa|~65fDdc|2VwO0A5+t%R8l`hjrlMan-1SWZ7EVee3Lf! zcePR=?vC@^7taCueD>6)G&=yYG51ZJugdI;+n?fK_bGS(!F;{B+0asG00i0&+w(>@ zM4Pz<0}O5x z!{D(0&HIX+yzB>mX|99#zIa`}XQ9vbPcmyf40ZI$+n>LeypVuC%OlXWh`XJRz#1DF zUrApgoj=bVp-&PBPq*QGFvK)bEbE?hHtSUDe?z<*gDUaumtB7*{ewXcQE0M%Fr6ziQn0ljd8j^ zlt2q;xh9IiJG~o|OVD-%iQo1&TBk(>#kIz;ORBF#6o2DZ$9U;6z0yp@Q3VVqq2L?B z8176{;6AXQokZVsYjC-)+XnL>Q_u#`+X;x0hW|v0VujWx-X1{+n3zN-Q&kC ze5B7wir)8412c&;nWrOG{663|>u%1RnsItvH8)1?#hdAndG>WZp@GAgyr95~?fyQ2 zMs2VobFZtB3n3ZAuQ36^Vq=6LZ#+i2qTuMc3 zRI#2Vu5G9ICw0<2s+5c$hytzE+p|GnLifXT`{+SM{3s1Zh|*L3?8q`+6R1{a1=xCX3erOm$M+ z(caY?lD1c(<~0>fx{krci-ss-JqdWk)jqs;b zh24|k=~exAQhEf0`w86Br9?NI17GSpXA%Xn^9-XKHEc}OY%!)x4R1qFsts2YhN@!V zYx0iJ-zZkn3-Ftl- zySUANG;dxU9z;4t5B`angJ^`=|XpvwoK1x#Hj?op!_rjTb(B;)vA?s zIA)<)bnuZs#=?f&q$J}b<5HXeU(N%~Z!2?i^YsnjC;Bsx<2B2vI(k-{$IY?k<&cyf zG#>k&`t=a>@j4agpYz`!+4#e){h7(&XW?Fr(}2{%LGyP7Qt`V#m{i}Cl%5hjzsxEt z$$9nZg4gG7pM0!8;%H(3-$cTQO!K8fm?^0mnqrAM$mF$-$N7s3#IiZG^FZoc1T;W~ zu$yY#o;YCOtE#_pGtoumZOCix5ATNiLZ8F#M5N4LP7s~C9BkbAY9y+O)Mnx9D^gxZ zLIZAIWcR>5v#N(IGVYDeEj&+6Up^@G|Ffz(WN+LA|5vz;CF145-u8hxFTG#z4 zMa?N}k5!%cp(k@BWlt;J{eo~OUcdeLj6V*dor=MoxekF&Z!Wk~Na(*EzDN~w(>>(p zY+09nHsDnQ1Wq-tVNsyLy+TWrB<7JvXC=s4W!BG4OUHg=K5aZ;|G z*jiZ?efHDJQ(a|&jKg5K4D*=qEk*2&J)n&wzX(|ON@`wa^O*Nm;*qV9@!HqvoE=GJ zBTi1ybol>jy6$+Y|L=c|jBE+nJC&8}dF>EU**hb9WbZvILPj>pDkFQ36d^lZD>Ipe zP)7Kj_vicg^>4+!@9{e4JkN8K0ML#YfvFA)5ujUKMZ(4xu$W7*wrL8E zU)HpC#)eHo*Y2YX@Yg&z56KZSwMM;-+4CjU8VKp=^>w{W=}mC(pB2j;I3Z8Rna>Y< zGm)&C@I6OI=Jy|I%#7W>8a#3e21_;TN%ihcMk4%*C!(&G!}PTCyKkg$7CdF7v=`ux zTb6{r?!5ZD&{i)4qC&RdI zEUSv=3A7rvUrMySoSc4I0}$|mUhB*pgCdb0!g<-^G$RCNDSr|5k2?tM=v~o_D+<(~ zYQ9BLQwL?!)2V!t4QIC=Q#>HL?lQagm7{eV_E-J>!_W!YAc=^zR((nFV7egIxq2!O zi7s+hKYgl??Xj_a@q*Xd=xhyA?Y_P>ko`6B2Gam7tVaBDW2=nq<#bEd<;b2k@r(8( ztW*~hEok>)a8?J@_P7_c?#u~_Y=U7lg{f=tO5`NC*hq}oQ?qKTz9ul4EaX;G9#Jsw z6XqFsTu$KXv@0Ik-9zq19NfDU61=?kJ@{~QL3$@+l5mM>;R#qve7XM{>ldG)=u$GQ zcHl~l0GH>aVp$CFq-q{=cMCvht)sTwM5_jwkjV?_zT^bA5i)l#kjrprxUOfK%$U92T~n9z4Jrx;Y}ygQO%#oC}=_fqi9y5Ar3N5}B_O)fH#x^0k zUBqZ`vdUr)p$N|))#O_YCWPOimkrJ?ht9+oTt1Ce0tkwwXP5D32BMA9AyM#TWVuU) z<^7-LCUHleJ7Uy4D1<)-RIFJUcz%1SloElU1*ugaafmA@fvCsnHuJ79FM^y;4Ee-M z;eGCeny*~#BhA1Z9p=(2V>$scQtGRWUHWJ$B{v6Y?ilx5G66mRgthMs3b(dvwVH!b ze~DhDDYT};7*l^IdRvKoQ>#;bWPotmnHz`N&q1jTI@-@Le8Vy`2Y}^AV9d+(5TcC; z-+MtH4_rBCb4TYLR!#x}MMapH5Tr8@4p!PTP&)kT#4Q5?;9LhhWc~sl<7lWY=262r z0aTT~u0O7b@Nl%&YJdO<4nS=?yKBIp_!wiGuq-AS!~IK46S4%AfO@CLR_4l3{0#;( zJAfc6T%@@rj3rweK&a$RqmOJ3PP+P*FD@A5}TjJ7t1mdebfeGc4R{Qqrn_LzNO%E@M!M z(BLq0GFJT-v$T8o4_R_Qfz^Ose#MfLm;#FiP%0igC`6K3s_{_ z2X&>=^XlK7o1Sf-dyo7tKb%vNVjvx_vgo#v0`TaT_UvF}T_kh^<=840%_o_{)9!L5 zgG2q|R>%2ChyTI$eDDF_Zd9AT;qsP|&(4BNuI)*>1!>?wFAb=`<9=>~6p zvo4~s$*u@_*0kPUhwpxJ-NJv50)Uc!4YHwNZvsOx@&E!g_e>LW5DZQn_s_ow@e-0U z&-z=IkmS5$k3pbPT7*tN02v;&;0ihlg6cjn5P=IRurwfixP<3NxZ30E2kjFM9x+R| z03Nu;slVAhnKFHjJZGajHjAcxOu^c)ZmoSngRPfE67U#q z#C;+N6BBXf5B0myXopKL4nU-_w_(oUHzT zbIud3ULMl%&-z{C0S61KXBT7=rtd(Lkhbw2(G~&? z>N7WL)lV+uRFt|5+_k~ucC!>&w5k>Osa_Qw!ujSS6^M&G+IIg1ku|v+{YPv}Gxb~l z3^(A}Oq+j$x>9=4y5X(v$Qtoht&1eHMX-U}-!F+Kz9JX_SljUG=a+j7B{Y?PgDOxB zYNlK52u=?X6sHX^2+>8M5`Lnh}6|l6W9-aL^*Fj9y4&J4tZWe>+;-z~d>W?Q z$onJsxPh5#rb zMU{NAWqgXK5c>!TDW+wc$FdMh;|^okl^lMj>@hi$@R-?*o}<-VW+SMWr4V6o+QADt zQlMIi6n8;2f?XeV(zGgVYW^nDq7v>LbZ)Y zMLaN1WRc^k!I$gVG=4@o%T*=z2Qu-A+~YhXUCAYLseXtHCWK4>=Se^J?}cmdZs)U2 z_faL9pBcacB}C$8+$bk#3KCRAc#yDnJnw5C9+X4DP&_!}&GQG599)FCbda8z)Yv?8 z@R>*rUAQm$e%lOA>Jz@kfPc^KP)SKpXbaJ$p!dEXAJQdxE%`jx9;jx}e0{GEhWLXd zaBK($8*p(K4TIUeX!>$QdjR`<%_Aho8^S-VJ}dVOZDiv8`>{<=LvE`aa=(Y1QcEO{ zj%B91{siO&!OpO_k_K8|4JDC+Q54SroQ&Df{G7jpCfl3!ChpyY+^!L?!#Ng*LE%P1 zdd!g}En(c}B0DZ&jaPsUyFY=3;woEzUU-!|+62WQXqsGNO-!J&&?63O zP(*4B+}@9F5Y1gFbGQ&bzgpxTkY&k=GbKBp2y5yO6j`N z3(E~;i)Vtw4rJuRSg+ zql8>tT$wx^joS;YMAEdB+EIcZ>YenO!h#|oziYMgzgHFHKmQ5ptzG{PI;oG+?tD!5 z{ymfexV{Qv$7I+oT)A zlTQb{)s4l0`Qc>NiyC^MOa|}F{6`RO+>X|!Vk_gXdf1ShaG@Ls`QWTsKI>F_4InAF z11Ph8YuEoYp&(X)C|9WcUxAY>RtF@QT9~`HQKO6Eb?N&N=diedh-BPBdHlZ{T}Q?D zu5FCu<3Nbc6EnZ{*VZz*cjcwSH@^~f86NA0_+K632RZSrsMr{w{P}l54{01*q&M~w zG1;4bXQ^^Nz}NEj1~skFIU`xL*2>KSbaVfG0 zC}zHZ92*OOxua+Z3yvlSWkpAz`r4P3p$q{fdhy2`hyi>DrR6bpD7xpt&0hzmYv`M) z+op$n5EH%*qSo`f(EKo~7mt(7;WtG<6K+QbBUmQH*!p08?&j^tQecJJ;9|=N`r>*E z^`fUjE!h7H^ecjp^nf$Kf&amHJ=cL4==ND9$>(eJROE4TFSxcVMu*=8D3oFpN?7@u zuxd_#g`2&2TxSa!pNG14YXYqw^RGNUtOms3ATOVldH8`qbaL4pI5x?%KpG0p9lpBz zcI{MsdxC2g6=psgVnyVyu3eg@G#mtGy3Uw*2lxC6>CgeAHPR4eaR z;9AhAywb*`tB=>>ndKT0h>D_(c2E(8K|4OYGJci0B^E@{V_>)(jehMeh52s-!GK+40fVd@ zqkRq}D$2et+t`6q?~$1ad$Pj>@%>8q5ZD-k@n1)UVO^P8sk^s8W*rZM(Ql;%$f(+2?W3ek*?j}ZcR*o#&BjSLv2MBm5)m1u%qI7!id?l-dg}oieM-{buFn&)*>COBiE3eX8}ml z`7c)V1TcrNJdOWxwknO<1CCgo{bwmN%Br!n#1Cg#L^U`lgNIa@BlUtx?F=hniJ8Js zDPQIk0LZ~0?yvDMECwHa);6#~6AZWqQYl|V(SH|7mqTb<&bqNtyv{9IBx;eF1-lgw z1HRQefmPt&Pg`yCE=1@=ssoyVYFoIA1IR(4c%Y!$`swRxxIbdkR8dg`jvOaG2j|EG zFT@UA7Eo@wymQue6wZKUbhZnPRRYplSHdGu5zbz{>8QWr2g<$MiooZGy-+|5ahiLt z6BtK&ke)#g?E>1D3UJnE^rT6B#z<#o1$-8udw^{Hy7U}|2Fgj^6;QX#vc#c)Aq=8f zNv4FW$PQy3QGXo4iSdokl!vs*IRK163P!mRur+tb*)WfsyVy7!-!DMfGZX_pF9UQN zBZFK(4AsyefzXYn@m>2}Kn|f{=|qzlNWPF7S-wh1xCx7_Am@XPiERGH1t3>avx9Lq zByuSg2iKxkz)dJMHOYdOTF^wM{7pG-0I3Hp=CZclk7k-K$%KZXh{|y8>5BxlXjezYz zIBo~#{IKQPEZUT~028{7u-Vur*tAQAQ0)8WIs8OZlhsji)YUs-mi$ev+_k@#l{DY! z*!Q_63?m3`289+Proy0~IUG>v1NH^}Ct?g-1>HnSGI90s%Mkpot>3e)hC3r)G(4PW zq>pLJ)Ln6C=Pd>UvA6}X_G`#NZL6Gj6gQ3?@MfrOI`%dM##N|YHNr|8IE!g7y3qiu zyx5{Q#&7OjB>89D*7ePe;RdGq4%_4M8iSCuc<+LApVb@Sd(UO?(`3@`0rsVPlCf@;y0O))+R4x@k$`=fKv3&(S^Mu zzwYnPXf7r^cc57)gP=A z64VN?ysAic4kBcdX1;JAKmh37J$}|<{wPFWYagl^`bu0GM%cnTE~J`Ns4cayO1ZEJ zxgcPM6xeGdX?vQR9)c#qOLN?4ZohCQ&duZX36O!Y z4CC4X=tW&!_>C8E-~reTC#sO^LMJOeDFX{z|9V~Lqo=-v@TK#hcw^!;jj%#>FZwj_ zm^9axf&D8x?dozHW3M;_r1ulZ2sjPY-M3;zbxFbg3Rvm90>DXb02#jf+1YIB%NXET zqyuWiB?c$E?!~oV3XmE5V5`b!T+gIHMZHaSzCK12JsVL%;T{+(+=PO)YhDC8N;u zjy4A}=U44tbG`IVUa)<z&s4`~ci_z=g;NAG*r8>UaW6N&h z7oBKldoCJz7yKx#iyjweZSeX@aEQt2lJF=63OQa#x%zPS#D4qm)$;YkFMH4Ps-ffJ zkG@9LEC1SGKD})8yW;Egws+9H_^KoWJNXt#JFtYl0b8nc`kj(?1b1AO6Fp2tnbOw% zFGj7_0}9Axr{s-NFKCPhO-)Sb)L{wid-MMksE33K-l-d|s?p(=g>qC%-ye(LPQsNV zANlqz8M2sJiSWy_OOJdc(i`{qYb?f)= z$9TSj`ricR8!rKgWazy@MRM-CQny9Qo;Gkgv?n!L|Lisgn`^@z(s+ufhwlhflluEv z7<&x{NzoRo*_3!Uj(Ip8wRxy5W<>tW(ZxVtLM-^8#;N7=)tox>lE@w&Hs1{vyyLm( z0&XD{+IlB;U?RYGHkg^1fQ1bU0X9rAABPj(3PDtngrwwrAy<_#->Mr)Znz~b+nQDr z*gVo~Y;KZGhj^BRa;XsM=me@N=;#E%o*M+P!$}nk7Y|7Eul^?VSts)!3A;=h%{owx zmZTfrdp^8+`fU(F=eNNpAeBQ^{(4H7wSfS!rPk1*7LnyUeV9hl1uU?0K(*zSXS^h7 z==y$jfwqUG`VoEt($W8X_UxHm*$cvEF;Xup4G~hs4SEsB^e?ls0T43Y{=Ivs$vQfl z%v+0(?Te`BBs*dBmB(R_wemRNo&JCHNOC2L<_ZPv7iEfvulo#R6xoJhYU|pQqPlot zEZ92(o9pIY^K9*z~N27?%%2reFgKB znPwq1n?JVF=K}7qtlK7-NDkHK9E6Bkc@S8dqs9Z(3%*RCOFx%+^DfUfC%UIc*>SG* zi2ZB9lv|eNWA&AY;jWucyS|3hP=Bm!`(ucB45e`j+9cQGG?_8oP}IgvG}(~?7K`_v z_mM<;JD$gZd?MQi&oOhp>Lih1Ysy09k*^0(a+85CXY*@r#~8b7D43Xh^Jipae9lpNXL?MC zq~7V|b!m#Ci3#JM?fLTW(TnnuiPw-LzZe?$zQ1(cPb{1bu++nj^FK z`4;3OFEm&1w^g0Xnrc<2+qcK=my!WP!4g1>8z9GpDwJw5<7H6$IaT7Gs)g|8zQMJp zbg65TLaI;uO|ShOot&hVgq%c?Gsp(rOMaEaar6XxVu7qDOgYxuAa$UE=#-@R&dVfI zusiP=izpW)j8lOR!%pmooyyw)ZL|*<+_iMZ8yX742TG16ncG&BS@HGn!%GYwe7+-i$D^Yw=K#x6hnh6>cp^RNaF3UEYB@#t+ zmp;a1 zB6$XM-tlt zjJr`G_PVL5X%$GmkpU_0ypn+R<`cOgt*rC_JERt~lwNg;X?3Ao3Vbjg39Vzmfa=vqFNB zwju{5MVTDPpO3zi?*EMceI(^L6IEo_Ug!=QG7Wo2$JsrQZ0U$-T&i^_6XL#iH8$$Z zxq!Q%z5T4An&)JtVC&!^P30@OHCLK!sVZ?Xu`)7UBT_C))#)aXZ`&Zjj@#CPSKz(p zjtg@X+4SzyrHo%j17DJug;N*?gBELGFzq2jU7*~xFwQ151&k-m-VIvZoz*;ANi&`% zW<5=SK~)0HZTPGTynNQ0hkj{Z*F1h_aPJoo3*8PS}RHJ;Kgh+0K6PUcXZxI1scI2qYffi~WHRM!VzV<2w)r8?O4l zl!^$}D-dW4{kd!yR}yqT-H>aO;}4$g=avBQNPEmF>Zhc70`oLjT0c7gSoh~PGk@*_ zaXo6Y`K$u$q0RitqBxW}G%@PrxOcK8E(6la*aBP`=XyWP*QfWKNM^VL=AKlC@uS1^m*P3X&8ey zYlk6t6J0!R886UOwb2-VKCsd$QN*;nE4JvK^-1i-RW;s5nd*8X#5ixNt*y@Ijd@m`ND{QJJ0-%t9DQO)+tAk8QA>T&y0 za8TdjTIMyZT^j>E+&t1!jE#~A~nBOcfjfOC$%4@fkm5FV>tq}n2 z!T|!it{`NYlGLMA;XMiin&EF_7{@j^Zok z%lEr=gc+p6pL{_-p*dRmGBII+m|20#{QgZHof}J-Zo=GfoRzv?j^X33qS)+7g{5~Y zHXrUTef$WrS9#2V;KNrO{G7ViR1H)|!W0WNKHSmX1`C9nc4HiC&1VJH2IrXZ@$o;! zvZr>BL^A6pzYD1cZEe329G1@yL8v^jeaTmczj&TLR86XIadAlqga^&qx!`RJw@HUu zShhhYpDykn>7h)~O2pAeiUvicbfvb`kO#S4Bj)Vop|^t@!^@{x9y>WZpG_gOz}}o3 zCb;pzW*ATX)D?%b{bRLV6amE4{J^Fv8Hi;LiWhlhs;0Zb&}b{Rp!q*Llu3RWdVhx)7UnRxL88!TmA z>YbpCy5h?42x-qp(0;mlH_d{Fm-X z{kSR1rK3|f^1*T7JtuL8x61L!sDJV1UKZvitk?Qq_i%j8jP@dY@r9!)%8U2G=G_(s zwTCs;+QPg{Yd%}?PdG}7ii#q^-7fGs$91*uWACN(7b1q;-dpB%v2HyR&+5vN)NrZh zA%c|~1HxTo)~~T40g&TjWLV{8{J{^`3DwAPcD(7osH)Ag3zGHo$|YAVJiN30(zI9i z>gdgIzVzB1)XqwtTDWj0j+V_0XfJmGE^IhOT%XXsm%Tds&G~P`dA}TiN5Mt$5WGum zi`HGQ`lG%~U8jv=O(aY!D?8ljCiDM&^lzm&$L~6fXsAO95v9=y0X=qlvm|F*9yVby z5=HykNv1NZWNLA*-6ZQP)jVkw5-F0^AMQ#%&EMI4~iAF z|8D;csiob0)c%M<<(-#;E1}27e!1VFRBlrm zkcfw~*(Y7MRgoJsQ0)9}r%<=jm5oo|b$@^07p}fFA!0!L=cu z6nt-Q-w}?*_80c|MZy}H^OKWn`~k3D;*TWus>Ke!b?L7nKIa&mnocu~fWsj<<3fP^ z>p|b1d)Fz@Ph2dXQqlPZEv}Z0>)h-tu?Yscj_d2qq$n?cfB!QO(-agpg3&eGa9UpC zl&gvu!=J!!Y5Znqe$Yme0o(UN9{&ch@}D{my$Nh^EzD)fg`uOlxtXidw5>TjX+lSq zxnj}%sg+MoGz?pLcZ+t_&Iz!Olj|r^^nn!ZV{>ykpl?re14@)RtU$3*0E1YvdBKXgK)!q@DW3Av@u^aY+3TOxU-O;>tIj`DF$LIjN*3^ z=2|MgQat24F7QU79UN{**OGJ-fSm*r;Nm@D7l=mY=9~db6$Z-a175U`sT5P1!?T?} z%9l*z0bi_PSIG=17bIJqNeY~<;_)Pi0sx%$#w~$a?%nGK#C`QY)D!8qsd29c#9JgN zDCKkss_NQX^mG!UY)!KfD#9q*tXvuu0PYRY_;-V4#v`>^Xf?1xJO+3h6tVJ3O9@fr zPd+{P7|7f`gaK~jGH{w64Ac*vMSw8nNh zQ7}Pb*KJ@VkcB2jN2d*91^fQi7P1`=^HaJj}i4GBl|w_z)tI&u#G0CcBO=nfv14OES1u&8wO+W*0Bdx?pQTX zW`O#|NNm{aW{v**`O_|LIwK>a3ev&E6K_XIN=mw;Aa)VE6?i!)uv6)CEHyR34gseO z>L*HIMb*^MfGJ|VTt{5Z+z9{V63`8gHh?!7QdS0(VfYqRJOkcNh3j{OK1Gxp(v{}f zNPDFzyuqT5K|A5Z;8-tfd?*%32d<&GM|zTG@BS-86y=qiurTJ{A6g*@x~Wfrs` zK@uORHlB6{f27Zl4sZuPI~lzlP#)M*)O?HVs7H$b5}_gLa-J*n|cs6Biah z;E9P#4Hg(dQ`z5cft++*fCx_~t9hVo58vgi;m3HMW{2<$DBLsDcdGi$=wP$u(~*vTP=G@X`>d6_#HB$?r^!^ z9zIS)>3SEh8|19!x3@EaK}EO)t*8`0yLaK1^P?22!GOes;ms8eTpBvQb=NPraUa z%&c!~kXJS7u8l`cOhJsR*p}Y;7l|pHzzEn{z)uFGW-#^9#judq>S-eMQKS29+kr03 zypIdG*^>LvIuqT@c|CF*q@9(xlE7UOfHsc=NIw!yb#(`Xj~O{%Cg#u(Q-+*vWZ9=2 zRO7h72mQbv5YKvnLcJlHtYXYe^x!^2C3a28N0 z?f#^>);;_(GYWzu}wL z3=B?fyfE>EJIz3Uou`y~-7n@a)*Sj1gC!$!+~;$FC6-JMQ&(XYsO3#1FMXSIdWAml zz7P{>v>P0DEYOoT1|0qFy ?OA9aHRv6=@|B(MH7hUnh;gCV$iMiE#uG=qhuWKE5 zCduRiO)5J(TeI}vm_?4l6YTYW58Bv;g@kB9J`_ZzbOgC|wKuRr95RYj3O~fQlUbd; zF1w!C4wGN&n~G-pe}G?X|J>L(o&tYMGJtW{nt!Q$ggx0EP1G^Fv+j}@RX%fHn50&; z@W|c67bV3pIVq-LL>Gmxy&IMVPm27qjbLebhW}a%zT{aE#g*G}XI6-1Zw$soje$0B z7s@^0ezb;FqV_xQR(-$hbL3Gq-RDq^NNA_L)0CethZAz|5l><}e&_4?8F+Y~^e&Hq zp>*?l)PYn2^<~x+HG{X#vJCZG3M6!~x6Mep$$18T|A&jD1E)G&ov-QpSNVKb4CFc_ z4%!3`GqJH7Dwf*hQm#=c)et#qZOUW~4N?lV@#$|5X-W`%{Q@kzdChRTbs>#zKmu0{ zQ#}X3(xO!`ZJ?>v6}QDYT0%f9>7-YH7{cA9Tw0fCA6L!T(h13nwy+QYHV$cI@t$5@ zKd>f0M;l%+zj;|4XJYxJm%B~583dflhz9fI6X)2T6wCmq=dj)TsGI%t#fPokkWb0f zx4Q*!$A#Kl#hwPpY?Ei#ZiC7IQ(j*F1`MqgZ6576Sq*51Hx=b~ zCeF%oPL26)lom??Jg7k0JUSJ+wC*v@E)V#;pK9~XmuaQk!ut6g(_0RUEQ!)aWd;`OgT~`#(lM5-gH*0&jUb0^#w4aPqjX} ztm$~~g-`(7c;0vSLfYFy`IfjXR@b`T+R-T|Fg*iJ%G6Q7*&GOrrEBab%7(ccI-8%~ z``z%?;ef!4Wui0x7c&aLW`4^b5yLmX=iy#DS_A+lVSiq$#AVW}^iNLIi@g0w{sErA z1K2?I{K5-4bVbgA55Zq|y7ve>P(^55GJu+H8J)hf7*x{9iv= zl8xgG-ilJmNvapBn#3|(&Z@1w0 zbF!+vy&i|%Eg%3wEy%g3_*Vb37cRhHFSLS8Hpz5m=8q)7vYW)7tPE=I%esOt3(vQ2sKX`e0 z^{cH2JxtQH={%4=TU6uLKx*B))sLS4f-1A~V)eC#%#+g#xZl@1b;LzJM(G*5eQYGW z#ARGkwqYH{@~;Z!mg%XfSXfyM2a<5Hka?dP{LKCN>bdn52q@h3VL--D@Z1@a&#w~6 z9BkhQ%fJeVw>GF(O#b$fJpcZ~T&H$R&ca2OBgS86tOn&T-Yi87Yx`Dx9~_FftV97Z zVk9Iaqk!1|)e=$?WmHPA;x{@r-&|vN*TZ-M$mO{Y__==xRq{Js)NwD}#kI7+tq0dv zMxRNJNh-aG4E0iUe4nb+=XfU@5{WzjFi3u&BYi)0We-pW9P{Z=9Q=`)8E8+!p+iww z-`cq{wgjz30XOhBOWwRu;GrJy%lT`XuQjE^mf&~#iagZGaHG{JjCrWJOKU#9qTrCzIS_8q*l1BPrn1VKBl0`JLwVXxJobFp-rEeAx@1#={znX-i+ zv$?TBY>=vhay7vK-BWyA=qIpIWi2yo_>%h?Ykg{d6G=9NoDzS%7xY7Ho0&Da&*w$> z!Xk;v$1Y_Zs&ZI`mO^)$!a)cp_Yssn*xjZ%_arfu7I4gK-K&JZ1KyuRx+3qbSJbFk zvd{b{q&9!V&9JLru|Gf>j`CSwF@MPNo0zM8%8LI@^7!TyLHh$fyVwHTQHSse=?5?6 zpNNvMSe##ryJzFl*{{gqOYF_Cdb*5VWv7Rf={WWUgYC@h*W-4g45YBgnwMaOWOG#e z4}H}P=e`_$rQ8S0!lI)7>Zv@tfip-IoZ+EdFWWl1&r`$qyR)(=N6`KsOa7BxUCI|SY3HCq!5>v6O~nd%^RWK| DP|Whm literal 0 HcmV?d00001 diff --git a/src/assets/settings.png b/src/assets/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..693f1348e751f470633b43acc152d23379526e0d GIT binary patch literal 120400 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

根据 RFC 8754 实现,支持SRv6扩展头和TLV选项

+ * + *
+     *   0                   1                   2                   3
+     *   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  | Next Header   |  Hdr Ext Len  | Routing Type  | Segments Left |
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  |     Last Entry    |     Flags     |              Tag          |
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  |                                                               |
+     *  |            Segment List[0] (128-bit IPv6 address)            |
+     *  |                                                               |
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  |                               ...                             |
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  |                                                               |
+     *  |            Segment List[n] (128-bit IPv6 address)            |
+     *  |                                                               |
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     *  //                                                             //
+     *  //         Optional Type-Length-Value objects (variable)       //
+     *  //                                                             //
+     *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     * 
+ */ + public static class IPv6SegmentRoutingHeader extends IPv6RoutingHeader { + + private final List addresses = new ArrayList(); + private final List tlvs = new ArrayList(); + + @Override + public String toString() { + return "IPv6SegmentRoutingHeader [addresses=" + addresses + ", tlvs=" + tlvs + ", getLastEntry()=" + + getLastEntry() + ", getFlags()=" + getFlags() + ", getTag()=" + getTag() + ", getAddresses()=" + + getAddresses() + ", getRoutingType()=" + getRoutingType() + ", getSegmentsLeft()=" + + getSegmentsLeft() + ", getProtocolNumber()=" + getProtocolNumber() + ", getNextHeader()=" + + getNextHeader() + ", getExtLength()=" + getExtLength() + "]"; + } + + public IPv6SegmentRoutingHeader() { + super(EXT_HEADER_ALIGNMENT); + setRoutingType(SRV6_ROUTING_TYPE); + } + + public IPv6SegmentRoutingHeader(ByteBuffer bbf) { + super(EXT_HEADER_ALIGNMENT, bbf); + } + + public IPv6SegmentRoutingHeader(List segs) { + this(); + this.addresses.addAll(segs); + int ln = addresses.size() - 1; + setLastEntry(ln); + setSegmentsLeft(ln); + } + + public int getLastEntry() { + return getData().get(4) & BIT_MASK_LOW_8_BITS; + } + + public void setLastEntry(int lastEntry) { + getData().put(4, (byte) lastEntry); + } + + public int getFlags() { + return getData().get(5) & BIT_MASK_LOW_8_BITS; + } + + public void setFlags(int flags) { + getData().put(5, (byte) flags); + } + + public int getTag() { + return getData().getShort(6) & BIT_MASK_LOW_16_BITS; + } + + public void setTag(int tag) { + getData().putShort(6, (short) tag); + } + + public List getAddresses() { + return addresses; + } + + public List getTlvs() { + return tlvs; + } + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + int exl = calcExtLength(); + if (exl % EXT_HEADER_ALIGNMENT != 0) { + throw new StreamCorruptedException("extLength % " + EXT_HEADER_ALIGNMENT + " !=0"); + } + + setExtLength(exl / EXT_HEADER_ALIGNMENT); + setLastEntry(addresses.size() - 1); + super.writeToChannel(dto); + + for (Inet6Address inet6Address : addresses) { + dto.write(ByteBuffer.wrap(inet6Address.getAddress())); + } + for (IPv6SegmentRoutingTLV tlv : tlvs) { + IPv6SegmentRoutingTLV.writeIPv6SegmentRoutingTLVToChannel(dto, tlv); + } + } + + private int calcExtLength() { + int tlvsl = 0; + for (IPv6SegmentRoutingTLV tlve : tlvs) { + tlvsl += tlve.getTotalLength(); + } + return addresses.size() * IPV6_ADDRESS_LENGTH + tlvsl; + } + + /*@Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + super.readFromChannel(din, length); + int extl = getExtLength(); + int laste = getLastEntry(); + + int rl = extl * EXT_HEADER_ALIGNMENT; + int usdl = 0; + + // System.out.println("SR length:"+(laste+1)); + addresses.clear(); + ByteBuffer bfr = NetworkPacket.bufferAllocator.allocateHeap(IPV6_ADDRESS_LENGTH); + for (int i = 0; i < (laste + 1); i++) { + bfr.clear(); + while (bfr.hasRemaining()) { + if (din.read(bfr) == -1) { + throw new EOFException(); + } + } + bfr.flip(); + usdl += bfr.limit(); + Inet6Address addr = (Inet6Address) Inet6Address.getByAddress(bfr.array()); + // System.out.println("SR:"+addr); + addresses.add(addr); + } + tlvs.clear(); + while (usdl < rl) { + IPv6SegmentRoutingTLV tlv = IPv6SegmentRoutingTLV.readIPv6SegmentRoutingTLVFromChannel(din); + usdl += tlv.getTotalLength(); + tlvs.add(tlv); + } + + return; + }*/ + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + super.readFromChannel(din, length); + + ByteBuffer bfr = null; + int extl = getExtLength(); + int laste = getLastEntry(); + int rl = extl * EXT_HEADER_ALIGNMENT; + int usdl = 0; + + // 验证lastEntry的合理性 + if (laste < 0 ) { + throw new StreamCorruptedException("Invalid lastEntry: " + laste); + } + + addresses.clear(); + bfr = NetworkPacket.bufferAllocator.allocateHeap(IPV6_ADDRESS_LENGTH); + + for (int i = 0; i <= laste; i++) { // 注意:应该是 <= laste + bfr.clear(); + KNEChannels.readFully(din, bfr); + bfr.flip(); + usdl += bfr.limit(); + Inet6Address addr = (Inet6Address) Inet6Address.getByAddress(bfr.array()); + addresses.add(addr); + } + + tlvs.clear(); + while (usdl < rl) { + IPv6SegmentRoutingTLV tlv = IPv6SegmentRoutingTLV.readIPv6SegmentRoutingTLVFromChannel(din); + usdl += tlv.getTotalLength(); + tlvs.add(tlv); + } + + // 验证读取的字节数与预期一致 + if (usdl != rl) { + throw new StreamCorruptedException("Length mismatch: expected " + rl + ", got " + usdl); + } + + + } + + // 辅助方法:确保读取完整数据 + private int readFully(ReadableByteChannel channel, ByteBuffer buffer) throws IOException { + int totalRead = 0; + while (buffer.hasRemaining()) { + int read = channel.read(buffer); + if (read == -1) { + break; + } + totalRead += read; + } + return totalRead; + } + @Override + public long getTotalLength() { + return calcExtLength() + EXT_HEADER_ALIGNMENT; + } + + } + + /** + * IPv6目标选项头部类 + */ + public static class IPv6DestinationHeader extends IPv6ExtHeader { + @Override + public String toString() { + return "IPv6DestinationHeader [protocolNumber=" + getProtocolNumber() + ", getNextHeader()=" + + getNextHeader() + ", getExtLength()=" + getExtLength() + ", getRoutingType()=" + getRoutingType() + + "]"; + } + + public IPv6DestinationHeader() { + super(DESTINATION_OPTIONS); + } + + public int getRoutingType() { + return getData().get(2) & BIT_MASK_LOW_8_BITS; + } + + public void setRoutingType(int routingTypr) { + getData().put(2, (byte) routingTypr); + } + + public int getSegmentsLeft() { + return getData().get(3); + } + + public void setSegmentsLeft(int segmentsLeft) { + getData().put(3, (byte) segmentsLeft); + } + } + + /** + * 获取所有扩展头部 + * @return 扩展头部列表 + */ + public List getHeaders() { + return headers; + } + + /** + * 获取IPv6逐跳头部 + * @return IPv6段逐跳头部,如果不存在则返回null + */ + public IPv6HopByHopHeader getHopByHopHeader() { + IPv6HopByHopHeader hoph = null; + List exhs = headers; + for (int j = 0; j < exhs.size(); j++) { + IPv6ExtHeader exh = exhs.get(j); + if (exh instanceof IPv6HopByHopHeader) { + hoph=(IPv6HopByHopHeader) exh; + break; + } + } + return hoph; + } + + /** + * 获取SRv6段路由头部 + * @return SRv6段路由头部,如果不存在则返回null + */ + public IPv6SegmentRoutingHeader getSRHHeader() { + IPv6SegmentRoutingHeader srhh = null; + List exhs = headers; + for (int j = 0; j < exhs.size(); j++) { + IPv6ExtHeader exh = exhs.get(j); + if (exh instanceof IPv6SegmentRoutingHeader) { + if (((IPv6SegmentRoutingHeader) exh).getRoutingType() == SRV6_ROUTING_TYPE) { + srhh = (IPv6SegmentRoutingHeader) exh; + break; + } + } + } + return srhh; + } + + + @Override + protected boolean needEndPosition() { + return false; + } + + // 重路由计数器 + private AtomicInteger rerouteCounter = new AtomicInteger(0); + + public AtomicInteger getRerouteCounter() { + return rerouteCounter; + } + + // 承诺标志,用于某种状态跟踪 + private volatile boolean promise = true; + + public void setPromise(boolean b) { + promise = b; + } + + public boolean isPromise() { + return promise; + } - - - -} +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/IPv6RouteTableKey.java b/src/org/kne/cloud/network/ipv6/IPv6RouteTableKey.java new file mode 100644 index 0000000..0914cc3 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/IPv6RouteTableKey.java @@ -0,0 +1,305 @@ +package org.kne.cloud.network.ipv6; + +import java.net.Inet6Address; +import java.util.Objects; + +public class IPv6RouteTableKey { + private long most; + private long least; + + public IPv6RouteTableKey(byte[] address) { + long[] l = inet6AddressToLongs(address); + this.most = l[0]; + this.least = l[1]; // 修复:应该是 l[1] 而不是 l[0] + } + + public IPv6RouteTableKey(long most, long least) { + super(); + this.most = most; + this.least = least; + } + + public IPv6RouteTableKey(Inet6Address address) { + this(address.getAddress()); + } + + public IPv6RouteTableKey(Inet6AddressGroup address) { + this(address.getAddress()); + applyMask(address.getPrefixLength()); + } + + public long getMost() { + return most; + } + + public long getLeast() { + return least; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (int) (least ^ (least >>> 32)); + result = prime * result + (int) (most ^ (most >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + IPv6RouteTableKey other = (IPv6RouteTableKey) obj; + if (least != other.least) + return false; + if (most != other.most) + return false; + return true; + } + + + /** + * 根据前缀长度应用掩码,仅保留网络部分 + * @param prefixLength 前缀长度 (0-128) + * @return 应用掩码后的新 IPv6RouteTableKey 对象 + */ + public IPv6RouteTableKey mask(int prefixLength) { + if (prefixLength < 0 || prefixLength > 128) { + throw new IllegalArgumentException("前缀长度必须在 0 到 128 之间"); + } + + if (prefixLength == 0) { + return new IPv6RouteTableKey(0L, 0L); // 默认路由 + } + + long maskedMost = this.most; + long maskedLeast = this.least; + + if (prefixLength <= 64) { + // 仅影响高位 + long mask = createMask(prefixLength); + maskedMost &= mask; + maskedLeast = 0L; // 低位全部清零 + } else { + // 影响高位和部分低位 + int lowPrefixLength = prefixLength - 64; + long lowMask = createMask(lowPrefixLength); + maskedLeast &= lowMask; + // 高位保持不变 + } + + return new IPv6RouteTableKey(maskedMost, maskedLeast); + } + + + /** + * 根据前缀长度应用掩码,仅保留网络部分 + * @param prefixLength 前缀长度 (0-128) + * @return 应用掩码后的新 IPv6RouteTableKey 对象 + */ + public void applyMask(int prefixLength) { + if (prefixLength < 0 || prefixLength > 128) { + throw new IllegalArgumentException("前缀长度必须在 0 到 128 之间"); + } + + if (prefixLength == 0) { + this.most=0; + this.least=0; + return; + //return new IPv6RouteTableKey(0L, 0L); // 默认路由 + } + + long maskedMost = this.most; + long maskedLeast = this.least; + + if (prefixLength <= 64) { + // 仅影响高位 + long mask = createMask(prefixLength); + maskedMost &= mask; + maskedLeast = 0L; // 低位全部清零 + } else { + // 影响高位和部分低位 + int lowPrefixLength = prefixLength - 64; + long lowMask = createMask(lowPrefixLength); + maskedLeast &= lowMask; + // 高位保持不变 + } + this.most=maskedMost; + this.least=maskedLeast; + // return new IPv6RouteTableKey(maskedMost, maskedLeast); + } + + /** + * 创建指定长度的掩码 + * @param bits 要保留的位数 (0-64) + * @return 掩码值 + */ + private long createMask(int bits) { + // 使用查表法,预先计算所有可能的掩码值 + return MASK_TABLE[bits]; + } + + // 预计算的掩码表 + private static final long[] MASK_TABLE = new long[65]; // 0-64 共65个值 + + // 静态初始化块,在类加载时预计算所有掩码值 + static { + for (int bits = 0; bits <= 64; bits++) { + if (bits == 0) { + MASK_TABLE[bits] = 0L; + } else if (bits == 64) { + MASK_TABLE[bits] = -1L; + } else { + MASK_TABLE[bits] = (-1L) << (64 - bits); + } + } + } + + /** + * 将 byte[] 转换为两个 long 值(高位和低位) + * @param bytes 16字节的IPv6地址 + * @return 包含两个long值的数组,第一个是高位,第二个是低位 + */ + public static long[] inet6AddressToLongs(byte[] bytes) { + if (bytes.length != 16) { + throw new IllegalArgumentException("IPv6地址必须是16字节"); + } + + long high = 0; + long low = 0; + + // 处理前8字节(高位) + for (int i = 0; i < 8; i++) { + high = (high << 8) | (bytes[i] & 0xFF); + } + + // 处理后8字节(低位) + for (int i = 8; i < 16; i++) { + low = (low << 8) | (bytes[i] & 0xFF); + } + + return new long[]{high, low}; + } + + /** + * 将两个long值转换回byte[] + * @param high 高位long值 + * @param low 低位long值 + * @return 16字节的IPv6地址 + */ + public static byte[] longsToInet6Address(long high, long low) { + byte[] bytes = new byte[16]; + + // 提取高位的8个字节 + for (int i = 0; i < 8; i++) { + bytes[i] = (byte) ((high >> (56 - i * 8)) & 0xFF); + } + + // 提取低位的8个字节 + for (int i = 0; i < 8; i++) { + bytes[8 + i] = (byte) ((low >> (56 - i * 8)) & 0xFF); + } + + return bytes; + } + + @Override + public String toString() { + return String.format("%016x:%016x", most, least); + } + + /** + * 单元测试 + */ + public static void main(String[] args) { + for(int i=0;i<65;i++) { + long l=MASK_TABLE[i]; + System.out.println(Long.toUnsignedString(l, 16)); + } + + System.out.println("开始 IPv6RouteTableKey 单元测试..."); + + // 测试1: 基本转换测试 + System.out.println("\n1. 测试基本转换:"); + byte[] testAddress = new byte[16]; + // 创建测试地址: 2001:0db8:85a3::8a2e:0370:7334 + testAddress[0] = 0x20; testAddress[1] = 0x01; + testAddress[2] = 0x0d; testAddress[3] = (byte) 0xb8; + testAddress[4] = (byte) 0x85; testAddress[5] = (byte) 0xa3; + // 中间部分为0 + testAddress[12] = (byte) 0x8a; testAddress[13] = 0x2e; + testAddress[14] = 0x03; testAddress[15] = 0x70; + // testAddress[16] = 0x73; testAddress[17] = 0x34; // 注意: 数组只有16个元素 + + IPv6RouteTableKey key = new IPv6RouteTableKey(testAddress); + System.out.println("原始地址: " + key); + + // 测试2: 掩码应用测试 + System.out.println("\n2. 测试掩码应用:"); + IPv6RouteTableKey masked64 = key.mask(64); + System.out.println("/64 掩码: " + masked64); + + IPv6RouteTableKey masked48 = key.mask(48); + System.out.println("/48 掩码: " + masked48); + + IPv6RouteTableKey masked128 = key.mask(128); + System.out.println("/128 掩码: " + masked128); + + IPv6RouteTableKey masked0 = key.mask(0); + System.out.println("/0 掩码: " + masked0); + + // 测试3: 相等性测试 + System.out.println("\n3. 测试相等性:"); + IPv6RouteTableKey key2 = new IPv6RouteTableKey(testAddress); + System.out.println("相同地址是否相等: " + key.equals(key2)); + System.out.println("哈希码是否相同: " + (key.hashCode() == key2.hashCode())); + + // 测试4: 转换函数测试 + System.out.println("\n4. 测试转换函数:"); + long[] longs = inet6AddressToLongs(testAddress); + System.out.println("转换为longs: " + Long.toHexString(longs[0]) + ":" + Long.toHexString(longs[1])); + + byte[] reconverted = longsToInet6Address(longs[0], longs[1]); + boolean conversionOk = true; + for (int i = 0; i < 16; i++) { + if (testAddress[i] != reconverted[i]) { + conversionOk = false; + break; + } + } + System.out.println("转换是否可逆: " + conversionOk); + + // 测试5: 边界条件测试 + System.out.println("\n5. 测试边界条件:"); + try { + key.applyMask(-1); + System.out.println("错误: 应该抛出异常"); + } catch (IllegalArgumentException e) { + System.out.println("正确: 负前缀长度抛出异常"); + } + + try { + key.applyMask(129); + System.out.println("错误: 应该抛出异常"); + } catch (IllegalArgumentException e) { + System.out.println("正确: 过大前缀长度抛出异常"); + } + + // 测试6: 全零和全一地址测试 + System.out.println("\n6. 测试特殊地址:"); + byte[] allZeros = new byte[16]; + IPv6RouteTableKey zeroKey = new IPv6RouteTableKey(allZeros); + System.out.println("全零地址: " + zeroKey); + + byte[] allOnes = new byte[16]; + for (int i = 0; i < 16; i++) allOnes[i] = (byte) 0xFF; + IPv6RouteTableKey onesKey = new IPv6RouteTableKey(allOnes); + System.out.println("全一地址: " + onesKey); + + System.out.println("\n所有测试完成!"); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/IPv6TUNLoopbackNetworkLink.java b/src/org/kne/cloud/network/ipv6/IPv6TUNLoopbackNetworkLink.java index 5372959..68d9296 100644 --- a/src/org/kne/cloud/network/ipv6/IPv6TUNLoopbackNetworkLink.java +++ b/src/org/kne/cloud/network/ipv6/IPv6TUNLoopbackNetworkLink.java @@ -11,10 +11,12 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.LockSupport; import java.util.concurrent.locks.ReentrantLock; @@ -40,7 +42,7 @@ import org.kne.concurrent.HighPerformanceExecutor; import org.kne.concurrent.SpinLock; import org.kne.io.KNEChannels; -public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, AutoCloseable { +public class IPv6TUNLoopbackNetworkLink extends AbstractIPv6NetworkLink implements IPv6NetworkLink, Closeable, AutoCloseable { public static final String KLALB_DECENTRALIZED_S_RV6_NETWORK = "KLALB Decentralized SRv6 Network"; @@ -76,7 +78,7 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A } Thread tb = new Thread(() -> { while (true) { - ByteBuffer tmp = NetworkPacket.bufferAllocator.allocate(65535); + ByteBuffer tmp = NetworkPacket.bufferAllocator.allocateNative(65535); try { tun.read(tmp); tmp.flip(); @@ -91,8 +93,8 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A //NetworkPacket.databufferpool_65535.back(tmp); if (con != null) { - monitor.getOutPacketCounterAL().incrementAndGet(); - monitor.getOutTrafficAL().addAndGet(ipp.getLength()); + monitor.getOutPacketCounterAL().add(1); + monitor.getOutTrafficAL().add(ipp.getTotalLength()); // ipp.setDisposeAfterSend(true); // ipp.getPayload().setDisposeAfterSend(true); ipp.setPromise(true); @@ -152,6 +154,7 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A }catch(UnsatisfiedLinkError e) { throw new IOException(e); } + onOnlineStateUpdate(); } private LinkedBlockingQueue sendQueue = new LinkedBlockingQueue(); @@ -210,14 +213,15 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A SRv6PacketReorder newr= new SRv6PacketReorder(new PacketConsumer() { @Override - public void accept(IPv6Packet packx) throws IOException { - ByteBuffer tmp = NetworkPacket.bufferAllocator.allocate(65535); + public boolean accept(IPv6Packet packx) throws IOException { + ByteBuffer tmp = NetworkPacket.bufferAllocator.allocateNative(65535); packx.writeToChannel(KNEChannels.newWritableChannel(tmp)); - monitor.getInPacketCounterAL().incrementAndGet(); - monitor.getInTrafficAL().addAndGet(packx.getLength()); + monitor.getInPacketCounterAL().add(1); + monitor.getInTrafficAL().add(packx.getTotalLength()); tmp.flip(); sendQueue.add(tmp); LockSupport.unpark(tr); + return true; } }); SRv6PacketReorder olr=reorder.putIfAbsent(fss,newr); @@ -230,8 +234,8 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A }else { ByteBuffer tmp = NetworkPacket.bufferAllocator.allocate(65535); pack.writeToChannel(KNEChannels.newWritableChannel(tmp)); - monitor.getInPacketCounterAL().incrementAndGet(); - monitor.getInTrafficAL().addAndGet(pack.getLength()); + monitor.getInPacketCounterAL().add(1); + monitor.getInTrafficAL().add(pack.getTotalLength()); tmp.flip(); sendQueue.add(tmp); LockSupport.unpark(tr); @@ -282,11 +286,7 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A tun.close(); tun = null; } - } - - @Override - public boolean canSend(IPv6Packet iPv6Packet) { - return true; + onOnlineStateUpdate(); } @Override @@ -303,8 +303,8 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A } @Override - public Inet6AddressGroup getAddressGroup() { - return hostAddress; + public List< Inet6AddressGroup> getAddressGroups() { + return List.of(hostAddress); } @Override @@ -316,8 +316,10 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A public List getRouteItems() { List rlist=new ArrayList<>(); - rlist.add(new RouteItem(new Inet6AddressGroup(this.getAddressGroup().getAddress(), 128), - this.getAddressGroup().getAddress(), this, "Direct", 0, 1, null, "D",true)); + for(Inet6AddressGroup grp:getAddressGroups()) { + rlist.add(new RouteItem(new Inet6AddressGroup(grp.getAddress(), 128), + grp.getAddress(), this, "Direct", 0, 1, null, "D",true)); + } for (Iterator iteratorx = getNeighborsInfo() .iterator(); iteratorx.hasNext();) { @@ -339,4 +341,11 @@ public class IPv6TUNLoopbackNetworkLink implements IPv6NetworkLink, Closeable, A return false; } + @Override + public void setCongressCondition(Lock lock, Condition condition) { + // TODO 自动生成的方法存根 + + } + + } diff --git a/src/org/kne/cloud/network/ipv6/Inet6AddressGroup.java b/src/org/kne/cloud/network/ipv6/Inet6AddressGroup.java index fea8b16..e5036ba 100644 --- a/src/org/kne/cloud/network/ipv6/Inet6AddressGroup.java +++ b/src/org/kne/cloud/network/ipv6/Inet6AddressGroup.java @@ -8,6 +8,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; import java.util.Objects; +import java.util.UUID; public class Inet6AddressGroup implements Comparable{ private static final byte[][] maskTransf=new byte[129][16]; @@ -121,4 +122,21 @@ public class Inet6AddressGroup implements Comparable{ prefixLength=in.read(); } + public Inet6AddressGroup createPrefixOnlyAddressGroup(int newPrefixLength) { + byte[]mask=maskTransf[newPrefixLength]; + byte[]andm=getAndm(mask); + try { + return new Inet6AddressGroup((Inet6Address) Inet6Address.getByAddress(andm), newPrefixLength); + } catch (UnknownHostException e) { + return null; + } + } + public Inet6AddressGroup createPrefixOnlyAddressGroup() { + return createPrefixOnlyAddressGroup(prefixLength); + } + public static void main(String[] args) throws UnknownHostException { + Inet6AddressGroup i6ag=new Inet6AddressGroup((Inet6Address) Inet6Address.getByName("1234:1234::1234"),12); + System.out.println(i6ag); + System.out.println(i6ag.createPrefixOnlyAddressGroup()); + } } diff --git a/src/org/kne/cloud/network/ipv6/LoopbackIPv6NetworkLink.java b/src/org/kne/cloud/network/ipv6/LoopbackIPv6NetworkLink.java new file mode 100644 index 0000000..410706c --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/LoopbackIPv6NetworkLink.java @@ -0,0 +1,162 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.net.Inet6Address; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.function.Consumer; + +import org.kne.cloud.network.srv6.PacketConsumer; +import org.kne.cloud.network.srv6.SRv6Router; + +public class LoopbackIPv6NetworkLink extends AbstractIPv6NetworkLink implements IPv6NetworkLink { + private IPv6NetworkLink fallbackLink; + + + public IPv6NetworkLink getFallbackLink() { + return fallbackLink; + } + + public void setFallbackLink(IPv6NetworkLink fallbackLink) { + this.fallbackLink = fallbackLink; + } + + private Map protocolNumberRegister = new ConcurrentHashMap<>(256 * 2); + + public Map getProtocolNumberRegister() { + return protocolNumberRegister; + } + + private List addressGroups =new ArrayList<>(); + + //new Inet6AddressGroup(loopbackAddress, 128) new Inet6AddressGroup((Inet6Address) Inet6Address.getByName("::1"), 128) + public LoopbackIPv6NetworkLink(List addressGroupsx,SRv6Router router) { + this.addressGroups .addAll( addressGroupsx); + } + + public Consumer getReceiveConsumer() { + return receiveConsumer; + } + + private Consumer receiveConsumer; + private Consumer rerouteConsumer; + private SRv6Router router; + + @Override + public void sendPacket(IPv6Packet pack, Inet6Address next) throws IOException { + PacketConsumer pcm= protocolNumberRegister.get(pack.getPayload().getProtocolNumber()); + if (pcm != null) { + if(!pcm.accept(pack)) { + if(fallbackLink!=null) { + fallbackLink.sendPacket(pack, next); + } + } + }else { + if(fallbackLink!=null) { + fallbackLink.sendPacket(pack, next); + } + } + } + + @Override + public boolean isLoopBack() { + return true; + } + + @Override + public List getNeighborsInfo() { + List hs = new ArrayList<>(); + return hs; + } + + @Override + public boolean isCongress(IPv6Packet iPv6Packet, double scale) { + return false; + } + + @Override + public String getName() { + return "inLoopBack"; + } + + @Override + public boolean isUp() { + return true; + } + + @Override + public void setReceiveConsumer(Consumer con) { + this.receiveConsumer = con; + if(fallbackLink!=null) { + fallbackLink.setReceiveConsumer(con); + } + } + + @Override + public List getAddressGroups() { + return addressGroups; + } + + @Override + public void setRerouteConsumer(Consumer rerouteConsumer) { + this.rerouteConsumer=rerouteConsumer; + if(fallbackLink!=null) { + fallbackLink.setRerouteConsumer(rerouteConsumer); + } + } + + public Consumer getRerouteConsumer() { + return rerouteConsumer; + } + + @Override + public List getRouteItems() { + List rlist = new ArrayList<>(); + for(Inet6AddressGroup group:addressGroups) { + rlist.add(new RouteItem(new Inet6AddressGroup(group.getAddress(), 128), + group.getAddress(), this, "Direct", 0, 0, null, "D", true)); + } + + for (Iterator iteratorx = getNeighborsInfo().iterator(); iteratorx.hasNext();) { + Neighbor addresses = (Neighbor) iteratorx.next(); + RouteItem ri = new RouteItem(new Inet6AddressGroup(addresses.getAddress().getAddress(), 128), + addresses.getAddress().getAddress(), this, "Direct", 0, 128, addresses.getMonitor(), "D", + false); + rlist.add(ri); + + RouteItem ris = new RouteItem(addresses.getLocator(), + (Inet6Address) addresses.getLocator().getAddress(), this, "KLALB SRv6", 13, 128, + addresses.getMonitor(), "D", false); + rlist.add(ris); + + } + return rlist; + } + + @Override + public boolean isReachSpeedLimit(IPv6Packet iPv6Packet) { + return false; + } + + public SRv6Router getRouter() { + return router; + } + + public void setRouter(SRv6Router router) { + this.router = router; + } + + @Override + public void setCongressCondition(Lock lock, Condition condition) { + // TODO 自动生成的方法存根 + + } + + + + }; \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/Neighbor.java b/src/org/kne/cloud/network/ipv6/Neighbor.java index bdd53b3..0a42976 100644 --- a/src/org/kne/cloud/network/ipv6/Neighbor.java +++ b/src/org/kne/cloud/network/ipv6/Neighbor.java @@ -32,9 +32,9 @@ public class Neighbor { this.locator = locator; this.monitor = monitor; } - public Neighbor(Inet6AddressGroup peerAddress, Inet6AddressGroup remoteVaddr, QueueingMonitorDataImpl monitor2, + public Neighbor(Inet6AddressGroup address, Inet6AddressGroup locator, MonitorData monitor2, BandwidthDistributer bandwidthDistributer) { - this(peerAddress,remoteVaddr,monitor2); + this(address,locator,monitor2); this.bandwidthDistributer=bandwidthDistributer; } @Override diff --git a/src/org/kne/cloud/network/ipv6/Pad1HopByHopTLV.java b/src/org/kne/cloud/network/ipv6/Pad1HopByHopTLV.java new file mode 100644 index 0000000..0eb94fa --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/Pad1HopByHopTLV.java @@ -0,0 +1,26 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; + +import org.kne.cloud.network.srv6.IPv6SegmentRoutingTLV; + +/** + * Pad1 Hop-by-Hop TLV - 没有数据部分 + */ +public class Pad1HopByHopTLV extends IPv6HopByHopTLV { + public Pad1HopByHopTLV() { + super(IPv6HopByHopTLV.PAD1); + } + + public Pad1HopByHopTLV(ByteBuffer klalbHeader) { + super(klalbHeader); + } + + @Override + public String toString() { + return "Pad1HopByHopTLV []"; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/PadNHopByHopTLV.java b/src/org/kne/cloud/network/ipv6/PadNHopByHopTLV.java new file mode 100644 index 0000000..fa946d3 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/PadNHopByHopTLV.java @@ -0,0 +1,30 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; + +import org.kne.cloud.network.srv6.IPv6SegmentRoutingTLV; + +/** + * PadN Hop-by-Hop TLV - 有数据部分 + */ +public class PadNHopByHopTLV extends IPv6HopByHopTLV { + public PadNHopByHopTLV(ByteBuffer klalbHeader) { + super(klalbHeader); + } + + public PadNHopByHopTLV(int dataLength) { + super(PadNHopByHopTLV.PADN); + getData().limit(dataLength); + } + + @Override + public String toString() { + return "PadNHopByHopTLV [getDataLength()=" + getDataLength() + "]"; + } + + + // 继承的readFromChannel和writeToChannel会正确处理数据部分 +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/TLV.java b/src/org/kne/cloud/network/ipv6/TLV.java index 1ad6d81..2fcc4d6 100644 --- a/src/org/kne/cloud/network/ipv6/TLV.java +++ b/src/org/kne/cloud/network/ipv6/TLV.java @@ -11,7 +11,32 @@ import org.kne.cloud.network.NetworkPacket; public class TLV extends NetworkPacket{ private int headerLength=2; - + +public static final int PAD1=0; + public TLV(ByteBuffer header, boolean isDefault) { + this.header=header; + this.isDefault=isDefault; + if(getType()==PAD1) + setHeaderLength(1); + if(isDefault&&(getHeaderLength()>1)) { + data=NetworkPacket.bufferAllocator.allocate(512); + } +} + + public TLV(int type, boolean isDefault) { + if(type==PAD1) { + setHeaderLength(1); + } + this.header=NetworkPacket.bufferAllocator.allocate(getHeaderLength()); + this.isDefault=isDefault; + header.put((byte) type); + header.put((byte) 0); + header.flip(); + if(isDefault&&(getHeaderLength()>1)) { + data=NetworkPacket.bufferAllocator.allocate(512); + } + } + public int getHeaderLength() { return headerLength; } @@ -29,30 +54,31 @@ private int headerLength=2; } @Override - public long getLength() { - return headerLength+(isDefault?data.limit():0); + public long getTotalLength() { + return getHeaderLength()+(isDefault?data.limit():0); } @Override public void writeToChannel(WritableByteChannel dto) throws IOException { - if(isDefault&&(headerLength>1)) { - setDataLength(data.limit()); - } - header.limit(headerLength); - dto.write(header.slice(0,header.limit())); - if(isDefault&&(headerLength>1)) { - dto.write(data.slice(0, data.limit())); - } + if(isDefault&&(getHeaderLength()>1)) { + setDataLength(data.limit()); + } + header.limit(getHeaderLength()); + dto.write(header.slice(0,header.limit())); + if(isDefault&&(getHeaderLength()>1)) { + dto.write(data.slice(0, data.limit())); + } } @Override public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + header.limit(1); while (header.hasRemaining()) { if (din.read(header) == -1) { throw new EOFException(); } } - if(headerLength>1) { + if(getHeaderLength()>1) { header.limit(2); while (header.hasRemaining()) { if (din.read(header) == -1) { @@ -62,7 +88,7 @@ private int headerLength=2; } header.flip(); - if(isDefault&&(headerLength>1)) { + if(isDefault&&(getHeaderLength()>1)) { data.clear(); data.limit(getDataLength()); while(data.hasRemaining()){ @@ -93,4 +119,14 @@ private int headerLength=2; public void setDataLength(int dataLength) { header.put(1,(byte) dataLength); } + + public void setHeaderLength(int headerLength) { + this.headerLength = headerLength; + } + + @Override + public String toString() { + return "TLV [getType()=" + getType() + ", getDataLength()=" + getDataLength() + "]"; + } + } diff --git a/src/org/kne/cloud/network/klalb/ACKTPacket.java b/src/org/kne/cloud/network/klalb/ACKTPacket.java index 8b78f56..2293934 100644 --- a/src/org/kne/cloud/network/klalb/ACKTPacket.java +++ b/src/org/kne/cloud/network/klalb/ACKTPacket.java @@ -33,10 +33,10 @@ public class ACKTPacket extends KLALBPacket implements PortPacket { @Override public String toString() { - return "ACKT "+getSport()+"->"+getDport()+" "+getNumber()+"[] avaliable:"+getAvaliableRcvWindow(); + return "ACKT "+getSrcPort()+"->"+getDstPort()+" "+getNumber()+"[] avaliable:"+getAvaliableRcvWindow(); } - public int getSport() { + public int getSrcPort() { return klalbHeader.getInt(1); } @@ -44,7 +44,7 @@ public class ACKTPacket extends KLALBPacket implements PortPacket { return klalbHeader.get(26)!=0; } - public int getDport() { + public int getDstPort() { return klalbHeader.getInt(5); } diff --git a/src/org/kne/cloud/network/klalb/ADDLINESPacket.java b/src/org/kne/cloud/network/klalb/ADDLINESPacket.java index 1b4b8aa..389df2b 100644 --- a/src/org/kne/cloud/network/klalb/ADDLINESPacket.java +++ b/src/org/kne/cloud/network/klalb/ADDLINESPacket.java @@ -63,7 +63,7 @@ public class ADDLINESPacket extends KLALBPacket { } @Override - public long getLength() { + public long getTotalLength() { return HEADER_LENGTH+lines.getBytes(Charset.forName("UTF-8")).length; } diff --git a/src/org/kne/cloud/network/klalb/AbstractKLALBPacketLink.java b/src/org/kne/cloud/network/klalb/AbstractKLALBPacketLink.java index 632cec7..2f932bd 100644 --- a/src/org/kne/cloud/network/klalb/AbstractKLALBPacketLink.java +++ b/src/org/kne/cloud/network/klalb/AbstractKLALBPacketLink.java @@ -3,7 +3,9 @@ package org.kne.cloud.network.klalb; import java.io.IOException; import java.net.SocketException; import java.nio.ByteBuffer; +import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; import org.kne.cloud.network.NetworkPacket; import org.kne.io.KNEChannels; @@ -19,76 +21,83 @@ public abstract class AbstractKLALBPacketLink implements KLALBPacketLink { AbstractKLALBPacketLink.defaultSoTimeout = defaultSoTimeout; } - private AtomicLong[] inputTrafficCounters; - private AtomicLong[] outputTrafficCounters; - private AtomicLong[] inputPacketsCounters; - private AtomicLong[] outputPacketsCounters; + private LongAdder[] inputTrafficCounters; + private LongAdder[] outputTrafficCounters; + private LongAdder[] inputPacketsCounters; + private LongAdder[] outputPacketsCounters; @Override - public void setOutputPacketsCounters(AtomicLong[] outCounter) { + public void setOutputPacketsCounters(LongAdder[] outCounter) { outputPacketsCounters=outCounter; } @Override - public void setInputPacketsCounters(AtomicLong[] inCounter) { + public void setInputPacketsCounters(LongAdder[] inCounter) { inputPacketsCounters=inCounter; } @Override - public void setOutputTrafficCounters(AtomicLong[] outCounter) { + public void setOutputTrafficCounters(LongAdder[] outCounter) { this.outputTrafficCounters=outCounter; } @Override - public void setInputTrafficCounters(AtomicLong[] inCounter) { + public void setInputTrafficCounters(LongAdder[] inCounter) { this.inputTrafficCounters=inCounter; } - public AtomicLong[] getInputTrafficCounters() { + public LongAdder[] getInputTrafficCounters() { return inputTrafficCounters; } - public AtomicLong[] getOutputTrafficCounters() { + public LongAdder[] getOutputTrafficCounters() { return outputTrafficCounters; } - public AtomicLong[] getInputPacketsCounters() { + public LongAdder[] getInputPacketsCounters() { return inputPacketsCounters; } - public AtomicLong[] getOutputPacketsCounters() { + public LongAdder[] getOutputPacketsCounters() { return outputPacketsCounters; } protected void incOutput(int packetLength) { if(outputTrafficCounters!=null) { - for(AtomicLong al:outputTrafficCounters) { - al.addAndGet(packetLength); + for(LongAdder al:outputTrafficCounters) { + al.add(packetLength); } } if(outputPacketsCounters!=null) { - for(AtomicLong al:outputPacketsCounters) { - al.incrementAndGet(); + for(LongAdder al:outputPacketsCounters) { + al.add(1); } } } protected void incInput(int packetLength) { if(inputTrafficCounters!=null) { - for(AtomicLong al:inputTrafficCounters) { - al.addAndGet(packetLength); + for(LongAdder al:inputTrafficCounters) { + al.add(packetLength); } } if(inputPacketsCounters!=null) { - for(AtomicLong al:inputPacketsCounters) { - al.incrementAndGet(); + for(LongAdder al:inputPacketsCounters) { + al.add(1); } } } + @Override + public void writeKLALBPackets(List kps) throws IOException { + for(KLALBPacket pack:kps) { + writeKLALBPacket(pack); + } + } + @Override public void writeKLALBPacket(KLALBPacket kp) throws IOException { - ByteBuffer dataWrite=NetworkPacket.bufferAllocator.allocate((int) kp.getLength()); - //dataWrite.clear(); + ByteBuffer dataWrite=NetworkPacket.bufferAllocator.allocate((int) kp.getTotalLength()); + dataWrite.clear(); KLALBPacket.writeKLALBPacketToChannel(KNEChannels.newWritableChannel( dataWrite), kp); dataWrite.flip(); writePacket(dataWrite); diff --git a/src/org/kne/cloud/network/klalb/BWINFPacket.java b/src/org/kne/cloud/network/klalb/BWINFPacket.java index 6bc02b8..03d7c82 100644 --- a/src/org/kne/cloud/network/klalb/BWINFPacket.java +++ b/src/org/kne/cloud/network/klalb/BWINFPacket.java @@ -20,8 +20,8 @@ public class BWINFPacket extends KLALBPacket { } @Override - public long getLength() { - return super.getLength()+16; + public long getTotalLength() { + return super.getTotalLength(); } public BWINFPacket(long upSpeed,long downSpeed) { diff --git a/src/org/kne/cloud/network/klalb/BindableKLALBPacketConsumer.java b/src/org/kne/cloud/network/klalb/BindableKLALBPacketConsumer.java index 95b9a98..913d48e 100644 --- a/src/org/kne/cloud/network/klalb/BindableKLALBPacketConsumer.java +++ b/src/org/kne/cloud/network/klalb/BindableKLALBPacketConsumer.java @@ -3,7 +3,7 @@ package org.kne.cloud.network.klalb; import java.net.InetAddress; import java.net.ServerSocket; -public interface BindableKLALBPacketConsumer extends KLALBPacketConsumer { +public interface BindableKLALBPacketConsumer extends PacketConsumer { public InetAddress getRemoteInetAddress() ; public InetAddress getLocalInetAddress() ; public int getPort() ; diff --git a/src/org/kne/cloud/network/klalb/CONST.java b/src/org/kne/cloud/network/klalb/CONST.java index eef23b2..31fc93a 100644 --- a/src/org/kne/cloud/network/klalb/CONST.java +++ b/src/org/kne/cloud/network/klalb/CONST.java @@ -2,7 +2,7 @@ package org.kne.cloud.network.klalb; public class CONST { public static final String klalb="KLALB"; - public static final String klalbver="3.2"; + public static final String klalbver="3.4"; public static final int bversion=3; public static final int sversion=1; public static final int itemwidth = 720; diff --git a/src/org/kne/cloud/network/klalb/DATATPacket.java b/src/org/kne/cloud/network/klalb/DATATPacket.java index 833e786..2b321fe 100644 --- a/src/org/kne/cloud/network/klalb/DATATPacket.java +++ b/src/org/kne/cloud/network/klalb/DATATPacket.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; +import java.util.Arrays; import org.kne.cloud.network.NetworkPacket; @@ -17,7 +18,7 @@ public class DATATPacket extends KLALBPacket implements PortPacket{ private static final int HEADER_LENGTH=20; @Override - public long getLength() { + public long getTotalLength() { return HEADER_LENGTH+dataBuffer.limit(); } volatile long resendtimer=System.nanoTime(); @@ -54,11 +55,11 @@ public class DATATPacket extends KLALBPacket implements PortPacket{ super(bb,HEADER_LENGTH); } - public int getSport() { + public int getSrcPort() { return klalbHeader.getInt(1); } - public int getDport() { + public int getDstPort() { return klalbHeader.getInt(5); } @@ -75,7 +76,9 @@ public class DATATPacket extends KLALBPacket implements PortPacket{ @Override public String toString() { - return "DATAT "+getSport()+"->"+getDport()+" "+getNumber()+"["+getSize()+"]"; + byte[]b=new byte[Math.min(dataBuffer.limit(),10)]; + dataBuffer.get(0, b); + return "DATAT "+getSrcPort()+"->"+getDstPort()+" "+getNumber()+"["+getSize()+"] "+Arrays.toString(b); } @Override diff --git a/src/org/kne/cloud/network/klalb/IPSequence.java b/src/org/kne/cloud/network/klalb/IPSequence.java index 89fa913..1e7433b 100644 --- a/src/org/kne/cloud/network/klalb/IPSequence.java +++ b/src/org/kne/cloud/network/klalb/IPSequence.java @@ -30,7 +30,10 @@ public class IPSequence { } @Override public int hashCode() { - return Objects.hash(uuid); + final int prime = 31; + int result = 1; + result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); + return result; } @Override public boolean equals(Object obj) { @@ -41,7 +44,12 @@ public class IPSequence { if (getClass() != obj.getClass()) return false; IPSequence other = (IPSequence) obj; - return Objects.equals(uuid, other.uuid); + if (uuid == null) { + if (other.uuid != null) + return false; + } else if (!uuid.equals(other.uuid)) + return false; + return true; } } diff --git a/src/org/kne/cloud/network/klalb/IPv6OverKLALBPacket.java b/src/org/kne/cloud/network/klalb/IPv6OverKLALBPacket.java index 2c18c92..9fa0f9f 100644 --- a/src/org/kne/cloud/network/klalb/IPv6OverKLALBPacket.java +++ b/src/org/kne/cloud/network/klalb/IPv6OverKLALBPacket.java @@ -13,15 +13,15 @@ public class IPv6OverKLALBPacket extends KLALBPacket { @Override - public long getLength() { - return HEADER_LENGTH+ipv6Packet.getLength(); + public long getTotalLength() { + return HEADER_LENGTH+ipv6Packet.getTotalLength(); } private IPv6Packet ipv6Packet; public IPv6OverKLALBPacket(IPv6Packet ipv6Packet) { super(IPV6OVERKLALB,HEADER_LENGTH); - klalbHeader.putLong((int) ipv6Packet.getLength()); + klalbHeader.putLong((int) ipv6Packet.getTotalLength()); this.ipv6Packet=ipv6Packet; } @@ -41,19 +41,28 @@ public class IPv6OverKLALBPacket extends KLALBPacket { return ipv6Packet; } - @Override + /*@Override public String toString() { - return "IPv6 "+ipv6Packet.getSourceAddress().getHostAddress()+"->"+ipv6Packet.getDestinationAddress().getHostAddress()+" type:"+ipv6Packet.getPayload().getProtocolNumber()+"["+getSize()+"]"; - } + return "IPv6OverKLALBPacket "+ipv6Packet.getSourceAddress().getHostAddress()+"->"+ipv6Packet.getDestinationAddress().getHostAddress()+" type:"+ipv6Packet.getPayload().getProtocolNumber()+"["+getSize()+"]"; + }*/ + + public long getSize() { - return ipv6Packet.getLength(); + return ipv6Packet.getTotalLength(); } + @Override + public String toString() { + return "IPv6OverKLALBPacket [ipv6Packet=" + ipv6Packet + "]"; + } + + + @Override public void writeToChannel(WritableByteChannel dto) throws IOException { - klalbHeader.putLong(1, ipv6Packet.getLength()); + klalbHeader.putLong(1, ipv6Packet.getTotalLength()); super.writeToChannel(dto); ipv6Packet.writeToChannel(dto); } diff --git a/src/org/kne/cloud/network/klalb/KLALBConfig.java b/src/org/kne/cloud/network/klalb/KLALBConfig.java index 756e059..d31e91f 100644 --- a/src/org/kne/cloud/network/klalb/KLALBConfig.java +++ b/src/org/kne/cloud/network/klalb/KLALBConfig.java @@ -32,7 +32,7 @@ import java.io.FileNotFoundException; public class KLALBConfig extends ArrayList{ public static void main(String[] args) throws UnknownHostException, JsonSyntaxException, JsonIOException, FileNotFoundException { - GsonBuilder gb=new GsonBuilder(); + GsonBuilder gb=new GsonBuilder().setPrettyPrinting(); MultipurposeSocketAddress.registerToGsonBuilder(gb); KLALBConfigItem.registerToGsonBuilder(gb); Gson gson=gb.create(); diff --git a/src/org/kne/cloud/network/klalb/KLALBController.java b/src/org/kne/cloud/network/klalb/KLALBController.java index 312d9be..1baad1e 100644 --- a/src/org/kne/cloud/network/klalb/KLALBController.java +++ b/src/org/kne/cloud/network/klalb/KLALBController.java @@ -43,6 +43,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import org.kne.cloud.clock.AdjustedNanoClock; +import org.kne.cloud.clock.HighAccuracyClock; import org.kne.cloud.network.IPMulticastDiscovery; import org.kne.cloud.network.MultipurposeSocketAddress; import org.kne.cloud.network.PortPair; @@ -54,11 +55,24 @@ import org.kne.cloud.network.ipv6.IPv6Packet.IPv6ExtHeader; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; import org.kne.cloud.network.ipv6.IPv6TUNLoopbackNetworkLink; import org.kne.cloud.network.ipv6.Inet6AddressGroup; +import org.kne.cloud.network.ipv6.LoopbackIPv6NetworkLink; +import org.kne.cloud.network.ipv6.Neighbor; import org.kne.cloud.network.monitor.MonitorData; import org.kne.cloud.network.monitor.SpeedAndTrafficMonitorDataImpl; +import org.kne.cloud.network.monitor.TimestampMonitor; +import org.kne.cloud.network.ntp.NTPContext; +import org.kne.cloud.network.ntp.NTPv4Packet; +import org.kne.cloud.network.ntp.NTPv4Protocol; +import org.kne.cloud.network.ntp.NTPv4Protocol.NTPPeer; +import org.kne.cloud.network.srv6.JsonDataPacket; import org.kne.cloud.network.srv6.KLALBRoutingProtocol; +import org.kne.cloud.network.srv6.KLALBRoutingProtocolAPIClient; +import org.kne.cloud.network.srv6.KLALBRoutingProtocolAPIServer; +import org.kne.cloud.network.srv6.KLALBRoutingProtocolJsonData; import org.kne.cloud.network.srv6.PacketConsumer; import org.kne.cloud.network.srv6.SRv6Router; +import org.kne.cloud.network.srv6.SRv6RouterListener; +import org.kne.cloud.network.tcp.UDPPacket; import org.kne.cloud.network.te.BandwidthDistributer; import org.kne.cloud.network.te.DWRRLoadingBalanceAlgorithm; import org.kne.concurrent.DisruptorExecutor; @@ -66,239 +80,314 @@ import org.kne.concurrent.HighPerformanceExecutor; import org.kne.io.KNEChannels; import org.pcap4j.packet.IpV6Packet.IpV6Header; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; public class KLALBController { - - private SpeedAndTrafficMonitorDataImpl linkMonitor=new SpeedAndTrafficMonitorDataImpl(); + //TimestampMonitor<> - private SpeedAndTrafficMonitorDataImpl datatMonitor=new SpeedAndTrafficMonitorDataImpl(); + private SpeedAndTrafficMonitorDataImpl linkMonitor = new SpeedAndTrafficMonitorDataImpl(); + + private SpeedAndTrafficMonitorDataImpl datatMonitor = new SpeedAndTrafficMonitorDataImpl(); + + private List selflineTable = new ArrayList<>(); - private ListselflineTable=new ArrayList<>(); - private static final boolean showpacket = false; - private static final int PREFIX = 128;//112 - private static final int DISCOVERY_PORT=4569; - - private static List ipmd=new ArrayList<>(); - - private ListdnsAddresses=new ArrayList<>(); - + private static final int PREFIX = 128;// 112 + private static final int DISCOVERY_PORT = 4569; + + private static List ipmd = new ArrayList<>(); + + private List networkInterfaceExcept = new ArrayList<>(); + + public List getNetworkInterfaceExcept() { + return networkInterfaceExcept; + } + + private List dnsAddresses = new ArrayList<>(); + public List getDnsAddresses() { return dnsAddresses; } - private Timer twk=new Timer("网卡检测扫描计时器", true); - { - - twk.schedule(new TimerTask() { - + private Timer twk = new Timer("网卡检测扫描计时器", true); + + + private TimerTask tsk1=new TimerTask() { + @Override public void run() { - + try { - - - - Enumerationeu= NetworkInterface.getNetworkInterfaces(); + + Enumeration eu = NetworkInterface.getNetworkInterfaces(); while (eu.hasMoreElements()) { NetworkInterface networkInterface = (NetworkInterface) eu.nextElement(); - if(networkInterface.getDisplayName().startsWith(IPv6TUNLoopbackNetworkLink.KLALB_DECENTRALIZED_S_RV6_NETWORK)) { + + if (networkInterface.getDisplayName() + .startsWith(IPv6TUNLoopbackNetworkLink.KLALB_DECENTRALIZED_S_RV6_NETWORK)) { continue; } - if(networkInterface.isUp()) { - //System.out.println(networkInterface+" "+networkInterface.isUp()); - Enumerationei= networkInterface.getInetAddresses(); - while (ei.hasMoreElements()) { - InetAddress inetAddress = (InetAddress) ei.nextElement(); - if(!inetAddress.isLoopbackAddress()) - for (Iterator iterator = listens.iterator(); iterator.hasNext();) { - MultipurposeSocketAddress tcpl = (MultipurposeSocketAddress) iterator.next(); - - try { - if(tcpl.getInetAddress().isAnyLocalAddress()||tcpl.getInetAddress().equals(inetAddress)) { - MultipurposeSocketAddress bind=new MultipurposeSocketAddress(tcpl.getType(),inetAddress.getHostAddress(),tcpl.getPort()); - //System.out.println(bind); - synchronized (selflineTable) { - if(!selflineTable.contains(bind)) { - selflineTable.add(bind); - } -} - } - } catch (UnknownHostException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - - - } + if (networkInterfaceExcept.contains(networkInterface)) { + continue; } - - + if (networkInterface.isUp()) { + // System.out.println(networkInterface+" "+networkInterface.isUp()); + Enumeration ei = networkInterface.getInetAddresses(); + while (ei.hasMoreElements()) { + InetAddress inetAddress = (InetAddress) ei.nextElement(); + if (!inetAddress.isLoopbackAddress()) + for (Iterator iterator = listens.iterator(); iterator + .hasNext();) { + MultipurposeSocketAddress tcpl = (MultipurposeSocketAddress) iterator.next(); + + try { + if (tcpl.getInetAddress().isAnyLocalAddress() + || tcpl.getInetAddress().equals(inetAddress)) { + MultipurposeSocketAddress bind = new MultipurposeSocketAddress( + tcpl.getType(), inetAddress.getHostAddress(), tcpl.getPort()); + // System.out.println(bind); + synchronized (selflineTable) { + if (!selflineTable.contains(bind)) { + selflineTable.add(bind); + } + } + } + } catch (UnknownHostException e) { + // TODO 自动生成的 catch 块 + e.printStackTrace(); + } + + } + } + } } } catch (SocketException e) { } - lineslock.writeLock().lock(); + lineslock.writeLock().lock(); try { - - Listlocaladdress=new ArrayList<>(); - Enumerationeu= NetworkInterface.getNetworkInterfaces(); + + List localaddress = new ArrayList<>(); + Enumeration eu = NetworkInterface.getNetworkInterfaces(); while (eu.hasMoreElements()) { NetworkInterface networkInterface = (NetworkInterface) eu.nextElement(); - if(networkInterface.isUp()) { - //System.out.println(networkInterface+" "+networkInterface.isUp()); - Enumerationei= networkInterface.getInetAddresses(); - while (ei.hasMoreElements()) { - InetAddress inetAddress = (InetAddress) ei.nextElement(); - MultipurposeSocketAddress bind=new MultipurposeSocketAddress(inetAddress.getHostAddress(),0); - localaddress.add(bind); - - } + if (networkInterface.isUp()) { + // System.out.println(networkInterface+" "+networkInterface.isUp()); + Enumeration ei = networkInterface.getInetAddresses(); + while (ei.hasMoreElements()) { + InetAddress inetAddress = (InetAddress) ei.nextElement(); + MultipurposeSocketAddress bind = new MultipurposeSocketAddress( + inetAddress.getHostAddress(), 0); + localaddress.add(bind); + + } } } - Setst=new HashSet<>(); - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine multipurposeSocketAddress = (KLALBRemoteLine) iterator.next(); - if(multipurposeSocketAddress.getSocketAddress()!=null) - st.add(multipurposeSocketAddress.getSocketAddress()); + Set st = new HashSet<>(); + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link=iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine multipurposeSocketAddress = (KLALBRemoteLine) link; + if (multipurposeSocketAddress.getSocketAddress() != null) + st.add(multipurposeSocketAddress.getSocketAddress()); + } } - - + for (Iterator iterator = st.iterator(); iterator.hasNext();) { - MultipurposeSocketAddress target = (MultipurposeSocketAddress) iterator - .next(); + MultipurposeSocketAddress target = (MultipurposeSocketAddress) iterator.next(); addRemoteLines(target); - /*for (Iterator iterator2 = localaddress.iterator(); iterator2.hasNext();) { - MultipurposeSocketAddress bind = (MultipurposeSocketAddress) iterator2 - .next(); - try { - if(target.getInetAddress().isLoopbackAddress() &&(!bind.getInetAddress().isLoopbackAddress())) { - continue; - } - if((!target.getInetAddress().isLoopbackAddress()) &&bind.getInetAddress().isLoopbackAddress()) { - continue; - } - if(target.getInetAddress()instanceof Inet4Address&&bind.getInetAddress() instanceof Inet6Address) { - continue; - } - if(target.getInetAddress() instanceof Inet6Address &&bind.getInetAddress() instanceof Inet4Address) { - continue; - } - } catch (UnknownHostException e) { - if(e.getMessage().toLowerCase().contains("no scope_id found")) - } - if(!checkContainsTargetAndBind(target,bind)) { - //System.out.println(target+" "+bind); - addRemoteLine( new KLALBRemoteLine(target,bind)); - } - }*/ - + /* + * for (Iterator iterator2 = localaddress.iterator(); + * iterator2.hasNext();) { MultipurposeSocketAddress bind = + * (MultipurposeSocketAddress) iterator2 .next(); try { + * if(target.getInetAddress().isLoopbackAddress() + * &&(!bind.getInetAddress().isLoopbackAddress())) { continue; } + * if((!target.getInetAddress().isLoopbackAddress()) + * &&bind.getInetAddress().isLoopbackAddress()) { continue; } + * if(target.getInetAddress()instanceof Inet4Address&&bind.getInetAddress() + * instanceof Inet6Address) { continue; } if(target.getInetAddress() instanceof + * Inet6Address &&bind.getInetAddress() instanceof Inet4Address) { continue; } } + * catch (UnknownHostException e) { + * if(e.getMessage().toLowerCase().contains("no scope_id found")) } + * if(!checkContainsTargetAndBind(target,bind)) { + * //System.out.println(target+" "+bind); addRemoteLine( new + * KLALBRemoteLine(target,bind)); } } + */ + } - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine reml = (KLALBRemoteLine) iterator - .next(); - if(reml.getSocketAddress()!=null) { - if(reml.getBindAddress()!=null||reml.getRemoteVaddr()!=null) - if(!localaddress.contains(reml.getBindAddress())) { - reml.close(); - lines.remove(reml); + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link=iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine reml = (KLALBRemoteLine) link; + if (reml.getSocketAddress() != null) { + if (reml.getBindAddress() != null || reml.getRemoteVaddr() != null) + if (!localaddress.contains(reml.getBindAddress())) { + reml.close(); + srv6Router.getLinkTabel().remove(reml); + } } } } - + for (Iterator iterator = ipmd.iterator(); iterator.hasNext();) { IPMulticastDiscovery ipMulticastDiscovery = (IPMulticastDiscovery) iterator.next(); - if(ipMulticastDiscovery.isClosed()||(!ipMulticastDiscovery.getNinterface().isUp())) { + if (ipMulticastDiscovery.isClosed() || (!ipMulticastDiscovery.getNinterface().isUp())) { iterator.remove(); try { ipMulticastDiscovery.close(); } catch (IOException e) { e.printStackTrace(); } - System.out.println("移除网卡:"+ipMulticastDiscovery.getNinterface()); + System.out.println("移除网卡:" + ipMulticastDiscovery.getNinterface()); } } - Enumerationeu2= NetworkInterface.getNetworkInterfaces(); + Enumeration eu2 = NetworkInterface.getNetworkInterfaces(); while (eu2.hasMoreElements()) { NetworkInterface networkInterface = (NetworkInterface) eu2.nextElement(); - if(networkInterface.getDisplayName().startsWith(IPv6TUNLoopbackNetworkLink.KLALB_DECENTRALIZED_S_RV6_NETWORK)) { + if (networkInterface.getDisplayName() + .startsWith(IPv6TUNLoopbackNetworkLink.KLALB_DECENTRALIZED_S_RV6_NETWORK)) { continue; } - if(networkInterface.isUp()) { - - Enumerationei= networkInterface.getInetAddresses(); - loop:while (ei.hasMoreElements()) { - InetAddress bidr = (InetAddress) ei.nextElement(); - - for (Iterator iterator = ipmd.iterator(); iterator.hasNext();) { - IPMulticastDiscovery ipMulticastDiscovery = (IPMulticastDiscovery) iterator.next(); - if(networkInterface.equals(ipMulticastDiscovery.getNinterface())&&bidr.equals(ipMulticastDiscovery.getBind().getAddress())) { - continue loop; - } - } - - - - try { - //InetAddress bidr=InetAddress.getByName("::0"); - if(bidr instanceof Inet6Address) { - IPMulticastDiscovery ipd=new IPMulticastDiscovery(new InetSocketAddress(bidr,DISCOVERY_PORT), new InetSocketAddress(InetAddress.getByName("ff02::2486"),DISCOVERY_PORT), networkInterface,selflineTable,10000L); - ipd.setCon((mpa)->{ - //System.out.println("添加本地IPv6链路:"+mpa); - try { - if(!checkIsSelf(mpa)) - addRemoteLines(mpa); - } catch (UnknownHostException e) { + if (networkInterfaceExcept.contains(networkInterface)) { + continue; + } + + if (networkInterface.isUp()) { + + Enumeration ei = networkInterface.getInetAddresses(); + loop: while (ei.hasMoreElements()) { + InetAddress bidr = (InetAddress) ei.nextElement(); + + for (Iterator iterator = ipmd.iterator(); iterator.hasNext();) { + IPMulticastDiscovery ipMulticastDiscovery = (IPMulticastDiscovery) iterator.next(); + if (networkInterface.equals(ipMulticastDiscovery.getNinterface()) + && bidr.equals(ipMulticastDiscovery.getBind().getAddress())) { + continue loop; } - }); - ipd.start(); - ipmd.add(ipd); - }else if(bidr instanceof Inet4Address) { - //bidr=InetAddress.getByName("0.0.0.0"); - IPMulticastDiscovery ipd2=new IPMulticastDiscovery(new InetSocketAddress(bidr,DISCOVERY_PORT), new InetSocketAddress(InetAddress.getByName("224.0.0.86"),DISCOVERY_PORT), networkInterface,selflineTable,10000L); - ipd2.setCon((mpa)->{ - //System.out.println("添加本地IPv4链路:"+mpa); - try { - if(!checkIsSelf(mpa)) - addRemoteLines(mpa); - } catch (UnknownHostException e) { + } + + try { + // InetAddress bidr=InetAddress.getByName("::0"); + + if (bidr instanceof Inet6Address) { + IPMulticastDiscovery ipd = new IPMulticastDiscovery( + new InetSocketAddress(bidr, DISCOVERY_PORT), + new InetSocketAddress(InetAddress.getByName("ff02::2486"), + DISCOVERY_PORT), + networkInterface, selflineTable, 10000L); + ipd.setCon((mpa) -> { + // System.out.println("添加本地IPv6链路:"+mpa); + try { + if (!checkIsSelf(mpa)) + addRemoteLines(mpa); + } catch (UnknownHostException e) { + } + }); + ipd.start(); + ipmd.add(ipd); + } else if (bidr instanceof Inet4Address) { + // bidr=InetAddress.getByName("0.0.0.0"); + IPMulticastDiscovery ipd2 = new IPMulticastDiscovery( + new InetSocketAddress(bidr, DISCOVERY_PORT), + new InetSocketAddress(InetAddress.getByName("224.0.0.86"), + DISCOVERY_PORT), + networkInterface, selflineTable, 10000L); + ipd2.setCon((mpa) -> { + // System.out.println("添加本地IPv4链路:"+mpa); + try { + if (!checkIsSelf(mpa)) + addRemoteLines(mpa); + } catch (UnknownHostException e) { + } + }); + ipd2.start(); + ipmd.add(ipd2); } - }); - ipd2.start(); - ipmd.add(ipd2); + System.out.println("添加网卡:" + networkInterface); + } catch (BindException e) { + // e.printStackTrace(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } - System.out.println("添加网卡:"+networkInterface); - }catch(BindException e) { - //e.printStackTrace(); - } catch (UnknownHostException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - - - } - //} + + } + // } } } - + } catch (SocketException e) { - }finally { + } finally { lineslock.writeLock().unlock(); } - } private boolean checkIsSelf(MultipurposeSocketAddress inetAddress) throws UnknownHostException { - - return inetAddress.getInetAddress().isAnyLocalAddress()||inetAddress.getInetAddress().isLoopbackAddress()||selflineTable.contains(inetAddress); + + return inetAddress.getInetAddress().isAnyLocalAddress() + || inetAddress.getInetAddress().isLoopbackAddress() || selflineTable.contains(inetAddress); } - }, 2000, 2000); - } + }; + + private TimerTask tsk2=new TimerTask() { + + @Override + public void run() { + + List nt=ntptable; + //System.out.println("srv6 ip"+nb); + if(nvc2!=null) { + Set sp=nvc2.getPeers(); + for (MultipurposeSocketAddress server : nt) { + sp.add(new NTPPeer(server, NTPv4Packet.NTP_CLIENT)); + + } + sp.removeIf((p)->{ + for (MultipurposeSocketAddress server : nt) { + if(server.equals(p.getAddress())) { + return false; + } + } + return true; + }); + } + } + }; + + + private TimerTask tsk3=new TimerTask() { + + @Override + public void run() { + if(srv6Router!=null&&routingProtocol!=null) { + Set nb=srv6Router.getLocators(); + for (Iterator iterator = nb.iterator(); iterator.hasNext();) { + Inet6AddressGroup neighbor = (Inet6AddressGroup) iterator.next(); + try { + InetSocketAddress iaddr= new InetSocketAddress( neighbor.getAddress(),KLALBRoutingProtocol.DEFAULT_PORT); + apiClient.requestOpenLines(iaddr,(v)->{ + ThreadTool.makeVDaemonThreadIfSupport("线路添加任务", () -> { + for (MultipurposeSocketAddress msa:v) { + // System.out.print(msa); + addRemoteLines(msa); + } + }).start(); + }); + } catch (IOException e) { + e.printStackTrace(); + } + + } + } + } + }; + + public SpeedAndTrafficMonitorDataImpl getLinkMonitor() { return linkMonitor; } @@ -307,246 +396,295 @@ public class KLALBController { return datatMonitor; } - private static ConcurrentHashMapclocks=new ConcurrentHashMap<>(); + private HighAccuracyClock clock; - protected AdjustedNanoClock getAdjustedClockByVaddr(Inet6Address vaddr) { - AdjustedNanoClock clk=clocks.get(vaddr); - if(clk==null) { - clk=new AdjustedNanoClock(); - clocks.put(vaddr, clk); + public HighAccuracyClock getClock() { + return clock; + } + + private SocketType streamSocketType = new KLALBStreamSocketType(); + + public class KLALBStreamSocketType extends SocketType { + + public KLALBStreamSocketType() { + super(new KLALBVirtualSocketFactory(KLALBController.this), + new KLALBVirtualServerSocketFactory(KLALBController.this), + new KLALBVirtualSocketChannelFactory(KLALBController.this), + new KLALBVirtualServerSocketChannelFactory(KLALBController.this)); } - return clk; + } + public SocketType getStreamSocketType() { + return streamSocketType; + } - - + private SocketType datagramSocketType = new KLALBDatagramSocketType(); - private SocketType socketType= new KLALBSocketType(); - - public class KLALBSocketType extends SocketType{ + public class KLALBDatagramSocketType extends SocketType { - public KLALBSocketType() { - super(new KLALBVirtualSocketFactory(KLALBController.this), new KLALBVirtualServerSocketFactory(KLALBController.this),new KLALBVirtualSocketChannelFactory(KLALBController.this), new KLALBVirtualServerSocketChannelFactory(KLALBController.this)); + public KLALBDatagramSocketType() { + super(new KLALBVirtualDatagramSocketFactory(KLALBController.this), + new KLALBVirtualDatagramServerSocketFactory(KLALBController.this)); + //new KLALBVirtualDatagramSocketChannelFactory(KLALBController.this), + //new KLALBVirtualDatagramServerSocketChannelFactory(KLALBController.this)); } - - } - public SocketType getSocketType() { - return socketType; + } - - - //private Supplier selflineTableSupplier=()->{return null;}; - - - /*public Supplier getSelflineTableSupplier() { - return selflineTableSupplier; + public SocketType getDatagramSocketType() { + return datagramSocketType; } - public void setSelflineTableSupplier(Supplier selflineTableSupplier) { - this.selflineTableSupplier = selflineTableSupplier; - }*/ + // private Supplier selflineTableSupplier=()->{return null;}; + + /* + * public Supplier getSelflineTableSupplier() { return + * selflineTableSupplier; } + * + * public void setSelflineTableSupplier(Supplier selflineTableSupplier) + * { this.selflineTableSupplier = selflineTableSupplier; } + */ public List getSelflineTable() { return selflineTable; } - - //private Inet6AddressGroup self; + // private Inet6AddressGroup self; public Inet6AddressGroup getSelf() { return srv6Router.getLocator(); } - private List lines=new CopyOnWriteArrayList<>(); - private ReadWriteLock lineslock=new ReentrantReadWriteLock(); - - public List getLines() { - return lines; + + private ReadWriteLock lineslock = new ReentrantReadWriteLock(); + + public List getLines() { + return srv6Router.getLinkTabel(); } - private PortBinder streamPortBinder=new PortBinder(this); + private PortBinder streamPortBinder = new PortBinder(this); - private PortBinder rawPortBinder=new PortBinder(this); + private PortBinder datagramPortBinder = new PortBinder(this); + private PortBinder rawPortBinder = new PortBinder(this); + protected PortBinder getStreamPortBinder() { return streamPortBinder; } - public PortBinder getRawPortBinder() { + protected PortBinder getDatagramPortBinder() { + return datagramPortBinder; + } + + protected PortBinder getRawPortBinder() { return rawPortBinder; } public void reconnectImmediately() { - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink val=iterator.next(); + if(val instanceof KLALBRemoteLine) { + + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) val; klalbRemoteLine.reconnectImmediately(); } + } } - - private PacketReceiver prc=new PacketReceiver(); - private class PacketReceiver implements Consumer{ + + + private NTPv4Protocol nvc2; + + private KLALBRoutingProtocolAPIServer apiServer; + + private KLALBRoutingProtocolAPIClient apiClient; + + /*private PacketReceiver prc = new PacketReceiver(); + private class PacketReceiver implements Consumer { @Override - public void accept( KLALBPacket rec) { + public void accept(KLALBPacket rec) { switch (rec.getType()) { case KLALBPacket.ADDLINES: - ADDLINESPacket lpt=(ADDLINESPacket) rec; - String s=lpt.getLines(); - ThreadTool.makeVDaemonThreadIfSupport("线路添加任务", ()->{ - Scanner scn=new Scanner(s); - while(scn.hasNext()) { - String sn=scn.nextLine(); - MultipurposeSocketAddress msa= new MultipurposeSocketAddress(sn); + ADDLINESPacket lpt = (ADDLINESPacket) rec; + String s = lpt.getLines(); + ThreadTool.makeVDaemonThreadIfSupport("线路添加任务", () -> { + Scanner scn = new Scanner(s); + while (scn.hasNext()) { + String sn = scn.nextLine(); + MultipurposeSocketAddress msa = new MultipurposeSocketAddress(sn); addRemoteLines(msa); - - } + + } }).start(); break; default: break; - + } } - + }*/ + public void addRemoteLines(List select) { + for(MultipurposeSocketAddress target:select) { + addRemoteLines(target); + } } - - public List addRemoteLines(MultipurposeSocketAddress target) { + public List addRemoteLines(MultipurposeSocketAddress target) { lineslock.writeLock().lock(); - try { - Listadded=new ArrayList<>(); - try { - Enumerationeu= NetworkInterface.getNetworkInterfaces(); - while (eu.hasMoreElements()) { - NetworkInterface networkInterface = (NetworkInterface) eu.nextElement(); - if(networkInterface.isUp()) { - //System.out.println(networkInterface+" "+networkInterface.isUp()); - Enumerationei= networkInterface.getInetAddresses(); + try { + List added = new ArrayList<>(); + try { + Enumeration eu = NetworkInterface.getNetworkInterfaces(); + while (eu.hasMoreElements()) { + NetworkInterface networkInterface = (NetworkInterface) eu.nextElement(); + if (networkInterface.isUp()) { + // System.out.println(networkInterface+" "+networkInterface.isUp()); + Enumeration ei = networkInterface.getInetAddresses(); while (ei.hasMoreElements()) { InetAddress inetAddress = (InetAddress) ei.nextElement(); try { - MultipurposeSocketAddress bind=new MultipurposeSocketAddress(inetAddress.getHostAddress(),0); - try { - if(target.getInetAddress().isLoopbackAddress() &&(!bind.getInetAddress().isLoopbackAddress())) { - continue; + MultipurposeSocketAddress bind = new MultipurposeSocketAddress( + inetAddress.getHostAddress(), 0); + try { + if (target.getInetAddress().isLoopbackAddress() + && (!bind.getInetAddress().isLoopbackAddress())) { + continue; + } + if ((!target.getInetAddress().isLoopbackAddress()) + && bind.getInetAddress().isLoopbackAddress()) { + continue; + } + if (target.getInetAddress() instanceof Inet4Address + && bind.getInetAddress() instanceof Inet6Address) { + continue; + } + if (target.getInetAddress() instanceof Inet6Address + && bind.getInetAddress() instanceof Inet4Address) { + continue; + } + // System.out.println(target+"->"+bind); + } catch (UnknownHostException e) { + if (e.getMessage().trim().toLowerCase().contains("no scope_id found")) { + throw e; + } + // e.printStackTrace(); } - if((!target.getInetAddress().isLoopbackAddress()) &&bind.getInetAddress().isLoopbackAddress()) { - continue; + if (!checkContainsTargetAndBind(target, bind)) { + KLALBRemoteLine line = new KLALBRemoteLine(target, bind); + addRemoteLine(line); + added.add(line); } - if(target.getInetAddress()instanceof Inet4Address&&bind.getInetAddress() instanceof Inet6Address) { - continue; - } - if(target.getInetAddress() instanceof Inet6Address &&bind.getInetAddress() instanceof Inet4Address) { - continue; - } - //System.out.println(target+"->"+bind); } catch (UnknownHostException e) { - if(e.getMessage().trim().toLowerCase().contains("no scope_id found")) { - throw e; - } - //e.printStackTrace(); + } - if(!checkContainsTargetAndBind(target,bind)) { - KLALBRemoteLine line=new KLALBRemoteLine(target,bind); - addRemoteLine(line ); - added.add(line); - } - } catch (UnknownHostException e) { - - } - } } } - } catch (SocketException e) { - if(!checkContainsTarget(target)) { - KLALBRemoteLine line= new KLALBRemoteLine(target); + } + } catch (SocketException e) { + if (!checkContainsTarget(target)) { + KLALBRemoteLine line = new KLALBRemoteLine(target); addRemoteLine(line); added.add(line); - } - //throw e; } - - return added; - }finally { - lineslock.writeLock().unlock(); - } + // throw e; + } + + return added; + } finally { + lineslock.writeLock().unlock(); + } } + public List removeRemoteLines(MultipurposeSocketAddress mpsa) { - Listrmved=new ArrayList<>(); - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); - if(mpsa.equals( klalbRemoteLine.getSocketAddress())){ + List rmved = new ArrayList<>(); + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link= iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine)link; + if (mpsa.equals(klalbRemoteLine.getSocketAddress())) { klalbRemoteLine.close(); rmved.add(klalbRemoteLine); } + } } return rmved; } + public Inet6Address getRemoteVaddrBySocketAddress(MultipurposeSocketAddress target) throws SocketTimeoutException { - KLALBRemoteLine kr=null; - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); - if(target.equals(klalbRemoteLine.getSocketAddress())&&klalbRemoteLine.getBindAddress()==null) { - kr=klalbRemoteLine; + KLALBRemoteLine kr = null; + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link= iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) link; + if (target.equals(klalbRemoteLine.getSocketAddress()) && klalbRemoteLine.getBindAddress() == null) { + kr = klalbRemoteLine; break; } + } } - - if(kr==null) { - kr=new KLALBRemoteLine(target); - addRemoteLine(kr); - kr.waitForRemoteVaddrAvaliable(20000); - }else { + + if (kr == null) { + kr = new KLALBRemoteLine(target); + addRemoteLine(kr); + kr.waitForRemoteVaddrAvaliable(20000); + } else { kr.reconnectImmediately(); kr.waitForRemoteVaddrAvaliable(20000); } return kr.getRemoteVaddr().getAddress(); } - private boolean checkContainsTargetAndBind(MultipurposeSocketAddress target,MultipurposeSocketAddress bind) { - boolean b=false; - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); - if(bind.equals(klalbRemoteLine.getBindAddress())&&target.equals(klalbRemoteLine.getSocketAddress())) { - b=true; + + private boolean checkContainsTargetAndBind(MultipurposeSocketAddress target, MultipurposeSocketAddress bind) { + boolean b = false; + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link= iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) link; + if (bind.equals(klalbRemoteLine.getBindAddress()) && target.equals(klalbRemoteLine.getSocketAddress())) { + b = true; break; } + } } return b; } private boolean checkContainsTarget(MultipurposeSocketAddress target) { - boolean b=false; - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); - if(target.equals(klalbRemoteLine.getSocketAddress())) { - b=true; + boolean b = false; + for (Iterator iterator = srv6Router.getLinkTabel().iterator(); iterator.hasNext();) { + IPv6NetworkLink link= iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) link; + if (target.equals(klalbRemoteLine.getSocketAddress())) { + b = true; break; } } + } return b; } - public void addRemoteLine(KLALBRemoteLine krs) { + public void addRemoteLine(KLALBRemoteLine krs) { lineslock.writeLock().lock(); try { - krs.setPacketReceiver(prc); - krs.setKlalbController(this); - krs.setLocalVaddrSupplier(()->{return getSelf();}); - krs.startIO(); - String selflineTable=generateSelfLineTable(); - if(selflineTable!=null&&!selflineTable.equals("")) - krs.sendPacket(new ADDLINESPacket(selflineTable)); - lines.add(krs); - }finally { + //krs.setPacketReceiver(prc); + krs.setKlalbController(this); + krs.setLocalVaddrSupplier(() -> { + return getSelf(); + }); + krs.startIO(); + String selflineTable = generateSelfLineTable(); + if (selflineTable != null && !selflineTable.equals("")) + krs.sendPacket(new ADDLINESPacket(selflineTable)); + srv6Router.getLinkTabel().add(krs); + } finally { lineslock.writeLock().unlock(); } } - private String generateSelfLineTable() { - StringBuilder sbd=new StringBuilder(); + StringBuilder sbd = new StringBuilder(); for (Iterator iterator = selflineTable.iterator(); iterator.hasNext();) { MultipurposeSocketAddress klalbRemoteLine = (MultipurposeSocketAddress) iterator.next(); sbd.append(klalbRemoteLine.toString()); @@ -554,348 +692,395 @@ public class KLALBController { } return sbd.toString(); } - - private class KLALBProtocolPacketConsumer implements PacketConsumer{ + + private class UDPProtocolPacketConsumer implements PacketConsumer { @Override - public void accept(IPv6Packet packx) throws IOException { - //HighPerformanceExecutor.defaultExecutor.execute(()->{ - - /*System.out.println("RCV:"+packx.getPayload().getData()); - byte[]b=new byte[packx.getPayload().getData().limit()]; - packx.getPayload().getData().get(0, b); - System.out.println(Arrays.toString(b));*/ - IPv6Payload pl=packx.getPayload(); + public boolean accept(IPv6Packet packx) throws IOException { + + IPv6Payload pl = packx.getPayload(); packx.putTimePassport("unpacked"); packx.printPassport(); - if(pl instanceof KLALBPacket) { - KLALBPacket rec=(KLALBPacket) pl; - //KLALBPacket rec=KLALBPacket.createByBuffer(packx.getPayload().getData()); - if(showpacket) - System.out.println("KLALB_RX:"+rec); - if(rec instanceof PortPacket) { - rec.setCE(packx.isCE()); - Inet6Address srcA=packx.getSourceAddress(); - PortPacket pt=(PortPacket) rec; - if(!streamPortBinder.distributePacketToConsumer( srcA,pt)) { - if(!(pt instanceof RSTPacket)) - try { - sendPacketToAddress(srcA,0, new RSTPacket(pt.getDport(), pt.getSport()),2); - } catch (IOException e) { - e.printStackTrace(); - } + if (pl instanceof UDPPacket) { + UDPPacket rec = (UDPPacket) pl; + if (showpacket) + System.out.println("UDP_RX:" + rec); + Inet6Address srcA = packx.getSourceAddress(); + PortPacket pt = (PortPacket) rec; + if(datagramPortBinder.distributePacketToConsumer(srcA, pt)) { + return true; } } + return false; + // packx.dispose(); + // }); + } + + } + + private class KLALBProtocolPacketConsumer implements PacketConsumer { + + @Override + public boolean accept(IPv6Packet packx) throws IOException { + IPv6Payload pl = packx.getPayload(); + packx.putTimePassport("unpacked"); + packx.printPassport(); + if (pl instanceof KLALBPacket) { + KLALBPacket rec = (KLALBPacket) pl; + if (showpacket) + System.out.println("KLALB_RX:" + rec); + if (rec instanceof PortPacket) { + rec.setCE(packx.isCE()); + Inet6Address srcA = packx.getSourceAddress(); + PortPacket pt = (PortPacket) rec; + if (streamPortBinder.distributePacketToConsumer(srcA, pt)) { + }else { + if (!(pt instanceof RSTPacket)) + HighPerformanceExecutor.defaultExecutor.execute(() -> { + sendPacketToAddress(srcA, 0, new RSTPacket(pt.getDstPort(), pt.getSrcPort()), 2); + }); + } + } } - //packx.dispose(); - //}); + return true; + // packx.dispose(); } - + } - private void loadSRv6ProtocolStack(Inet6AddressGroup selfx,boolean enableVirtualAdapter) { - srv6Router=new SRv6Router(selfx); - if(enableVirtualAdapter) - try { - IPv6TUNLoopbackNetworkLink tunlink=new IPv6TUNLoopbackNetworkLink(new Inet6AddressGroup( srv6Router.getLocator().getAddress(),32),SRv6Router.MTU, dnsAddresses); - tunlink.setMonitor(datatMonitor); - srv6Router.getLinkTabel().add(tunlink); - } catch (Exception e) { - e.printStackTrace(); - } + + private void loadSRv6ProtocolStack(Inet6AddressGroup selfx, boolean enableVirtualAdapter) { + srv6Router = new SRv6Router(selfx); srv6Router.runKLALBRouteProtocol(); - srv6Router.getProtocolNumberRegister().put(KLALBPacket.KLALB_PROTOCOL_NUMBER,new KLALBProtocolPacketConsumer()); + routingProtocol = srv6Router.getKlalbRouteProtol(); + routingProtocol.addReceiver((addr,packet)->{ + + + }); + System.out.println("SRv6协议栈已加载"); - } - public KLALBController() { - this(true,null); - } - public KLALBController (Inet6Address self) { - this(self,true,null); - } - public KLALBController(Inet6Address self,boolean enableVirtualAdapter,List dnsaddr) { - this.dnsAddresses=dnsaddr; - Inet6AddressGroup selfg =new Inet6AddressGroup(self, PREFIX); - loadSRv6ProtocolStack(selfg,enableVirtualAdapter); - } - public KLALBController(boolean enableVirtualAdapter,List dnsaddr) { - this.dnsAddresses=dnsaddr; - SecureRandom sc=new SecureRandom(); - byte[]v=new byte[16]; - sc.nextBytes(v); - v[0]=(byte)0x24; - v[1]=(byte) 0x86; - v[2]=0; - v[3]=1; - v[14]=0; - v[15]=1; - Inet6AddressGroup selfx=null; + + if (enableVirtualAdapter) + try { + IPv6TUNLoopbackNetworkLink tunlink = new IPv6TUNLoopbackNetworkLink( + new Inet6AddressGroup(srv6Router.getLocator().getAddress(), 32), SRv6Router.MTU, dnsAddresses); + tunlink.setMonitor(datatMonitor); + //srv6Router.getLinkTabel().add(tunlink); + srv6Router.getinLoopback().setFallbackLink(tunlink); + System.out.println("虚拟网卡已挂载"); + } catch (Exception e) { + System.err.println("挂载虚拟网卡失败,可能是无管理员权限?请尝试使用管理员权限运行软件"); + e.printStackTrace(); + } + + + srv6Router.getinLoopback(). getProtocolNumberRegister().put(UDPPacket.UDP_PROTOCOL_NUMBER, new UDPProtocolPacketConsumer()); + System.out.println("UDP协议已加载"); + srv6Router.getinLoopback().getProtocolNumberRegister().put(KLALBPacket.KLALB_PROTOCOL_NUMBER, + new KLALBProtocolPacketConsumer()); + System.out.println("KLALB协议已加载"); + String iproxyname="KLALB_"+UUID.randomUUID(); + registerToProxyTypeAs(iproxyname); + + clock = new HighAccuracyClock(); + NTPContext context = new NTPContext(clock); + context.syncToSystem(); + //System.out.println(context); try { - selfx=new Inet6AddressGroup( (Inet6Address) InetAddress.getByAddress(v),PREFIX); + NTPv4Protocol nvc = new NTPv4Protocol(context, new MultipurposeSocketAddress("{"+iproxyname+"_Datagram}0.0.0.0:123")); + srv6Router.addSRv6RouterListener(new SRv6RouterListener() { + + @Override + public void onLinkChanged(SRv6Router router, IPv6NetworkLink link) { + + List nb=router.getNeighbors(); + //System.out.println("srv6 ip"+nb); + Set sp=nvc.getPeers(); + for (Neighbor neighbor : nb) { + if(neighbor.getLocator()!=null) + sp.add(new NTPPeer(new MultipurposeSocketAddress(iproxyname+"_Datagram",neighbor.getLocator().getAddress().getHostAddress(),123), NTPv4Packet.NTP_SYMMETRIC_ACTIVE)); + + } + sp.removeIf((p)->{ + for (Neighbor neighbor : nb) { + try { + if(neighbor.getLocator()!=null) + if(neighbor.getLocator().getAddress().equals(p.getAddress().getInetAddress())) { + return false; + } + } catch (UnknownHostException e) { + e.printStackTrace(); + } + } + return true; + }); + } + }); + nvc2 = new NTPv4Protocol(context, new MultipurposeSocketAddress("{UDP}0.0.0.0:0"));// 106.55.184.199 + + System.out.println("NTP时钟同步协议已加载"); + } catch (UnknownHostException e) { + // TODO 自动生成的 catch 块 + e.printStackTrace(); + } catch (IOException e) { + // TODO 自动生成的 catch 块 + e.printStackTrace(); + }// 106.55.184.199 + } + + + private void loadController() { + this.apiServer=new KLALBRoutingProtocolAPIServer(routingProtocol, this); + this.apiClient=new KLALBRoutingProtocolAPIClient(routingProtocol); + twk.schedule(tsk1, 2000, 2000); + twk.schedule(tsk2, 2000, 2000); + twk.schedule(tsk3, 5000, 5000); + } + + public KLALBController() { + this(true, null); + } + + public KLALBController(Inet6Address self) { + this(self, true, null); + } + + public KLALBController(Inet6Address self, boolean enableVirtualAdapter, List dnsaddr) { + this.dnsAddresses = dnsaddr; + Inet6AddressGroup selfg = new Inet6AddressGroup(self, PREFIX); + initKLALB(enableVirtualAdapter, selfg); + } + + protected void initKLALB(boolean enableVirtualAdapter, Inet6AddressGroup selfg) { + loadSRv6ProtocolStack(selfg, enableVirtualAdapter); + loadController(); + } + + + public KLALBController(boolean enableVirtualAdapter, List dnsaddr) { + this.dnsAddresses = dnsaddr; + SecureRandom sc = new SecureRandom(); + byte[] v = new byte[16]; + sc.nextBytes(v); + v[0] = (byte) 0x24; + v[1] = (byte) 0x86; + v[2] = 0; + v[3] = 1; + v[14] = 0; + v[15] = 1; + Inet6AddressGroup selfx = null; + try { + selfx = new Inet6AddressGroup((Inet6Address) InetAddress.getByAddress(v), PREFIX); } catch (UnknownHostException e) { e.printStackTrace(); } - loadSRv6ProtocolStack(selfx,enableVirtualAdapter); + initKLALB(enableVirtualAdapter, selfx); } public KLALBController(List daddr) { - this(true,daddr); + this(true, daddr); } public KLALBController(Inet6Address self, List daddr) { - this(self,true,daddr); + this(self, true, daddr); } public KLALBController(boolean enableVirtualAdapter) { - this(enableVirtualAdapter,null); + this(enableVirtualAdapter, null); } - protected KLALBVirtualSocketImpl createVirtualImpl() { + protected KLALBVirtualSocketImpl createVirtualSocketImpl() { return new KLALBVirtualSocketImpl(this); } + + protected KLALBVirtualDatagramSocketImpl createVirtualDatagramSocketImpl() { + return new KLALBVirtualDatagramSocketImpl(this); + } private SRv6Router srv6Router; - - + public SRv6Router getIpv6Router() { return srv6Router; } -private Timer trtr=new Timer("路由表刷新计时器", true); -{ - trtr.scheduleAtFixedRate(new TimerTask() { - - @Override - public void run() { - //Map> lines2 =new ConcurrentHashMap<>(); - for (Iterator iterator = lines.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); - if(klalbRemoteLine.isClosed()) { - lineslock.writeLock().lock(); - try { - lines.remove(klalbRemoteLine); - }finally{ - lineslock.writeLock().unlock(); - } - }else { - if(klalbRemoteLine.getRemoteVaddr()!=null&&klalbRemoteLine.getMonitor().getState()==MonitorData.ONLINE) { - /* if(lines2.containsKey(klalbRemoteLine.getRemoteVaddr())) { - lines2.get(klalbRemoteLine.getRemoteVaddr()).getEntries().add(klalbRemoteLine); - }else { - ArrayListal1=new ArrayList<>(); - al1.add(klalbRemoteLine); - lines2.put(klalbRemoteLine.getRemoteVaddr().getAddress(), new DWRRLoadingBalanceAlgorithm<>(al1)); - }*/ - if(!srv6Router.getLinkTabel().contains(klalbRemoteLine)) { - srv6Router.getLinkTabel().add(klalbRemoteLine); - } - } - } - } - /*for (Iterator>> iterator = lines2.entrySet().iterator(); iterator.hasNext();) { - Entry> klalbRemoteLine = (Entry>) iterator.next(); - List lineList=klalbRemoteLine.getValue().getEntries(); - lineList.forEach((r)->{ - r.runPredict(); - }); - Collections.sort(lineList); - for (int i = 0; i < lineList.size(); i++) { - KLALBRemoteLine krl=lineList.get(i); - krl.noticeRank(i); - } - - } - KLALBController.this.lines2=lines2;*/ - if(srv6Router!=null) { - srv6Router.getLinkTabel().removeIf((v)->{ - return (v instanceof KLALBRemoteLine)&&(!v.isUp()); - }); - srv6Router.updateRouteTabel(); - } - } - }, 2, 2); - } - /*private void updateLines2(Inet6Address addr) throws SocketTimeoutException { - List l=new ArrayList(); - for (int i = 0; i < lines.size(); i++) { - KLALBRemoteLine klalbRemoteLine = lines.get(i); - if(klalbRemoteLine.isClosed()) { - lines.remove(i); - i--; - continue; - } - if(addr.equals(klalbRemoteLine.getRemoteVaddr())&&klalbRemoteLine.getMonitor().getState()==MonitorData.ONLINE) { - l.add(klalbRemoteLine); - } - } - - if(l.isEmpty()) { - lines2.remove(addr); - }else { - l.forEach((r)->{ - r.runPredict(); + private Timer trtr = new Timer("路由表刷新计时器", true); + { + trtr.scheduleAtFixedRate(new TimerTask() { + + @Override + public void run() { + if (srv6Router != null) { + srv6Router.getLinkTabel().removeIf((v) -> { + return (v instanceof KLALBRemoteLine) && ((KLALBRemoteLine) v).isClosed(); }); - Collections.sort(l); - lines2.put(addr, l); + srv6Router.updateRouteTabel(); } - }*/ - //private Map> lines2 = new ConcurrentHashMap<>(); + } + }, 100, 100); + } - - protected void sendPacketToAddress(Inet6Address addr,int flowlabel, KLALBPacket packet) - throws IOException { - sendPacketToAddress(addr,flowlabel, packet, 1); + protected void sendPacketToAddress(Inet6Address addr, int flowlabel, IPv6Packet.IPv6Payload packet) { + sendPacketToAddress(addr, flowlabel, packet, 1); } - - protected void sendPacketToAddress(Inet6Address addr, int flowlabel,KLALBPacket packet, int count) - throws IOException { - HighPerformanceExecutor.defaultExecutor.execute(()->{ - - IPv6Packet ipv=new IPv6Packet(); - - - if(showpacket) - System.out.println("KLALB_TX:"+packet); - - ipv.setVersion(6); - ipv.setTrafficClass(0); - ipv.setFlowLabel(flowlabel); - ipv.setHopLimit(255); - ipv.setSourceAddress(getSelf().getAddress()); - ipv.setDestinationAddress(addr); - ipv.setPriority(packet.getPriority()); - if(packet instanceof DATATPacket) { + + protected void sendPacketToAddress(Inet6Address addr, int flowlabel, IPv6Packet.IPv6Payload packet, int count) + { + //HighPerformanceExecutor.defaultExecutor.execute(() -> { + + IPv6Packet ipv = new IPv6Packet(); + + if (showpacket) + System.out.println("KLALB_TX:" + packet); + + ipv.setVersion(6); + ipv.setTrafficClass(0); + ipv.setFlowLabel(flowlabel); + ipv.setHopLimit(255); + ipv.setSourceAddress(getSelf().getAddress()); + ipv.setDestinationAddress(addr); + ipv.setPriority(packet.getPriority()); + // if(packet instanceof DATATPacket) { ipv.setPromise(true); - } - ipv.enableECN(); - /* if(b) - ipv.markCE();*/ - ipv.setPayload(packet); - //System.out.println(ipv.getPayload().getProtocolNumber()); - /*System.out.println("SND:"+ipv.getPayload().getData()); - byte[]b=new byte[ipv.getPayload().getData().limit()]; - ipv.getPayload().getData().get(0, b); - System.out.println(Arrays.toString(b));*/ - //packet.getSendRecord().add(null); - packet.incSendCounter(); - - packet.putTimePassport("packedInIPv6"); - packet.printPassport(); - ipv.putTimePassport("packed"); - srv6Router.insertSRHandRoutePacket(ipv); - //srv6Router.putProtocolNumberPacketAndInsertSRHAsync(ipv); - }); + // } + ipv.enableECN(); + /* + * if(b) ipv.markCE(); + */ + ipv.setPayload(packet); + packet.setParent(ipv); + // System.out.println(ipv.getPayload().getProtocolNumber()); + /* + * System.out.println("SND:"+ipv.getPayload().getData()); byte[]b=new + * byte[ipv.getPayload().getData().limit()]; ipv.getPayload().getData().get(0, + * b); System.out.println(Arrays.toString(b)); + */ + // packet.getSendRecord().add(null); + if(packet instanceof KLALBPacket) + ((KLALBPacket) packet).incSendCounter(); + + packet.putTimePassport("packedInIPv6"); + packet.printPassport(); + ipv.putTimePassport("packed"); + srv6Router.insertSRHandRoutePacket(ipv); + // srv6Router.putProtocolNumberPacketAndInsertSRHAsync(ipv); + //}); } - - - private Map> bandwidthDistrmap=new ConcurrentHashMap<>(); - - private Lock bdmLock=new ReentrantLock(); - + + private Map> bandwidthDistrmap = new ConcurrentHashMap<>(); + + private Lock bdmLock = new ReentrantLock(); + protected Map> getBandwidthDistrmap() { return bandwidthDistrmap; } - - protected void registerDistUpdateConsumer(Inet6Address targetaAddress,PortPair portp, Consumer updateConsumer) { - if(updateConsumer==null) { - System.out.println("连接"+targetaAddress.getHostAddress()+" "+portp+" 释放带宽!"); - bdmLock.lock(); - try { - BandwidthDistributer bdr= bandwidthDistrmap.get(targetaAddress); - if(bdr!=null) { - bdr.setDistrUpdateConsumer(portp, updateConsumer); - bdr.setBandwidthRequest(portp, 0L); - if(bdr.getDistrUpdateConsumerMap().isEmpty()) { - bandwidthDistrmap.remove(targetaAddress); - } - } - }finally { - bdmLock.unlock(); - } - }else { - System.out.println("连接"+targetaAddress.getHostAddress()+" "+portp+" 申请带宽!"); - bdmLock.lock(); - try { - BandwidthDistributer bdr= bandwidthDistrmap.get(targetaAddress); - if(bdr==null) { - bdr=new BandwidthDistributer<>(1024*20000L*1024); - bdr.setTotalRequestUpdateConsumer((treq)->{ - KLALBRoutingProtocol krp= srv6Router.getKlalbRouteProtol(); - krp.updateTotalRequestBandwidth(targetaAddress,treq);}); - bandwidthDistrmap.put(targetaAddress, bdr); - } - - bdr.setDistrUpdateConsumer(portp, updateConsumer); - }finally { - bdmLock.unlock(); - } - } - } - - protected void updateBandwidthRequest(Inet6Address targetaAddress,PortPair portp,long bandwidth) { - if(bandwidth<0) { - throw new IllegalArgumentException(bandwidth+"<0"); - } - //System.out.println("连接"+targetaAddress.getHostAddress()+" "+portp+" 调整带宽到"+bandwidth/1024 +"KB/s!"); - BandwidthDistributer bdr= bandwidthDistrmap.get(targetaAddress); - - if(bdr!=null) { - bdr.setBandwidthRequest(portp, bandwidth); - }else { - throw new NullPointerException("连接"+targetaAddress.getHostAddress()+" "+portp+" 未申请带宽!"); - } - - } - -private Timer t=new Timer("数据包重传计时器", true); + protected void registerDistUpdateConsumer(Inet6Address targetaAddress, PortPair portp, + Consumer updateConsumer) { + if (updateConsumer == null) { + System.out.println("连接" + targetaAddress.getHostAddress() + " " + portp + " 释放带宽!"); + bdmLock.lock(); + try { + BandwidthDistributer bdr = bandwidthDistrmap.get(targetaAddress); + if (bdr != null) { + bdr.setDistrUpdateConsumer(portp, updateConsumer); + bdr.setBandwidthRequest(portp, 0L); + if (bdr.getDistrUpdateConsumerMap().isEmpty()) { + bandwidthDistrmap.remove(targetaAddress); + } + } + } finally { + bdmLock.unlock(); + } + } else { + System.out.println("连接" + targetaAddress.getHostAddress() + " " + portp + " 申请带宽!"); + bdmLock.lock(); + try { + BandwidthDistributer bdr = bandwidthDistrmap.get(targetaAddress); + if (bdr == null) { + bdr = new BandwidthDistributer<>(1024 * 20000L * 1024); + bdr.setTotalRequestUpdateConsumer((treq) -> { + KLALBRoutingProtocol krp = srv6Router.getKlalbRouteProtol(); + krp.updateTotalRequestBandwidth(targetaAddress, treq); + }); + bandwidthDistrmap.put(targetaAddress, bdr); + } + + bdr.setDistrUpdateConsumer(portp, updateConsumer); + } finally { + bdmLock.unlock(); + } + } + } + + protected void updateBandwidthRequest(Inet6Address targetaAddress, PortPair portp, long bandwidth) { + if (bandwidth < 0) { + throw new IllegalArgumentException(bandwidth + "<0"); + } + // System.out.println("连接"+targetaAddress.getHostAddress()+" "+portp+" + // 调整带宽到"+bandwidth/1024 +"KB/s!"); + BandwidthDistributer bdr = bandwidthDistrmap.get(targetaAddress); + + if (bdr != null) { + bdr.setBandwidthRequest(portp, bandwidth); + } else { + throw new NullPointerException("连接" + targetaAddress.getHostAddress() + " " + portp + " 未申请带宽!"); + } + + } + + private Timer t = new Timer("数据包重传计时器", true); + protected Timer getResendTimer() { return t; } -private Timer t2=new Timer("数据包粘包计时器", true); -private List listens=new CopyOnWriteArrayList<>(); + private Timer t2 = new Timer("数据包粘包计时器", true); + + private List listens = new CopyOnWriteArrayList<>(); public Timer getNagleTimer() { return t2; } - - - + public void registerToProxyTypeAs(String proxyname) { - MultipurposeSocketAddress.getSocketTypeRegister().put(proxyname+"_Stream",socketType); - //ProxyProfileEntry.getRegister().put(proxyname, this); + MultipurposeSocketAddress.getSocketTypeRegister().put(proxyname + "_Stream", streamSocketType); + MultipurposeSocketAddress.getSocketTypeRegister().put(proxyname + "_Datagram", datagramSocketType); + // ProxyProfileEntry.getRegister().put(proxyname, this); } - public List getListenSocketAddress() { return listens; } + private Listntptable=new CopyOnWriteArrayList(); - /*@Override - public void listen(MultipurposeSocketAddress msa) { - // TODO 自动生成的方法存根 - + private KLALBRoutingProtocol routingProtocol; + public List getNTPTable() { + return ntptable;//nvc2.getPeers().add(new NTPPeer("{UDP}106.55.184.199:123", NTPv4Packet.NTP_CLIENT)); } - @Override - public void unlisten(MultipurposeSocketAddress msc) { - // TODO 自动生成的方法存根 - - } - - @Override - public void connect(MultipurposeSocketAddress msa) { - // TODO 自动生成的方法存根 - - } - - @Override - public void unconnect(MultipurposeSocketAddress msc) { - // TODO 自动生成的方法存根 - - }*/ - + + /* + * @Override public void listen(MultipurposeSocketAddress msa) { // TODO + * 自动生成的方法存根 + * + * } + * + * @Override public void unlisten(MultipurposeSocketAddress msc) { // TODO + * 自动生成的方法存根 + * + * } + * + * @Override public void connect(MultipurposeSocketAddress msa) { // TODO + * 自动生成的方法存根 + * + * } + * + * @Override public void unconnect(MultipurposeSocketAddress msc) { // TODO + * 自动生成的方法存根 + * + * } + */ + } diff --git a/src/org/kne/cloud/network/klalb/KLALBControllerConfigItem.java b/src/org/kne/cloud/network/klalb/KLALBControllerConfigItem.java index eb1199b..3d3c9c3 100644 --- a/src/org/kne/cloud/network/klalb/KLALBControllerConfigItem.java +++ b/src/org/kne/cloud/network/klalb/KLALBControllerConfigItem.java @@ -22,9 +22,17 @@ public class KLALBControllerConfigItem extends KLALBConfigItem { private String VirtualSocketName; private ListLineTable=new ArrayList<>(); private ListConnectLineTable=new ArrayList<>(); + private ListntpServerTable=new ArrayList<>(); + public void setNetworkInterfaceExcepts(List networkInterfaceExcepts) { + NetworkInterfaceExcepts = networkInterfaceExcepts; + } + + + + private ListNetworkInterfaceExcepts=new ArrayList<>(); - + public KLALBControllerConfigItem(String type, boolean nogui, String virtualAddress, Long virtualASN, List dNS, MultipurposeSocketAddress tCPListen, MultipurposeSocketAddress uDPListen, @@ -43,6 +51,12 @@ public class KLALBControllerConfigItem extends KLALBConfigItem { } + + + public List getNetworkInterfaceExcepts() { + return NetworkInterfaceExcepts; + } + public void setLanguage(String language) { this.language = language; @@ -170,12 +184,27 @@ public class KLALBControllerConfigItem extends KLALBConfigItem { + public List getNtpServerTable() { + return ntpServerTable; + } + + + + + public void setNtpServerTable(List ntpServerTable) { + this.ntpServerTable = ntpServerTable; + } + + + + @Override public String toString() { return "KLALBControllerConfigItem [language=" + language + ", nogui=" + nogui + ", VirtualAddress=" + VirtualAddress + ", VirtualASN=" + VirtualASN + ", DNS=" + DNS + ", TCPListen=" + TCPListen + ", UDPListen=" + UDPListen + ", VirtualSocketName=" + VirtualSocketName + ", LineTable=" + LineTable - + ", ConnectLineTable=" + ConnectLineTable + "]"; + + ", ConnectLineTable=" + ConnectLineTable + ", ntpServerTable=" + ntpServerTable + + ", NetworkInterfaceExcepts=" + NetworkInterfaceExcepts + "]"; } @@ -184,8 +213,18 @@ public class KLALBControllerConfigItem extends KLALBConfigItem { public int hashCode() { final int prime = 31; int result = super.hashCode(); - result = prime * result + Objects.hash(ConnectLineTable, DNS, LineTable, TCPListen, UDPListen, VirtualASN, - VirtualAddress, VirtualSocketName, language, nogui); + result = prime * result + ((ConnectLineTable == null) ? 0 : ConnectLineTable.hashCode()); + result = prime * result + ((DNS == null) ? 0 : DNS.hashCode()); + result = prime * result + ((LineTable == null) ? 0 : LineTable.hashCode()); + result = prime * result + ((NetworkInterfaceExcepts == null) ? 0 : NetworkInterfaceExcepts.hashCode()); + result = prime * result + ((TCPListen == null) ? 0 : TCPListen.hashCode()); + result = prime * result + ((UDPListen == null) ? 0 : UDPListen.hashCode()); + result = prime * result + ((VirtualASN == null) ? 0 : VirtualASN.hashCode()); + result = prime * result + ((VirtualAddress == null) ? 0 : VirtualAddress.hashCode()); + result = prime * result + ((VirtualSocketName == null) ? 0 : VirtualSocketName.hashCode()); + result = prime * result + ((language == null) ? 0 : language.hashCode()); + result = prime * result + (nogui ? 1231 : 1237); + result = prime * result + ((ntpServerTable == null) ? 0 : ntpServerTable.hashCode()); return result; } @@ -200,12 +239,64 @@ public class KLALBControllerConfigItem extends KLALBConfigItem { if (getClass() != obj.getClass()) return false; KLALBControllerConfigItem other = (KLALBControllerConfigItem) obj; - return Objects.equals(ConnectLineTable, other.ConnectLineTable) && Objects.equals(DNS, other.DNS) - && Objects.equals(LineTable, other.LineTable) && Objects.equals(TCPListen, other.TCPListen) - && Objects.equals(UDPListen, other.UDPListen) && Objects.equals(VirtualASN, other.VirtualASN) - && Objects.equals(VirtualAddress, other.VirtualAddress) - && Objects.equals(VirtualSocketName, other.VirtualSocketName) - && Objects.equals(language, other.language) && nogui == other.nogui; + if (ConnectLineTable == null) { + if (other.ConnectLineTable != null) + return false; + } else if (!ConnectLineTable.equals(other.ConnectLineTable)) + return false; + if (DNS == null) { + if (other.DNS != null) + return false; + } else if (!DNS.equals(other.DNS)) + return false; + if (LineTable == null) { + if (other.LineTable != null) + return false; + } else if (!LineTable.equals(other.LineTable)) + return false; + if (NetworkInterfaceExcepts == null) { + if (other.NetworkInterfaceExcepts != null) + return false; + } else if (!NetworkInterfaceExcepts.equals(other.NetworkInterfaceExcepts)) + return false; + if (TCPListen == null) { + if (other.TCPListen != null) + return false; + } else if (!TCPListen.equals(other.TCPListen)) + return false; + if (UDPListen == null) { + if (other.UDPListen != null) + return false; + } else if (!UDPListen.equals(other.UDPListen)) + return false; + if (VirtualASN == null) { + if (other.VirtualASN != null) + return false; + } else if (!VirtualASN.equals(other.VirtualASN)) + return false; + if (VirtualAddress == null) { + if (other.VirtualAddress != null) + return false; + } else if (!VirtualAddress.equals(other.VirtualAddress)) + return false; + if (VirtualSocketName == null) { + if (other.VirtualSocketName != null) + return false; + } else if (!VirtualSocketName.equals(other.VirtualSocketName)) + return false; + if (language == null) { + if (other.language != null) + return false; + } else if (!language.equals(other.language)) + return false; + if (nogui != other.nogui) + return false; + if (ntpServerTable == null) { + if (other.ntpServerTable != null) + return false; + } else if (!ntpServerTable.equals(other.ntpServerTable)) + return false; + return true; } diff --git a/src/org/kne/cloud/network/klalb/KLALBMain.java b/src/org/kne/cloud/network/klalb/KLALBMain.java index d2f5d49..8cc409c 100644 --- a/src/org/kne/cloud/network/klalb/KLALBMain.java +++ b/src/org/kne/cloud/network/klalb/KLALBMain.java @@ -17,6 +17,7 @@ import javax.swing.JFrame; import org.kne.cloud.network.MultipurposeSocketAddress; import org.kne.cloud.network.SocketChannelListener; import org.kne.cloud.network.SocketListener; +import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.ipv6.RouteItem; import org.kne.cloud.network.klalb.ui.KLALBStateGUI2; import org.kne.cloud.network.klalb.ui.KLALBStateGUI3; @@ -25,6 +26,7 @@ import org.kne.cloud.network.perf.Kperf; import org.kne.cloud.network.perf.MemcpyBenchmark; import org.kne.cloud.network.perf.NodeBenchmark; import org.kne.debug.Debuger; +import org.kne.debug.TimeDebugger; public class KLALBMain { public static KLALBStateGUI3 ksg; @@ -36,18 +38,23 @@ public class KLALBMain { } System.out.println(CONST.klalb+" V"+CONST.klalbver); Scanner scn=new Scanner(System.in); - + TimeDebugger dtb=new TimeDebugger(); + dtb.putTime("Start"); File configJson=new File("klalb-config.json"); KLALBProxySystem kpcje=new KLALBProxySystem(); + dtb.putTime("Create"); kpcje.loadConfigJson(configJson); + dtb.putTime("Load"); System.out.println("SRv6地址:"+kpcje.getKlalbController().getSelf().getAddress().getHostAddress()); try { if(!kpcje.getControllerConfig().isNogui()) - openGUI(kpcje); + openGUI(kpcje); }catch(Throwable e) { e.printStackTrace(); } + dtb.putTime("UI"); + //dtb.print(); /*MultipurposeSocketAddress mpa=new MultipurposeSocketAddress("127.9.9.9", 49573); kpcje.enableRemoteManagement(mpa); System.out.println("远程管理端口已在"+mpa+"端口上开启");*/ @@ -58,7 +65,7 @@ public class KLALBMain { SocketChannelListener stlr=new SocketChannelListener(kpsvr); stlr.setCon((scl)->{ try { - new Kperf(new StreamChannelKLALBPacketLink(scl)).startPerfing(); + new Kperf(new StreamChannelKLALBPacketLink(scl,false)).startPerfing(); } catch (IOException e) { e.printStackTrace(); } @@ -92,10 +99,12 @@ public class KLALBMain { System.out.println("线路状态:"); System.out.println("状态\t上传流量\t下载流量\t上传速度\t下载速度\t上传延迟\t下载延迟\t上传抖动\t下载抖动"); synchronized (kpcje.getKlalbController().getLines()) { - for (Iterator iterator = kpcje.getKlalbController().getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine hostPort = iterator.next(); + for (Iterator iterator = kpcje.getKlalbController().getLines().iterator(); iterator.hasNext();) { + IPv6NetworkLink link=iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine hostPort = (KLALBRemoteLine) link; System.out.println(hostPort .toString()); - //System.out.println(); + } } } break; @@ -209,13 +218,13 @@ public class KLALBMain { } private static void openGUI(KLALBProxySystem kpcje) throws RuntimeException{ - /*JFrame jf=new JFrame(); - jf.setSize(200, 200); - jf.setVisible(true);*/ - if(ksg==null) + Thread t=new Thread(()->{ + if(ksg==null) { ksg=kpcje.getKLALBGUI(); + } ksg.setVisible(true); - //System.out.println("UI loaded"); + }); + t.start(); } } diff --git a/src/org/kne/cloud/network/klalb/KLALBOutputStream.java b/src/org/kne/cloud/network/klalb/KLALBOutputStream.java index 99abf2f..db79802 100644 --- a/src/org/kne/cloud/network/klalb/KLALBOutputStream.java +++ b/src/org/kne/cloud/network/klalb/KLALBOutputStream.java @@ -21,7 +21,7 @@ public class KLALBOutputStream extends DataOutputStream { flush(); } public void writeKLALBPacket(KLALBPacket klb) throws IOException { - writeInt((int) klb.getLength()); + writeInt((int) klb.getTotalLength()); KLALBPacket.writeKLALBPacketToStream(this, klb); } public void writePacket(ByteBuffer kp) throws IOException { diff --git a/src/org/kne/cloud/network/klalb/KLALBPacket.java b/src/org/kne/cloud/network/klalb/KLALBPacket.java index 0652e29..d1cce98 100644 --- a/src/org/kne/cloud/network/klalb/KLALBPacket.java +++ b/src/org/kne/cloud/network/klalb/KLALBPacket.java @@ -113,7 +113,7 @@ public abstract class KLALBPacket extends IPv6Packet.IPv6Payload { public long getRcvtime() { return rcvtime; } - public long getLength() {//缓冲区limit,实际长度 + public long getTotalLength() {//缓冲区limit,实际长度 return headerLength; } @@ -147,6 +147,7 @@ public abstract class KLALBPacket extends IPv6Packet.IPv6Payload { public static KLALBPacket readKLALBPacketFromChannel(ReadableByteChannel in) throws IOException { while(true) { ByteBuffer bb=NetworkPacket.bufferAllocator.allocate(40); + bb.position(0); bb.limit(1); while(bb.hasRemaining()){ if(in.read(bb)==-1) { diff --git a/src/org/kne/cloud/network/klalb/KLALBPacketLink.java b/src/org/kne/cloud/network/klalb/KLALBPacketLink.java index a069db6..bac1859 100644 --- a/src/org/kne/cloud/network/klalb/KLALBPacketLink.java +++ b/src/org/kne/cloud/network/klalb/KLALBPacketLink.java @@ -3,15 +3,17 @@ package org.kne.cloud.network.klalb; import java.io.IOException; import java.net.SocketException; import java.nio.ByteBuffer; +import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; import org.kne.cloud.network.MultipurposeSocketAddress; public interface KLALBPacketLink { - public void setOutputTrafficCounters(AtomicLong[] al); - public void setOutputPacketsCounters(AtomicLong[] al); - public void setInputTrafficCounters(AtomicLong[] al); - public void setInputPacketsCounters(AtomicLong[] al); + public void setOutputTrafficCounters(LongAdder[] al); + public void setOutputPacketsCounters(LongAdder[] longAdders); + public void setInputTrafficCounters(LongAdder[] longAdders); + public void setInputPacketsCounters(LongAdder[] al); public void writePacket(ByteBuffer kp) throws IOException; public default void writePackets(ByteBuffer[] kpp,int off,int len) throws IOException { for (int i = 0; i < len; i++) { @@ -29,5 +31,6 @@ public interface KLALBPacketLink { @Override public String toString(); public boolean isStream(); + public void writeKLALBPackets(List kp) throws IOException; } diff --git a/src/org/kne/cloud/network/klalb/KLALBProxySystem.java b/src/org/kne/cloud/network/klalb/KLALBProxySystem.java index c55d0b6..cc26039 100644 --- a/src/org/kne/cloud/network/klalb/KLALBProxySystem.java +++ b/src/org/kne/cloud/network/klalb/KLALBProxySystem.java @@ -8,6 +8,7 @@ import java.io.Reader; import java.net.Inet6Address; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.NetworkInterface; import java.net.Socket; import java.net.SocketException; import java.net.SocketTimeoutException; @@ -47,7 +48,7 @@ public class KLALBProxySystem { private Gson gson; private File jsonFile; { - GsonBuilder gb=new GsonBuilder(); + GsonBuilder gb=new GsonBuilder().setPrettyPrinting(); MultipurposeSocketAddress.registerToGsonBuilder(gb); KLALBConfigItem.registerToGsonBuilder(gb); gson=gb.create(); @@ -169,7 +170,7 @@ public class KLALBProxySystem { String vsne=kcci.getVirtualSocketName(); //if(vsne!=null) { - MultipurposeSocketAddress.getSocketTypeRegister().put(vsne, klalbController.getSocketType()); + MultipurposeSocketAddress.getSocketTypeRegister().put(vsne, klalbController.getStreamSocketType()); //} MultipurposeSocketAddress tcple=kcci.getTCPListen(); if(tcple!=null) { @@ -180,7 +181,7 @@ public class KLALBProxySystem { tcpl.setCon((soc)->{ - KLALBRemoteLine krs=null; + KLALBRemoteLine krs=null; try { krs = new KLALBRemoteLine(new StreamChannelKLALBPacketLink(soc)); klalbController.addRemoteLine(krs); @@ -220,10 +221,7 @@ public class KLALBProxySystem { } List linele=kcci.getLineTable(); if(linele!=null) { - linele.forEach((aline)->{ - klalbController.getSelflineTable().add(aline); - }); - + klalbController.getSelflineTable().addAll(linele); } List linetoc=kcci.getConnectLineTable(); if(linetoc!=null) { @@ -231,6 +229,24 @@ public class KLALBProxySystem { klalbController.addRemoteLines(aline); }); } + + List ntps=kcci.getNtpServerTable(); + if(ntps!=null) { + klalbController.getNTPTable().addAll(ntps); + } + + List strexc=kcci.getNetworkInterfaceExcepts(); + klalbController.getNetworkInterfaceExcept().clear(); + if(strexc!=null) { + for(String strexci:strexc) { + try { + klalbController.getNetworkInterfaceExcept().add(NetworkInterface.getByName(strexci)); + } catch (SocketException e) { + e.printStackTrace(); + } + } + } + }else if(item instanceof SocketBridgeConfigItem) { SocketBridgeConfigItem scci=(SocketBridgeConfigItem) item; try { diff --git a/src/org/kne/cloud/network/klalb/KLALBRemoteLine.java b/src/org/kne/cloud/network/klalb/KLALBRemoteLine.java index 5bf9f1a..8e970eb 100644 --- a/src/org/kne/cloud/network/klalb/KLALBRemoteLine.java +++ b/src/org/kne/cloud/network/klalb/KLALBRemoteLine.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.io.PrintStream; import java.io.StreamCorruptedException; import java.lang.foreign.MemorySegment; +import java.math.BigInteger; import java.net.Inet6Address; import java.net.InetAddress; import java.net.SocketTimeoutException; @@ -27,21 +28,35 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.LockSupport; import java.util.concurrent.locks.ReentrantLock; import java.util.function.Consumer; import java.util.function.Supplier; import org.kne.cloud.clock.AdjustedNanoClock; +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.clock.NTPTimestamps; import org.kne.cloud.clock.ReliabilityBackoffTimeClock; import org.kne.cloud.network.ByteBufferAllocator; import org.kne.cloud.network.MultipurposeSocketAddress; import org.kne.cloud.network.NetworkPacket; import org.kne.cloud.network.SpeedLimiter; import org.kne.cloud.network.ThreadTool; +import org.kne.cloud.network.congress.BBRCongressAlgorithm; +import org.kne.cloud.network.congress.BBRVegasCongressAlgorithm; +import org.kne.cloud.network.congress.CongressAlgorithm; +import org.kne.cloud.network.congress.LARCCongressAlgorithm; +import org.kne.cloud.network.congress.SendPacketSlidingWindow; +import org.kne.cloud.network.congress.VegasCongressAlgorithm; +import org.kne.cloud.network.ipv6.AbstractIPv6NetworkLink; +import org.kne.cloud.network.ipv6.IPv6LinkStateListener; import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.ipv6.IPv6Packet; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6EmptyPayload; @@ -50,7 +65,6 @@ import org.kne.cloud.network.ipv6.Inet6AddressGroup; import org.kne.cloud.network.ipv6.Neighbor; import org.kne.cloud.network.ipv6.RouteItem; import org.kne.cloud.network.monitor.MonitorData; -import org.kne.cloud.network.monitor.NanoTimeSeries; import org.kne.cloud.network.monitor.QueueingMonitorDataImpl; import org.kne.cloud.network.monitor.SpeedAndTrafficAndDelayMonitorDataImpl; import org.kne.cloud.network.perf.TESTNPacket; @@ -61,13 +75,14 @@ import org.kne.cloud.network.te.BandwidthDistributer; import org.kne.cloud.network.te.LoadingBalanceEntry; import org.kne.concurrent.DisruptorExecutor; import org.kne.concurrent.HighPerformanceExecutor; +import org.kne.concurrent.ThreadParker; import org.kne.io.KNEChannels; +import org.kne.math.Long128; - -public class KLALBRemoteLine implements IPv6NetworkLink,Comparable { +public class KLALBRemoteLine extends AbstractIPv6NetworkLink implements IPv6NetworkLink { private static final int HEADER_CALIBRATE = 40; - + private static final boolean debug = false; private static final boolean showpacket = false; @@ -85,9 +100,7 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable getLocalVaddrSupplier() { @@ -104,8 +117,8 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable getAddressGroups() { + List list = new ArrayList<>(); + list.add(addressGroup); + return list; } - + public Inet6AddressGroup getPeerAddress() { return peerAddress; } - - public KLALBRemoteLine(MultipurposeSocketAddress mpa, Inet6AddressGroup address) { - this(mpa,address, new QueueingMonitorDataImpl()); + this(mpa, address, new QueueingMonitorDataImpl()); } public KLALBRemoteLine(MultipurposeSocketAddress mpa, Inet6AddressGroup address, QueueingMonitorDataImpl monitor) { - this(mpa, null,address, monitor); + this(mpa, null, address, monitor); } public KLALBRemoteLine(KLALBPacketLink kpl, Inet6AddressGroup address) { - this(kpl,address, new QueueingMonitorDataImpl()); + this(kpl, address, new QueueingMonitorDataImpl()); } - public KLALBRemoteLine(KLALBPacketLink kpl, Inet6AddressGroup address,QueueingMonitorDataImpl monitor) { + public KLALBRemoteLine(KLALBPacketLink kpl, Inet6AddressGroup address, QueueingMonitorDataImpl monitor) { this.kplink = kpl; - this.addressGroup=address; + this.addressGroup = address; this.monitor = monitor; monitor.setName(kpl.toString()); } - public KLALBRemoteLine(MultipurposeSocketAddress mpa, MultipurposeSocketAddress bindaddr,Inet6AddressGroup address, + public KLALBRemoteLine(MultipurposeSocketAddress mpa, MultipurposeSocketAddress bindaddr, Inet6AddressGroup address, QueueingMonitorDataImpl monitor) { this.socketAddress = mpa; this.bindAddress = bindaddr; - this.addressGroup=address; + this.addressGroup = address; this.monitor = monitor; if (bindaddr == null) { monitor.setName("→" + mpa.toString()); @@ -196,8 +210,9 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable { - //Thread.currentThread().setPriority(Thread.NORM_PRIORITY+1); - while (true) { + private SpeedLimiter speedLimit = new SpeedLimiter(256 * 1024L, 10 * 1000000L);// 50*1000000L + + private volatile CongressAlgorithm algorithm; + + private volatile SendPacketSlidingWindow sendWindow; + + private class RerouteChecker implements Runnable { + @Override + public void run() { + while ((!kplink.isClosed()) && (!closed)) { + + if (checkACKTime()) { + sendALLIPv6ACK(); + } + try { + Thread.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + private class RemoteSender implements Runnable { + + @Override + public void run() { + try { + writeKLALBPacketToKPL(new ADDRREQPacket()); + writeKLALBPacketToKPL(new ADDRREQPacket()); + if (addressGroup != null) { + writeKLALBPacketToKPL(new ADDRPacket(addressGroup)); + writeKLALBPacketToKPL(new ADDRPacket(addressGroup)); + } + writeKLALBPacketToKPL(new VADDRREQPacket()); + writeKLALBPacketToKPL(new VADDRREQPacket()); + writeKLALBPacketToKPL(new VADDRPacket(localVaddrSupplier.get())); + writeKLALBPacketToKPL(new VADDRPacket(localVaddrSupplier.get())); + flushKPL(); + Listpacks=new ArrayList<>(); + while ((!kplink.isClosed()) && (!closed)) { + if (checkBandwidthReportTime()) { + sendIPacket(new BWINFPacket(monitor.getOutSpeedAvg(), monitor.getInSpeedAvg())); + } + if (checkPingTimeSleep()) { + ping(); + if (remoteVaddr == null) + writeKLALBPacketToKPL(new VADDRREQPacket()); + if (peerAddress == null) + writeKLALBPacketToKPL(new ADDRREQPacket()); - monitor.setState(MonitorData.CONNECTING); - if (socketAddress == null) { - if (kplink.isClosed()) { - close(); - break; - } - if(addressGroup==null) { - byte[]addr=new byte[16]; - SecureRandom scr=new SecureRandom(); - scr.nextBytes(addr); - addr[0]=(byte)0x24; - addr[1]=(byte) 0x86; - addr[2]=0; - addr[3]=2; - addr[14]=0; - addr[15]=1; - Inet6Address i6a=(Inet6Address) Inet6Address.getByAddress(addr); - addressGroup=new Inet6AddressGroup(i6a, 112); - } } else { - kplink = KLALBUtils. createKLALBPacketLink(bindAddress, socketAddress,false); - } - //startRecord(); + KLALBPacket kpip = IsendDequeList.poll(); + if (kpip != null) { + writeKLALBPacketToKPL(kpip); - if (klalbController != null) { + } else { - kplink.setInputTrafficCounters(new AtomicLong[] {monitor.getInTrafficAL(),klalbController.getLinkMonitor().getInTrafficAL()}); - kplink.setOutputTrafficCounters(new AtomicLong[] {monitor.getOutTrafficAL(),klalbController.getLinkMonitor().getOutTrafficAL()}); - kplink.setInputPacketsCounters(new AtomicLong[] {monitor.getInPacketCounterAL(),klalbController.getLinkMonitor().getInPacketCounterAL()}); - kplink.setOutputPacketsCounters(new AtomicLong[] {monitor.getOutPacketCounterAL(),klalbController.getLinkMonitor().getOutPacketCounterAL()}); - } else { - kplink.setInputTrafficCounters(new AtomicLong[] {monitor.getInTrafficAL()}); - kplink.setOutputTrafficCounters(new AtomicLong[] {monitor.getOutTrafficAL()}); - kplink.setInputPacketsCounters(new AtomicLong[] {monitor.getInPacketCounterAL()}); - kplink.setOutputPacketsCounters(new AtomicLong[] {monitor.getOutPacketCounterAL()}); - } - kplink.setSoTimeout(20000); - if(kplink.isStream()) { - windowPercent=1.4; - MIN_RTTVAR=50000000; - burstPercent=2.0;//1.5 - //ackInterval=10000000L; - }else { - windowPercent=1.2; - MIN_RTTVAR=20000000; - burstPercent=2.0; - //ackInterval=1000000L; - } - Thread timer = ThreadTool.makeVDaemonThread("重路由计时器线程", () -> { - Thread.currentThread().setPriority(Thread.NORM_PRIORITY+1); - while((!kplink.isClosed()) && (!closed)) { + KLALBPacket tkpp = sendDequeList.poll(); - Collectionvals= sendMap.values(); - for (Iterator iterator = vals.iterator(); iterator.hasNext();) { - SendItem sitm = (SendItem) iterator.next(); - if(System.nanoTime() -sitm.getSendtime()>RTO) { - iterator.remove(); - sendmapWindowUsed.addAndGet((int) -(sitm.getPacket().getPayload().getLength()+HEADER_CALIBRATE)); - //if(!kplink.isStream()) - if(sitm.getPacket().isPromise()) { - IPv6Packet pktr=sitm.getPacket(); - pktr.setPriority(pktr.getPriority()-1); - rerouteConsumer.accept(pktr); - } - //System.out.println("reroute"); + if (tkpp != null) { + packs.add(tkpp); + while((tkpp=sendDequeList.poll())!=null) { + packs.add(tkpp); } - } - for (Iterator> iterator = recvedUIDMap.entrySet().iterator(); iterator.hasNext();) { - Entry sendItem = (Entry) iterator.next(); - if(System.nanoTime()-sendItem.getValue()>10000000000L) { - iterator.remove(); + kplink.writeKLALBPackets(packs); + packs.clear(); + if (checkPingTime()) { + ping(); } - - } - if(checkACKTime()) { - sendALLIPv6ACK(); - //System.out.println("ACK发送"); - } - try { - Thread.sleep(4); - } catch (InterruptedException e) { - e.printStackTrace(); + + } else { + tlock.parkNanos(1000000L); } } - }); - timer.start(); - - Thread t = ThreadTool.makeVDaemonThreadIfSupport("远程发送线程", () -> { - tlock = Thread.currentThread(); - //tlock.setPriority(Thread.NORM_PRIORITY+1); - try { - writeKLALBPacketToKPL(new ADDRREQPacket()); - writeKLALBPacketToKPL(new ADDRREQPacket()); - if(addressGroup!=null) { - writeKLALBPacketToKPL(new ADDRPacket(addressGroup)); - writeKLALBPacketToKPL(new ADDRPacket(addressGroup)); - } - writeKLALBPacketToKPL(new VADDRREQPacket()); - writeKLALBPacketToKPL(new VADDRREQPacket()); - writeKLALBPacketToKPL(new VADDRPacket(localVaddrSupplier.get())); - writeKLALBPacketToKPL(new VADDRPacket(localVaddrSupplier.get())); - flushKPL(); - ByteBuffer[] kpp = new ByteBuffer[10]; - boolean haskpp=false; - int kppslen=0; - while ((!kplink.isClosed()) && (!closed)) { - // TimeDebugger tdb=new TimeDebugger(); - // tdb.putTime("start"); - if(checkBandwidthReportTime()) { - sendIPacket(new BWINFPacket(monitor.getOutSpeedAvg(), monitor.getInSpeedAvg())); - } - if (checkPingTimeSleep()) { - writeKLALBPacketToKPL(new PINGPacket(System.nanoTime())); - if (remoteVaddr == null) - writeKLALBPacketToKPL(new VADDRREQPacket()); - if(peerAddress==null) - writeKLALBPacketToKPL(new ADDRREQPacket()); - - }else { - KLALBPacket kpip = IsendDequeList.poll(); - if (kpip != null) { - writeKLALBPacketToKPL(kpip); - - }else { + } - // tdb.putTime("Isend"); + Thread.yield(); + } + } catch (StreamCorruptedException sce) { + sce.printStackTrace(); + } catch (IOException | UnresolvedAddressException e) { + if (debug) + e.printStackTrace(); + } finally { + try { + kplink.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } - if (haskpp == false) { - ByteBuffer tkpp = sendDequeList.poll(); - if(tkpp==null) { - monitor.setQueueingDelay(0); - }else { - haskpp=true; - kpp[0]=tkpp; - int i=1; - for(;i{ - KLALBPacket kpp=null; - try { - kpp = KLALBPacket.readKLALBPacketFromChannel(KNEChannels.newReadableChannel(kppb)); - } catch (IOException e) { - e.printStackTrace(); - } - if(kpp==null) - return; - debugShowPacket("RX",kpp); + private class RemoteReceiver implements Runnable { + AtomicBoolean fst = new AtomicBoolean(true); + ReentrantLock readLock=new ReentrantLock(); + @Override + public void run() { + try { + while ((!kplink.isClosed()) && (!closed)) { + KLALBPacket kppb=null; + readLock.lock(); + try { + kppb = kplink.readKLALBPacket(); + }finally { + readLock.unlock(); + } + if (kppb == null) { + break; + } + KLALBPacket kpp = kppb; + HighPerformanceExecutor.defaultExecutor2.execute(() -> { + debugShowPacket("RX", kpp); switch (kpp.getType()) { case KLALBPacket.PING: - sendIPacket(new PONGPacket(((PINGPacket) kpp).getTime() ,kpp.getRcvtime(), System.nanoTime())); + long pct=System.nanoTime()- kpp.getRcvtime(); + Long128 curr=sysclk.getCurrentTimeNanos(); + Long128 rcv=curr.subtract(pct); + + + BigInteger local1281= NTPTimestamps.nanosToNtp128BitTimestamp(curr); + PONGPacket pong=new PONGPacket(((PINGPacket) kpp).getTime(), NTPTimestamps.ntp128To64(NTPTimestamps.nanosToNtp128BitTimestamp(rcv)).longValue(), NTPTimestamps.ntp128To64(NTPTimestamps.nanosToNtp128BitTimestamp(curr)).longValue()); + sendIPacket( + pong); + /*long prcv1=pong.getTimepingrcv(); + System.out.println("prcv"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( prcv1,local1281)))); + long posnd1=pong.getTimepongsnd(); + System.out.println("posnd"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( posnd1,local1281))));*/ break; case KLALBPacket.PONG: PONGPacket png = (PONGPacket) kpp; - long ul = png.getRcvtime() - png.getTimepingsnd()-(png.getTimepongsnd()-png.getTimepingrcv()); - - long DsndDelayFactor0 = png.getTimepingrcv() - png.getTimepingsnd(); - long DrcvDelayFactor0 = png.getRcvtime() - png.getTimepongsnd(); - long DsndDelayFactor; - long DrcvDelayFactor; + /*long ul = png.getRcvtime() - png.getTimepingsnd() + - (png.getTimepongsnd() - png.getTimepingrcv());*/ + Long128 local=sysclk.getCurrentTimeNanos(); + BigInteger local128= NTPTimestamps.nanosToNtp128BitTimestamp(local); - AdjustedNanoClock adjc=adjnc; - adjc.getLock().lock(); - try { - adjc.calibrate(png.getTimepongsnd() + ul / 2 - png.getRcvtime(), ul / 2); - DsndDelayFactor = DsndDelayFactor0 - adjc.getDelta(); - DrcvDelayFactor = DrcvDelayFactor0 + adjc.getDelta(); - if (DsndDelayFactor < 0) { - if (DrcvDelayFactor < 0) { - - } else { - adjc.setDelta(adjc.getDelta() + DsndDelayFactor); - DsndDelayFactor = DsndDelayFactor0 - adjc.getDelta(); - DrcvDelayFactor = DrcvDelayFactor0 + adjc.getDelta(); - } - } else { - if (DrcvDelayFactor < 0) { - adjc.setDelta(adjc.getDelta() - DrcvDelayFactor); - DsndDelayFactor = DsndDelayFactor0 - adjc.getDelta(); - DrcvDelayFactor = DrcvDelayFactor0 + adjc.getDelta(); - } - } - } finally { - adjc.getLock().unlock(); - } + long psnd=png.getTimepingsnd(); + //System.out.println("psnd"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( psnd,local128)))); + long prcv=png.getTimepingrcv(); + //System.out.println("prcv"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( prcv,local128)))); + long posnd=png.getTimepongsnd(); + //System.out.println("posnd"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( posnd,local128)))); + + long DsndDelayFactor =NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( prcv,local128)) .subtract( NTPTimestamps.ntp128BitToNanosTimestamp(NTPTimestamps.inferNtp64To128( psnd,local128))).longValue(); + long DrcvDelayFactor = local .subtract( NTPTimestamps.ntp128BitToNanosTimestamp(NTPTimestamps.inferNtp64To128( posnd,local128))).longValue(); + //System.out.println(DsndDelayFactor+" "+DrcvDelayFactor); if (DsndDelayFactor >= 0 && DrcvDelayFactor >= 0) { monitor.setOutDelay(DsndDelayFactor); monitor.setInDelay(DrcvDelayFactor); monitor.setRecentPingNanoTime(png.getTimepingsnd()); - //pingInterval = monitor.getLatencyAvg()+2000000L; - - //double load = 1 - monitor.getOutDelayMin() / (double) monitor.getOutDelay(); - //loadPercent =Math.max( 1.3,0.4); } - LockSupport.unpark(tlock); + tlock.unpark(); break; case KLALBPacket.BWINF: BWINFPacket bwi = (BWINFPacket) kpp; - if (bwi.getDownSpeed() >= congressSpeed) { - congressSpeed = bwi.getDownSpeed(); - } else { - congressSpeed = (congressSpeed * 199 + bwi.getDownSpeed()) / 200; - } - bandwidthDistributer.setTotalBandwidth (congressSpeed ); - congress.setLimitspeed(Math.max(MIN_SPEED,(long) (congressSpeed * burstPercent)) ); - //reallimit=(int) (congress.getLimitspeed()*monitor.getLatencyMin()/1000000000L); - reallimit=(int) (Math.max(MIN_SPEED,(long) (congressSpeed*windowPercent ))*Math.max(2000000L,RTTMin)/1000000000L); - // System.out.println(congressSpeed); + algorithm.setCurrentBandwidth(bwi.getDownSpeed()); break; case KLALBPacket.ADDRREQ: - if(addressGroup!=null) - sendIPacket(new ADDRPacket(addressGroup)); + if (addressGroup != null) + sendIPacket(new ADDRPacket(addressGroup)); break; case KLALBPacket.ADDR: peerAddress = ((ADDRPacket) kpp).getAddr(); - if(addressGroup==null) { - byte[]ab=peerAddress.getAddress().getAddress(); - ab[15]=2; - Inet6AddressGroup ardg2=null; - try { - ardg2 = new Inet6AddressGroup((Inet6Address) InetAddress.getByAddress(ab),peerAddress.getPrefixLength()); - } catch (UnknownHostException e) { - e.printStackTrace(); - } - if(ardg2!=null) - addressGroup=ardg2; + if (addressGroup == null) { + byte[] ab = peerAddress.getAddress().getAddress(); + ab[15] = 2; + Inet6AddressGroup ardg2 = null; + try { + ardg2 = new Inet6AddressGroup((Inet6Address) InetAddress.getByAddress(ab), + peerAddress.getPrefixLength()); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + if (ardg2 != null) + addressGroup = ardg2; } + KLALBRemoteLine.this.onAddressUpdate(); + break; case KLALBPacket.VADDRREQ: sendIPacket(new VADDRPacket(localVaddrSupplier.get())); @@ -585,128 +455,190 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable l=srh.getTlvs(); - + + IPv6OverKLALBPacket ivk = (IPv6OverKLALBPacket) kpp; + IPv6Packet iv6 = ivk.getIPv6Packet(); + + ivk.putTimePassport("unpacked"); + ivk.printPassport(); + iv6.putTimePassport("unpackFromLink"); + + IPSequence val = null; + IPv6SegmentRoutingHeader srh = iv6.getSRHHeader(); + if (srh != null) { + List l = srh.getTlvs(); + for (int i = 0; i < l.size(); i++) { - IPv6SegmentRoutingTLV tlv=l.get(i); - if(tlv instanceof SEQSSegmentRoutingTLV) { - SEQSSegmentRoutingTLV seqs=(SEQSSegmentRoutingTLV) tlv; - // if(seqs.isPromise()) { - val=new IPSequence(seqs.getUUID(),seqs.isPromise()); - //} - - }else if(tlv instanceof ACKSEQSSegmentRoutingTLV) { - ACKSEQSSegmentRoutingTLV aseq=(ACKSEQSSegmentRoutingTLV) tlv; + IPv6SegmentRoutingTLV tlv = l.get(i); + if (tlv instanceof SEQSSegmentRoutingTLV) { + SEQSSegmentRoutingTLV seqs = (SEQSSegmentRoutingTLV) tlv; + // if(seqs.isPromise()) { + val = new IPSequence(seqs.getUUID(), seqs.isPromise()); + // } + + } else if (tlv instanceof ACKSEQSSegmentRoutingTLV) { + ACKSEQSSegmentRoutingTLV aseq = (ACKSEQSSegmentRoutingTLV) tlv; l.remove(i); i--; - - SendItem ipv6; - if((ipv6=sendMap.remove(aseq.getIPSequence()))!=null) { - sendmapWindowUsed.addAndGet((int) -(ipv6.getPacket().getPayload().getLength()+HEADER_CALIBRATE)); - long RTTC=System.nanoTime()-ipv6.getSendtime(); - if(RTTC<=RTTMin) { - RTTMin=RTTC; - }else { - RTTMin= (RTTMin*99999+RTTC)/100000; - } - if(firstUpdate.compareAndSet(true, false)) { - RTTAvg=RTTC; - RTTVar=RTTC/2; - - }else { - RTTVar=(RTTVar*3+Math.abs(RTTAvg-RTTC))/4; - RTTAvg= (RTTAvg*7+RTTC)/8; - } - RTO=RTTAvg+Math.max(MIN_RTTVAR, RTTVar*4);//RTTVar*4 - //System.out.println("remove:"+aseq.getSequence()+" "+sendMap.size()); - }else { - // System.out.println("miss:"+aseq.getSequence()+" "+sendMap.size()); - } + + sendWindow.ack(aseq.getIPSequence()); } } - } - if(val!=null) + } + if (val != null) ackIDs.add(val); - /*if(val!=null&&peerAddress!=null) { - UUID val2=val; - HighPerformanceExecutor.defaultExecutor.execute(()->{ - IPv6Packet ipv=new IPv6Packet(); - ipv.setVersion(6); - ipv.setTrafficClass(0); - ipv.setFlowLabel(0); - ipv.setHopLimit(255); - ipv.setSourceAddress(addressGroup.getAddress()); - ipv.setDestinationAddress(peerAddress.getAddress()); - ipv.setPriority(0); - ipv.enableECN(); - IPv6SegmentRoutingHeader srh2=new IPv6SegmentRoutingHeader(); - srh2.getAddresses().add(peerAddress.getAddress()); - - srh2.getTlvs().add(new ACKSEQSSegmentRoutingTLV(val2,true)); - - ipv.getHeaders().add(srh2); - ipv.setPayload(new IPv6EmptyPayload()); - - sendIPacket(new IPv6OverKLALBPacket( ipv)); - //System.out.println("ack:"+val); - }); - }*/ - - if(ipv6con!=null) { - if(iv6.getPayload()instanceof IPv6EmptyPayload) { - //iv6.dispose(); - }else { - if(val!=null) { - /*Long l=recvedUIDMap.putIfAbsent(val.getUuid(), System.nanoTime()); - if(l==null) {*/ - ipv6con.accept(iv6); - //} - }else { - ipv6con.accept(iv6); + if (checkACKTime() || ackIDs.size() >= 20) + sendALLIPv6ACK(); + + if (ipv6con != null) { + if (iv6.getPayload() instanceof IPv6EmptyPayload) { + // iv6.dispose(); + } else { + if (val != null) { + /* + * Long l=recvedUIDMap.putIfAbsent(val.getUuid(), System.nanoTime()); + * if(l==null) { + */ + ipv6con.accept(iv6); + // } + } else { + ipv6con.accept(iv6); } } } break; default: - if(rec!=null) - rec.accept( kpp); + if (rec != null) + rec.accept(kpp); break; } - }); - Thread.yield(); + }); + } + } catch (StreamCorruptedException sce) { + sce.printStackTrace(); + } catch (IOException | UnresolvedAddressException e) { + if (debug) + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + }finally { + try { + if (kplink != null) + kplink.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + + private class StateManager implements Runnable { + + @Override + public void run() { + while (true) { + try { + + monitor.setState(MonitorData.CONNECTING); + if (socketAddress == null) { + if (kplink.isClosed()) { + close(); + break; + } + if (addressGroup == null) { + byte[] addr = new byte[16]; + SecureRandom scr = new SecureRandom(); + scr.nextBytes(addr); + addr[0] = (byte) 0x24; + addr[1] = (byte) 0x86; + addr[2] = 0; + addr[3] = 2; + addr[14] = 0; + addr[15] = 1; + Inet6Address i6a = (Inet6Address) Inet6Address.getByAddress(addr); + addressGroup = new Inet6AddressGroup(i6a, 112); + } + } else { + kplink = KLALBUtils.createKLALBPacketLink(bindAddress, socketAddress, true); } - }catch(StreamCorruptedException sce) { - sce.printStackTrace(); + // startRecord(); + + if (klalbController != null) { + + kplink.setInputTrafficCounters(new LongAdder[] { monitor.getInTrafficAL(), + klalbController.getLinkMonitor().getInTrafficAL() }); + kplink.setOutputTrafficCounters(new LongAdder[] { monitor.getOutTrafficAL(), + klalbController.getLinkMonitor().getOutTrafficAL() }); + kplink.setInputPacketsCounters(new LongAdder[] { monitor.getInPacketCounterAL(), + klalbController.getLinkMonitor().getInPacketCounterAL() }); + kplink.setOutputPacketsCounters(new LongAdder[] { monitor.getOutPacketCounterAL(), + klalbController.getLinkMonitor().getOutPacketCounterAL() }); + } else { + kplink.setInputTrafficCounters(new LongAdder[] { monitor.getInTrafficAL() }); + kplink.setOutputTrafficCounters(new LongAdder[] { monitor.getOutTrafficAL() }); + kplink.setInputPacketsCounters(new LongAdder[] { monitor.getInPacketCounterAL() }); + kplink.setOutputPacketsCounters(new LongAdder[] { monitor.getOutPacketCounterAL() }); + } + kplink.setSoTimeout(20000); + + algorithm = new LARCCongressAlgorithm(); + // algorithm=new BBRCongressAlgorithm(); + algorithm.setSpeedControlConsumer((speed, bursttime) -> { + speedLimit.setLimitspeed(speed); + speedLimit.setBrustTime(bursttime); + }); + algorithm.reset(); + + sendWindow = new SendPacketSlidingWindow(algorithm, 65535, + HEADER_CALIBRATE); + sendWindow.setResendConsumer(rerouteConsumer); + sendWindow.setClosingConsumer(rerouteConsumer); + algorithm.setWindowControlConsumer((sendwindow) -> { + sendWindow.setWindowSize(sendwindow); + }); + + + kplink.setSoTimeout(3000); + + Thread timer = ThreadTool.makeVDaemonThread("重路由计时器线程", new RerouteChecker()); + timer.start(); + + Thread t = ThreadTool.makeVDaemonThreadIfSupport("远程发送线程", new RemoteSender()); + t.start(); + + RemoteReceiver recvr=new RemoteReceiver(); + int cores=Runtime.getRuntime().availableProcessors(); + for(int i=0;i<1;i++) { + ThreadTool.makeVDaemonThreadIfSupport("远程接收线程", recvr).start(); + } + + while(!kplink.isClosed()) { + Thread.sleep(10); + } + } catch (StreamCorruptedException sce) { + sce.printStackTrace(); } catch (IOException | UnresolvedAddressException e) { if (debug) e.printStackTrace(); - }catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } finally { monitor.setState(MonitorData.OFFLINE); + onOnlineStateUpdate(); pressure = false; try { if (kplink != null) @@ -714,14 +646,8 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparablevals= sendMap.values(); - SendItem[]packs= vals.toArray(new SendItem[0]); - for (SendItem iPv6Packet : packs) { - rerouteConsumer.accept(iPv6Packet.getPacket()); - //System.out.println("重路由:"+iPv6Packet); - } - sendMap.clear(); - sendmapWindowUsed.set(0); + if (sendWindow != null) + sendWindow.close(); } if (closed) { @@ -729,100 +655,117 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable ackIDs=new ConcurrentLinkedQueue<>(); - private volatile long prevAckTime=System.nanoTime(); - private volatile long ackInterval=1000000L; + + public void ping() throws IOException { + + PINGPacket ping=new PINGPacket(sysclk.getCurrentTimeNTP64().longValue()); + /*Long128 local=sysclk.getCurrentTimeNanos(); + BigInteger local128= NTPTimestamps.nanosToNtp128BitTimestamp(local); + System.out.println("psnd0"+NTPTimestamps.nanosSince1970ToString( NTPTimestamps.ntp128BitToNanosTimestamp( NTPTimestamps.inferNtp64To128( ping.getTime(),local128))));*/ + writeKLALBPacketToKPL(ping); + } + + private ConcurrentLinkedQueue ackIDs = new ConcurrentLinkedQueue<>(); + private volatile long prevAckTime = System.nanoTime(); + private volatile long ackInterval = 100000L; + private boolean checkACKTime() { long cu = System.nanoTime(); - if (cu - prevAckTime > ackInterval) { + if (cu - prevAckTime > ackInterval) { prevAckTime = cu; return true; } else { return false; } } + private void sendALLIPv6ACK() { - if(peerAddress!=null) { - while(true) { - int rez=sendIPv6ACK(); - if(rez<=0) - break; + if (peerAddress != null) { + while (true) { + int rez = sendIPv6ACK(); + if (rez <= 0) + break; + } } - } - } - private int sendIPv6ACK() { - IPv6SegmentRoutingHeader srh2=new IPv6SegmentRoutingHeader(); - int adds=addACKSEQToSRH(srh2,40); - if(adds<=0) - return adds; - - //System.out.println(adds+"ACKS"); - - IPv6Packet ipv=new IPv6Packet(); - ipv.setVersion(6); - ipv.setTrafficClass(0); - ipv.setFlowLabel(0); - ipv.setHopLimit(255); - ipv.setSourceAddress(addressGroup.getAddress()); - ipv.setDestinationAddress(peerAddress.getAddress()); - ipv.setPriority(0); - ipv.enableECN(); - srh2.getAddresses().add(peerAddress.getAddress()); - - - ipv.getHeaders().add(srh2); - ipv.setPayload(new IPv6EmptyPayload()); - - sendIPacket(new IPv6OverKLALBPacket( ipv)); - //System.out.println("ack:"+val); - return adds; } - private int addACKSEQToSRH(IPv6SegmentRoutingHeader srh,int maxAckCount){ + private int sendIPv6ACK() { + IPv6SegmentRoutingHeader srh2 = new IPv6SegmentRoutingHeader(); + int adds = addACKSEQToSRH(srh2, 20); + if (adds <= 0) + return adds; + + // System.out.println(adds+"ACKS"); + + IPv6Packet ipv = new IPv6Packet(); + ipv.setVersion(6); + ipv.setTrafficClass(0); + ipv.setFlowLabel(0); + ipv.setHopLimit(255); + ipv.setSourceAddress(addressGroup.getAddress()); + ipv.setDestinationAddress(peerAddress.getAddress()); + ipv.setPriority(0); + ipv.enableECN(); + srh2.getAddresses().add(peerAddress.getAddress()); + + ipv.getHeaders().add(srh2); + ipv.setPayload(new IPv6EmptyPayload()); + + sendIPacket(new IPv6OverKLALBPacket(ipv)); + // System.out.println("ack:"+val); + return adds; + } + + private int addACKSEQToSRH(IPv6SegmentRoutingHeader srh, int maxAckCount) { int i = 0; for (; i < maxAckCount; i++) { - - IPSequence ackid= ackIDs.poll(); - if(ackid!=null) { + + IPSequence ackid = ackIDs.poll(); + if (ackid != null) { srh.getTlvs().add(new ACKSEQSSegmentRoutingTLV(ackid, ackid.isPromise())); - }else { - prevAckTime=System.nanoTime(); + } else { + prevAckTime = System.nanoTime(); return i; } } return i; } - + private void flushKPL() throws IOException { kplink.flush(); } private KLALBPacket readKLALBPacketFromKPL() throws IOException { KLALBPacket packet = kplink.readKLALBPacket(); - debugShowPacket("RX",packet); + debugShowPacket("RX", packet); if (packet != null) { - packet.putTimePassport("received"); - + packet.putTimePassport("received"); + } return packet; } private void writeKLALBPacketToKPL(KLALBPacket packet) throws IOException { + if (packet instanceof TESTNPacket) + System.err.println(packet); kplink.writeKLALBPacket(packet); packet.putTimePassport("sended"); packet.printPassport(); - debugShowPacket("TX",packet); + debugShowPacket("TX", packet); } private void debugShowPacket(String label, KLALBPacket packet) { @@ -830,10 +773,10 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable pingInterval) { - time = cu; - return true; - } else { - return false; - } - + if (cu - time > pingInterval) { + time = cu; + return true; + } else { + return false; + } + } private boolean checkPingTimeSleep() { long cu = System.nanoTime(); - if (cu - time > pingIntervalSleep) { - time = cu; - return true; - } else { - return false; + if (cu - time > pingIntervalSleep) { + time = cu; + return true; + } else { + return false; + } + } - - } - private volatile long bwtime = System.nanoTime(); private volatile long bwpingInterval = 10000000L; private volatile long bwpingIntervalSleep = 200000000L; - private boolean checkBandwidthReportTime(){ + + private boolean checkBandwidthReportTime() { long cu = System.nanoTime(); - if (cu - bwtime > bwpingIntervalSleep) { - bwtime = cu; - return true; - } else { - return false; + if (cu - bwtime > bwpingIntervalSleep) { + bwtime = cu; + return true; + } else { + return false; + } + } - - } - + private volatile Consumer rec; - private volatile Thread tlock; + // private volatile Thread tlock; + private ThreadParker tlock = new ThreadParker(); private ConcurrentLinkedQueue IsendDequeList = new ConcurrentLinkedQueue(); - private PriorityBlockingQueue sendDequeList = new PriorityBlockingQueue(); - - public PriorityBlockingQueue getQueue() { - return sendDequeList; - } + private PriorityBlockingQueue sendDequeList = new PriorityBlockingQueue(); protected void sendPacket(KLALBPacket blk) { - debugShowPacket("TX",blk); + debugShowPacket("TX", blk); blk.markJoinqueuetime(); - ByteBuffer buf=NetworkPacket.bufferAllocator.allocate((int) blk.getLength()); - try { - KLALBPacket.writeKLALBPacketToChannel(KNEChannels.newWritableChannel(buf), blk); - buf.flip(); - sendDequeList.add(buf); - LockSupport.unpark(tlock); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } + sendDequeList.add(blk); + tlock.unpark(); + speedLimit.forceTransmit(blk.getTotalLength()); } private void sendIPacket(KLALBPacket blk) { IsendDequeList.add(blk); - LockSupport.unpark(tlock); + tlock.unpark(); } - public void setPacketReceiver(Consumer< KLALBPacket> rec) { + public void setPacketReceiver(Consumer rec) { this.rec = rec; } - - - - private volatile long predictTime; - - public void runPredict() { - //predictTime = monitor.getOutDelayPredicted(); - predictTime=monitor.getOutDelay(); - /* - * long al=0; al=statLengthBefore(5); long speed=getMonitor().getOutSpeedAvg(); - * // spdlmt.setLimitspeed(speed*2+65536); if(speed==0) { if(al>0) { - * predictTime=Long.MAX_VALUE; } }else { predictTime+=al*1000000000L/speed; } - */ - } - - @Override - public int compareTo(KLALBRemoteLine o2) { - long t1 = this.predictTime; - long t2 = o2.predictTime; - if (t1 > t2) { - return 1; - } else if (t1 < t2) { - return -1; - } else { - return 0; - } - } - public void reconnectImmediately() { if (lthd != null) { LockSupport.unpark(lthd); @@ -996,11 +901,6 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable ipv6con; @Override @@ -1008,87 +908,76 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable bandwidthDistributer=new BandwidthDistributer(); - + private BandwidthDistributer bandwidthDistributer = new BandwidthDistributer(); + @Override public List getNeighborsInfo() { - Lisths=new ArrayList<>(); - if(peerAddress!=null) { - hs.add(new Neighbor(peerAddress, remoteVaddr, monitor,bandwidthDistributer)); - //System.out.println(peerAddress+" "+addressGroup); + List hs = new ArrayList<>(); + if (peerAddress != null) { + hs.add(new Neighbor(peerAddress, remoteVaddr, monitor, bandwidthDistributer)); + // System.out.println(peerAddress+" "+addressGroup); } return hs; } - - - private Map sendMap= new ConcurrentHashMap<>(1024,0.2f); - private AtomicInteger sendmapWindowUsed=new AtomicInteger(0); - private MaprecvedUIDMap=new ConcurrentHashMap(1024,0.2f); - private volatile int inputchachesize = 8192 * 4000; - private volatile int outputchachesize = 8192 * 240;//500 - private volatile int reallimit = 65536 ; + private volatile int outputchachesize = 8192 * 240;// 500 private Consumer rerouteConsumer; - + @Override public void sendPacket(IPv6Packet pack, Inet6Address inet6Address) throws IOException { - //只有已连接的链路才能传输数据 - if(monitor.getState()==MonitorData.ONLINE) { - - //if(inet6Address.equals(remoteVaddr.getAddress())||inet6Address.equals(peerAddress.getAddress())) { - - //获得数据包的SRv6扩展头部 - IPv6SegmentRoutingHeader srh= pack.getSRHHeader(); - - IPSequence val=null; - if(srh!=null) { - List l=srh.getTlvs(); + // 只有已连接的链路才能传输数据 + if (monitor.getState() == MonitorData.ONLINE) { + + // if(inet6Address.equals(remoteVaddr.getAddress())||inet6Address.equals(peerAddress.getAddress())) + // { + + // 获得数据包的SRv6扩展头部 + IPv6SegmentRoutingHeader srh = pack.getSRHHeader(); + + IPSequence val = null; + if (srh != null) { + List l = srh.getTlvs(); for (int i = 0; i < l.size(); i++) { - IPv6SegmentRoutingTLV tlv=l.get(i); - if(tlv instanceof SEQSSegmentRoutingTLV) { - SEQSSegmentRoutingTLV seqs=(SEQSSegmentRoutingTLV) tlv; - //if(seqs.isPromise()) - //获得数据包的序号 - val=new IPSequence(seqs.getUUID(),seqs.isPromise()); - + IPv6SegmentRoutingTLV tlv = l.get(i); + if (tlv instanceof SEQSSegmentRoutingTLV) { + SEQSSegmentRoutingTLV seqs = (SEQSSegmentRoutingTLV) tlv; + // if(seqs.isPromise()) + // 获得数据包的序号 + val = new IPSequence(seqs.getUUID(), seqs.isPromise()); + break; } } - - if(val!=null) { - //放入滑动窗口中并记录缓冲区大小占用 - SendItem old= sendMap.put(val,new SendItem( pack)); - if(old!=null) { - sendmapWindowUsed.addAndGet((int) -(old.getPacket().getPayload().getLength()+HEADER_CALIBRATE)); - } - sendmapWindowUsed.addAndGet((int) (pack.getPayload().getLength()+HEADER_CALIBRATE)); - //System.out.println("add: "+ val+" "+sendMap.size()); + + if (val != null) { + // 放入滑动窗口中并记录缓冲区大小占用 + sendWindow.put(val, pack); } - } - //捎带发送反方向的ACK给对方发送过来的数据包,减小设备性能开销 - if(srh!=null) { - addACKSEQToSRH(srh,10); } - //发送数据包 - sendIPv6PacketToLink(pack); - //} - - }else { - if(rerouteConsumer!=null) { - rerouteConsumer.accept(pack); + // 捎带发送反方向的ACK给对方发送过来的数据包,减小设备性能开销 + /* + * if(srh!=null) { addACKSEQToSRH(srh,10); } + */ + // 发送数据包 + sendIPv6PacketToLink(pack); + // } + + } else { + if (rerouteConsumer != null) { + rerouteConsumer.accept(pack); } } } - + @Override public void setRerouteConsumer(Consumer rerouteConsumer) { - this.rerouteConsumer=rerouteConsumer; + this.rerouteConsumer = rerouteConsumer; } - + private void sendIPv6PacketToLink(IPv6Packet pack) { - IPv6OverKLALBPacket kipv6=new IPv6OverKLALBPacket(pack); + IPv6OverKLALBPacket kipv6 = new IPv6OverKLALBPacket(pack); kipv6.setPriority(pack.getPriority()); pack.putTimePassport("packdInLink"); pack.printPassport(); @@ -1097,23 +986,25 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable3000000000L||monitor.getOutDelay()>3000000000L||monitor.getInSpeedAvg()<=0||monitor.getOutSpeedAvg()<=0) + public boolean isCongress(IPv6Packet iPv6Packet, double scale) { + SendPacketSlidingWindow sw = sendWindow; + if (sw != null) { + return sw.isCongress(iPv6Packet, scale)||(monitor.getOutDelay()/(monitor.getOutDelayMin()+1000000L)>3); + } else { return true; - boolean congress=sendmapWindowUsed.get()>reallimit*scale; - return congress; - + } } - + @Override public boolean isReachSpeedLimit(IPv6Packet iPv6Packet) { - boolean xcongress=!congress.checkTransmit(iPv6Packet.getLength()); - return xcongress; + boolean xcongress=!speedLimit.checkTransmit(iPv6Packet.getTotalLength()); + return xcongress; + //return false; } @Override @@ -1123,43 +1014,48 @@ public class KLALBRemoteLine implements IPv6NetworkLink,Comparable 3000000000L || monitor.getOutDelay() > 3000000000L + || monitor.getInSpeedAvg() <= 0 || monitor.getOutSpeedAvg() <= 0); + // System.out.println(b); + return (!isClosed()) && (getMonitor().getState() == MonitorData.ONLINE) && (!b); } @Override public void setReceiveConsumer(Consumer ipv6con) { - this.ipv6con=ipv6con; + this.ipv6con = ipv6con; } @Override public List getRouteItems() { - List rlist=new ArrayList<>(); - - Inet6AddressGroup adg=addressGroup; - if(adg!=null) - rlist.add(new RouteItem(new Inet6AddressGroup(adg.getAddress(), 128), - adg.getAddress(), this, "Direct", 0, 0, null, "D",true)); - - for (Iterator iteratorx = getNeighborsInfo() - .iterator(); iteratorx.hasNext();) { - Neighbor addresses = (Neighbor) iteratorx.next(); - RouteItem ri = new RouteItem(new Inet6AddressGroup(addresses.getAddress().getAddress(), 128), addresses.getAddress().getAddress(), - this, "Direct", 0, 128, addresses.getMonitor(), "D",false); - rlist.add(ri); - - RouteItem ris = new RouteItem(addresses.getLocator(), (Inet6Address) addresses.getLocator().getAddress(), - this, "KLALB SRv6", 13, 128, addresses.getMonitor(), "D",false); - rlist.add(ris); + List rlist = new ArrayList<>(); + Inet6AddressGroup adg = addressGroup; + if (adg != null) + rlist.add(new RouteItem(new Inet6AddressGroup(adg.getAddress(), 128), adg.getAddress(), this, "Direct", 0, + 0, null, "D", true)); + + for (Iterator iteratorx = getNeighborsInfo().iterator(); iteratorx.hasNext();) { + Neighbor addresses = (Neighbor) iteratorx.next(); + RouteItem ri = new RouteItem(new Inet6AddressGroup(addresses.getAddress().getAddress(), 128), + addresses.getAddress().getAddress(), this, "Direct", 0, 128, addresses.getMonitor(), "D", false); + rlist.add(ri); + + if (addresses.getLocator() != null) { + RouteItem ris = new RouteItem(addresses.getLocator(), + (Inet6Address) addresses.getLocator().getAddress(), this, "KLALB SRv6", 13, 128, + addresses.getMonitor(), "D", false); + rlist.add(ris); + } } return rlist; } + @Override + public void setCongressCondition(Lock lock, Condition condition) { + if (sendWindow != null) + sendWindow.setCongressCondition(lock, condition); + } + } diff --git a/src/org/kne/cloud/network/klalb/KLALBRemoteManagement.java b/src/org/kne/cloud/network/klalb/KLALBRemoteManagement.java index 6a4e2b9..0ba2f0b 100644 --- a/src/org/kne/cloud/network/klalb/KLALBRemoteManagement.java +++ b/src/org/kne/cloud/network/klalb/KLALBRemoteManagement.java @@ -11,6 +11,7 @@ import java.util.Set; import org.kne.cloud.network.MultipurposeSocketAddress; import org.kne.cloud.network.Proxy; import org.kne.cloud.network.SocketListener; +import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.monitor.MonitorData; import com.google.gson.JsonArray; @@ -64,10 +65,14 @@ public class KLALBRemoteManagement { switch (reqt) { case "GETLINES": JsonArray lines=new JsonArray(); - Listlineslist= klalbProxySystem.getKlalbController().getLines(); + Listlineslist= klalbProxySystem.getKlalbController().getLines(); synchronized (lineslist) { - for (Iterator iterator = lineslist.iterator(); iterator.hasNext();) { - KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) iterator.next(); + for (Iterator iterator = lineslist.iterator(); iterator.hasNext();) { + IPv6NetworkLink link=iterator.next(); + if(!(link instanceof KLALBRemoteLine)) { + continue; + } + KLALBRemoteLine klalbRemoteLine = (KLALBRemoteLine) link; if(klalbRemoteLine.getSocketAddress()==null) continue; JsonObject jklbrl=new JsonObject(); diff --git a/src/org/kne/cloud/network/klalb/KLALBUtils.java b/src/org/kne/cloud/network/klalb/KLALBUtils.java index 467ca84..0f4bdb1 100644 --- a/src/org/kne/cloud/network/klalb/KLALBUtils.java +++ b/src/org/kne/cloud/network/klalb/KLALBUtils.java @@ -39,8 +39,43 @@ public class KLALBUtils { public static void main(String[] args) { System.out.println(uuidToIP(new UUID(-1,-1))); } - public static String bytesUnit(long v) { - if (v >= 1024L * 1024 * 1024 * 1024 * 1024) { + + public static String convertUintNanoDefalut(long v) { + if(v>=1000L*1000L*1000L*1000L*1000L) { + return format( v/(1000.0*1000.0*1000.0*1000.0*1000.0))+"M"; + }else if(v>=1000L*1000L*1000L*1000L) { + return format (v/(1000.0*1000.0*1000.0*1000.0))+"K"; + }else if(v>=1000L*1000L*1000L) { + return format( v/(1000.0*1000.0*1000.0)); + }else if(v>=1000L*1000L) { + return format( v/(1000.0*1000.0))+"m"; + }else if(v>=1000L) { + return format( v/(1000.0))+"u"; + }else { + return Long.toString(v)+"n" ; + } + } + + public static String convertUintDefalut(long v) { + if(v>=1000L*1000L*1000L*1000L*1000L) { + return format( v/(1000.0*1000.0*1000.0*1000.0*1000.0))+"P"; + }else if(v>=1000L*1000L*1000L*1000L) { + return format (v/(1000.0*1000.0*1000.0*1000.0))+"T"; + }else if(v>=1000L*1000L*1000L) { + return format( v/(1000.0*1000.0*1000.0))+"G"; + }else if(v>=1000L*1000L) { + return format( v/(1000.0*1000.0))+"M"; + }else if(v>=1000L) { + return format( v/(1000.0))+"K"; + }else { + return Long.toString(v) ; + } + } + + + public static String convertIBUint(long v) { + return convertIUintDefalut(v)+"B"; + /*if (v >= 1024L * 1024 * 1024 * 1024 * 1024) { return String.format("%.2f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) + "PB"; } else if (v >= 1024L * 1024 * 1024 * 1024) { return String.format("%.2f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0)) + "TB"; @@ -52,9 +87,9 @@ public class KLALBUtils { return String.format("%.2f", v / (1024.0)) + "KB"; } else { return v + "B"; - } + }*/ } - public static String bytesUnitSimp(long v) { + public static String convertIBUintSimp(long v) { if(v>=1024L*1024*1024*1024*1024) { return format( v/(1024.0*1024.0*1024.0*1024.0*1024.0))+"P"; }else if(v>=1024L*1024*1024*1024) { @@ -71,17 +106,17 @@ public class KLALBUtils { } - public static String defaultUnit(long v) { + public static String convertIUintDefalut(long v) { if(v>=1024L*1024*1024*1024*1024) { - return format( v/(1024.0*1024.0*1024.0*1024.0*1024.0))+"P"; + return format( v/(1024.0*1024.0*1024.0*1024.0*1024.0))+"Pi"; }else if(v>=1024L*1024*1024*1024) { - return format (v/(1024.0*1024.0*1024.0*1024.0))+"T"; + return format (v/(1024.0*1024.0*1024.0*1024.0))+"Ti"; }else if(v>=1024L*1024*1024) { - return format( v/(1024.0*1024.0*1024.0))+"G"; + return format( v/(1024.0*1024.0*1024.0))+"Gi"; }else if(v>=1024L*1024) { - return format( v/(1024.0*1024.0))+"M"; + return format( v/(1024.0*1024.0))+"Mi"; }else if(v>=1024L) { - return format( v/(1024.0))+"K"; + return format( v/(1024.0))+"Ki"; }else { return Long.toString(v) ; } @@ -164,9 +199,9 @@ public class KLALBUtils { if (targetAddress.supportNIO()) { if (bindAddress != null) { return new StreamChannelKLALBPacketLink(targetAddress - .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort())); + .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort()),buffered); } else { - return new StreamChannelKLALBPacketLink(targetAddress.connectSocketChannel()); + return new StreamChannelKLALBPacketLink(targetAddress.connectSocketChannel(),buffered); } } else { if (bindAddress != null) { @@ -192,10 +227,10 @@ public class KLALBUtils { if (bindAddress != null) { if(buffered) { return new StreamChannelKLALBPacketLink(targetAddress - .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout)); + .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout),buffered); }else { return new StreamChannelKLALBPacketLink(targetAddress - .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout)); + .connectSocketChannel(InetAddress.getByName(bindAddress.getHost()), bindAddress.getPort(),timeout),buffered); } } else { if(buffered) { diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramServerSocketFactory.java b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramServerSocketFactory.java new file mode 100644 index 0000000..1d88e35 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramServerSocketFactory.java @@ -0,0 +1,38 @@ +package org.kne.cloud.network.klalb; + +import java.io.IOException; +import java.net.InetAddress; + +import org.kne.cloud.network.DatagramServerSocket; +import org.kne.cloud.network.DatagramServerSocketFactory; + +public class KLALBVirtualDatagramServerSocketFactory extends DatagramServerSocketFactory { + private KLALBController controller; + + public KLALBVirtualDatagramServerSocketFactory(KLALBController controller) { + this.controller=controller; + } + + public KLALBController getController() { + return controller; + } + @Override + public DatagramServerSocket createDatagramServerSocket(int port) throws IOException { + // TODO 自动生成的方法存根 + return null; + } + + @Override + public DatagramServerSocket createDatagramServerSocket(int port, int backlog) throws IOException { + // TODO 自动生成的方法存根 + return null; + } + + @Override + public DatagramServerSocket createDatagramServerSocket(int port, int backlog, InetAddress ifAddress) + throws IOException { + // TODO 自动生成的方法存根 + return null; + } + +} diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocket.java b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocket.java new file mode 100644 index 0000000..0fb1104 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocket.java @@ -0,0 +1,46 @@ +package org.kne.cloud.network.klalb; + +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.net.SocketException; + +import org.kne.cloud.network.VirtualDatagramSocket; +import org.kne.cloud.network.VirtualDatagramSocketImpl; +import org.pcap4j.core.Inets; + +public class KLALBVirtualDatagramSocket extends VirtualDatagramSocket { + + private KLALBController controller; + + // 默认构造函数 + public KLALBVirtualDatagramSocket(KLALBController controller) throws SocketException { + this(controller,new InetSocketAddress(0)); + } + + // 绑定到指定Socket地址 + public KLALBVirtualDatagramSocket(KLALBController controller, SocketAddress bindaddr) throws SocketException { + super(controller.createVirtualDatagramSocketImpl()); + this.controller = controller; + if (bindaddr != null) { + bind(bindaddr); + } + } + + // 绑定到指定端口 + public KLALBVirtualDatagramSocket(KLALBController controller, int port) throws SocketException { + this(controller, port, null); + } + + // 绑定到指定端口和本地地址 + public KLALBVirtualDatagramSocket(KLALBController controller, int port, InetAddress laddr) throws SocketException { + this(controller); + if (laddr == null) { + bind(new InetSocketAddress(port)); + } else { + bind(new InetSocketAddress(laddr, port)); + } + } + + +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketFactory.java b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketFactory.java new file mode 100644 index 0000000..d6767d9 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketFactory.java @@ -0,0 +1,58 @@ +package org.kne.cloud.network.klalb; + +import java.io.IOException; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.UnknownHostException; + +import org.kne.cloud.network.DatagramSocketFactory; + +public class KLALBVirtualDatagramSocketFactory extends DatagramSocketFactory { + private KLALBController controller; + + public KLALBVirtualDatagramSocketFactory(KLALBController controller) { + this.controller=controller; + } + + public KLALBController getController() { + return controller; + } + + + @Override + public DatagramSocket createSocket() throws IOException { + return new KLALBVirtualDatagramSocket(controller,null); + } + + @Override + public DatagramSocket createSocket(String paramString, int paramInt) throws IOException, UnknownHostException { + DatagramSocket dg=new KLALBVirtualDatagramSocket(controller); + dg.connect(new InetSocketAddress(paramString, paramInt)); + return dg; + } + + @Override + public DatagramSocket createSocket(InetAddress paramInetAddress, int paramInt) throws IOException { + DatagramSocket dg=new KLALBVirtualDatagramSocket(controller); + dg.connect(paramInetAddress, paramInt); + return dg; + } + + @Override + public DatagramSocket createSocket(String paramString, int paramInt1, InetAddress paramInetAddress, int paramInt2) + throws IOException, UnknownHostException { + DatagramSocket dg=new KLALBVirtualDatagramSocket(controller,new InetSocketAddress(paramInetAddress, paramInt2)); + dg.connect(new InetSocketAddress(paramString, paramInt1)); + return dg; + } + + @Override + public DatagramSocket createSocket(InetAddress paramInetAddress1, int paramInt1, InetAddress paramInetAddress2, + int paramInt2) throws IOException { + DatagramSocket dg=new KLALBVirtualDatagramSocket(controller,new InetSocketAddress(paramInetAddress2, paramInt2)); + dg.connect(paramInetAddress1, paramInt1); + return dg; + } + +} diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketImpl.java b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketImpl.java new file mode 100644 index 0000000..e0bd262 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualDatagramSocketImpl.java @@ -0,0 +1,256 @@ +package org.kne.cloud.network.klalb; + +import java.io.IOException; +import java.net.BindException; +import java.net.DatagramPacket; +import java.net.DatagramSocketImpl; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketAddress; +import java.net.SocketException; +import java.net.UnknownHostException; +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.LockSupport; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.VirtualDatagramSocketImpl; +import org.kne.cloud.network.ipv6.IPv6Packet; +import org.kne.cloud.network.tcp.UDPPacket; +import org.kne.concurrent.HighPerformanceExecutor; +import org.kne.io.KNEChannels; + +public class KLALBVirtualDatagramSocketImpl extends VirtualDatagramSocketImpl implements BindableKLALBPacketConsumer{ + + private KLALBController controller; + + private volatile boolean closed=false; + + protected Inet6Address remoteaddr; + protected Inet6Address localaddr; + + protected int remotePort;{ + try { + localaddr=(Inet6Address) Inet6Address.getByName("::0"); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + } + private boolean ignoreBindCheck=false; + + private int ttl=255; + + + private volatile int inputchachesize = 1024*1024; + + public KLALBVirtualDatagramSocketImpl(KLALBController controller) { + this.controller=controller; + } + + @Override + public void setOption(int optID, Object value) throws SocketException { + // TODO 自动生成的方法存根 + + } + + @Override + public Object getOption(int optID) throws SocketException { + // TODO 自动生成的方法存根 + return null; + } + + @Override + protected void create() throws SocketException { + // TODO 自动生成的方法存根 + + } + + @Override + protected void bind(int port, InetAddress host) throws SocketException { + try { + if (host.equals(Inet4Address.getByName("0.0.0.0"))) { + host = Inet6Address.getByName("::0"); + } + } catch (UnknownHostException e) { + e.printStackTrace(); + } + if (!(host instanceof Inet6Address)) { + throw new IllegalArgumentException("invalid address type, KLALB socket can only use IPV6 virtualaddress"); + } + if ((!host.isAnyLocalAddress()) && (!host.equals(controller.getSelf().getAddress()))) { + throw new BindException("must bind to self"); + } + localaddr = (Inet6Address) host; + localPort=port; + if(!ignoreBindCheck) + controller.getDatagramPortBinder().bind(this); + controller.getDatagramPortBinder().listen(this); + } + + @Override + protected void send(DatagramPacket p) throws IOException { + UDPPacket udp=new UDPPacket(localPort, p.getPort()); + udp.getData().put(p.getData(), p.getOffset(), p.getLength()); + udp.getData().flip(); + HighPerformanceExecutor.defaultExecutor.execute(() -> { + controller.sendPacketToAddress((Inet6Address) p.getAddress(),0, udp); + }); + } + + @Override + protected int peek(InetAddress i) throws IOException { + return peekNextPacket().getSrcPort(); + } + + @Override + protected int peekData(DatagramPacket p) throws IOException { + UDPPacket pack=peekNextPacket(); + copyTo(pack, p); + return p.getPort(); + } + + @Override + protected void receive(DatagramPacket p) throws IOException { + UDPPacket pack=pollNextPacket(); + copyTo(pack, p); + } + + private void copyTo(UDPPacket pack, DatagramPacket p) throws IOException { + p.setAddress(pack.getParent().getSourceAddress()); + p.setPort(pack.getSrcPort()); + ByteBuffer buffer= ByteBuffer.wrap(p.getData(),p.getOffset(),p.getLength()); + + try { + buffer.put(pack.getData()); + pack.getData().rewind(); + }catch(BufferOverflowException e) { + + } + buffer.flip(); + p.setLength(buffer.limit()); + } + + @Override + protected void setTTL(byte ttl) throws IOException { + this.ttl=ttl; + } + + @Override + protected byte getTTL() throws IOException { + return (byte) ttl; + } + + @Override + protected void setTimeToLive(int ttl) throws IOException { + this.ttl=ttl; + } + + @Override + protected int getTimeToLive() throws IOException { + return ttl; + } + + @Override + protected void join(InetAddress inetaddr) throws IOException { + // TODO 自动生成的方法存根 + + } + + @Override + protected void leave(InetAddress inetaddr) throws IOException { + // TODO 自动生成的方法存根 + + } + + @Override + protected void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException { + // TODO 自动生成的方法存根 + + } + + @Override + protected void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException { + // TODO 自动生成的方法存根 + + } + + @Override + protected void close() { + controller.getDatagramPortBinder().unlisten(this); + if(!ignoreBindCheck) + controller.getDatagramPortBinder().unbind(this); + closed=true; + } + + private volatile Thread parkThread; + private UDPPacket peekNextPacket() { + UDPPacket pol=null; + while(true) { + pol=recvQueue.peek(); + if(pol!=null) { + recvQueueUsed.addAndGet((int) -pol.getDataLength()); + return pol; + } + parkThread=Thread.currentThread(); + LockSupport.parkNanos(1000000L); + } + } + private UDPPacket pollNextPacket() { + UDPPacket pol=null; + while(true) { + pol=recvQueue.poll(); + if(pol!=null) { + recvQueueUsed.addAndGet((int) -pol.getDataLength()); + return pol; + } + parkThread=Thread.currentThread(); + LockSupport.parkNanos(1000000L); + } + } + + private Queue recvQueue = new ConcurrentLinkedQueue(); + private AtomicInteger recvQueueUsed=new AtomicInteger(0); + @Override + public void accept(Inet6Address t,NetworkPacket np) { + UDPPacket u=(UDPPacket) np; + if(recvQueueUsed.get()<=inputchachesize) { + if(recvQueue.offer(u)) { + recvQueueUsed.addAndGet((int) u.getDataLength()); + LockSupport.unpark(parkThread); + } + } + } + + @Override + public InetAddress getRemoteInetAddress() { + return remoteaddr; + } + + @Override + public InetAddress getLocalInetAddress() { + return localaddr; + } + + @Override + public int getPort() { + return remotePort; + } + + @Override + public void setLocalPort(int i) { + this.localPort=i; + } + + @Override + public int getLocalPort() { + return super.getLocalPort(); + } + + + +} diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocket.java b/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocket.java index d389ccd..7b3f20f 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocket.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocket.java @@ -7,18 +7,19 @@ import java.net.SocketException; import org.kne.cloud.network.RawSocket; import org.kne.cloud.network.RawSocketImpl; import org.kne.cloud.network.VirtualRawSocket; +import org.kne.cloud.network.ipv6.LoopbackIPv6NetworkLink; import org.kne.cloud.network.srv6.SRv6Router; public class KLALBVirtualRawSocket extends VirtualRawSocket { - public KLALBVirtualRawSocket(SRv6Router controller) { + public KLALBVirtualRawSocket(LoopbackIPv6NetworkLink controller) { super(new KLALBVirtualRawSocketImpl(controller)); } - public KLALBVirtualRawSocket(SRv6Router controller,Inet6Address bindAddress) throws SocketException { + public KLALBVirtualRawSocket(LoopbackIPv6NetworkLink controller,Inet6Address bindAddress) throws SocketException { super(new KLALBVirtualRawSocketImpl(controller),bindAddress); } - public KLALBVirtualRawSocket(SRv6Router controller,Inet6Address bindAddress,int bindProtocol) throws SocketException { + public KLALBVirtualRawSocket(LoopbackIPv6NetworkLink controller,Inet6Address bindAddress,int bindProtocol) throws SocketException { super(new KLALBVirtualRawSocketImpl(controller),bindAddress,bindProtocol); } } diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocketImpl.java b/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocketImpl.java index 647a555..b76ca6a 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocketImpl.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualRawSocketImpl.java @@ -15,6 +15,7 @@ import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.LockSupport; +import java.util.function.Consumer; import org.kne.cloud.network.ByteBufferAllocator; import org.kne.cloud.network.NetworkPacket; @@ -23,6 +24,8 @@ import org.kne.cloud.network.ThreadTool; import org.kne.cloud.network.VirtualRawSocketImpl; import org.kne.cloud.network.ipv6.IPv6Packet; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; +import org.kne.cloud.network.ipv6.Inet6AddressGroup; +import org.kne.cloud.network.ipv6.LoopbackIPv6NetworkLink; import org.kne.cloud.network.srv6.PacketConsumer; import org.kne.cloud.network.srv6.SRv6Router; import org.kne.concurrent.HighPerformanceExecutor; @@ -32,7 +35,7 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P private boolean ipHeaderInclude=false; - private SRv6Router router; + private LoopbackIPv6NetworkLink link; protected volatile Inet6Address remoteaddr; @@ -42,13 +45,13 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P private volatile int inputchachesize = 1024*1024; - protected SRv6Router getRouter() { - return router; + protected LoopbackIPv6NetworkLink getLoopbackLink() { + return link; } - public KLALBVirtualRawSocketImpl(SRv6Router router) { + public KLALBVirtualRawSocketImpl(LoopbackIPv6NetworkLink link) { super(); - this.router = router; + this.link = link; } @Override @@ -116,7 +119,7 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P @Override protected void close() { - router.getProtocolNumberRegister().remove(bindProtocolNumber); + link.getProtocolNumberRegister().remove(bindProtocolNumber); } @Override @@ -134,13 +137,22 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P if (!(address instanceof Inet6Address)) { throw new IllegalArgumentException("invalid address type, KLALB socket can only use IPV6 address"); } - if ((!address.isAnyLocalAddress()) && (!address.equals(router.getLocator().getAddress()))) { + if (!address.isAnyLocalAddress() ) { + boolean contains=false; + for(Inet6AddressGroup adg:link.getAddressGroups()) { + if(adg.checkMatch((Inet6Address) address)) { + contains=true; + break; + } + } + if(!contains) { throw new BindException("must bind to self"); + } } localaddr=(Inet6Address) address; this.bindProtocolNumber=protocolNumber; - if(router.getProtocolNumberRegister().putIfAbsent(protocolNumber, this)!=null) { + if(link.getProtocolNumberRegister().putIfAbsent(protocolNumber, this)!=null) { throw new BindException("protocol number already bind"); } } @@ -181,7 +193,11 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P ipv.setTrafficClass(0); ipv.setFlowLabel(0); ipv.setHopLimit(255); - ipv.setSourceAddress(router.getLocator().getAddress()); + if(!localaddr.isAnyLocalAddress()) { + ipv.setSourceAddress(localaddr); + }else { + ipv.setSourceAddress(link.getRouter().getLocator().getAddress()); + } InetAddress address= p.getAddress(); if (!(address instanceof Inet6Address)) { throw new IllegalArgumentException("invalid address type, KLALB socket can only use IPV6 address"); @@ -193,7 +209,10 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P pl.getData().put(buf); pl.getData().flip(); ipv.setPayload(pl); - router.insertSRHandRoutePacket(ipv); + Consumercons=link.getReceiveConsumer(); + if(cons!=null) { + cons.accept(ipv); + } }); } } @@ -213,7 +232,7 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P p.setAddress(pack.getSourceAddress()); ByteBuffer buffer= ByteBuffer.wrap(p.getData(),p.getOffset(),p.getLength()); if(ipHeaderInclude) { - + }else { try { pack.getPayload().writeToChannel(KNEChannels.newWritableChannel(buffer)); @@ -236,7 +255,7 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P while(true) { pol=recvQueue.peek(); if(pol!=null) { - recvQueueUsed.addAndGet((int) -pol.getPayload().getLength()); + recvQueueUsed.addAndGet((int) -pol.getPayload().getTotalLength()); return pol; } parkThread=Thread.currentThread(); @@ -248,7 +267,7 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P while(true) { pol=recvQueue.poll(); if(pol!=null) { - recvQueueUsed.addAndGet((int) -pol.getPayload().getLength()); + recvQueueUsed.addAndGet((int) -pol.getPayload().getTotalLength()); return pol; } parkThread=Thread.currentThread(); @@ -259,14 +278,14 @@ public class KLALBVirtualRawSocketImpl extends VirtualRawSocketImpl implements P private AtomicInteger recvQueueUsed=new AtomicInteger(0); @Override - public void accept(IPv6Packet packx) throws IOException { + public boolean accept(IPv6Packet packx) throws IOException { if(recvQueueUsed.get()<=inputchachesize) { if(recvQueue.offer(packx)) { - recvQueueUsed.addAndGet((int) packx.getPayload().getLength()); + recvQueueUsed.addAndGet((int) packx.getPayload().getTotalLength()); LockSupport.unpark(parkThread); } } - + return true; } } diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualServerSocket.java b/src/org/kne/cloud/network/klalb/KLALBVirtualServerSocket.java index f451354..0d8f281 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualServerSocket.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualServerSocket.java @@ -17,7 +17,7 @@ public class KLALBVirtualServerSocket extends VirtualServerSocket { private KLALBController controler; protected ServerSocketChannel channel; public KLALBVirtualServerSocket(KLALBController controler) throws IOException { - super(controler.createVirtualImpl()); + super(controler.createVirtualSocketImpl()); this.controler=controler; } diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualSocket.java b/src/org/kne/cloud/network/klalb/KLALBVirtualSocket.java index e9a7f60..ffc95df 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualSocket.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualSocket.java @@ -18,7 +18,7 @@ public class KLALBVirtualSocket extends VirtualSocket { protected SocketChannel channel; public KLALBVirtualSocket(KLALBController controler) throws SocketException { - super(controler.createVirtualImpl()); + super(controler.createVirtualSocketImpl()); this.controller = controler; } diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualSocketChannel.java b/src/org/kne/cloud/network/klalb/KLALBVirtualSocketChannel.java index f8fcd06..5b3e0ea 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualSocketChannel.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualSocketChannel.java @@ -155,4 +155,8 @@ public class KLALBVirtualSocketChannel extends SocketChannel{ public void setAutoFlush(boolean b) throws IOException { ((KVSIOutputStream)socket.getOutputStream()).setAutoFlush(b); } + + public void flush() throws IOException { + ((KVSIOutputStream)socket.getOutputStream()).flush(); + } } diff --git a/src/org/kne/cloud/network/klalb/KLALBVirtualSocketImpl.java b/src/org/kne/cloud/network/klalb/KLALBVirtualSocketImpl.java index e01ccbc..92f0a1d 100644 --- a/src/org/kne/cloud/network/klalb/KLALBVirtualSocketImpl.java +++ b/src/org/kne/cloud/network/klalb/KLALBVirtualSocketImpl.java @@ -56,11 +56,16 @@ import java.util.zip.GZIPInputStream; import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; +import org.kne.cloud.network.NetworkPacket; import org.kne.cloud.network.PortPair; import org.kne.cloud.network.SpeedLimiter; import org.kne.cloud.network.ThreadTool; import org.kne.cloud.network.VirtualSocketImpl; +import org.kne.cloud.network.congress.CongressAlgorithm; +import org.kne.cloud.network.congress.ECNCongressAlgorithm; +import org.kne.cloud.network.congress.LARCCongressAlgorithm; import org.kne.cloud.network.monitor.SpeedAndTrafficAndDelayMonitorDataImpl; +import org.kne.concurrent.HighPerformanceExecutor; import org.kne.concurrent.SpinLock; import org.kne.concurrent.ThreadParker; import org.kne.debug.TimeDebugger; @@ -69,10 +74,10 @@ import org.kne.io.Data; import com.google.gson.internal.Pair; import java.util.*; - + public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements BindableKLALBPacketConsumer{ - private static final int HEADER_CALIBRATE = 40; + private static final int HEADER_CALIBRATE = 80; /* private PrintStream dbg; { @@ -84,6 +89,9 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl } */ + + + private static final boolean debug = false; private SpeedAndTrafficAndDelayMonitorDataImpl socketMonitor=new SpeedAndTrafficAndDelayMonitorDataImpl(); @@ -94,13 +102,13 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl //60000 30 30 - private final int MTU=60000; - private final long MIN_RTTVAR=100000000L; - private final long MIN_LIMIT_SPEED=64*1024L; + private final int MTU=8192; + private final long MIN_RTTVAR=200000000L; + private final long MIN_LIMIT_SPEED=128*1024L; private final long REACK_INTERVAL = 100000000L; - private SpeedLimiter spdlmt=new SpeedLimiter(MIN_LIMIT_SPEED,2000000L); + private SpeedLimiter spdlmt=new SpeedLimiter(MIN_LIMIT_SPEED,1000000L); protected Inet6Address remoteaddr; protected Inet6Address localaddr;{ @@ -156,24 +164,15 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl private int inputchachesize =128* 1024*1024; private int outputchachesize = 128* 1024*1024; - //long pad0,pad1,pad2,pad3,pad4,pad5,pad6,pad7; - //4000 100 100 - //10000 500 500//500 - private volatile long congressWindowSize = MTU * 40; - private volatile long sendWindowSize = MTU * 40; - private volatile long rcvSpeed=MIN_LIMIT_SPEED; - private volatile long requestSpeed=MIN_LIMIT_SPEED; + private volatile long congressWindowSize = MTU * 10; + private volatile long sendWindowSize = MTU * 100; + private volatile long requestSpeedOld=MIN_LIMIT_SPEED; - //private volatile long congressSpeed=0; - private volatile double congressFactor=2; - - //private double[] congressFactors=new double[] {0.95,0.95,0.95,1.2,0.8}; - //private int congressFactorsState=0; - //private volatile double maxutilization=0.8; + @@ -182,18 +181,12 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl private long outputcount = 0; - private volatile long RTTMin=1000000000L; - private volatile long RTTVar=1000000000L; - private volatile long RTTAvg=1000000000L; - private volatile long RTO=1000000000L; - - private volatile long QueueingAvg=1000000000L; //private volatile long RunningSpeed=spdlmt.getLimitspeed(); - + private CongressAlgorithm algorithm=new ECNCongressAlgorithm(); @@ -238,21 +231,21 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl try { long x=System.nanoTime(); long dt=x-dtp.resendtimer; - long limit= (long) (Math.pow(2, dtp.getSendCounter()-1)*(RTO*2)); + long limit= (long) ((1<< (dtp.getSendCounter()-1))*(algorithm.getRTO()*2)); if(dt>limit) { if(dtp.getSendCounter()>=10) { throw new IOException("send error!"); } - + HighPerformanceExecutor.defaultExecutor.execute(() -> { dtp.setPriority(4); - long length= dtp.getLength(); - socketRawMonitor.getOutTrafficAL().addAndGet(length); + long length= dtp.getTotalLength(); + socketRawMonitor.getOutTrafficAL().add(length); spdlmt.forceTransmit(length); controller.sendPacketToAddress((Inet6Address) remoteaddr,0,dtp,1); //System.out.println("第"+(dtp.getSendCounter()-1)+"次重传:"+dtp+" "+dt+">"+limit); dtp.resendtimer=x; - + }); /*if(congressWindowSize>65535) { congressWindowSize-=(dtp.getSize()+HEADER_CALIBRATE); @@ -283,19 +276,12 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl @Override public void run() { - try { if(getLocalPort()!=0&&getPort()!=0) if(remoteaddr instanceof Inet6Address&&(!remoteaddr.isAnyLocalAddress())) + HighPerformanceExecutor.defaultExecutor.execute(() -> { controller.sendPacketToAddress((Inet6Address) remoteaddr,0, new ACKTPacket(getLocalPort(),getPort(), -1, getAvaliableRcvWindow(),false,socketMonitor.getInSpeedMax(),0)); - } catch (IOException e) { - try { - close0(true); - } catch (IOException e1) { - e1.printStackTrace(); - } - e.printStackTrace(); - } + }); } @@ -437,8 +423,25 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl //System.out.println(c); spdlmt.setLimitspeed(Math.max(MIN_LIMIT_SPEED,c)); }); - updateBandwidthReq(requestSpeed); - + //updateBandwidthReq(MIN_LIMIT_SPEED); + algorithm.setSpeedControlConsumer((speed,burst)->{ + if(debug) + System.out.println("speed:"+speed); + if(portp!=null) { + if(speed>requestSpeedOld*1.01||speed{ + if(debug) + System.out.println("window:"+window); + congressWindowSize=window; + updateWindowSize(); + }); + algorithm.reset(); this.portp=portpx; }catch(SocketTimeoutException e) { @@ -450,7 +453,6 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl }finally { connectionPending=false; } - controller.getResendTimer().schedule(flowControlTask, 5000, 5000); } private void updateBandwidthReq(long requestSpeed) { @@ -477,7 +479,7 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl if (!(host instanceof Inet6Address)) { throw new IllegalArgumentException("invalid address type, KLALB socket can only use IPV6 virtualaddress"); } - if ((!host.isAnyLocalAddress()) && (!host.equals(controller.getSelf()))) { + if ((!host.isAnyLocalAddress()) && (!host.equals(controller.getSelf().getAddress()))) { throw new BindException("must bind to self"); } localaddr = (Inet6Address) host; @@ -577,10 +579,10 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl } //System.out.println("PULL:"+dtp2); dataPack = dtp2; - socketMonitor.getInTrafficAL().addAndGet(dtp2.getSize()); - socketMonitor.getInPacketCounterAL().incrementAndGet(); - controller.getDatatMonitor().getInTrafficAL().addAndGet(dtp2.getSize()); - controller.getDatatMonitor().getInPacketCounterAL().incrementAndGet(); + socketMonitor.getInTrafficAL().add(dtp2.getSize()); + socketMonitor.getInPacketCounterAL().add(1); + controller.getDatatMonitor().getInTrafficAL().add(dtp2.getSize()); + controller.getDatatMonitor().getInPacketCounterAL().add(1); //checkFlowControl(dtp2); break; @@ -987,58 +989,50 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl tt.cancel(); tt=null; } - //TimeDebugger td=new TimeDebugger(); - //td.putTime("start"); dataPack.putTimePassport("packed"); - /*while (!avaliable) { - sendthread.parkNanos(1000000L); - }*/ dataPack.putTimePassport("waitForAvaliable"); - //td.putTime("waitForAvaliable"); while(true){ if (isClosed()) throw new SocketException("Socket is closed"); - //System.out.println(sendmap.size()); boolean b=sendmapWindowUsed.get()<=sendWindowSize; - //boolean b=sendmap.size()<=reallimit/MTU; if(b) break; sendthread.parkNanos(1000000L); } dataPack.putTimePassport("waitForWindow"); - //td.putTime("waitForCache"); DATATPacket pack=dataPack; dataPack=null; pack.getDataBuffer().flip(); - //System.out.println(pack.getDataBuffer()); - //cacheCreateTime=System.nanoTime(); - //td.putTime("flipBuffer"); + + spdlmt.transmit(pack.getDataBuffer().limit()); - socketMonitor.getOutTrafficAL().addAndGet(pack.getDataBuffer().limit()); - socketMonitor.getOutPacketCounterAL().incrementAndGet(); - controller.getDatatMonitor().getOutTrafficAL().addAndGet(pack.getDataBuffer().limit()); - controller.getDatatMonitor().getOutPacketCounterAL().incrementAndGet(); - //td.putTime("doStatistic"); + HighPerformanceExecutor.defaultExecutor.execute(() -> { + DATATPacket prv= sendmap.put(pack.getNumber(),pack); + long wu=sendmapWindowUsed.addAndGet((int) (pack.getTotalLength()+HEADER_CALIBRATE)); + if(prv!=null) { + wu=sendmapWindowUsed.addAndGet((int) (-(prv.getTotalLength()+HEADER_CALIBRATE))); + } + algorithm.setCurrentWindowUsed(wu ); + if(debug) + System.out.println("windowused:"+wu); + + + socketMonitor.getOutTrafficAL().add(pack.getDataBuffer().limit()); + socketMonitor.getOutPacketCounterAL().add(1); + controller.getDatatMonitor().getOutTrafficAL().add(pack.getDataBuffer().limit()); + controller.getDatatMonitor().getOutPacketCounterAL().add(1); + pack.setPriority(5); pack.resendtimer=System.nanoTime(); - socketRawMonitor.getOutTrafficAL().addAndGet(pack.getLength()); + socketRawMonitor.getOutTrafficAL().add(pack.getTotalLength()); controller.sendPacketToAddress(remoteaddr,0,pack); - //td.putTime("doSend"); - /* sendmaplock.readLock().lock(); - try{*/ - DATATPacket prv= sendmap.put(pack.getNumber(),pack); - sendmapWindowUsed.addAndGet((int) (pack.getLength()+HEADER_CALIBRATE)); - if(prv!=null) - sendmapWindowUsed.addAndGet((int) (-(prv.getLength()+HEADER_CALIBRATE))); - //System.out.println("PUSH:"+pack); - /*}finally { - sendmaplock.readLock().unlock(); - }*/ - //td.putTime("addToList"); + }); + + + + - //td.putTime("newPacket"); - //td.print(); } } @@ -1066,12 +1060,14 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl DATATPacket pack=new DATATPacket(localport, port, outputcount++,MTU); pack.setPriority(5); pack.getDataBuffer(). flip(); + HighPerformanceExecutor.defaultExecutor.execute(() -> { controller.sendPacketToAddress(remoteaddr,0,pack); + }); /*sendmaplock.readLock().lock(); try{*/ pack.resendtimer=System.nanoTime(); sendmap.put(pack.getNumber(),pack); - sendmapWindowUsed.addAndGet((int) (pack.getLength()+HEADER_CALIBRATE)); + sendmapWindowUsed.addAndGet((int) (pack.getTotalLength()+HEADER_CALIBRATE)); /*}finally { sendmaplock.readLock().unlock(); }*/ @@ -1173,11 +1169,11 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl @Override protected void close() throws IOException { close0(true); - -//new Exception().printStackTrace(); } private void close0(boolean b) throws IOException { + +//new Exception().printStackTrace(); if ( !isClosed()) { closed = true; @@ -1185,12 +1181,11 @@ public class KLALBVirtualSocketImpl extends VirtualSocketImpl implements Bindabl sendCheckTask.cancel(); flowControlTask.cancel(); if(b) - if(remoteaddr!=null) - try { - + if(remoteaddr!=null) { + HighPerformanceExecutor.defaultExecutor.execute(() -> { controller.sendPacketToAddress(remoteaddr,0, new RSTPacket(super.localport, super.port), 2); - } catch (NoRouteToHostException e) { + }); } controller.getStreamPortBinder().disconnect(this); if(portp!=null) { @@ -1496,7 +1491,8 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ } @Override - public void accept(Inet6Address from, KLALBPacket u) { + public void accept(Inet6Address from,NetworkPacket np) { + KLALBPacket u=(KLALBPacket) np; try { //System.out.println(this+" "+u); switch (u.getType()) { @@ -1544,14 +1540,14 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ } private void acceptDATA(Inet6Address from, DATATPacket dtp) throws BindException, IOException { - socketRawMonitor.getInTrafficAL().addAndGet(dtp.getLength()); + socketRawMonitor.getInTrafficAL().add(dtp.getTotalLength()); if(isListening()) { if(dtp.getNumber()==0) { backlogQueuelock.lock(); try{ //controller.getStreamPortBinder().checkIsConnected(new Pair); - InetSocketAddress is=new InetSocketAddress(from, dtp.getSport()); + InetSocketAddress is=new InetSocketAddress(from, dtp.getSrcPort()); AtomicBoolean ab=new AtomicBoolean(true); for (Iterator iterator = backlogQueue.iterator(); iterator.hasNext();) { Object[] objects = (Object[]) iterator.next(); @@ -1561,7 +1557,7 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ } } if(ab.get()) { - if(controller.getStreamPortBinder().checkIsConnect(this,new InetSocketAddress(from, dtp.getSport()))) { + if(controller.getStreamPortBinder().checkIsConnect(this,new InetSocketAddress(from, dtp.getSrcPort()))) { ab.set(false); } } @@ -1572,8 +1568,10 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ /* controller.sendPacketToAddress(from.getRemoteVaddr(), new ACKTPacket(dtp.getDport(), dtp.getSport(),dtp.getNumber(),true,0), 0,2);*/ }else { - controller.sendPacketToAddress(from,0, new RSTPacket(dtp.getDport(), dtp.getSport()), + HighPerformanceExecutor.defaultExecutor.execute(() -> { + controller.sendPacketToAddress(from,0, new RSTPacket(dtp.getDstPort(), dtp.getSrcPort()), 2); + }); } @@ -1581,14 +1579,17 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ backlogQueuelock.unlock(); } }else { - controller.sendPacketToAddress(from,0, new RSTPacket(dtp.getDport(), dtp.getSport()), + HighPerformanceExecutor.defaultExecutor.execute(() -> { + controller.sendPacketToAddress(from,0, new RSTPacket(dtp.getDstPort(), dtp.getSrcPort()), 2); + }); } }else { //System.out.println(dtp.isCE()); - controller.sendPacketToAddress(from,0, new ACKTPacket(dtp.getDport(), dtp.getSport(), dtp.getNumber(), - getAvaliableRcvWindow(),dtp.isCE(),socketMonitor.getInSpeedMax(),dtp.getSendcount()), 1); - + HighPerformanceExecutor.defaultExecutor.execute(() -> { + controller.sendPacketToAddress(from,0, new ACKTPacket(dtp.getDstPort(), dtp.getSrcPort(), dtp.getNumber(), + getAvaliableRcvWindow(),dtp.isCE(),socketMonitor.getInSpeedAvg(),dtp.getSendcount()), 1); + }); boolean added=false; long number=dtp.getNumber(); @@ -1624,138 +1625,47 @@ public void associateSocketChannel(SocketChannel b) throws IOException{ private void acceptACK(Inet6Address from, ACKTPacket ackt) throws IOException { if(isListening()) { - controller.sendPacketToAddress(from,0, new RSTPacket(ackt.getDport(), ackt.getSport()), + HighPerformanceExecutor.defaultExecutor.execute(() -> { + controller.sendPacketToAddress(from,0, new RSTPacket(ackt.getDstPort(), ackt.getSrcPort()), 2); + }); }else { peerAvaliableRcvWindow = ackt.getAvaliableRcvWindow(); updateWindowSize(); + long bwrcv=ackt.getRcvSpeed(); + if(debug) + System.out.println("bwrcv:"+bwrcv); + algorithm.setCurrentBandwidth(bwrcv); - rcvSpeed=ackt.getRcvSpeed(); - - /*if(rcvSpeed>=congressSpeed) { - congressSpeed=rcvSpeed; - }else { - congressSpeed=(congressSpeed*99+rcvSpeed)/100; - }*/ - requestSpeed=(long) (Math.max(MIN_LIMIT_SPEED, rcvSpeed)*congressFactor); - if(portp!=null) { - if(requestSpeed>requestSpeedOld*1.01||requestSpeedswu) { - cachesizenew=(int) swu; - } - - }while(congresscachesize.compareAndSet(cachesizeold, cachesizenew)); - - //System.out.println(reallimit+" +1024"); - - }*/ - if(ackt.isCongress()) { - congressFactor=1.5; - if(congressWindowSize>65535) { - congressWindowSize-=(kl.getSize()+HEADER_CALIBRATE)/8; - updateWindowSize(); - //System.out.println(reallimit+" -8192"); - } - }else { - if(sendmapWindowUsed.get()*2L>=congressWindowSize&&congressWindowSize<=outputchachesize) { - congressWindowSize+=(kl.getSize()+HEADER_CALIBRATE)/32; - updateWindowSize(); - //System.out.println(reallimit+" +1024"); - } - } - //controller.removeFromSend(from.getRemoteVaddr(),kl); + + if(kl.getSendCounter()==1) { long RTTC=ackt.getRcvtime()- kl.getSndtime(); - if(RTTC<=RTTMin) { - RTTMin=RTTC; - }else { - RTTMin= (RTTMin*99999+RTTC)/100000; - } - - long queueing=RTTC-RTTMin; - QueueingAvg=(QueueingAvg*99999+queueing)/100000; - - if(firstUpdate.compareAndSet(true, false)) { - RTTAvg=RTTC; - RTTVar=RTTC/2; - - }else { - RTTVar=(RTTVar*3+Math.abs(RTTAvg-RTTC))/4; - RTTAvg= (RTTAvg*7+RTTC)/8; - } - RTO=RTTAvg+Math.max(MIN_RTTVAR, RTTVar*4);//RTTVar*4 - - - - /*if(RTTC>RTO) { - congressFactor=Math.min( 0.9,congressFactor); - }else { - if(congressFactor<1.1) - congressFactor+=0.001; - } */ - - - //System.out.println(congressFactor); - //spdlmt.setLimitspeed(1024*1024); - //reallimit=Math.max(MTU*2,(int) (congressSpeed*RTTMin*4/1000000000L)); - //System.out.println(reallimit/MTU); - /*long nspd=(long) (congressSpeed*congressFactor); - spdlmt.setLimitspeed(Math.max(nspd,MIN_LIMIT_SPEED));*/ - - - // System.out.println("RwqSpeed:"+(requestSpeed/1024)+"K MaxSpeed:"+(congressSpeed/1024)+"K LimitSpeed:"+(spdlmt.getLimitspeed()/1024)+"K"); - //System.out.println("RTTMin:"+RTTMin/1000000L+"ms RTTAvg:"+RTTAvg/1000000L+"ms"); - - + algorithm.putAck(kl.getTotalLength(), RTTC,ackt.isCongress()); } - //kl.dispose(); } } - //ackt.dispose(); } private void updateWindowSize() { diff --git a/src/org/kne/cloud/network/klalb/MonitoredChannel.java b/src/org/kne/cloud/network/klalb/MonitoredChannel.java new file mode 100644 index 0000000..c71a8a5 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/MonitoredChannel.java @@ -0,0 +1,54 @@ +package org.kne.cloud.network.klalb; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.Channel; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.util.concurrent.atomic.AtomicLong; + +public class MonitoredChannel implements Channel,ReadableByteChannel ,WritableByteChannel{ + + private Channel channel; + private AtomicLong[] totalIn; + private AtomicLong[] totalOut; + + public MonitoredChannel (Channel channel,AtomicLong[] totalIn,AtomicLong[] totalOut) { + this.channel=channel; + this.totalIn=totalIn; + this.totalOut=totalOut; + } + + public Channel getChannel() { + return channel; + } + + @Override + public boolean isOpen() { + return channel.isOpen(); + } + + @Override + public void close() throws IOException { + channel.close(); + } + + @Override + public int write(ByteBuffer src) throws IOException { + int count=((WritableByteChannel)channel).write(src); + for(AtomicLong x:totalOut) + x.addAndGet(count); + return count; + } + + @Override + public int read(ByteBuffer dst) throws IOException { + int count=((ReadableByteChannel)channel).read(dst); + if(count!=-1) { + for(AtomicLong x:totalIn) + x.incrementAndGet(); + } + return count; + } + +} diff --git a/src/org/kne/cloud/network/klalb/MonitoredInputStream.java b/src/org/kne/cloud/network/klalb/MonitoredInputStream.java index 137b07f..296d9ca 100644 --- a/src/org/kne/cloud/network/klalb/MonitoredInputStream.java +++ b/src/org/kne/cloud/network/klalb/MonitoredInputStream.java @@ -4,11 +4,12 @@ import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; public class MonitoredInputStream extends FilterInputStream { - private AtomicLong[] total; - public MonitoredInputStream(InputStream inputStream,AtomicLong... v) { + private LongAdder[] total; + public MonitoredInputStream(InputStream inputStream,LongAdder... v) { super(inputStream); this.total=v; } @@ -17,8 +18,8 @@ public class MonitoredInputStream extends FilterInputStream { public int read() throws IOException { int v=in.read(); if(v!=-1) { - for(AtomicLong x:total) - x.incrementAndGet(); + for(LongAdder x:total) + x.add(1); } return v; } @@ -27,8 +28,8 @@ public class MonitoredInputStream extends FilterInputStream { public int read(byte[] b) throws IOException { int v=in.read(b); if(v!=-1) { - for(AtomicLong x:total) - x.addAndGet(v); + for(LongAdder x:total) + x.add(v); } return v; } @@ -37,8 +38,8 @@ public class MonitoredInputStream extends FilterInputStream { public int read(byte[] b, int off, int len) throws IOException { int v=in.read(b, off, len); if(v!=-1) { - for(AtomicLong x:total) - x.addAndGet(v); + for(LongAdder x:total) + x.add(v); } return v; } diff --git a/src/org/kne/cloud/network/klalb/MonitoredOutputStream.java b/src/org/kne/cloud/network/klalb/MonitoredOutputStream.java index 49d4a39..237a964 100644 --- a/src/org/kne/cloud/network/klalb/MonitoredOutputStream.java +++ b/src/org/kne/cloud/network/klalb/MonitoredOutputStream.java @@ -4,11 +4,12 @@ import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; public class MonitoredOutputStream extends FilterOutputStream { - private AtomicLong[] total; - public MonitoredOutputStream(OutputStream outputStream,AtomicLong ...v) { + private LongAdder[] total; + public MonitoredOutputStream(OutputStream outputStream,LongAdder ...v) { super(outputStream); this.total=v; } @@ -16,22 +17,22 @@ public class MonitoredOutputStream extends FilterOutputStream { @Override public void write(int b) throws IOException { out.write(b); - for(AtomicLong x:total) - x.incrementAndGet(); + for(LongAdder x:total) + x.add(1); } @Override public void write(byte[] b) throws IOException { out.write(b); - for(AtomicLong x:total) - x.addAndGet(b.length); + for(LongAdder x:total) + x.add(b.length); } @Override public void write(byte[] b, int off, int len) throws IOException { out.write(b, off, len); - for(AtomicLong x:total) - x.addAndGet(len); + for(LongAdder x:total) + x.add(len); } @Override diff --git a/src/org/kne/cloud/network/klalb/NACKTPacket.java b/src/org/kne/cloud/network/klalb/NACKTPacket.java index 73f2698..a4ec5b6 100644 --- a/src/org/kne/cloud/network/klalb/NACKTPacket.java +++ b/src/org/kne/cloud/network/klalb/NACKTPacket.java @@ -25,14 +25,14 @@ public class NACKTPacket extends KLALBPacket implements PortPacket{ @Override public String toString() { - return "NACKT "+getSport()+"->"+getDport()+" "+getNumber()+"[]"; + return "NACKT "+getSrcPort()+"->"+getDstPort()+" "+getNumber()+"[]"; } - public int getSport() { + public int getSrcPort() { return klalbHeader.getInt(1); } - public int getDport() { + public int getDstPort() { return klalbHeader.getInt(5); } diff --git a/src/org/kne/cloud/network/klalb/PONGPacket.java b/src/org/kne/cloud/network/klalb/PONGPacket.java index 1c33a8c..01c5ba3 100644 --- a/src/org/kne/cloud/network/klalb/PONGPacket.java +++ b/src/org/kne/cloud/network/klalb/PONGPacket.java @@ -27,7 +27,7 @@ public class PONGPacket extends KLALBPacket { @Override - public long getLength() { + public long getTotalLength() { return HEADER_LENGTH; } diff --git a/src/org/kne/cloud/network/klalb/KLALBPacketConsumer.java b/src/org/kne/cloud/network/klalb/PacketConsumer.java similarity index 50% rename from src/org/kne/cloud/network/klalb/KLALBPacketConsumer.java rename to src/org/kne/cloud/network/klalb/PacketConsumer.java index 592890c..0c2bb07 100644 --- a/src/org/kne/cloud/network/klalb/KLALBPacketConsumer.java +++ b/src/org/kne/cloud/network/klalb/PacketConsumer.java @@ -4,6 +4,8 @@ import java.net.Inet6Address; import java.util.function.BiConsumer; import java.util.function.Consumer; -public interface KLALBPacketConsumer extends BiConsumer { +import org.kne.cloud.network.NetworkPacket; -} +public interface PacketConsumer extends BiConsumer { + +} diff --git a/src/org/kne/cloud/network/klalb/PortBinder.java b/src/org/kne/cloud/network/klalb/PortBinder.java index faf7d20..31ecc6b 100644 --- a/src/org/kne/cloud/network/klalb/PortBinder.java +++ b/src/org/kne/cloud/network/klalb/PortBinder.java @@ -18,6 +18,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.kne.cloud.network.NetworkPacket; + import com.google.gson.internal.Pair; public class PortBinder { @@ -58,7 +60,7 @@ public class PortBinder { if(portn==portnod) { cnt++; if(cnt>1) { - throw new BindException("can't alloc port"); + throw new BindException("can't alloc port"); } } boolean flag=true; @@ -105,7 +107,7 @@ public class PortBinder { connectMaplock.writeLock().unlock(); } } - public void disconnect(BindableKLALBPacketConsumer ks) throws BindException { + public void disconnect(BindableKLALBPacketConsumer ks) { connectMaplock.writeLock().lock(); try { removeAsValue(connectMap, ks); @@ -122,7 +124,7 @@ public class PortBinder { listenMaplock.writeLock().unlock(); } } - public void unlisten(BindableKLALBPacketConsumer ks) throws BindException { + public void unlisten(BindableKLALBPacketConsumer ks) { /*System.out.println(listenMap); new RuntimeException("!").printStackTrace();*/ listenMaplock.writeLock().lock(); @@ -205,35 +207,35 @@ public class PortBinder { return b; }*/ public boolean distributePacketToConsumer(Inet6Address srcAddr,PortPacket packet) { - InetSocketAddress local=new InetSocketAddress(controller.getSelf().getAddress(), packet.getDport()); - InetSocketAddress remote=new InetSocketAddress(srcAddr, packet.getSport()); + InetSocketAddress local=new InetSocketAddress(controller.getSelf().getAddress(), packet.getDstPort()); + InetSocketAddress remote=new InetSocketAddress(srcAddr, packet.getSrcPort()); BindableKLALBPacketConsumer bkc=connectMap.get(new Pair(local, remote)); if(bkc!=null) { - bkc.accept(srcAddr, (KLALBPacket) packet); + bkc.accept(srcAddr, (NetworkPacket) packet); return true; } - InetSocketAddress localany=new InetSocketAddress(ANYLA, packet.getDport()); + InetSocketAddress localany=new InetSocketAddress(ANYLA, packet.getDstPort()); bkc=connectMap.get(new Pair(localany, remote)); if(bkc!=null) { - bkc.accept(srcAddr, (KLALBPacket) packet); + bkc.accept(srcAddr, (NetworkPacket) packet); return true; } bkc=listenMap.get(local); if(bkc!=null) { - bkc.accept(srcAddr, (KLALBPacket) packet); + bkc.accept(srcAddr, (NetworkPacket) packet); return true; } bkc=listenMap.get(localany); if(bkc!=null) { - bkc.accept(srcAddr, (KLALBPacket) packet); + bkc.accept(srcAddr, (NetworkPacket) packet); return true; } return false; } - public boolean checkIsBind(KLALBVirtualSocketImpl klalbVirtualSocketImpl) { + public boolean checkIsBind(BindableKLALBPacketConsumer klalbVirtualSocketImpl) { return bindMap.containsValue(klalbVirtualSocketImpl); } public boolean checkIsConnect(BindableKLALBPacketConsumer kservers,InetSocketAddress isaf) throws BindException { diff --git a/src/org/kne/cloud/network/klalb/PortPacket.java b/src/org/kne/cloud/network/klalb/PortPacket.java index aaf6e9d..1757557 100644 --- a/src/org/kne/cloud/network/klalb/PortPacket.java +++ b/src/org/kne/cloud/network/klalb/PortPacket.java @@ -2,7 +2,7 @@ package org.kne.cloud.network.klalb; public interface PortPacket { - public int getSport(); + public int getSrcPort(); - public int getDport(); + public int getDstPort(); } diff --git a/src/org/kne/cloud/network/klalb/RSTPacket.java b/src/org/kne/cloud/network/klalb/RSTPacket.java index 318b0c6..77180c4 100644 --- a/src/org/kne/cloud/network/klalb/RSTPacket.java +++ b/src/org/kne/cloud/network/klalb/RSTPacket.java @@ -20,17 +20,17 @@ public class RSTPacket extends KLALBPacket implements PortPacket{ } - public int getSport() { + public int getSrcPort() { return klalbHeader.getInt(1); } - public int getDport() { + public int getDstPort() { return klalbHeader.getInt(5); } @Override public String toString() { - return "RST "+getSport()+"->"+getDport(); + return "RST "+getSrcPort()+"->"+getDstPort(); } diff --git a/src/org/kne/cloud/network/klalb/SendItem.java b/src/org/kne/cloud/network/klalb/SendItem.java index 7bea99c..5930fe2 100644 --- a/src/org/kne/cloud/network/klalb/SendItem.java +++ b/src/org/kne/cloud/network/klalb/SendItem.java @@ -1,22 +1,29 @@ package org.kne.cloud.network.klalb; +import org.kne.cloud.network.NetworkPacket; import org.kne.cloud.network.ipv6.IPv6Packet; -public class SendItem { +public class SendItem { - private IPv6Packet packet; + private long packetLength; + private T packet; private long sendtime=System.nanoTime(); - public SendItem(IPv6Packet packet) { + public SendItem(T packet) { this.packet=packet; + this.packetLength=packet.getTotalLength(); } - public IPv6Packet getPacket() { + public T getPacket() { return packet; } public long getSendtime() { return sendtime; } + + public long getPacketLength() { + return packetLength; + } } diff --git a/src/org/kne/cloud/network/klalb/SimpleKLALBClient.java b/src/org/kne/cloud/network/klalb/SimpleKLALBClient.java deleted file mode 100644 index a008113..0000000 --- a/src/org/kne/cloud/network/klalb/SimpleKLALBClient.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.kne.cloud.network.klalb; - -import java.io.File; -import java.io.IOException; -import java.net.Inet6Address; -import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.net.UnknownHostException; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.Scanner; - -import org.kne.cloud.network.MultipurposeSocketAddress; -import org.kne.cloud.network.SocketBridge; -import org.kne.cloud.network.SocketListener; -import org.kne.cloud.network.SocketToSocketProxy; -import org.kne.cloud.network.klalb.ui.KLALBStateGUI2; -import org.kne.util.AutoProperties; - -public class SimpleKLALBClient { - public static KLALBStateGUI2 ksg; -public static void main(String[] args) throws UnknownHostException, IOException { - - System.out.println(CONST.klalb+" V"+CONST.klalbver); - Scanner scn=new Scanner(System.in); - Properties def=new Properties(); - def.setProperty("server", ""); - def.setProperty("local", ""); - AutoProperties ap=new AutoProperties(new File("klalbclient.ini"),def); - KLALBController kc=new KLALBController(); - kc.registerToProxyTypeAs("KLALB"); - MultipurposeSocketAddress msa=new MultipurposeSocketAddress(ap.getProperty("server")); - Inet6Address vad= kc.getRemoteVaddrBySocketAddress(msa); - MultipurposeSocketAddress vmsa=new MultipurposeSocketAddress("KLALB_Stream",new InetSocketAddress(vad, 23333)); - System.out.println("连接成功:"+ap.getProperty("server")); - new SocketToSocketProxy(new MultipurposeSocketAddress(ap.getProperty("local")), vmsa); - //System.out.println("提示:输入state并回车可以查看当前线路状态"); - while(true) { - String s=scn.nextLine(); - switch(s) { - case "help": - System.out.println("help:查看命令使用说明"); - System.out.println("state:查看线路状态"); - //System.out.println("reload:重新加载线路配置文件"); - System.out.println("reconnect:所有离线线路跳过重连等待时间立即尝试重连"); - System.out.println("monitor:显示监视器图形界面"); - System.out.println("stop:退出程序"); - break; - case "stop": - System.exit(0); - break; - case "state": - System.out.println("状态\t可靠性\t上传流量\t下载流量\t上传速度\t下载速度\t上传延迟\t下载延迟\t上传抖动\t下载抖动"); - synchronized (kc.getLines()) { - for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine hostPort = iterator.next(); - System.out.println(hostPort .toString()); - //System.out.println(); - } - } - break; - case "monitor": - if(ksg==null) - ksg=new KLALBStateGUI2(kc); - ksg.setVisible(true); - break; - case "reconnect": - kc.reconnectImmediately(); - break; - default : - System.out.println("未知命令,请输入help以查询命令说明"); - - } - } -} -} diff --git a/src/org/kne/cloud/network/klalb/SimpleKLALBServer.java b/src/org/kne/cloud/network/klalb/SimpleKLALBServer.java deleted file mode 100644 index cbe142f..0000000 --- a/src/org/kne/cloud/network/klalb/SimpleKLALBServer.java +++ /dev/null @@ -1,181 +0,0 @@ -package org.kne.cloud.network.klalb; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.net.Socket; -import java.net.UnknownHostException; -import java.util.Iterator; -import java.util.Scanner; - -import org.kne.cloud.network.DatagramSocketListener; -import org.kne.cloud.network.MultipurposeSocketAddress; -import org.kne.cloud.network.ProtocolDetectorServerSocketFactory; -import org.kne.cloud.network.ProtocolDetectorSocket; -import org.kne.cloud.network.SocketBridge; -import org.kne.cloud.network.SocketListener; -import org.kne.cloud.network.SocketToSocketProxy; -import org.kne.cloud.network.SocketType; -import org.kne.cloud.network.klalb.ui.KLALBStateGUI2; - -public class SimpleKLALBServer { - public static KLALBStateGUI2 ksg; - public static SocketListener tcpl; - public static DatagramSocketListener udpl; - public static ServerPropties sp; - public static KLALBController kc; - static { - MultipurposeSocketAddress.getSocketTypeRegister().put("DETTCP",new SocketType(null, new ProtocolDetectorServerSocketFactory())); - } - public static void main(String[] args) throws IOException { - //Debuger dbg=new Debuger(); - //dbg.start(); - - System.out.println(CONST.klalb+" V"+CONST.klalbver); - sp=new ServerPropties(); - - System.out.println("虚拟地址:"+sp.getVirtualIP().getHostAddress()); - kc=new KLALBController(sp.getVirtualIP()); - /* kc.setSelflineTableSupplier(()->{ - return fileRead("linetable.txt"); - });*/ - kc.registerToProxyTypeAs("KLALB"); - - System.out.println("开放端口:"+sp.getBind()); - openPort(sp.getBind()); - System.out.println("本地服务:"+sp.getLocal()); - openLocalPort(sp.getLocal()); - - - - Scanner scn=new Scanner(System.in); - while(true) { - String s=scn.next(); - String[]sc=s.split(" "); - switch(sc[0]) { - case "help": - System.out.println("state:查看线路状态"); - System.out.println("reload:重新加载线路配置"); - System.out.println("monitor:显示监视器图形界面"); - System.out.println("stop:退出程序"); - break; - case "stop": - System.exit(0); - break; - case "state": - System.out.println("状态\t可靠性\t上传流量\t下载流量\t上传速度\t下载速度\t上传延迟\t下载延迟\t上传抖动\t下载抖动"); - synchronized (kc.getLines()) { - for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine hostPort = iterator.next(); - System.out.println(hostPort .toString()); - //System.out.println(); - } - } - break; - case "monitor": - if(ksg==null) - ksg=new KLALBStateGUI2(kc); - ksg.setVisible(true); - break; - default: - System.out.println("未知命令,请输入help以查询指令说明"); - } - } - } - private static void openPort(String bip) throws IOException { - if(tcpl!=null) - tcpl.close(); - if(udpl!=null) { - udpl.close(); - } - MultipurposeSocketAddress mpsa=new MultipurposeSocketAddress(bip,"DETTCP"); - tcpl=new SocketListener(mpsa); - tcpl.setCon((soc)->{ - ProtocolDetectorSocket pds=(ProtocolDetectorSocket) soc; - if(!pds.getProtocolStack().isEmpty()&&pds.getProtocolStack().pop().getName().equals("KLALB")) { - KLALBRemoteLine krs=null; - try { - krs = new KLALBRemoteLine(new StreamKLALBPacketLink(pds)); - kc.addRemoteLine(krs); - } catch (IOException e) { - e.printStackTrace(); - } - }else { - MultipurposeSocketAddress mpsa2=new MultipurposeSocketAddress(sp.getLocal()); - Socket s=null; - try { - s=mpsa2.connectSocket(); - new SocketBridge(pds, s).run(); - } catch (UnknownHostException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - }finally { - if(s!=null) - try { - s.close(); - } catch (IOException e1) { - // TODO 自动生成的 catch 块 - e1.printStackTrace(); - } - try { - soc.close(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - } - } - }); - udpl=new DatagramSocketListener(new MultipurposeSocketAddress(bip, "UDP")); - udpl.setCon((r)->{ - KLALBRemoteLine krl; - try { - krl=new KLALBRemoteLine(new SplitedDatagramKLALBPacketLink(r)); - kc.addRemoteLine(krl); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - }); - } - private static void openLocalPort(String bip) throws IOException { - MultipurposeSocketAddress mpsa=new MultipurposeSocketAddress(bip); - new SocketToSocketProxy(new MultipurposeSocketAddress("KLALB_Stream", "::0", 23333),mpsa); - } - private static String fileRead(String filePath){ - //1.定义一个BufferedReader对象,将文件内容读取到缓存 - BufferedReader bufferedReader =null; - String returnInfo=""; - try{ - // 2.定义一个file对象 - File file = new File(filePath);//定义一个file对象,用来初始化FileReader - // 3.定义一个fileReader对象 - FileReader reader = new FileReader(file); - // 4.定义一个BufferedReader对象,将文件内容读取到缓存 - bufferedReader = new BufferedReader(reader); - // 5.定义一个字符串缓存,将字符串存放缓存中 - StringBuilder stringBuilder = new StringBuilder(); - String str = ""; - while ((str =bufferedReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格 - stringBuilder.append(str + "\n");//将读取的字符串添加换行符后累加存放在缓存中 - } - returnInfo = stringBuilder.toString(); - }catch (Exception e){ - e.printStackTrace(); - }finally { - try{ - if(bufferedReader!=null){ - bufferedReader.close(); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - return returnInfo; - } - -} diff --git a/src/org/kne/cloud/network/klalb/StreamChannelKLALBPacketLink.java b/src/org/kne/cloud/network/klalb/StreamChannelKLALBPacketLink.java index 138e5d7..f724267 100644 --- a/src/org/kne/cloud/network/klalb/StreamChannelKLALBPacketLink.java +++ b/src/org/kne/cloud/network/klalb/StreamChannelKLALBPacketLink.java @@ -5,6 +5,7 @@ import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; +import java.io.StreamCorruptedException; import java.net.InetSocketAddress; import java.net.ProtocolFamily; import java.net.Socket; @@ -17,11 +18,17 @@ import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.Channels; +import java.nio.channels.GatheringByteChannel; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.ScatteringByteChannel; import java.nio.channels.SocketChannel; +import java.nio.channels.WritableByteChannel; +import java.util.List; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicLong; +import org.kne.cloud.network.BufferedChannel; import org.kne.cloud.network.ByteBufferAllocator; import org.kne.cloud.network.MultipurposeSocketAddress; import org.kne.cloud.network.NetworkPacket; @@ -32,6 +39,7 @@ import org.kne.io.KNEChannels; public class StreamChannelKLALBPacketLink extends AbstractKLALBPacketLink implements KLALBPacketLink { private volatile long timeoutTimer; private volatile boolean timerenabled=false; + private boolean enableBuffer=true; private Runnable timeouter=new Runnable() { public void run() { timeoutTimer=System.nanoTime(); @@ -61,13 +69,34 @@ public class StreamChannelKLALBPacketLink extends AbstractKLALBPacketLink implem } private SocketChannel connectSocket; + private ScatteringByteChannel readableChannel; + private GatheringByteChannel writableChannel; private int sotimeout=getDefaultSoTimeout(); public StreamChannelKLALBPacketLink(SocketChannel connectSocket) throws IOException { + this(connectSocket,true); + } + public StreamChannelKLALBPacketLink(SocketChannel connectSocket,boolean enableBuffer) throws IOException { + try { this.connectSocket=connectSocket; + if(enableBuffer) { + BufferedChannel buf=new BufferedChannel(connectSocket,connectSocket,256*1024); + this.readableChannel =buf; + this.writableChannel =buf; + }else { + this.readableChannel=connectSocket; + this.writableChannel=connectSocket; + } + this.enableBuffer=enableBuffer; connectSocket.setOption(StandardSocketOptions.TCP_NODELAY,true); ThreadTool.makeVDaemonThread("连接超时计时线程", timeouter); - new KLALBOutputStream(Channels.newOutputStream(connectSocket)); - new KLALBInputStream(Channels.newInputStream(connectSocket)); + new KLALBOutputStream(Channels.newOutputStream(writableChannel)); + if(writableChannel instanceof BufferedChannel) + ((BufferedChannel) writableChannel).flush(); + new KLALBInputStream(Channels.newInputStream(readableChannel)); + }catch(Throwable e) { + connectSocket.close(); + throw e; + } } @@ -115,28 +144,9 @@ public class StreamChannelKLALBPacketLink extends AbstractKLALBPacketLink implem szeWrite.putInt(kp.limit()); szeWrite.flip(); KLALBVirtualSocketChannel obj = null; - connectSocket.write(new ByteBuffer[] {szeWrite,kp}); - /* - if(connectSocket instanceof KLALBVirtualSocketChannel) { - obj=(KLALBVirtualSocketChannel) connectSocket; - } - boolean isaflush=false; - if(obj!=null) { - isaflush=obj.isAutoFlush(); - obj.setAutoFlush(false); - } - - //connectSocket.setOption(StandardSocketOptions.TCP_NODELAY,false); - connectSocket.write(szeWrite); - - //connectSocket.setOption(StandardSocketOptions.TCP_NODELAY,true); - if(obj!=null) { - obj.setAutoFlush(true); - } - connectSocket.write(kp); - if(obj!=null) { - obj.setAutoFlush(isaflush); - }*/ + writableChannel.write(new ByteBuffer[] {szeWrite,kp}); + checkflush(); + } @@ -161,7 +171,7 @@ public class StreamChannelKLALBPacketLink extends AbstractKLALBPacketLink implem bbfw[i<<1]=szeWrite; bbfw[(i<<1)+1]=kpp[off+i]; } - connectSocket.write(bbfw); + writableChannel.write(bbfw); }else { for(int i=0;i pkts) throws IOException { + KLALBVirtualSocketChannel obj = null; + if(writableChannel instanceof KLALBVirtualSocketChannel) { + obj=(KLALBVirtualSocketChannel) writableChannel; + } + boolean isaflush=false; + if(obj!=null) { + isaflush=obj.isAutoFlush(); + obj.setAutoFlush(false); + } + ByteBuffer szeWrite=NetworkPacket.bufferAllocator.allocate(4); + szeWrite.limit(4); + for(KLALBPacket kp:pkts) { + szeWrite.clear(); + int length=(int) kp.getTotalLength(); + incOutput(length); + szeWrite.putInt(length); + szeWrite.flip(); + + + writableChannel.write(szeWrite); + KLALBPacket.writeKLALBPacketToChannel(writableChannel, kp); + + } + if(obj!=null) { + obj.flush(); + } - - -/* @Override + checkflush(); + if(obj!=null) { + obj.setAutoFlush(isaflush); + } + } + + + @Override public void writeKLALBPacket(KLALBPacket kp) throws IOException { + ByteBuffer szeWrite=NetworkPacket.bufferAllocator.allocate(4); szeWrite.limit(4); //szeWrite.clear(); - int length=(int) kp.getLength(); + int length=(int) kp.getTotalLength(); incOutput(length); szeWrite.putInt(length); szeWrite.flip(); KLALBVirtualSocketChannel obj = null; - if(connectSocket instanceof KLALBVirtualSocketChannel) { - obj=(KLALBVirtualSocketChannel) connectSocket; + if(writableChannel instanceof KLALBVirtualSocketChannel) { + obj=(KLALBVirtualSocketChannel) writableChannel; } boolean isaflush=false; if(obj!=null) { @@ -224,30 +270,47 @@ public class StreamChannelKLALBPacketLink extends AbstractKLALBPacketLink implem obj.setAutoFlush(false); } - connectSocket.write(szeWrite); + writableChannel.write(szeWrite); + + KLALBPacket.writeKLALBPacketToChannel(writableChannel, kp); if(obj!=null) { - obj.setAutoFlush(true); + obj.flush(); } - KLALBPacket.writeKLALBPacketToChannel(connectSocket, kp); + checkflush(); + /*AtomicLong al=new AtomicLong(0); + KLALBPacket.writeKLALBPacketToChannel(new MonitoredChannel(connectSocket,null,new AtomicLong[] { al}), kp); + if(length!=al.get()) { + throw new StreamCorruptedException(kp+" packet length error:"+al.get()+"!="+length); + }*/ if(obj!=null) { obj.setAutoFlush(isaflush); } } - - + private void checkflush() throws IOException { + if(writableChannel instanceof BufferedChannel) { + ((BufferedChannel) writableChannel).flush(); + } + } @Override public KLALBPacket readKLALBPacket() throws IOException { + ByteBuffer szeWrite=NetworkPacket.bufferAllocator.allocate(4); szeWrite.limit(4); - KNEChannels.readFully(connectSocket, szeWrite); + KNEChannels.readFully(readableChannel, szeWrite); szeWrite.flip(); int readSize=szeWrite.getInt(); incInput(readSize); - return KLALBPacket.readKLALBPacketFromChannel(connectSocket); - }*/ + KLALBPacket kp=KLALBPacket.readKLALBPacketFromChannel(readableChannel); + /* + long kpl=kp.getLength(); + if(kpl!=readSize) { + throw new StreamCorruptedException(kp+" packet length error:"+kpl+"!="+readSize); + }*/ + return kp; + } diff --git a/src/org/kne/cloud/network/klalb/ui/ClosableTabbedPane.java b/src/org/kne/cloud/network/klalb/ui/ClosableTabbedPane.java new file mode 100644 index 0000000..ad694f4 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/ClosableTabbedPane.java @@ -0,0 +1,27 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.Component; + +import javax.swing.Icon; +import javax.swing.JTabbedPane; + +public class ClosableTabbedPane extends JTabbedPane { + public ClosableTabbedPane() { + super(); + // TODO 自动生成的构造函数存根 + } + + public ClosableTabbedPane(int tabPlacement, int tabLayoutPolicy) { + super(tabPlacement, tabLayoutPolicy); + // TODO 自动生成的构造函数存根 + } + + public ClosableTabbedPane(int tabPlacement) { + super(tabPlacement); + // TODO 自动生成的构造函数存根 + } + + public void addTab(String title,Icon icon,Component comp,String tip,boolean closable) { + UIUtils.addTab(this, title, icon,comp, tip,closable); + } +} diff --git a/src/org/kne/cloud/network/klalb/ui/Dials.java b/src/org/kne/cloud/network/klalb/ui/Dials.java new file mode 100644 index 0000000..7695251 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/Dials.java @@ -0,0 +1,7 @@ +package org.kne.cloud.network.klalb.ui; + +import org.jfree.chart.ChartPanel; + +public class Dials { + +} diff --git a/src/org/kne/cloud/network/klalb/ui/DoubleBandwidthLabel.java b/src/org/kne/cloud/network/klalb/ui/DoubleBandwidthLabel.java new file mode 100644 index 0000000..db8f62e --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/DoubleBandwidthLabel.java @@ -0,0 +1,54 @@ +package org.kne.cloud.network.klalb.ui; + +import javax.swing.JPanel; +import java.awt.GridLayout; +import javax.swing.JLabel; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import javax.swing.SwingConstants; + +import org.kne.cloud.network.klalb.KLALBUtils; + +public class DoubleBandwidthLabel extends JPanel { + private JLabel lblNewLabel_1; + private JLabel lblNewLabel; + /*public DoubleBandwidthLabel() { + setLayout(new GridLayout(2, 1, 0, 0)); + setPreferredSize(new Dimension(120, 60)); + + lblNewLabel_1 = new JLabel(KLALBUtils.defaultUnit(0)+"MB/s"); + lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel_1.setFont(new Font("微软雅黑", Font.PLAIN, 24)); + add(lblNewLabel_1); + + lblNewLabel = new JLabel(KLALBUtils.defaultUnit(0*8)+"Mbps"); + lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 24)); + add(lblNewLabel); + }*/ + public DoubleBandwidthLabel(String string) { + setLayout(new GridLayout(2, 1, 0, 0)); + setPreferredSize(new Dimension(140, 60)); + + lblNewLabel_1 = new JLabel(string+"B/s"); + lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel_1.setFont(new Font("微软雅黑", Font.PLAIN, 24)); + add(lblNewLabel_1); + + lblNewLabel = new JLabel(string+"bps"); + lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 24)); + add(lblNewLabel); + } + public void setLabelForeground(Color color) { + lblNewLabel_1.setForeground(color); + lblNewLabel.setForeground(color); + } + + public void setBandwidth(long bandwidth) { + lblNewLabel_1.setText(KLALBUtils.convertIUintDefalut(bandwidth)+"B/s"); + lblNewLabel.setText(KLALBUtils.convertUintDefalut(bandwidth*8L)+"bps"); + } +} diff --git a/src/org/kne/cloud/network/klalb/ui/GraphPanel.java b/src/org/kne/cloud/network/klalb/ui/GraphPanel.java index 3f5cab7..abee8a0 100644 --- a/src/org/kne/cloud/network/klalb/ui/GraphPanel.java +++ b/src/org/kne/cloud/network/klalb/ui/GraphPanel.java @@ -6,6 +6,9 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; +import java.awt.LayoutManager; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import java.awt.geom.GeneralPath; import java.io.IOException; import java.net.Inet6Address; @@ -24,6 +27,89 @@ import org.kne.cloud.network.klalb.KLALBUtils; import org.kne.cloud.network.srv6.KLALBRoutingProtocol.LinkDirection; public class GraphPanel extends JPanel { + /** + * + */ + private static final long serialVersionUID = 1L; + public GraphPanel() { + super(); + initgp(); + } + + public GraphPanel(boolean isDoubleBuffered) { + super(isDoubleBuffered); + initgp(); + } + + public GraphPanel(LayoutManager layout, boolean isDoubleBuffered) { + super(layout, isDoubleBuffered); + initgp(); + } + + public GraphPanel(LayoutManager layout) { + super(layout); + initgp(); + } + + private void initgp() { + addMouseListener(new MouseListener() { + + @Override + public void mouseReleased(MouseEvent e) { + GraphNode node= getHitboxMatched(e); + if(node!=null) + node.runMouseReleased(e); + } + + @Override + public void mousePressed(MouseEvent e) { + GraphNode node= getHitboxMatched(e); + if(node!=null) + node.runMousePressed(e); + } + + @Override + public void mouseExited(MouseEvent e) { + GraphNode node= getHitboxMatched(e); + if(node!=null) + node.runMouseExited(e); + } + + @Override + public void mouseEntered(MouseEvent e) { + GraphNode node= getHitboxMatched(e); + if(node!=null) + node.runMouseEntered(e); + } + + @Override + public void mouseClicked(MouseEvent e) { + GraphNode node= getHitboxMatched(e); + if(node!=null) + node.runMouseClicked(e); + } + }); + + } + + + + + + private GraphNode getHitboxMatched(MouseEvent e) { + for (Iterator iterator = nodes.values().iterator(); iterator.hasNext();) { + GraphNode graphEdgeGroup = (GraphNode) iterator.next(); + if(graphEdgeGroup.checkPosHit(e.getX()/scale-translateX,e.getY()/scale-translateY)) { + return graphEdgeGroup; + } + } + return null; + } + + + + + private Map nodes=new ConcurrentHashMap(); private List edgeGroups=new ArrayList(); @@ -129,6 +215,40 @@ public class GraphPanel extends JPanel { this.ismarked=ismarked; } + private Listmouselisteners=new ArrayList(); + + public void addMouseListener(MouseListener listeners) { + mouselisteners.add(listeners); + } + + protected void runMouseClicked(MouseEvent e) { + mouselisteners.forEach((v)->{v.mouseClicked(e);}); + } + + protected void runMouseEntered(MouseEvent e) { + mouselisteners.forEach((v)->{v.mouseEntered(e);}); + } + + protected void runMouseExited(MouseEvent e) { + mouselisteners.forEach((v)->{v.mouseExited(e);}); + + } + + protected void runMousePressed(MouseEvent e) { + mouselisteners.forEach((v)->{v.mousePressed(e);}); + } + + protected void runMouseReleased(MouseEvent e) { + mouselisteners.forEach((v)->{v.mouseReleased(e);}); + + } + + public boolean checkPosHit(double x2, double y2) { + double dx=x2-x; + double dy=y2-y; + return Math.sqrt(dx*dx+dy*dy)<=nodesize/2; + } + public double getNodesize() { return nodesize; } @@ -199,15 +319,16 @@ public class GraphPanel extends JPanel { this.y = y; } + protected Image getCurrentImage() { + return ismarked?image2:image; + } + public void paint(Graphics2D g) { g.setColor(Color.BLACK); g.setStroke(new BasicStroke(2.0f)); if(image!=null) { - if(ismarked) { - g.drawImage(image2,(int)(x-image.getWidth(null)/2),(int)(y-image.getHeight(null)/2) ,null); - }else { - g.drawImage(image,(int)(x-image.getWidth(null)/2),(int)(y-image.getHeight(null)/2) ,null); - } + Image imgtmp=getCurrentImage(); + g.drawImage(imgtmp,(int)(x-image.getWidth(null)/2),(int)(y-image.getHeight(null)/2) ,null); }else { g.drawOval((int)(x-nodesize/2), (int)(y-nodesize/2), (int)(nodesize), (int)(nodesize)); if(ismarked) { diff --git a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI.java b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI.java index 295fe77..004adb0 100644 --- a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI.java +++ b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI.java @@ -21,6 +21,7 @@ import javax.imageio.ImageIO; import javax.swing.JPanel; import javax.swing.border.LineBorder; +import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.klalb.CONST; import org.kne.cloud.network.klalb.KLALBController; import org.kne.cloud.network.klalb.KLALBRemoteLine; @@ -146,8 +147,10 @@ public class KLALBStateGUI extends XFrame { @Override public void run() { synchronized (kc.getLines()) { - loop:for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine ent = iterator.next(); + loop:for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { + IPv6NetworkLink link=iterator.next(); + if(link instanceof KLALBRemoteLine) { + KLALBRemoteLine ent = (KLALBRemoteLine)link ; Component[] count=ysp.getView().getComponents(); for (int i = 0; i < count.length; i++) { Component tp=count[i]; @@ -159,6 +162,7 @@ public class KLALBStateGUI extends XFrame { } TPanel tp=new TPanel(ent); ysp.getView().add(tp); + } } Component[] count=ysp.getView().getComponents(); for (int i = 0; i < count.length; i++) { diff --git a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI2.java b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI2.java index d077816..0eff1c9 100644 --- a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI2.java +++ b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI2.java @@ -795,7 +795,7 @@ public class KLALBStateGUI2 extends XFrame { panel_4.add(textFieldLocate, BorderLayout.CENTER); textFieldLocate.setColumns(10); - graph = new NetworkGraphPanel(kc.getIpv6Router().getKlalbRouteProtol()); + graph = new NetworkGraphPanel(kc); graph.setOpaque(false); JScrollPane jsp=new JScrollPane();jsp.setWheelScrollingEnabled(false); jsp.setViewportView(graph); @@ -1037,25 +1037,25 @@ textFieldLocate.addKeyListener(new KeyListener() { public void run() { double outload=kc.getLinkMonitor().getOutSpeed()*100.0/kc.getLinkMonitor().getOutSpeedMax2(); if(Double.isFinite(outload)) { - upSpeedText.setLabel(KLALBUtils.bytesUnit(kc.getLinkMonitor().getOutSpeedAvg())+"/s"); + upSpeedText.setLabel(KLALBUtils.convertIBUint(kc.getLinkMonitor().getOutSpeedAvg())+"/s"); upSpeed.setValue(Math.min(upSpeed.getValue().doubleValue()*0.98+outload*0.02,101.0)); } double inload=kc.getLinkMonitor().getInSpeed()*100.0/kc.getLinkMonitor().getInSpeedMax2(); if(Double.isFinite(inload)) { - downSpeedText.setLabel(KLALBUtils.bytesUnit(kc.getLinkMonitor().getInSpeedAvg())+"/s"); + downSpeedText.setLabel(KLALBUtils.convertIBUint(kc.getLinkMonitor().getInSpeedAvg())+"/s"); downSpeed.setValue(Math.min(downSpeed.getValue().doubleValue()*0.98+inload*0.02,101.0)); } double outPPSload=kc.getLinkMonitor().getOutPPS()*100.0/kc.getLinkMonitor().getOutPPSMax2(); if(Double.isFinite(outPPSload)) { - upPPSText.setLabel(KLALBUtils.defaultUnit(kc.getLinkMonitor().getOutPPSAvg())+"PPS"); + upPPSText.setLabel(KLALBUtils.convertIUintDefalut(kc.getLinkMonitor().getOutPPSAvg())+"PPS"); upPPS.setValue(Math.min(upPPS.getValue().doubleValue()*0.98+outPPSload*0.02,101.0)); } double inPPSload=kc.getLinkMonitor().getInPPS()*100.0/kc.getLinkMonitor().getInPPSMax2(); if(Double.isFinite(inPPSload)) { - downPPSText.setLabel(KLALBUtils.defaultUnit(kc.getLinkMonitor().getInPPSAvg())+"PPS"); + downPPSText.setLabel(KLALBUtils.convertIUintDefalut(kc.getLinkMonitor().getInPPSAvg())+"PPS"); downPPS.setValue(Math.min(downPPS.getValue().doubleValue()*0.98+inPPSload*0.02,101.0)); } @@ -1138,7 +1138,7 @@ textFieldLocate.addKeyListener(new KeyListener() { if(tsk4!=null) { tsk4.cancel(); } - tsk4=new TimerTask() { + /*tsk4=new TimerTask() { @Override public void run() { @@ -1155,7 +1155,7 @@ textFieldLocate.addKeyListener(new KeyListener() { } } }; - t3.scheduleAtFixedRate(tsk4, 200, 20); + t3.scheduleAtFixedRate(tsk4, 200, 20);*/ if(tsk5!=null) { tsk5.cancel(); } diff --git a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI3.java b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI3.java index 70505ed..1692a9c 100644 --- a/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI3.java +++ b/src/org/kne/cloud/network/klalb/ui/KLALBStateGUI3.java @@ -7,6 +7,7 @@ import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; +import java.awt.Image; import java.awt.MenuItem; import java.awt.Point; import java.awt.PopupMenu; @@ -29,6 +30,8 @@ import java.awt.event.MouseWheelListener; import java.io.IOException; import java.net.Inet6Address; import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; @@ -36,6 +39,9 @@ import java.util.Timer; import java.util.TimerTask; import java.util.function.Consumer; +import javax.imageio.ImageIO; +import javax.swing.Icon; +import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JComboBox; @@ -63,11 +69,14 @@ import org.jfree.chart.plot.dial.StandardDialRange; import org.jfree.chart.plot.dial.StandardDialScale; import org.jfree.chart.ui.RectangleEdge; import org.jfree.data.general.DefaultValueDataset; +import org.kne.cloud.clock.HighAccuracyClock; import org.kne.cloud.klalb.uitool.ComboSettingItem; import org.kne.cloud.klalb.uitool.SettingItem; import org.kne.cloud.klalb.uitool.TextAreaSettingItem; import org.kne.cloud.klalb.uitool.TextSettingItem; +import org.kne.cloud.klalb.uitool.XDefaultListModel; import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.klalb.CONST; import org.kne.cloud.network.klalb.KLALBConfig; import org.kne.cloud.network.klalb.KLALBConfigItem; @@ -155,9 +164,17 @@ public class KLALBStateGUI3 extends XFrame { private JTextArea openLineTabelSet; private JTextArea connectLineTabelSet; + private Consumer saveComsumer; private JComboBox comboLang; + + private XDefaultListModel nilsimdl; + private JTextField textFieldTime; + + private JTextArea ntpServerSet; + + private ClosableTabbedPane tabbedPane; public Consumer getSaveComsumer() { @@ -191,12 +208,18 @@ public class KLALBStateGUI3 extends XFrame { * Color(0,0,0,80)); getTitlelabel().setForeground(Color.WHITE); */ - JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); + tabbedPane = new ClosableTabbedPane(JTabbedPane.TOP); getContentPane().add(tabbedPane, BorderLayout.CENTER); JPanel panel_3 = new JPanel(); panel_3.setBackground(new Color(255, 255, 255)); - tabbedPane.addTab(UIEnv.getRsb().getString("networkgraph"), null, panel_3, null); + Icon icon=null; + try { + icon=new ImageIcon(ImageIO.read(KLALBStateGUI3.class.getResourceAsStream("/assets/graph.png")).getScaledInstance(15, 15,Image.SCALE_SMOOTH )); + }catch(IOException e) { + e.printStackTrace(); + } + tabbedPane.addTab(UIEnv.getRsb().getString("networkgraph"), icon, panel_3, null,false); panel_3.setLayout(new BorderLayout(0, 0)); JPanel panel_4 = new JPanel(); @@ -207,7 +230,7 @@ public class KLALBStateGUI3 extends XFrame { panel_4.add(textFieldLocate, BorderLayout.CENTER); textFieldLocate.setColumns(10); - graph = new NetworkGraphPanel(kc.getIpv6Router().getKlalbRouteProtol()); + graph = new NetworkGraphPanel(kc,this); graph.setOpaque(false); JScrollPane jsp = new JScrollPane(); jsp.setWheelScrollingEnabled(false); @@ -356,13 +379,13 @@ public class KLALBStateGUI3 extends XFrame { dpup.addLayer(dp); upSpeedText = new DialTextAnnotation("0%"); - upSpeedText.setFont(UIEnv.getFont().deriveFont(18.0f)); + upSpeedText.setFont(UIEnv.getFont().deriveFont(20.0f)); dpup.addLayer(upSpeedText); JFreeChart jfup = new JFreeChart(dpup); jfup.setBorderPaint(Color.WHITE); jfup.setTitle(UIEnv.getRsb().getString("uploadspeed")); - jfup.getTitle().setFont(UIEnv.getFont().deriveFont(20.0f)); + jfup.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); jfup.getTitle().setPosition(RectangleEdge.BOTTOM); dpup.setView(0, 0, 1, 1); ChartPanel cpup = new ChartPanel(jfup); @@ -415,13 +438,13 @@ public class KLALBStateGUI3 extends XFrame { dpup1.addLayer(dp1); downSpeedText = new DialTextAnnotation("0%"); - downSpeedText.setFont(UIEnv.getFont().deriveFont(18.0f)); + downSpeedText.setFont(UIEnv.getFont().deriveFont(20.0f)); dpup1.addLayer(downSpeedText); JFreeChart jfup1 = new JFreeChart(dpup1); jfup1.setBorderPaint(Color.WHITE); jfup1.setTitle(UIEnv.getRsb().getString("downloadspeed")); - jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(20.0f)); + jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); jfup1.getTitle().setPosition(RectangleEdge.BOTTOM); dpup1.setView(0, 0, 1, 1); ChartPanel cpup1 = new ChartPanel(jfup1); @@ -477,13 +500,13 @@ public class KLALBStateGUI3 extends XFrame { dpup.addLayer(dp); upPPSText = new DialTextAnnotation("0PPS"); - upPPSText.setFont(UIEnv.getFont().deriveFont(18.0f)); + upPPSText.setFont(UIEnv.getFont().deriveFont(20.0f)); dpup.addLayer(upPPSText); JFreeChart jfup = new JFreeChart(dpup); jfup.setBorderPaint(Color.WHITE); jfup.setTitle(UIEnv.getRsb().getString("uploadpps")); - jfup.getTitle().setFont(UIEnv.getFont().deriveFont(20.0f)); + jfup.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); jfup.getTitle().setPosition(RectangleEdge.BOTTOM); dpup.setView(0, 0, 1, 1); ChartPanel cpup = new ChartPanel(jfup); @@ -535,13 +558,13 @@ public class KLALBStateGUI3 extends XFrame { dpup1.addLayer(dp11); downPPSText = new DialTextAnnotation("0PPS"); - downPPSText.setFont(UIEnv.getFont().deriveFont(18.0f)); + downPPSText.setFont(UIEnv.getFont().deriveFont(20.0f)); dpup1.addLayer(downPPSText); JFreeChart jfup1 = new JFreeChart(dpup1); jfup1.setBorderPaint(Color.WHITE); jfup1.setTitle(UIEnv.getRsb().getString("downloadpps")); - jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(20.0f)); + jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); jfup1.getTitle().setPosition(RectangleEdge.BOTTOM); dpup1.setView(0, 0, 1, 1); ChartPanel cpup1 = new ChartPanel(jfup1); @@ -557,7 +580,7 @@ public class KLALBStateGUI3 extends XFrame { panel.setOpaque(false); panel.setBorder(new LineBorder(Color.GRAY)); panel_4_1.add(panelp, BorderLayout.CENTER); - panelp.setLayout(new GridLayout(3, 1, 0, 0)); + panelp.setLayout(new GridLayout(4, 1, 0, 0)); JPanel panel_2x = new JPanel(); panel_2x.setOpaque(false); @@ -573,11 +596,11 @@ public class KLALBStateGUI3 extends XFrame { panel_2x_1.setLayout(new BorderLayout(0, 0)); JLabel lblNewLabel_1 = new JLabel(UIEnv.getRsb().getString("asnumber")); - lblNewLabel_1.setFont(new Font("微软雅黑", Font.PLAIN, 20)); + lblNewLabel_1.setFont(UIEnv.getFont().deriveFont(18.0f)); panel_2x_1.add(lblNewLabel_1, BorderLayout.WEST); asnField2 = new JTextField(); - asnField2.setFont(new Font("微软雅黑", Font.PLAIN, 20)); + asnField2.setFont(UIEnv.getFont().deriveFont(18.0f)); asnField2.setHorizontalAlignment(SwingConstants.CENTER); asnField2.setEditable(false); panel_2x_1.add(asnField2, BorderLayout.CENTER); @@ -594,7 +617,7 @@ public class KLALBStateGUI3 extends XFrame { panel_2x_1.add(btnNewButton_2, BorderLayout.EAST); JLabel lblNewLabel = new JLabel(UIEnv.getRsb().getString("ipv6addr")); - lblNewLabel.setFont(UIEnv.getFont().deriveFont(20.0f)); + lblNewLabel.setFont(UIEnv.getFont().deriveFont(18.0f)); lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); panel_2x.add(lblNewLabel, BorderLayout.WEST); panel_2x.add(panel_2); @@ -606,7 +629,7 @@ public class KLALBStateGUI3 extends XFrame { addressField.setOpaque(false); panel_2.add(addressField); addressField.setColumns(10); - addressField.setFont(UIEnv.getFont().deriveFont(20.0f)); + addressField.setFont(UIEnv.getFont().deriveFont(18.0f)); JButton btnNewButton_1 = new JButton(UIEnv.getRsb().getString("copy")); btnNewButton_1.addActionListener(new ActionListener() { @@ -622,21 +645,45 @@ public class KLALBStateGUI3 extends XFrame { JLabel jlb = new JLabel(UIEnv.getRsb().getString("onlinedevices")); jlb.setHorizontalAlignment(SwingConstants.CENTER); - jlb.setFont(UIEnv.getFont().deriveFont(20.0f)); + jlb.setFont(UIEnv.getFont().deriveFont(18.0f)); panel.add(jlb, BorderLayout.WEST); devicesOnline = new JTextField(); devicesOnline.setOpaque(false); devicesOnline.setHorizontalAlignment(SwingConstants.CENTER); - devicesOnline.setFont(UIEnv.getFont().deriveFont(20.0f)); + devicesOnline.setFont(UIEnv.getFont().deriveFont(18.0f)); devicesOnline.setEditable(false); panel.add(devicesOnline); devicesOnline.setColumns(10); + + JPanel panel_5 = new JPanel(); + panel_5.setOpaque(false); + panel_5.setBorder(new LineBorder(Color.GRAY)); + panelp.add(panel_5); + panel_5.setLayout(new BorderLayout(0, 0)); + + JLabel jlb_1 = new JLabel(UIEnv.getRsb().getString("currenttime")); + jlb_1.setHorizontalAlignment(SwingConstants.CENTER); + jlb_1.setFont(jlb_1.getFont().deriveFont(18.0f)); + panel_5.add(jlb_1, BorderLayout.WEST); + + textFieldTime = new JTextField(); + textFieldTime.setOpaque(false); + textFieldTime.setHorizontalAlignment(SwingConstants.CENTER); + textFieldTime.setFont(textFieldTime.getFont().deriveFont(18.0f)); + textFieldTime.setEditable(false); + textFieldTime.setColumns(10); + panel_5.add(textFieldTime, BorderLayout.CENTER); JPanel linesPanel = new JPanel(); linesPanel.setOpaque(false); - tabbedPane.add(linesPanel); - tabbedPane.setTitleAt(1,UIEnv.getRsb().getString("remotelines")); + Icon icon2=null; + try { + icon2=new ImageIcon(ImageIO.read(KLALBStateGUI3.class.getResourceAsStream("/assets/ethnet.png")).getScaledInstance(15, 15,Image.SCALE_SMOOTH )); + }catch(IOException e) { + e.printStackTrace(); + } + tabbedPane.addTab (UIEnv.getRsb().getString("remotelines"), icon2, linesPanel,null,false); linesPanel.setLayout(new BorderLayout()); ysp = new YScrollPane(730); @@ -648,56 +695,11 @@ public class KLALBStateGUI3 extends XFrame { JMenu mnNewMenu = new JMenu(UIEnv.getRsb().getString("monitor")); menuBar.add(mnNewMenu); - /* - * JMenu mnNewMenu_1 = new JMenu("Update frequency"); - * mnNewMenu.add(mnNewMenu_1); ButtonGroup bg=new ButtonGroup(); - * JRadioButtonMenuItem rdbtnmntmNewRadioItem = new - * JRadioButtonMenuItem("0.5s"); mnNewMenu_1.add(rdbtnmntmNewRadioItem); - * bg.add(rdbtnmntmNewRadioItem); rdbtnmntmNewRadioItem.addActionListener(new - * ActionListener() { - * - * @Override public void actionPerformed(ActionEvent e) { rate=500; - * - * createRefreshTask(kc, ysp); } }); - * - * JRadioButtonMenuItem rdbtnmntmNewRadioItem_1 = new - * JRadioButtonMenuItem("0.2s"); mnNewMenu_1.add(rdbtnmntmNewRadioItem_1); - * bg.add(rdbtnmntmNewRadioItem_1); rdbtnmntmNewRadioItem_1.setSelected(true); - * rdbtnmntmNewRadioItem_1.addActionListener(new ActionListener() { - * - * - * @Override public void actionPerformed(ActionEvent e) { rate=200; - * - * createRefreshTask(kc, ysp); } }); - * - * JRadioButtonMenuItem rdbtnmntmNewRadioItem_2 = new - * JRadioButtonMenuItem("0.1s"); mnNewMenu_1.add(rdbtnmntmNewRadioItem_2); - * bg.add(rdbtnmntmNewRadioItem_2); - * - * rdbtnmntmNewRadioItem_2.addActionListener(new ActionListener() { - * - * @Override public void actionPerformed(ActionEvent e) { rate=100; - * - * createRefreshTask(kc, ysp); } }); - * - * JRadioButtonMenuItem rdbtnmntmNewRadioItem_21 = new - * JRadioButtonMenuItem("0.05s"); mnNewMenu_1.add(rdbtnmntmNewRadioItem_21); - * bg.add(rdbtnmntmNewRadioItem_21); - * rdbtnmntmNewRadioItem_21.addActionListener(new ActionListener() { - * - * @Override public void actionPerformed(ActionEvent e) { rate=50; - * - * createRefreshTask(kc, ysp); } }); - */ + showoffline = new JCheckBoxMenuItem(UIEnv.getRsb().getString("showofflines")); mnNewMenu.add(showoffline); - /* - * JProgressBar progressBar = new JProgressBar(); - * progressBar.setIndeterminate(true); progressBar.setForeground(Color.YELLOW); - * progressBar.setBorder(null); progressBar.setPreferredSize(new Dimension(100, - * 4)); ysp.add(progressBar, BorderLayout.NORTH); - */ + wv.addComponentListener(new ComponentListener() { @Override @@ -848,7 +850,13 @@ public class KLALBStateGUI3 extends XFrame { } }); yspc.add(btnSave, BorderLayout.SOUTH); - tabbedPane.addTab(UIEnv.getRsb().getString("settings"), null, configsPanel, null); + Icon icon3=null; + try { + icon3=new ImageIcon(ImageIO.read(KLALBStateGUI3.class.getResourceAsStream("/assets/settings.png")).getScaledInstance(15, 15,Image.SCALE_SMOOTH )); + }catch(IOException e) { + e.printStackTrace(); + } + tabbedPane.addTab (UIEnv.getRsb().getString("settings"), icon3, configsPanel,null,false); configsPanel.setOpaque(false); textField.addKeyListener(new KeyListener() { @@ -892,6 +900,7 @@ public class KLALBStateGUI3 extends XFrame { } catch (UnknownHostException e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildipv6addr") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } String[]splt=dnsAreaSet.getText().split("\n"); @@ -907,6 +916,7 @@ public class KLALBStateGUI3 extends XFrame { if(show) { show=false; JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invailddnsserver") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } } @@ -921,6 +931,7 @@ public class KLALBStateGUI3 extends XFrame { }catch (NumberFormatException e) { e.printStackTrace(); JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildasnumber") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } @@ -933,6 +944,7 @@ public class KLALBStateGUI3 extends XFrame { }catch (RuntimeException e) { e.printStackTrace(); JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildtcplisten") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } @@ -945,6 +957,7 @@ public class KLALBStateGUI3 extends XFrame { }catch (RuntimeException e) { e.printStackTrace(); JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildudplisten") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } @@ -961,6 +974,7 @@ public class KLALBStateGUI3 extends XFrame { if(show1) { show1=false; JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildopenlinetable") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } } @@ -979,10 +993,36 @@ public class KLALBStateGUI3 extends XFrame { if(show11) { show11=false; JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildconnectlinetable") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; } } } kck.setConnectLineTable(iaddr11); + + String[]splt111=ntpServerSet.getText().split("\n"); + Listiaddr111=new ArrayList(); + boolean show111=true; + for (int i = 0; i < splt111.length; i++) { + try { + String str=splt111[i].trim(); + if(!str.isEmpty()) + iaddr111.add( new MultipurposeSocketAddress(str)); + } catch (RuntimeException e) { + e.printStackTrace(); + if(show111) { + show111=false; + JOptionPane.showMessageDialog(this,UIEnv.getRsb().getString("invaildntpservertable") , UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + return; + } + } + } + kck.setNtpServerTable(iaddr111); + + Listnie= new ArrayList<>(); + for(int i=0;i< nilsimdl.getSize();i++) { + nie.add(nilsimdl.getElementAt(i).getName()); + } + kck.setNetworkInterfaceExcepts(nie); } } if(saveComsumer!=null) { @@ -1000,7 +1040,7 @@ public class KLALBStateGUI3 extends XFrame { settings.getView().add(lang); settings.updateScrool(); - SettingItem si = new SettingItem(UIEnv.getRsb().getString("basicsettings"), UIEnv.getFont().deriveFont(20.0f).deriveFont(Font.BOLD), + SettingItem si = new SettingItem(UIEnv.getRsb().getString("virtualnetsettings"), UIEnv.getFont().deriveFont(20.0f).deriveFont(Font.BOLD), CONST.itemwidth, CONST.settingheight); settings.getView().add(si); @@ -1015,7 +1055,11 @@ public class KLALBStateGUI3 extends XFrame { TextSettingItem asn = new TextSettingItem(UIEnv.getRsb().getString("asnumber"), CONST.itemwidth, CONST.settingheight); asnFieldSet = asn.getTextField(); settings.getView().add(asn); - + + SettingItem six = new SettingItem(UIEnv.getRsb().getString("linksettings"), UIEnv.getFont().deriveFont(20.0f).deriveFont(Font.BOLD), + CONST.itemwidth, CONST.settingheight); + settings.getView().add(six); + TextSettingItem tcpl = new TextSettingItem(UIEnv.getRsb().getString("tcplistening"), CONST.itemwidth, CONST.settingheight); tcpListeningSet = tcpl.getTextField(); settings.getView().add(tcpl); @@ -1032,8 +1076,22 @@ public class KLALBStateGUI3 extends XFrame { TextAreaSettingItem clinet = new TextAreaSettingItem(UIEnv.getRsb().getString("autoconnectlinetable"), CONST.itemwidth, CONST.settingheight * 5); connectLineTabelSet = clinet.getTextArea(); - settings.getView().add(clinet); + settings.getView().add(clinet); + nilsimdl=new XDefaultListModel<>(); + NetworkInterfaceListSettingItem nilsi=new NetworkInterfaceListSettingItem(UIEnv.getRsb().getString("networkinterfaceexcept"), CONST.itemwidth, + CONST.settingheight * 5,nilsimdl); + settings.getView().add(nilsi); + + SettingItem hit = new SettingItem(UIEnv.getRsb().getString("timesyncsettings"), UIEnv.getFont().deriveFont(20.0f).deriveFont(Font.BOLD), + CONST.itemwidth, CONST.settingheight); + settings.getView().add(hit); + + TextAreaSettingItem ntps = new TextAreaSettingItem(UIEnv.getRsb().getString("ntpservers"), CONST.itemwidth, + CONST.settingheight * 5); + ntpServerSet = ntps.getTextArea(); + settings.getView().add(ntps); + SettingItem hi = new SettingItem(UIEnv.getRsb().getString("advancedsettings"), UIEnv.getFont().deriveFont(20.0f).deriveFont(Font.BOLD), CONST.itemwidth, CONST.settingheight); settings.getView().add(hi); @@ -1061,7 +1119,11 @@ public class KLALBStateGUI3 extends XFrame { kll = kc.getLines().toArray(); loop: for (int ix = 0; ix < kll.length; ix++) { - KLALBRemoteLine ent = (KLALBRemoteLine) kll[ix]; + IPv6NetworkLink link=(IPv6NetworkLink) kll[ix]; + if(!(link instanceof KLALBRemoteLine)) { + continue; + } + KLALBRemoteLine ent = (KLALBRemoteLine) link; /* * if(ent.getMonitor().getState()!=MonitorData.ONLINE) { continue loop; } */ @@ -1104,7 +1166,7 @@ public class KLALBStateGUI3 extends XFrame { // repaint(); } }; - t.scheduleAtFixedRate(tsk, 200, 500); + t.scheduleAtFixedRate(tsk, 500, 500); if (tsk2 != null) { tsk2.cancel(); } @@ -1112,27 +1174,29 @@ public class KLALBStateGUI3 extends XFrame { @Override public void run() { + + if (isVisible()) { double outload = kc.getLinkMonitor().getOutSpeed() * 100.0 / kc.getLinkMonitor().getOutSpeedMax2(); if (Double.isFinite(outload)) { - upSpeedText.setLabel(KLALBUtils.bytesUnit(kc.getLinkMonitor().getOutSpeedAvg()) + "/s"); + upSpeedText.setLabel(KLALBUtils.convertIBUint(kc.getLinkMonitor().getOutSpeedAvg()) + "/s"); upSpeed.setValue(Math.min(upSpeed.getValue().doubleValue() * 0.98 + outload * 0.02, 101.0)); } double inload = kc.getLinkMonitor().getInSpeed() * 100.0 / kc.getLinkMonitor().getInSpeedMax2(); if (Double.isFinite(inload)) { - downSpeedText.setLabel(KLALBUtils.bytesUnit(kc.getLinkMonitor().getInSpeedAvg()) + "/s"); + downSpeedText.setLabel(KLALBUtils.convertIBUint(kc.getLinkMonitor().getInSpeedAvg()) + "/s"); downSpeed.setValue(Math.min(downSpeed.getValue().doubleValue() * 0.98 + inload * 0.02, 101.0)); } double outPPSload = kc.getLinkMonitor().getOutPPS() * 100.0 / kc.getLinkMonitor().getOutPPSMax2(); if (Double.isFinite(outPPSload)) { - upPPSText.setLabel(KLALBUtils.defaultUnit(kc.getLinkMonitor().getOutPPSAvg()) + "PPS"); + upPPSText.setLabel(KLALBUtils.convertUintDefalut(kc.getLinkMonitor().getOutPPSAvg()) + "PPS"); upPPS.setValue(Math.min(upPPS.getValue().doubleValue() * 0.98 + outPPSload * 0.02, 101.0)); } double inPPSload = kc.getLinkMonitor().getInPPS() * 100.0 / kc.getLinkMonitor().getInPPSMax2(); if (Double.isFinite(inPPSload)) { - downPPSText.setLabel(KLALBUtils.defaultUnit(kc.getLinkMonitor().getInPPSAvg()) + "PPS"); + downPPSText.setLabel(KLALBUtils.convertUintDefalut(kc.getLinkMonitor().getInPPSAvg()) + "PPS"); downPPS.setValue(Math.min(downPPS.getValue().doubleValue() * 0.98 + inPPSload * 0.02, 101.0)); } @@ -1188,54 +1252,34 @@ public class KLALBStateGUI3 extends XFrame { if (!asnstr.equals(asnField2.getText())) { asnField2.setText(asnstr); } - - } + HighAccuracyClock hac=kc.getClock(); + long delta=hac.getFrequency()-1000000000; + double ppm=delta/1000.0; + String ppmstr=String.format("%.2f", ppm); + if(delta>0) { + ppmstr="+"+ppmstr; + } + textFieldTime.setText(hac.toString()+" "+ppmstr+"ppm"); + } + } }; - t2.scheduleAtFixedRate(tsk2, 200, 100); - - if (tsk3 != null) { + t2.scheduleAtFixedRate(tsk2, 100, 100); + + /*if(tsk3!=null) { tsk3.cancel(); } - tsk3 = new TimerTask() { - + tsk3=new TimerTask() { + @Override public void run() { - Component[] count = ysp.getView().getComponents(); - for (int i = 0; i < count.length; i++) { - Component tp = count[i]; - if (tp instanceof TPanel2) { - try { - ((TPanel2) tp).getMdg().updateTraffic(); - } catch (RuntimeException e) { - e.printStackTrace(); - } - } + + if (isVisible()) { } } }; - t3.scheduleAtFixedRate(tsk3, 200, 200); + t2.scheduleAtFixedRate(tsk3, 20, 20);*/ - if (tsk4 != null) { - tsk4.cancel(); - } - tsk4 = new TimerTask() { - - @Override - public void run() { - Component[] count = ysp.getView().getComponents(); - for (int i = 0; i < count.length; i++) { - Component tp = count[i]; - if (tp instanceof TPanel2) { - try { - ((TPanel2) tp).getMdg().recordData(); - } catch (RuntimeException e) { - e.printStackTrace(); - } - } - } - } - }; - t3.scheduleAtFixedRate(tsk4, 200, 20); + if (tsk5 != null) { tsk5.cancel(); } @@ -1243,17 +1287,17 @@ public class KLALBStateGUI3 extends XFrame { @Override public void run() { + if (isVisible()) { graph.loadNodes(); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 100; i++) { graph.runPhy(); } - if (graph.isVisible()) { graph.repaint(); - graph.revalidate(); + graph.revalidate(); } } }; - t.scheduleAtFixedRate(tsk5, 200, 100); + t.scheduleAtFixedRate(tsk5, 1000, 1000); // setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @@ -1309,6 +1353,23 @@ public class KLALBStateGUI3 extends XFrame { List clinet =kck.getConnectLineTable(); String str2=listToStr2(clinet); connectLineTabelSet.setText(str2); + + List ntps =kck.getNtpServerTable(); + String str3=listToStr2(ntps); + ntpServerSet.setText(str3); + + List strexc=kck.getNetworkInterfaceExcepts(); + nilsimdl.clear(); + if(strexc!=null) { + for(String strexci:strexc) { + try { + nilsimdl.addElement(NetworkInterface.getByName(strexci)); + } catch (SocketException e) { + e.printStackTrace(); + } + } + } + } } } @@ -1333,6 +1394,11 @@ public class KLALBStateGUI3 extends XFrame { return sbdr.toString(); } + public void addNodeInformationPanel(NodeInformationPanel panel) { + tabbedPane.addTab(panel.getAddress().getHostAddress(), panel.getIcon(), panel, null, true); + // 选中最后一个Tab(即刚刚添加的) + tabbedPane.setSelectedIndex(tabbedPane.getTabCount() - 1); + } public void close() { setVisible(false); if (tsk != null) { diff --git a/src/org/kne/cloud/network/klalb/ui/KperfGUI.java b/src/org/kne/cloud/network/klalb/ui/KperfGUI.java new file mode 100644 index 0000000..f25ac62 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/KperfGUI.java @@ -0,0 +1,624 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; + +import javax.swing.border.LineBorder; + +import org.jfree.chart.ChartPanel; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.dial.DialPlot; +import org.jfree.chart.plot.dial.DialPointer; +import org.jfree.chart.plot.dial.DialTextAnnotation; +import org.jfree.chart.plot.dial.StandardDialFrame; +import org.jfree.chart.plot.dial.StandardDialRange; +import org.jfree.chart.plot.dial.StandardDialScale; +import org.jfree.chart.ui.RectangleEdge; +import org.jfree.data.general.DefaultValueDataset; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.klalb.KLALBUtils; +import org.kne.cloud.network.monitor.QueueingMonitorDataImpl; +import org.kne.cloud.network.perf.Kperf; +import org.kne.cloud.network.perf.KperfReports; +import org.kne.ui.XFrame; +import javax.swing.JTabbedPane; +import java.awt.BorderLayout; +import javax.swing.JMenuBar; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.JButton; +import javax.swing.JMenu; +import java.awt.GridLayout; +import java.awt.Image; + +import javax.swing.JProgressBar; +import java.awt.event.ActionListener; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; +import java.io.IOException; +import java.util.Timer; +import java.util.TimerTask; +import java.awt.event.ActionEvent; +import javax.swing.JLabel; +import javax.imageio.ImageIO; +import javax.swing.BoxLayout; +import java.awt.Font; +import javax.swing.SwingConstants; +import javax.swing.ImageIcon; + +public class KperfGUI extends XFrame{ + private static Timer tmr=new Timer(); + + private KperfReports reports=new KperfReportsImpl(); + private Kperf kperf; + private JTextField targetAddressField; + private JButton startButton; + private JProgressBar progressBar; + private DefaultValueDataset upSpeed; + private DefaultValueDataset upDataSpeed; + private DialTextAnnotation upSpeedText; + private Dimension dashSize=new Dimension((int) (145 * 0.7), (int) (165 * 0.7)); + private DefaultValueDataset downSpeed; + private DefaultValueDataset downDataSpeed; + private DialTextAnnotation downSpeedText; + private JTextField sourceAddressField; + + private QueueingMonitorDataImpl monitor; + + private DefaultValueDataset upPPS; + + private DefaultValueDataset upDataPPS; + + private DialTextAnnotation upPPSText; + + private DefaultValueDataset downPPS; + + private DefaultValueDataset downDataPPS; + + private DialTextAnnotation downPPSText; + + private TimerTask tsk; + private class KperfReportsImpl implements KperfReports{ + @Override + public void testProcess(double process) { + progressBar.setValue((int) (process*100.0f)); + } + @Override + public void testFinish() { + if(kperf!=null) { + kperf.close(); + kperf=null; + } + updateButton(); + } + @Override + public void updateDial(QueueingMonitorDataImpl mdt) { + monitor=mdt; + } + @Override + public void uploadSpeedFinish(long uploadSpeed) { + upSpeedLabel.setBandwidth(uploadSpeed); + } + @Override + public void downloadSpeedFinish(long downloadSpeed) { + downSpeedLabel.setBandwidth(downloadSpeed); + } + @Override + public void uploadPPSFinish(long uploadPPS) { + upPPSLabel.setText(KLALBUtils.convertUintDefalut(uploadPPS)+"PPS"); + } + @Override + public void downloadPPSFinish(long downloadPPS) { + downPPSLabel.setText(KLALBUtils.convertUintDefalut(downloadPPS)+"PPS"); + + } + @Override + public void uploadDelayFinish(long uploadDelay) { + // TODO 自动生成的方法存根 + + } + @Override + public void downloadDelayFinish(long downloadDelay) { + // TODO 自动生成的方法存根 + + } + + + } + + public KperfGUI() { + this(null); + } + public KperfGUI(Component comp) { + // setResizable(false); + Image img=getIcon3(); + if(img!=null) + setIconImage(img); + // setTitleColor(new Color(255, 255, 255, 250)); + setTitleColor(UIEnv.getDefaultTitleColor()); + getContentPane().setBackground(UIEnv.getDefaultBackgroundColor()); + + JPanel panel = new JPanel(); + panel.setLayout(new BorderLayout(0, 0)); + + targetAddressField = new JTextField(); + panel.add(targetAddressField); + targetAddressField.setColumns(10); + + startButton = new JButton(UIEnv.getRsb().getString("starttest")); + startButton.setForeground(Color.GREEN); + startButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if(kperf==null) { + try { + String tar=targetAddressField.getText(); + MultipurposeSocketAddress msa=new MultipurposeSocketAddress(tar); + String sour=sourceAddressField.getText(); + MultipurposeSocketAddress msas=new MultipurposeSocketAddress(sour); + kperf=new Kperf(msa,msas); + kperf.setReports(reports); + kperf.startPerfing(); + }catch(RuntimeException ex) { + ex.printStackTrace(); + JOptionPane.showMessageDialog(KperfGUI.this,UIEnv.getRsb().getString("invaildinput") ,UIEnv.getRsb().getString("warning"), JOptionPane.WARNING_MESSAGE); + } + }else { + kperf.close(); + kperf=null; + } + updateButton(); + } + }); + panel.add(startButton, BorderLayout.EAST); + + JPanel panel_1 = new JPanel(); + panel_1.setOpaque(false); + getContentPane().add(panel_1, BorderLayout.CENTER); + panel_1.setLayout(new BorderLayout(0, 0)); + + JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); + panel_1.add(tabbedPane, BorderLayout.CENTER); + + JPanel panel_2 = new JPanel(); + panel_2.setOpaque(false); + tabbedPane.addTab(UIEnv.getRsb().getString("bandwidth"), null, panel_2, null); + panel_2.setLayout(new GridLayout(4, 1, 0, 0)); + + JPanel panel_3 = new JPanel(); + panel_2.add(panel_3); + panel_3.setLayout(new BorderLayout(0, 0)); + + upSpeedLabel = new DoubleBandwidthLabel("? ? ?"); + upSpeedLabel.setLabelForeground(Color.RED); + upSpeedLabel.setFont(new Font("微软雅黑", Font.PLAIN, 23)); + panel_3.add(upSpeedLabel, BorderLayout.EAST); + + JPanel panel_4 = new JPanel(); + panel_2.add(panel_4); + panel_4.setLayout(new BorderLayout(0, 0)); + + downSpeedLabel = new DoubleBandwidthLabel("? ? ?"); + downSpeedLabel.setLabelForeground(Color.GREEN); + downSpeedLabel.setFont(new Font("微软雅黑", Font.PLAIN, 23)); + panel_4.add(downSpeedLabel, BorderLayout.EAST); + + JPanel panel_5 = new JPanel(); + panel_2.add(panel_5); + panel_5.setLayout(new BorderLayout(0, 0)); + + upPPSLabel = new JLabel("? ? ?PPS"); + upPPSLabel.setPreferredSize(new Dimension(140, 50)); + upPPSLabel.setHorizontalAlignment(SwingConstants.CENTER); + upPPSLabel.setForeground(Color.RED); + upPPSLabel.setFont(new Font("微软雅黑", Font.PLAIN, 23)); + panel_5.add(upPPSLabel, BorderLayout.EAST); + + JPanel panel_6 = new JPanel(); + panel_2.add(panel_6); + panel_6.setLayout(new BorderLayout(0, 0)); + + downPPSLabel = new JLabel("? ? ?PPS"); + downPPSLabel.setPreferredSize(new Dimension(140, 50)); + downPPSLabel.setHorizontalAlignment(SwingConstants.CENTER); + downPPSLabel.setForeground(Color.GREEN); + downPPSLabel.setFont(new Font("微软雅黑", Font.PLAIN, 23)); + panel_6.add(downPPSLabel, BorderLayout.EAST); + + + { + upSpeed = new DefaultValueDataset(0); + upDataSpeed = new DefaultValueDataset(0); + DialPlot dpup = new DialPlot(); + dpup.setDataset(1, upSpeed); + dpup.setDataset(0, upDataSpeed); + StandardDialFrame sdfs = new StandardDialFrame(); + sdfs.setVisible(false); + dpup.setDialFrame(sdfs); + StandardDialScale sds = new StandardDialScale(0, 100, -120, -300, 10, 5); + sds.setTickRadius(0.9); + sds.setTickLabelsVisible(false); + dpup.addScale(0, sds); + + StandardDialRange sdrr = new StandardDialRange(0, 70, Color.GREEN); + sdrr.setInnerRadius(0.92); + sdrr.setOuterRadius(0.93); + dpup.addLayer(sdrr); + + StandardDialRange sdrr2 = new StandardDialRange(70, 90, Color.YELLOW); + sdrr2.setInnerRadius(0.92); + sdrr2.setOuterRadius(0.93); + dpup.addLayer(sdrr2); + + StandardDialRange sdrr3 = new StandardDialRange(90, 100, Color.RED); + sdrr3.setInnerRadius(0.92); + sdrr3.setOuterRadius(0.93); + dpup.addLayer(sdrr3); + + DialPointer.Pointer dpd = new DialPointer.Pointer(); + dpd.setRadius(0.8); + dpd.setFillPaint(new Color(127, 0, 0, 0)); + dpd.setOutlinePaint(new Color(127, 0, 0)); + dpd.setDatasetIndex(0); + //dpup.addLayer(dpd); + + DialPointer.Pointer dp = new DialPointer.Pointer(); + dp.setRadius(0.8); + dp.setFillPaint(Color.RED); + dp.setOutlinePaint(Color.RED); + dp.setDatasetIndex(1); + dpup.addLayer(dp); + + upSpeedText = new DialTextAnnotation("0%"); + upSpeedText.setFont(UIEnv.getFont().deriveFont(20.0f)); + dpup.addLayer(upSpeedText); + + JFreeChart jfup = new JFreeChart(dpup); + jfup.setBorderPaint(Color.WHITE); + jfup.setTitle(UIEnv.getRsb().getString("uploadspeed")); + jfup.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); + jfup.getTitle().setPosition(RectangleEdge.BOTTOM); + dpup.setView(0, 0, 1, 1); + ChartPanel cpup = new ChartPanel(jfup); + cpup.setPreferredSize(dashSize); + cpup.setSize(dashSize); + cpup.setMinimumSize(dashSize); + cpup.setBackground(Color.WHITE); + cpup.setBorder(new LineBorder(Color.LIGHT_GRAY)); + panel_3.add(cpup, BorderLayout.WEST); + + downSpeed = new DefaultValueDataset(0); + downDataSpeed = new DefaultValueDataset(0); + DialPlot dpup1 = new DialPlot(); + dpup1.setDataset(1, downSpeed); + dpup1.setDataset(0, downDataSpeed); + StandardDialFrame sdfs1 = new StandardDialFrame(); + sdfs1.setVisible(false); + dpup1.setDialFrame(sdfs1); + StandardDialScale sds1 = new StandardDialScale(0, 100, -120, -300, 10, 5); + sds1.setTickRadius(0.9); + sds1.setTickLabelsVisible(false); + dpup1.addScale(0, sds1); + + StandardDialRange sdrr1 = new StandardDialRange(0, 70, Color.GREEN); + sdrr1.setInnerRadius(0.92); + sdrr1.setOuterRadius(0.93); + dpup1.addLayer(sdrr1); + + StandardDialRange sdrr21 = new StandardDialRange(70, 90, Color.YELLOW); + sdrr21.setInnerRadius(0.92); + sdrr21.setOuterRadius(0.93); + dpup1.addLayer(sdrr21); + + StandardDialRange sdrr31 = new StandardDialRange(90, 100, Color.RED); + sdrr31.setInnerRadius(0.92); + sdrr31.setOuterRadius(0.93); + dpup1.addLayer(sdrr31); + + DialPointer.Pointer dp11 = new DialPointer.Pointer(); + dp11.setRadius(0.8); + dp11.setFillPaint(new Color(0, 127, 0, 0)); + dp11.setOutlinePaint(new Color(0, 127, 0)); + dp11.setDatasetIndex(0); + //dpup1.addLayer(dp11); + + DialPointer.Pointer dp1 = new DialPointer.Pointer(); + dp1.setRadius(0.8); + dp1.setFillPaint(Color.GREEN); + dp1.setOutlinePaint(Color.GREEN); + dp1.setDatasetIndex(1); + dpup1.addLayer(dp1); + + downSpeedText = new DialTextAnnotation("0%"); + downSpeedText.setFont(UIEnv.getFont().deriveFont(20.0f)); + dpup1.addLayer(downSpeedText); + + JFreeChart jfup1 = new JFreeChart(dpup1); + jfup1.setBorderPaint(Color.WHITE); + jfup1.setTitle(UIEnv.getRsb().getString("downloadspeed")); + jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); + jfup1.getTitle().setPosition(RectangleEdge.BOTTOM); + dpup1.setView(0, 0, 1, 1); + ChartPanel cpup1 = new ChartPanel(jfup1); + cpup1.setPreferredSize(dashSize); + cpup1.setSize(dashSize); + cpup1.setMinimumSize(dashSize); + cpup1.setBackground(Color.WHITE); + cpup1.setBorder(new LineBorder(Color.LIGHT_GRAY)); + panel_4.add(cpup1, BorderLayout.WEST); + + } + { + upPPS = new DefaultValueDataset(0); + upDataPPS = new DefaultValueDataset(0); + DialPlot dpup = new DialPlot(); + dpup.setDataset(1, upPPS); + dpup.setDataset(0, upDataPPS); + StandardDialFrame sdfs = new StandardDialFrame(); + sdfs.setVisible(false); + dpup.setDialFrame(sdfs); + StandardDialScale sds = new StandardDialScale(0, 100, -120, -300, 10, 5); + sds.setTickRadius(0.9); + sds.setTickLabelsVisible(false); + dpup.addScale(0, sds); + + StandardDialRange sdrr = new StandardDialRange(0, 70, Color.GREEN); + sdrr.setInnerRadius(0.92); + sdrr.setOuterRadius(0.93); + dpup.addLayer(sdrr); + + StandardDialRange sdrr2 = new StandardDialRange(70, 90, Color.YELLOW); + sdrr2.setInnerRadius(0.92); + sdrr2.setOuterRadius(0.93); + dpup.addLayer(sdrr2); + + StandardDialRange sdrr3 = new StandardDialRange(90, 100, Color.RED); + sdrr3.setInnerRadius(0.92); + sdrr3.setOuterRadius(0.93); + dpup.addLayer(sdrr3); + + DialPointer.Pointer dp1 = new DialPointer.Pointer(); + dp1.setRadius(0.8); + dp1.setFillPaint(new Color(127, 0, 0, 0)); + dp1.setOutlinePaint(new Color(127, 0, 0)); + dp1.setDatasetIndex(0); + //dpup.addLayer(dp1); + + DialPointer.Pointer dp = new DialPointer.Pointer(); + dp.setRadius(0.8); + dp.setFillPaint(Color.RED); + dp.setOutlinePaint(Color.RED); + dp.setDatasetIndex(1); + dpup.addLayer(dp); + + upPPSText = new DialTextAnnotation("0PPS"); + upPPSText.setFont(UIEnv.getFont().deriveFont(20.0f)); + dpup.addLayer(upPPSText); + + JFreeChart jfup = new JFreeChart(dpup); + jfup.setBorderPaint(Color.WHITE); + jfup.setTitle(UIEnv.getRsb().getString("uploadpps")); + jfup.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); + jfup.getTitle().setPosition(RectangleEdge.BOTTOM); + dpup.setView(0, 0, 1, 1); + ChartPanel cpup = new ChartPanel(jfup); + cpup.setPreferredSize(dashSize); + cpup.setSize(cpup.getPreferredSize()); + cpup.setBackground(Color.WHITE); + cpup.setBorder(new LineBorder(Color.LIGHT_GRAY)); + panel_5.add(cpup, BorderLayout.WEST); + + downPPS = new DefaultValueDataset(0); + downDataPPS = new DefaultValueDataset(0); + DialPlot dpup1 = new DialPlot(); + dpup1.setDataset(1, downPPS); + dpup1.setDataset(0, downDataPPS); + StandardDialFrame sdfs1 = new StandardDialFrame(); + sdfs1.setVisible(false); + dpup1.setDialFrame(sdfs1); + StandardDialScale sds1 = new StandardDialScale(0, 100, -120, -300, 10, 5); + sds1.setTickRadius(0.9); + sds1.setTickLabelsVisible(false); + dpup1.addScale(0, sds1); + + StandardDialRange sdrr1 = new StandardDialRange(0, 70, Color.GREEN); + sdrr1.setInnerRadius(0.92); + sdrr1.setOuterRadius(0.93); + dpup1.addLayer(sdrr1); + + StandardDialRange sdrr21 = new StandardDialRange(70, 90, Color.YELLOW); + sdrr21.setInnerRadius(0.92); + sdrr21.setOuterRadius(0.93); + dpup1.addLayer(sdrr21); + + StandardDialRange sdrr31 = new StandardDialRange(90, 100, Color.RED); + sdrr31.setInnerRadius(0.92); + sdrr31.setOuterRadius(0.93); + dpup1.addLayer(sdrr31); + + DialPointer.Pointer dp111 = new DialPointer.Pointer(); + dp111.setRadius(0.8); + dp111.setFillPaint(new Color(0, 127, 0, 0)); + dp111.setOutlinePaint(new Color(0, 127, 0)); + dp111.setDatasetIndex(0); + ///dpup1.addLayer(dp111); + DialPointer.Pointer dp11 = new DialPointer.Pointer(); + dp11.setRadius(0.8); + dp11.setFillPaint(Color.GREEN); + dp11.setOutlinePaint(Color.GREEN); + dp11.setDatasetIndex(1); + dpup1.addLayer(dp11); + + downPPSText = new DialTextAnnotation("0PPS"); + downPPSText.setFont(UIEnv.getFont().deriveFont(20.0f)); + dpup1.addLayer(downPPSText); + + JFreeChart jfup1 = new JFreeChart(dpup1); + jfup1.setBorderPaint(Color.WHITE); + jfup1.setTitle(UIEnv.getRsb().getString("downloadpps")); + jfup1.getTitle().setFont(UIEnv.getFont().deriveFont(22.0f)); + jfup1.getTitle().setPosition(RectangleEdge.BOTTOM); + dpup1.setView(0, 0, 1, 1); + ChartPanel cpup1 = new ChartPanel(jfup1); + cpup1.setPreferredSize(dashSize); + cpup1.setSize(cpup1.getPreferredSize()); + cpup1.setBackground(Color.WHITE); + cpup1.setBorder(new LineBorder(Color.LIGHT_GRAY)); + panel_6.add(cpup1, BorderLayout.WEST); + } + JPanel panel_top = new JPanel(); + panel_1.add(panel_top, BorderLayout.NORTH); + panel_top.setLayout(new GridLayout(0, 2, 0, 0)); + JPanel panel_7 = new JPanel(); + panel_7.setOpaque(false); + panel_top.add(panel_7); + panel_7.setLayout(new BorderLayout(0, 0)); + + sourceAddressField = new JTextField(); + panel_7.add(sourceAddressField); + sourceAddressField.setColumns(10); + + JLabel lblNewLabel_4 = new JLabel(""); + Image img2= getIcon2(); + if(img2!=null) + lblNewLabel_4.setIcon(new ImageIcon(img2)); + lblNewLabel_4.setHorizontalAlignment(SwingConstants.CENTER); + panel_7.add(lblNewLabel_4, BorderLayout.EAST); + panel_top.add(panel); + + + + progressBar = new JProgressBar(); + progressBar.setPreferredSize(new Dimension(100, 5)); + getContentPane().add(progressBar, BorderLayout.NORTH); + getTitlelabel().setFont(UIEnv.getFont().deriveFont(17.0f)); + getTitlepanel().setBorder(new LineBorder(Color.LIGHT_GRAY)); + getTitlelabel().setForeground(Color.WHITE); + + setTitle(UIEnv.getRsb().getString("klalbperf")); + setSize((int)(1200*0.7),(int)( 800*0.7)); + setLocationRelativeTo(comp); + tsk=new TimerTask() { + + @Override + public void run() { + if(monitor!=null) { + double outload = monitor.getOutSpeed() * 100.0 / monitor.getOutSpeedMax2(); + if (Double.isFinite(outload)) { + upSpeedText.setLabel(KLALBUtils.convertIBUint(monitor.getOutSpeedAvg()) + "/s"); + upSpeed.setValue(Math.min(upSpeed.getValue().doubleValue() * 0.98 + outload * 0.02, 101.0)); + } + + double inload = monitor.getInSpeed() * 100.0 / monitor.getInSpeedMax2(); + if (Double.isFinite(inload)) { + downSpeedText.setLabel(KLALBUtils.convertIBUint(monitor.getInSpeedAvg()) + "/s"); + downSpeed.setValue(Math.min(downSpeed.getValue().doubleValue() * 0.98 + inload * 0.02, 101.0)); + } + + double outPPSload = monitor.getOutPPS() * 100.0 / monitor.getOutPPSMax2(); + if (Double.isFinite(outPPSload)) { + upPPSText.setLabel(KLALBUtils.convertUintDefalut(monitor.getOutPPSAvg()) + "PPS"); + upPPS.setValue(Math.min(upPPS.getValue().doubleValue() * 0.98 + outPPSload * 0.02, 101.0)); + } + + double inPPSload = monitor.getInPPS() * 100.0 / monitor.getInPPSMax2(); + if (Double.isFinite(inPPSload)) { + downPPSText.setLabel(KLALBUtils.convertUintDefalut(monitor.getInPPSAvg()) + "PPS"); + downPPS.setValue(Math.min(downPPS.getValue().doubleValue() * 0.98 + inPPSload * 0.02, 101.0)); + } + } + } + }; + tmr.scheduleAtFixedRate(tsk, 200, 100); + addWindowListener(new WindowListener() { + + @Override + public void windowOpened(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowIconified(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowDeiconified(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowDeactivated(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowClosing(WindowEvent e) { + if(tsk!=null) + tsk.cancel(); + } + + @Override + public void windowClosed(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowActivated(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + }); + } + private Image icon2; + private Image getIcon2() { + if(icon2==null) + try { + icon2=ImageIO.read(KperfGUI.class.getResourceAsStream("/assets/speedtest2.png")).getScaledInstance(20, 20, Image.SCALE_SMOOTH); + } catch (IOException e) { + e.printStackTrace(); + } + return icon2; + } + + private Image icon3; + + private DoubleBandwidthLabel upSpeedLabel; + + private DoubleBandwidthLabel downSpeedLabel; + + private JLabel upPPSLabel; + + private JLabel downPPSLabel; + private Image getIcon3() { + if(icon3==null) + try { + icon3=ImageIO.read(KperfGUI.class.getResourceAsStream("/assets/speedtest3.png")).getScaledInstance(20, 20, Image.SCALE_SMOOTH); + } catch (IOException e) { + e.printStackTrace(); + } + return icon3; + } + private void updateButton() { + if(kperf==null) { + startButton.setForeground(Color.GREEN); + startButton.setText(UIEnv.getRsb().getString("starttest")); + }else { + startButton.setForeground(Color.RED); + startButton.setText(UIEnv.getRsb().getString("stoptest")); + } + } + public void setTarget(MultipurposeSocketAddress target) { + targetAddressField.setText(target.toString()); + } + public void setTarget(MultipurposeSocketAddress target,MultipurposeSocketAddress source) { + targetAddressField.setText(target.toString()); + sourceAddressField.setText(source.toString()); + } +} diff --git a/src/org/kne/cloud/network/klalb/ui/LineMonitorGUI.java b/src/org/kne/cloud/network/klalb/ui/LineMonitorGUI.java index 0daeaaa..0397b30 100644 --- a/src/org/kne/cloud/network/klalb/ui/LineMonitorGUI.java +++ b/src/org/kne/cloud/network/klalb/ui/LineMonitorGUI.java @@ -1,6 +1,7 @@ package org.kne.cloud.network.klalb.ui; import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Image; @@ -9,10 +10,14 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.net.Inet6Address; import java.util.Date; +import java.util.Timer; +import java.util.TimerTask; import javax.imageio.ImageIO; import javax.swing.JPanel; import javax.swing.border.LineBorder; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; @@ -36,16 +41,29 @@ import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; import java.awt.event.ActionEvent; import java.awt.Font; import javax.swing.SwingConstants; +import javax.swing.JSlider; public class LineMonitorGUI extends XFrame{ - private TimeSeries spdup=new TimeSeries("Upload speed"); - private TimeSeries spddown=new TimeSeries("Download speed"); + private Timer timer; + private Timer timer1; + private Timer timer2; + private TimerTask tsk3 ; + - private TimeSeries delayup=new TimeSeries("Upload delay"); - private TimeSeries delaydown=new TimeSeries("Download delay"); + private TimerTask tsk4 ,tsk5; + private TimerTask d1 ; + private TimerTask d2 ; + + private TimeSeries spdup=new TimeSeries(UIEnv.getRsb().getString("uploadspeed")); + private TimeSeries spddown=new TimeSeries(UIEnv.getRsb().getString("downloadspeed")); + + private TimeSeries delayup=new TimeSeries(UIEnv.getRsb().getString("uploaddelay")); + private TimeSeries delaydown=new TimeSeries(UIEnv.getRsb().getString("downloaddelay")); //private TimeSeries delayupmin=new TimeSeries("Upload delay minimum"); //private TimeSeries delaydownmin=new TimeSeries("Download delay minimum"); @@ -56,11 +74,15 @@ public class LineMonitorGUI extends XFrame{ private JFreeChart jfce; private JLabel spdp; private JLabel delp; + private long timeRange=5000; + private long[]values=new long[] {1000,2000,5000,10000,20000,50000,100000,200000,500000,1000000}; + private JPanel panel_1; + private JLabel lblNewLabel; //private ChartPanel delp; //private ChartPanel spdp; public LineMonitorGUI(KLALBRemoteLine t) { this.tr=t; - setSize(700, 700); + setSize(1200, 780); setLocationRelativeTo(null); setIconImage(UIEnv.getIcon()); @@ -77,8 +99,7 @@ public class LineMonitorGUI extends XFrame{ TimeSeriesCollection tsc=new TimeSeriesCollection(); tsc.addSeries(spdup); tsc.addSeries(spddown); - jfc = ChartFactory.createTimeSeriesChart("Speed monitor", "Time(s)", "Speed(KiB/s)", tsc); - jfc.getXYPlot().getDomainAxis().setFixedAutoRange(5000); + jfc = ChartFactory.createTimeSeriesChart(UIEnv.getRsb().getString("speermonitor"), UIEnv.getRsb().getString("time")+"(s)", UIEnv.getRsb().getString("speed")+"(KiB/s)", tsc); jfc.getXYPlot().setBackgroundPaint(Color.BLACK); jfc.getXYPlot().getRenderer().setSeriesPaint(0,Color.RED); jfc.getXYPlot().getRenderer().setSeriesPaint(1,Color.GREEN); @@ -93,8 +114,7 @@ public class LineMonitorGUI extends XFrame{ //tsce.addSeries(delayupmin); //tsce.addSeries(delaydownmin); - jfce = ChartFactory.createTimeSeriesChart("Delay monitor", "Time(s)", "Delay(ms)", tsce); - jfce.getXYPlot().getDomainAxis().setFixedAutoRange(5000); + jfce = ChartFactory.createTimeSeriesChart(UIEnv.getRsb().getString("delaymonitor"), UIEnv.getRsb().getString("time")+"(s)", UIEnv.getRsb().getString("delay")+"(ms)", tsce); jfce.getXYPlot().setBackgroundPaint(Color.BLACK); jfce.getXYPlot().getRenderer().setSeriesPaint(0,Color.RED); jfce.getXYPlot().getRenderer().setSeriesPaint(1,Color.GREEN); @@ -121,29 +141,28 @@ public class LineMonitorGUI extends XFrame{ panel.add(vaddrs); vaddrs.setColumns(10); - JPanel panel_1 = new JPanel(); - panel_1.setOpaque(false); + panel_1 = new JPanel(); panel.add(panel_1); - Dimension dms=new Dimension(140, 20); - JButton btnNewButton = new JButton("Force disconnect"); - btnNewButton.setPreferredSize(dms); - btnNewButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - tr.dislink(); - } - }); - btnNewButton.setForeground(Color.RED); - panel_1.add(btnNewButton); + panel_1.setLayout(new BorderLayout(0, 0)); - JButton btnNewButton_1 = new JButton("Force reconnect"); - btnNewButton_1.setPreferredSize(dms); - btnNewButton_1.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - tr.reconnectImmediately(); + JSlider windowSlider = new JSlider(); + windowSlider.setValue(2); + windowSlider.setMaximum(9); + panel_1.add(windowSlider, BorderLayout.CENTER); + JLabel windowSelect = new JLabel("5s"); + windowSlider.addChangeListener(new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent e) { + updateTimeRange(windowSlider,windowSelect); } }); - btnNewButton_1.setForeground(Color.GREEN); - panel_1.add(btnNewButton_1); + updateTimeRange(windowSlider,windowSelect); + panel_1.add(windowSelect, BorderLayout.EAST); + + lblNewLabel = new JLabel(UIEnv.getRsb().getString("timerange")); + panel_1.add(lblNewLabel, BorderLayout.WEST); + Dimension dms=new Dimension(140, 20); /*JButton btnNewButton_2 = new JButton("Pressure test"); btnNewButton_2.setPreferredSize(dms); @@ -154,6 +173,60 @@ public class LineMonitorGUI extends XFrame{ }); panel_1.add(btnNewButton_2); btnNewButton_2.setForeground(Color.BLUE);*/ + addWindowListener(new WindowListener() { + + @Override + public void windowOpened(WindowEvent e) { + + } + + @Override + public void windowIconified(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowDeiconified(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowDeactivated(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowClosing(WindowEvent e) { + + } + + @Override + public void windowClosed(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void windowActivated(WindowEvent e) { + // TODO 自动生成的方法存根 + + } + }); + } + protected void updateTimeRange(JSlider windowSlider,JLabel windowSelect) { + timeRange=values[windowSlider.getValue()]; + synchronized (jfc) { + + jfc.getXYPlot().getDomainAxis().setFixedAutoRange(timeRange); + } + synchronized (jfce) { + + jfce.getXYPlot().getDomainAxis().setFixedAutoRange(timeRange); + } + windowSelect.setText(timeRange/1000+"s"); } private void changeFont(JFreeChart jfc2) { jfc2.getTitle().setFont(UIEnv.getFont().deriveFont(16.0f)); @@ -163,23 +236,116 @@ public class LineMonitorGUI extends XFrame{ jfc2.getXYPlot().getDomainAxis().setLabelFont(UIEnv.getFont()); jfc2.getXYPlot().getDomainAxis().setTickLabelFont(UIEnv.getFont()); } - public void recordData() { + private void recordSpeedData() { if(isVisible()) { Millisecond ms= new Millisecond(); + + synchronized (jfc) { spdup.addOrUpdate(ms, tr.getMonitor().getOutSpeed()/1024.0); spddown.addOrUpdate(ms, tr.getMonitor().getInSpeed()/1024.0); - + } - //Millisecond msu= new Millisecond(new Date(System.currentTimeMillis()-(System.nanoTime()- tr.getMonitor().getRecentPingNanoTime())/1000000L)); - delayup.addOrUpdate(ms, (tr.getMonitor().getOutDelay()+tr.getMonitor().getQueueingDelay())/1000000.0); - delaydown.addOrUpdate(ms, tr.getMonitor().getInDelay()/1000000.0); - //Millisecond msup= new Millisecond(new Date( tr.getMonitor().getUpdateDelayTime()+tr.getMonitor().getOutDelay()/1000000L)); - //delayupmin.addOrUpdate(ms, tr.getMonitor().getQueueingDelay()/1000000.0); - //delaydownmin.addOrUpdate(ms, tr.getMonitor().getInDelayPredicted()/1000000.0); } } + private void recordDelayData() { + if(isVisible()) { + Millisecond ms= new Millisecond(); + + + + synchronized (jfce) { + delayup.addOrUpdate(ms, (tr.getMonitor().getOutDelay()+tr.getMonitor().getQueueingDelay())/1000000.0); + delaydown.addOrUpdate(ms, tr.getMonitor().getInDelay()/1000000.0); + } + + } + } + @Override + public void setVisible(boolean b) { + if(b) { + if(timer==null) { + timer=new Timer(); + timer1=new Timer(); + timer2=new Timer(); + tsk3= new TimerTask() { + + @Override + public void run() { + updateTraffic(); + } + }; + tsk4= new TimerTask() { + + @Override + public void run() { + recordSpeedData(); + } + }; + + tsk5= new TimerTask() { + + @Override + public void run() { + recordDelayData(); + } + }; + d1= new TimerTask() { + + @Override + public void run() { + if(isVisible()) { + synchronized (jfc) { + ImageIcon i1=new ImageIcon(jfc.createBufferedImage(spdp.getWidth(), spdp.getHeight())); + spdp.setIcon(i1); + } + } + } + }; + d2= new TimerTask() { + + @Override + public void run() { + if(isVisible()) { + synchronized (jfce) { + ImageIcon i2=new ImageIcon(jfce.createBufferedImage(delp.getWidth(), delp.getHeight())); + delp.setIcon(i2); + } + + + } + } + }; + timer.scheduleAtFixedRate(tsk3, 25, 25); + timer1.scheduleAtFixedRate(tsk4, 5, 5); + timer1.scheduleAtFixedRate(d1, 25, 25); + timer2.scheduleAtFixedRate(tsk5, 5, 5); + timer2.scheduleAtFixedRate(d2, 25, 25); + } + + }else { + if(tsk3!=null) + tsk3.cancel(); + if(tsk4!=null) + tsk4.cancel(); + if(tsk5!=null) + tsk5.cancel(); + if(d1!=null) + d1.cancel(); + if(d2!=null) + d2.cancel(); + if(timer!=null) + timer.cancel(); + if(timer1!=null) + timer1.cancel(); + + if(timer2!=null) + timer2.cancel(); + timer=null; + } + super.setVisible(b); + } public void updateTraffic() { switch (tr.getMonitor().getState()) { case MonitorData.OFFLINE: @@ -197,12 +363,6 @@ public class LineMonitorGUI extends XFrame{ break; } if(isVisible()) { - //long ax=System.nanoTime(); - ImageIcon i1=new ImageIcon(jfc.createBufferedImage(spdp.getWidth(), spdp.getHeight())); - ImageIcon i2=new ImageIcon(jfce.createBufferedImage(delp.getWidth(), delp.getHeight())); - //System.out.println(System.nanoTime()-ax); - spdp.setIcon(i1); - delp.setIcon(i2); //spddown.fireSeriesChanged(); //delaydown.fireSeriesChanged(); Inet6AddressGroup irg=tr.getRemoteVaddr(); diff --git a/src/org/kne/cloud/network/klalb/ui/NetworkGraphPanel.java b/src/org/kne/cloud/network/klalb/ui/NetworkGraphPanel.java index b6dbbcf..275371b 100644 --- a/src/org/kne/cloud/network/klalb/ui/NetworkGraphPanel.java +++ b/src/org/kne/cloud/network/klalb/ui/NetworkGraphPanel.java @@ -10,6 +10,12 @@ import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import java.awt.geom.Dimension2D; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; @@ -27,34 +33,128 @@ import java.util.Random; import java.util.Set; import javax.swing.JButton; +import javax.swing.JMenuItem; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.border.LineBorder; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.klalb.KLALBController; import org.kne.cloud.network.klalb.KLALBUtils; import org.kne.cloud.network.srv6.KLALBRoutingProtocol; import org.kne.cloud.network.srv6.KLALBRoutingProtocol.LinkDirection; public class NetworkGraphPanel extends GraphPanel { - private KLALBRoutingProtocol routingProtocol; + private KLALBController controller; + private KLALBStateGUI3 klbgui; - public NetworkGraphPanel(KLALBRoutingProtocol routingProtocol) { + public NetworkGraphPanel(KLALBController controller,KLALBStateGUI3 klbgui) { super(); - this.routingProtocol = routingProtocol; + this.controller = controller; + this.klbgui=klbgui; } + public NetworkGraphPanel(KLALBController kc) { + this(kc,null); + } + private class InetGraphNode extends GraphNode{ private InetAddress address; + private JPopupMenu popupMenu; public InetGraphNode() { super(); + initign(); } public InetGraphNode(InetAddress address, Color color, double x, double y, boolean ismarked) { super(getText(address), color, x, y, ismarked); this.address=address; + initign(); } + private void initign() { + popupMenu = new JPopupMenu(); + + JMenuItem mcpyitm = new JMenuItem(UIEnv.getRsb().getString("copyvirtualaddress")); + mcpyitm.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(address.getHostAddress()), null); + } + }); + popupMenu.add(mcpyitm); + + JMenuItem ninfom = new JMenuItem(UIEnv.getRsb().getString("nodeinf")); + ninfom.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + openInformation(); + } + }); + popupMenu.add(ninfom); + + JMenuItem kperfitm = new JMenuItem(UIEnv.getRsb().getString("speedtest")); + kperfitm.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + KperfGUI kpfg=new KperfGUI(); + kpfg.setVisible(true); + MultipurposeSocketAddress source=new MultipurposeSocketAddress("KLALB_Stream",controller.getIpv6Router().getLocator().getAddress().getHostAddress(),0); + MultipurposeSocketAddress target=new MultipurposeSocketAddress("KLALB_Stream", address.getHostAddress(), 4564); + kpfg.setTarget(target,source); + } + }); + popupMenu.add(kperfitm); + + + addMouseListener(new MouseListener() { + + @Override + public void mouseReleased(MouseEvent e) { + if(e.isPopupTrigger()) + popupMenu.show(NetworkGraphPanel.this,e.getX(),e.getY()); + } + + @Override + public void mousePressed(MouseEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void mouseClicked(MouseEvent e) { + if(e.getClickCount()==2&&e.getButton()==MouseEvent.BUTTON1) { + openInformation(); + } + } + }); + } + + protected void openInformation() { + Image cimg=getCurrentImage(); + NodeInformationPanel pan=new NodeInformationPanel(controller, address,cimg.getScaledInstance(cimg.getWidth(null)/5, cimg.getHeight(null)/5, Image.SCALE_SMOOTH)); + klbgui.addNodeInformationPanel(pan); + } + + + private static String getText(InetAddress address2) { String text; if(address2 instanceof Inet6Address) { @@ -92,13 +192,13 @@ public class NetworkGraphPanel extends GraphPanel { } } protected void loadNodes() { - Map addr= routingProtocol.getAddresses(); + Map addr= controller.getIpv6Router().getKlalbRouteProtol().getAddresses(); Set ks=addr.keySet(); for (Iterator iterator = ks.iterator(); iterator.hasNext();) { Inet6Address inet6Address = (Inet6Address) iterator.next(); if(!getNodes().containsKey(inet6Address)) { Vector2 v2pos=super.getRandomPos(); - getNodes().put(inet6Address,new InetGraphNode(inet6Address,Color.BLACK,v2pos.x,v2pos.y,inet6Address.equals(routingProtocol.getRouter().getLocator().getAddress()))); + getNodes().put(inet6Address,new InetGraphNode(inet6Address,Color.BLACK,v2pos.x,v2pos.y,inet6Address.equals(controller.getIpv6Router().getLocator().getAddress()))); } } Set kns=getNodes().keySet(); @@ -112,7 +212,7 @@ public class NetworkGraphPanel extends GraphPanel { synchronized (getEdgeGroups()) { getEdgeGroups().clear(); - Map> addr1= routingProtocol.getPaths(); + Map> addr1= controller.getIpv6Router().getKlalbRouteProtol().getPaths(); Set>> salink=addr1.entrySet(); for (Iterator>> iterator = salink.iterator(); iterator.hasNext();) { Entry> entry = (Entry>) iterator.next(); @@ -147,8 +247,8 @@ public class NetworkGraphPanel extends GraphPanel { } } GraphEdgeGroup ng=new InetGraphEdgeGroup(a, b); - Inet6Address aprev= routingProtocol.getDijkstraPrevNode((Inet6Address) a.getAddress()); - Inet6Address bprev= routingProtocol.getDijkstraPrevNode((Inet6Address) b.getAddress()); + Inet6Address aprev= controller.getIpv6Router().getKlalbRouteProtol().getDijkstraPrevNode((Inet6Address) a.getAddress()); + Inet6Address bprev= controller.getIpv6Router().getKlalbRouteProtol().getDijkstraPrevNode((Inet6Address) b.getAddress()); if( b.getAddress().equals(aprev)||a.getAddress().equals(bprev)) { ng.setShortest(true); diff --git a/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceListSettingItem.java b/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceListSettingItem.java new file mode 100644 index 0000000..34dc2d3 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceListSettingItem.java @@ -0,0 +1,36 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.Font; +import java.net.NetworkInterface; +import java.util.List; + +import org.kne.cloud.klalb.uitool.ListSettingItem; +import org.kne.cloud.klalb.uitool.XDefaultListModel; + +public class NetworkInterfaceListSettingItem extends ListSettingItem{ + + private XDefaultListModel model; + + public NetworkInterfaceListSettingItem(String text, Font deriveFont, int w, int h, + XDefaultListModel lm) { + super(text, deriveFont, w, h, lm); + this.model=lm; + } + + public NetworkInterfaceListSettingItem(String text, int w, int h, XDefaultListModel lm) { + super(text, w, h, lm); + this.model=lm; + } + + @Override + protected void runEdit(NetworkInterface val) { + + } + + @Override + protected List createEmpty() { + new NetworkInterfaceSelector(model); + return null; + } + +} diff --git a/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceSelector.java b/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceSelector.java new file mode 100644 index 0000000..b71aa61 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/NetworkInterfaceSelector.java @@ -0,0 +1,87 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.Color; +import java.awt.Component; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +import javax.swing.border.LineBorder; + +import org.kne.cloud.klalb.uitool.XDefaultListModel; +import org.kne.ui.XFrame; +import javax.swing.JScrollPane; +import java.awt.BorderLayout; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JButton; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; + +public class NetworkInterfaceSelector extends XFrame{ + private JList list; + public NetworkInterfaceSelector(XDefaultListModel model) { + this(model,null); + } + + public NetworkInterfaceSelector(XDefaultListModel model,Component relate) { + // setResizable(false); + setIconImage(UIEnv.getIcon()); + // setTitleColor(new Color(255, 255, 255, 250)); + setTitleColor(UIEnv.getDefaultTitleColor()); + getContentPane().setBackground(UIEnv.getDefaultBackgroundColor()); + setTitle(UIEnv.getRsb().getString("selectinterface")); + JScrollPane scrollPane = new JScrollPane(); + getContentPane().add(scrollPane, BorderLayout.CENTER); + XDefaultListModel nif=new XDefaultListModel<>(); + list = new JList(nif); + scrollPane.setViewportView(list); + + JPanel panel = new JPanel(); + getContentPane().add(panel, BorderLayout.SOUTH); + + JButton cancel = new JButton(UIEnv.getRsb().getString("cancel")); + cancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + setVisible(false); + } + }); + panel.add(cancel); + + JButton ok = new JButton(UIEnv.getRsb().getString("ok")); + ok.addActionListener(new ActionListener() { + @SuppressWarnings("unchecked") + public void actionPerformed(ActionEvent e) { + model.addAll(list.getSelectedValuesList()); + setVisible(false); + } + }); + panel.add(ok); + getTitlelabel().setFont(UIEnv.getFont().deriveFont(17.0f)); + getTitlepanel().setBorder(new LineBorder(Color.LIGHT_GRAY)); + getTitlelabel().setForeground(Color.WHITE); + // getContentPane().setBackground(new Color(0,0,0,0)); + setSize(1280/2, 720/2); + setLocationRelativeTo(relate); + + Enumeration eu; + try { + eu = NetworkInterface.getNetworkInterfaces(); + + while (eu.hasMoreElements()) { + NetworkInterface networkInterface = (NetworkInterface) eu.nextElement(); + if(networkInterface.isUp()) + nif.addElement(networkInterface); + } + } catch (SocketException e) { + e.printStackTrace(); + } + + setVisible(true); + } + + +} diff --git a/src/org/kne/cloud/network/klalb/ui/NodeInformationPanel.java b/src/org/kne/cloud/network/klalb/ui/NodeInformationPanel.java new file mode 100644 index 0000000..3abb48a --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/NodeInformationPanel.java @@ -0,0 +1,167 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.BorderLayout; +import java.awt.Image; +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.util.List; + +import javax.swing.AbstractAction; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import org.kne.cloud.klalb.uitool.XDefaultListModel; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.klalb.KLALBController; +import org.kne.cloud.network.srv6.KLALBRoutingProtocol; +import org.kne.cloud.network.srv6.KLALBRoutingProtocolAPIClient; +import javax.swing.JTabbedPane; +import javax.swing.JList; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; + +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.ActionEvent; + +public class NodeInformationPanel extends JPanel { + private InetAddress address; + private KLALBRoutingProtocolAPIClient client; + private KLALBController controller; + private Image image; + + private XDefaultListModel listModel=new XDefaultListModel<>(); + public KLALBController getController() { + return controller; + } + public InetAddress getAddress() { + return address; + } + + public Image getImage() { + return image; + } + public NodeInformationPanel (KLALBController controller,InetAddress address,Image image) { + this.controller=controller; + this.address=address; + this.image=image; + setLayout(new BorderLayout(0, 0)); + + JScrollPane scrollPane = new JScrollPane(); + + JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); + add(tabbedPane, BorderLayout.CENTER); + + JPanel panel = new JPanel(); + panel.setLayout(new BorderLayout(0, 0)); + tabbedPane.addTab(UIEnv.getRsb().getString("overview"), null, panel, null); + + JPanel panel_1 = new JPanel(); + panel_1.setLayout(new BorderLayout(0, 0)); + panel_1.add(scrollPane); + + JList list = new JList(listModel); + list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + scrollPane.setViewportView(list); + tabbedPane.addTab(UIEnv.getRsb().getString("openlinetable"), null, panel_1, null); + + JButton btnNewButton = new JButton(UIEnv.getRsb().getString("addline")); + btnNewButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + List select=list.getSelectedValuesList(); + controller.addRemoteLines(select); + } + }); + btnNewButton.setEnabled(false); + JPopupMenu jpop=new JPopupMenu(); + JMenuItem copy=new JMenuItem(UIEnv.getRsb().getString("copy")); + copy.setEnabled(false); + list.addListSelectionListener(new ListSelectionListener() { + + @Override + public void valueChanged(ListSelectionEvent e) { + List select=list.getSelectedValuesList(); + btnNewButton.setEnabled( !select.isEmpty()) ; + copy.setEnabled(!select.isEmpty()); + } + }); + copy.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + StringBuilder sb=new StringBuilder(); + List select=list.getSelectedValuesList(); + for (MultipurposeSocketAddress multipurposeSocketAddress : select) { + sb.append(multipurposeSocketAddress); + sb.append('\n'); + } + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(sb.toString()), null); + } + }); + jpop.add(copy); + list.addMouseListener(new MouseListener() { + + @Override + public void mouseReleased(MouseEvent e) { + if(e.isPopupTrigger()) { + jpop.show(list, e.getX(), e.getY()); + } + } + + @Override + public void mousePressed(MouseEvent e) { + if(e.isPopupTrigger()) { + jpop.show(list, e.getX(), e.getY()); + } + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO 自动生成的方法存根 + + } + + @Override + public void mouseClicked(MouseEvent e) { + if(e.isPopupTrigger()) { + jpop.show(list, e.getX(), e.getY()); + } + } + }); + + panel_1.add(btnNewButton, BorderLayout.SOUTH); + + client=new KLALBRoutingProtocolAPIClient(controller.getIpv6Router().getKlalbRouteProtol()); + try { + client.requestOpenLines(new InetSocketAddress(address, KLALBRoutingProtocol.DEFAULT_PORT), (result)->{ + listModel.clear(); + for (MultipurposeSocketAddress multipurposeSocketAddress : result) { + listModel.addElement(multipurposeSocketAddress); + } + }); + } catch (IOException e) { + e.printStackTrace(); + } + } + public Icon getIcon() { + return new ImageIcon(image); + } +} diff --git a/src/org/kne/cloud/network/klalb/ui/TPanel2.java b/src/org/kne/cloud/network/klalb/ui/TPanel2.java index 120badb..9a40886 100644 --- a/src/org/kne/cloud/network/klalb/ui/TPanel2.java +++ b/src/org/kne/cloud/network/klalb/ui/TPanel2.java @@ -305,8 +305,8 @@ public class TPanel2 extends JPanel { private void updateText() { - targup.setText(KLALBUtils. bytesUnit(tunnel.getMonitor().getOutTraffic()) + "\u2191 " + KLALBUtils. bytesUnit(tunnel.getMonitor().getOutSpeedAvg()) + "/s\u2191 "+ String.format("%.1f", tunnel.getMonitor().getOutDelay()/1000000.0) + "ms"); - targdown.setText(KLALBUtils. bytesUnit(tunnel.getMonitor().getInTraffic()) + "\u2193 " + KLALBUtils. bytesUnit(tunnel.getMonitor().getInSpeedAvg()) + "/s\u2193 " + String.format("%.1f", tunnel.getMonitor().getInDelay()/1000000.0) + "ms"); + targup.setText(KLALBUtils. convertIBUint(tunnel.getMonitor().getOutTraffic()) + " " + KLALBUtils. convertIBUint(tunnel.getMonitor().getOutSpeedAvg()) + "/s "+ KLALBUtils.convertUintNanoDefalut(tunnel.getMonitor().getOutDelay()) + "s"); + targdown.setText(KLALBUtils. convertIBUint(tunnel.getMonitor().getInTraffic()) + " " + KLALBUtils. convertIBUint(tunnel.getMonitor().getInSpeedAvg()) + "/s " + KLALBUtils.convertUintNanoDefalut( tunnel.getMonitor().getInDelay()) + "s"); if(tunnel.getMonitor().getOutSpeed()>4096||tunnel.getMonitor().getInSpeed()>4096) { lblNewLabel_2.setBackground(Color.ORANGE); @@ -319,21 +319,6 @@ public class TPanel2 extends JPanel { return tunnel; } - private String bytesUnit(long v) { - if (v >= 1024L * 1024 * 1024 * 1024 * 1024) { - return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) + "PB"; - } else if (v >= 1024L * 1024 * 1024 * 1024) { - return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0 * 1024.0)) + "TB"; - } else if (v >= 1024L * 1024 * 1024) { - return String.format("%.1f", v / (1024.0 * 1024.0 * 1024.0)) + "GB"; - } else if (v >= 1024L * 1024) { - return String.format("%.1f", v / (1024.0 * 1024.0)) + "MB"; - } else if (v >= 1024L) { - return String.format("%.1f", v / (1024.0)) + "KB"; - } else { - return v + "B"; - } - } public void updateTraffic() { switch (tunnel.getMonitor().getState()) { diff --git a/src/org/kne/cloud/network/klalb/ui/TabPanel.java b/src/org/kne/cloud/network/klalb/ui/TabPanel.java new file mode 100644 index 0000000..7cb733b --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/TabPanel.java @@ -0,0 +1,60 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.event.*; +import java.io.IOException; + +import javax.imageio.ImageIO; +import javax.swing.*; +import java.awt.*; +class TabPanel extends JPanel{ + private JLabel title; + private CloseButton closebutton; + private final JTabbedPane pane; + + public TabPanel(String s,JTabbedPane pane,Icon icon,String tip, boolean closable){ + super(new BorderLayout()); + title=new JLabel(s); + title.setIcon(icon); + title.setToolTipText(tip); + setToolTipText(tip); + this.pane=pane; + add(title,BorderLayout.CENTER); + if(closable) { + closebutton=new CloseButton(); + add(closebutton,BorderLayout.EAST); + } + title.setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 3)); + setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); + setOpaque(false); + } + + private class CloseButton extends JButton { + private ImageIcon icon; + public CloseButton(){ + //图片的位置随自身情况而定 + try { + icon=new ImageIcon(ImageIO.read( getClass().getResource("/assets/close.png")).getScaledInstance(10, 10, Image.SCALE_SMOOTH)); + setSize(icon.getImage().getWidth(null),icon.getImage().getHeight(null)); + setIcon(icon); + } catch (IOException e1) { + // TODO 自动生成的 catch 块 + e1.printStackTrace(); + } + setContentAreaFilled(false); + setBorder(null); + setBorderPainted(false); + setFocusPainted(false); + try { + setRolloverIcon(new ImageIcon(ImageIO.read(getClass().getResource("/assets/close.png")).getScaledInstance(10, 10, Image.SCALE_SMOOTH))); + } catch (IOException e1) { + e1.printStackTrace(); + } + addMouseListener(new MouseAdapter(){ + public void mouseClicked(MouseEvent e){ + pane.remove(pane.indexOfTabComponent(TabPanel.this)); + } + }); + } + } + +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/klalb/ui/UIEnv.java b/src/org/kne/cloud/network/klalb/ui/UIEnv.java index bd79d47..a526789 100644 --- a/src/org/kne/cloud/network/klalb/ui/UIEnv.java +++ b/src/org/kne/cloud/network/klalb/ui/UIEnv.java @@ -102,7 +102,7 @@ public class UIEnv { } } icon=Toolkit.getDefaultToolkit().getImage( - UIEnv.class.getResource("/assets/KLALB.png")); + UIEnv.class.getResource("/assets/KLALB2.png")); } public static void defbut(JButton start) { if(font==null) diff --git a/src/org/kne/cloud/network/klalb/ui/UIUtils.java b/src/org/kne/cloud/network/klalb/ui/UIUtils.java new file mode 100644 index 0000000..a0f13a5 --- /dev/null +++ b/src/org/kne/cloud/network/klalb/ui/UIUtils.java @@ -0,0 +1,13 @@ +package org.kne.cloud.network.klalb.ui; + +import java.awt.Component; + +import javax.swing.Icon; +import javax.swing.JTabbedPane; + +public class UIUtils { + public static void addTab(JTabbedPane tabbedPane,String title,Icon icon,Component comp,String tip, boolean closable) { + tabbedPane.addTab(title,icon, comp,tip); + tabbedPane.setTabComponentAt(tabbedPane.getTabCount()-1, new TabPanel(title,tabbedPane,icon,tip,closable)); + } +} diff --git a/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftClient.java b/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftClient.java deleted file mode 100644 index f2a0fb5..0000000 --- a/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftClient.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.kne.cloud.network.minecraft; - -import java.io.File; -import java.io.IOException; -import java.net.Inet6Address; -import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.net.UnknownHostException; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.Scanner; - -import org.kne.cloud.network.MultipurposeSocketAddress; -import org.kne.cloud.network.SocketBridge; -import org.kne.cloud.network.SocketListener; -import org.kne.cloud.network.SocketToSocketProxy; -import org.kne.cloud.network.klalb.CONST; -import org.kne.cloud.network.klalb.KLALBController; -import org.kne.cloud.network.klalb.KLALBRemoteLine; -import org.kne.cloud.network.klalb.ui.KLALBStateGUI2; -import org.kne.util.AutoProperties; - -public class SimpleKLALBMinecraftClient { - public static KLALBStateGUI2 ksg; -public static void main(String[] args) throws UnknownHostException, IOException { - - System.out.println(CONST.klalb+" V"+CONST.klalbver); - Scanner scn=new Scanner(System.in); - Properties def=new Properties(); - def.setProperty("server", ""); - def.setProperty("local", ""); - AutoProperties ap=new AutoProperties(new File("klalbclient.ini"),def); - KLALBController kc=new KLALBController(); - kc.registerToProxyTypeAs("KLALB"); - MinecraftServerAddress msa=MinecraftServerAddress.findAddress(ap.getProperty("server")); - MinecraftServerPinger msp=new MinecraftServerPinger(msa); - if(msp.getKlalbversion()==null) { - System.out.println("服务器不支持加速!!"); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - System.exit(0); - } - Inet6Address vad= kc.getRemoteVaddrBySocketAddress(msa); - MultipurposeSocketAddress vmsa=new MultipurposeSocketAddress("KLALB_Stream",new InetSocketAddress(vad, msp.getKlalbvport())); - System.out.println("连接成功:"+ap.getProperty("server")); - new SocketToSocketProxy(new MultipurposeSocketAddress(ap.getProperty("local")), vmsa); - //System.out.println("提示:输入state并回车可以查看当前线路状态"); - while(true) { - String s=scn.nextLine(); - switch(s) { - case "help": - System.out.print("help:查看命令使用说明"); - System.out.print("state:查看线路状态"); - //System.out.println("reload:重新加载线路配置文件"); - System.out.println("reconnect:所有离线线路跳过重连等待时间立即尝试重连"); - System.out.println("monitor:显示监视器图形界面"); - System.out.println("stop:退出程序"); - break; - case "stop": - System.exit(0); - break; - case "state": - System.out.println("状态\t可靠性\t上传流量\t下载流量\t上传速度\t下载速度\t上传延迟\t下载延迟\t上传抖动\t下载抖动"); - synchronized (kc.getLines()) { - for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine hostPort = iterator.next(); - System.out.println(hostPort .toString()); - //System.out.println(); - } - } - break; - case "monitor": - if(ksg==null) - ksg=new KLALBStateGUI2(kc); - ksg.setVisible(true); - break; - case "reconnect": - kc.reconnectImmediately(); - break; - default : - System.out.println("未知命令,请输入help以查询命令说明"); - - } - } -} -} diff --git a/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftServer.java b/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftServer.java deleted file mode 100644 index 46faebe..0000000 --- a/src/org/kne/cloud/network/minecraft/SimpleKLALBMinecraftServer.java +++ /dev/null @@ -1,194 +0,0 @@ -package org.kne.cloud.network.minecraft; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.net.Socket; -import java.net.UnknownHostException; -import java.util.Iterator; -import java.util.Scanner; - -import org.kne.cloud.network.MultipurposeSocketAddress; -import org.kne.cloud.network.ProtocolDetectorServerSocketFactory; -import org.kne.cloud.network.ProtocolDetectorSocket; -import org.kne.cloud.network.SocketListener; -import org.kne.cloud.network.SocketType; -import org.kne.cloud.network.klalb.CONST; -import org.kne.cloud.network.klalb.KLALBController; -import org.kne.cloud.network.klalb.KLALBRemoteLine; -import org.kne.cloud.network.klalb.KLALBVirtualSocket; -import org.kne.cloud.network.klalb.ServerPropties; -import org.kne.cloud.network.klalb.StreamKLALBPacketLink; - -public class SimpleKLALBMinecraftServer { - public static SocketListener tcpl,tcpl2; - public static ServerPropties sp; - public static KLALBController kc; - static { - MultipurposeSocketAddress.getSocketTypeRegister().put("DETTCP",new SocketType(null, new ProtocolDetectorServerSocketFactory())); - } - public static void main(String[] args) throws IOException { - - System.out.println(CONST.klalb+"[Minecraft版] V"+CONST.klalbver); - sp=new ServerPropties(); - - System.out.println("虚拟地址:"+sp.getVirtualIP().getHostAddress()); - kc=new KLALBController(sp.getVirtualIP()); - /*kc.setSelflineTableSupplier(()->{ - return fileRead("linetable.txt"); - });*/ - kc.registerToProxyTypeAs("KLALB"); - - System.out.println("开放端口:"+sp.getBind()); - openPort(sp.getBind()); - System.out.println("本地服务:"+sp.getLocal()); - openLocalPort(sp.getLocal()); - - - - Scanner scn=new Scanner(System.in); - while(true) { - String s=scn.next(); - String[]sc=s.split(" "); - switch(sc[0]) { - case "help": - System.out.print("state:查看线路状态"); - System.out.println("reload:重新加载线路配置"); - break; - case "state": - System.out.println("状态\t可靠性\t上传流量\t下载流量\t上传速度\t下载速度\t上传延迟\t下载延迟\t上传抖动\t下载抖动"); - for (Iterator iterator = kc.getLines().iterator(); iterator.hasNext();) { - KLALBRemoteLine hostPort = iterator.next(); - System.out.println(hostPort .toString()); - //System.out.println(); - } - break; - default: - System.out.println("未知命令,请输入help以查询指令说明"); - } - } - } - private static void openPort(String bip) throws IOException { - if(tcpl!=null) - tcpl.close(); - MultipurposeSocketAddress mpsa=new MultipurposeSocketAddress(bip,"DETTCP"); - tcpl=new SocketListener(mpsa); - tcpl.setCon((soc)->{ - ProtocolDetectorSocket pds=(ProtocolDetectorSocket) soc; - if(!pds.getProtocolStack().isEmpty()&&pds.getProtocolStack().pop().getName().equals("KLALB")) { - KLALBRemoteLine krs=null; - try { - krs = new KLALBRemoteLine(new StreamKLALBPacketLink(pds)); - kc.addRemoteLine(krs); - } catch (IOException e) { - e.printStackTrace(); - } - }else { - MultipurposeSocketAddress mpsa2=new MultipurposeSocketAddress(sp.getLocal()); - Socket s=null; - try { - s=mpsa2.connectSocket(); - MinecraftSocketBridge dsb=new MinecraftSocketBridge(pds, s); - dsb.getBridgeBA().getTransformers().add(new KLALBJsonMotdInserter(()->{return kc.getSelf().getAddress();},()->{return 23333;})); - dsb.run(); - } catch (UnknownHostException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - }finally { - if(s!=null) - try { - s.close(); - } catch (IOException e1) { - // TODO 自动生成的 catch 块 - e1.printStackTrace(); - } - try { - soc.close(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - } - } - }); - } - private static void openLocalPort(String bip) throws IOException { - if(tcpl2!=null) - tcpl2.close(); - MultipurposeSocketAddress mpsa=new MultipurposeSocketAddress(bip); - tcpl2=new SocketListener(new MultipurposeSocketAddress("KLALB_Stream", "::0", 23333)); - tcpl2.setCon((soc)->{ - Socket s=null; - try { - s=mpsa.connectSocket(); - s.setTcpNoDelay(true); - //soc.setTcpNoDelay(true); - //((KLALBVirtualSocket) soc).setCompress(1); - MinecraftSocketBridge dsb=new MinecraftSocketBridge(soc, s); - dsb.getBridgeBA().getTransformers().add(new KLALBJsonMotdInserter(()->{return kc.getSelf().getAddress();},()->{return 23333;})); - //dsb.getSab().setDelay(1); - dsb.run(); - /*CompressedSocketBridge csb=new CompressedSocketBridge(s, soc); - csb.getSab().setDelay(1); - csb.run();*/ - } catch (UnknownHostException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - }finally { - if(s!=null) - try { - s.close(); - } catch (IOException e1) { - // TODO 自动生成的 catch 块 - e1.printStackTrace(); - } - try { - soc.close(); - } catch (IOException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - } - - }); - } - private static String fileRead(String filePath){ - //1.定义一个BufferedReader对象,将文件内容读取到缓存 - BufferedReader bufferedReader =null; - String returnInfo=""; - try{ - // 2.定义一个file对象 - File file = new File(filePath);//定义一个file对象,用来初始化FileReader - // 3.定义一个fileReader对象 - FileReader reader = new FileReader(file); - // 4.定义一个BufferedReader对象,将文件内容读取到缓存 - bufferedReader = new BufferedReader(reader); - // 5.定义一个字符串缓存,将字符串存放缓存中 - StringBuilder stringBuilder = new StringBuilder(); - String str = ""; - while ((str =bufferedReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格 - stringBuilder.append(str + "\n");//将读取的字符串添加换行符后累加存放在缓存中 - } - returnInfo = stringBuilder.toString(); - }catch (Exception e){ - e.printStackTrace(); - }finally { - try{ - if(bufferedReader!=null){ - bufferedReader.close(); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - return returnInfo; - } - -} diff --git a/src/org/kne/cloud/network/monitor/ArrayListTimestampMonitor.java b/src/org/kne/cloud/network/monitor/ArrayListTimestampMonitor.java new file mode 100644 index 0000000..365967e --- /dev/null +++ b/src/org/kne/cloud/network/monitor/ArrayListTimestampMonitor.java @@ -0,0 +1,460 @@ +package org.kne.cloud.network.monitor; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.network.klalb.KLALBUtils; +import org.kne.math.Long128; + +public class ArrayListTimestampMonitor implements TimestampMonitor{ + + + + private HighAccuracyClock clock; + private String name; + + // 使用LongAdder替代AtomicLong,在高并发下性能更好 + private final LongAdder totalDataSize = new LongAdder(); + private final LongAdder totalPackets = new LongAdder(); + + // 配置参数 + private final int maxRetry; + private final long cleanupThreshold; + + // 使用ArrayList存储数据 + private final List entries = new ArrayList<>(); + + // 读写锁用于保护ArrayList的并发访问 + private final ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock(); + + // 时间戳验证容差(纳秒),考虑到网络延迟和时钟同步 + private static final long TIMESTAMP_TOLERANCE_NS = 10_000_000L; // 10毫秒 + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public HighAccuracyClock getClock() { + return clock; + } + protected ArrayListTimestampMonitor(HighAccuracyClock clock, String name, int maxRetry, long cleanupThreshold) { + super(); + this.clock = clock; + this.name = name; + this.maxRetry = maxRetry; + this.cleanupThreshold = cleanupThreshold; + } + + public ArrayListTimestampMonitor() { + this(new HighAccuracyClock(), "TimestampMonitor", 100, 1000000000L); + } + + public ArrayListTimestampMonitor(HighAccuracyClock clock, String name) { + this(clock, name, 100, 1000000000L); + } + + private volatile long prev = System.nanoTime(); + + public boolean recordPacket(K key, int length) { + return recordPacket(key, clock.getCurrentTimeNanos(), length); + } + + /** + * 记录数据包 - 使用插入排序保持列表有序,添加时间戳验证 + */ + public boolean recordPacket(K key, Long128 timestamp, int length) { + // 验证时间戳的合理性 + validateTimestamp(timestamp); + + // 快速路径:尝试sequence=0 + TimestampMonitorKey monitorKey = new TimestampMonitorKey<>(key, 0); + TimestampMonitorValue monitorValue = new TimestampMonitorValue(monitorKey, timestamp, length); + autoCleanup(cleanupThreshold); + + rwLock.writeLock().lock(); + try { + // 使用二分查找插入排序,保持列表有序 + insertSorted(monitorValue); + totalDataSize.add(length); + totalPackets.increment(); + return true; + } finally { + rwLock.writeLock().unlock(); + } + } + + /** + * 验证时间戳的合理性 + */ + private void validateTimestamp(Long128 timestamp) { + /* BigInteger currentTime = clock.getCurrentTimeNanos(); + BigInteger maxAllowedTime = currentTime.add(BigInteger.valueOf(TIMESTAMP_TOLERANCE_NS)); + + if (timestamp.compareTo(maxAllowedTime) > 0) { + throw new IllegalArgumentException( + String.format("Timestamp %s is in the future (current time: %s, tolerance: %d ns)", + timestamp, currentTime, TIMESTAMP_TOLERANCE_NS)); + } + + */ + } + + /** + * 使用二分查找进行插入排序,保持列表有序 + */ + private void insertSorted(TimestampMonitorValue newValue) { + if (entries.isEmpty()) { + entries.add(newValue); + return; + } + + // 优化:检查是否可以快速添加到末尾(大部分数据包是按时间顺序到达的) + TimestampMonitorValue lastValue = entries.get(entries.size() - 1); + if (newValue.getTimestamp().compareTo(lastValue.getTimestamp()) >= 0) { + entries.add(newValue); + return; + } + + // 使用二分查找找到插入位置 + int insertIndex = findInsertIndex(newValue.getTimestamp()); + entries.add(insertIndex, newValue); + } + + /** + * 使用二分查找找到插入位置 + */ + private int findInsertIndex(Long128 timestamp) { + int low = 0; + int high = entries.size() - 1; + + while (low <= high) { + int mid = (low + high) >>> 1; + Long128 midTimestamp = entries.get(mid).getTimestamp(); + int cmp = timestamp.compareTo(midTimestamp); + + if (cmp < 0) { + high = mid - 1; + } else if (cmp > 0) { + low = mid + 1; + } else { + // 时间戳相等,插入到相同时间戳的后面 + return findLastEqualIndex(mid, timestamp) + 1; + } + } + + return low; + } + + /** + * 找到相同时间戳的最后一个元素的索引 + */ + private int findLastEqualIndex(int startIndex, Long128 timestamp) { + int index = startIndex; + while (index < entries.size() - 1 && + entries.get(index + 1).getTimestamp().equals(timestamp)) { + index++; + } + return index; + } + + private void autoCleanup(long th) { + long curr = System.nanoTime(); + if (curr - prev > th) { + prev = curr; + cleanup(); + } + } + + public void cleanup() { + cleanup(clock.getCurrentTimeNanos(), cleanupThreshold); + } + + /** + * 清理旧记录 - 由于列表已排序,直接使用二分查找 + */ + public void cleanup(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime.subtract(Long128.valueOf(timeWindowNs)); + + rwLock.writeLock().lock(); + try { + // 使用二分查找找到第一个不过期的元素位置 + int firstValidIndex = findFirstValidIndex(startTime); + + if (firstValidIndex > 0) { + // 删除所有过期的元素 + entries.subList(0, firstValidIndex).clear(); + } + } finally { + rwLock.writeLock().unlock(); + } + prev=System.nanoTime(); + } + + /** + * 使用二分查找找到第一个时间戳 >= startTime 的元素索引 + */ + private int findFirstValidIndex(Long128 startTime) { + int low = 0; + int high = entries.size(); + + while (low < high) { + int mid = (low + high) >>> 1; + Long128 midTimestamp = entries.get(mid).getTimestamp(); + + if (midTimestamp.compareTo(startTime) < 0) { + low = mid + 1; + } else { + high = mid; + } + } + + return low; + } + + public long calculateDataVolume(long timeWindowNs) { + return calculateDataVolume(clock.getCurrentTimeNanos(), timeWindowNs); + } + + /** + * 高性能数据量计算 - 优化:由于数据包不会来自未来,只需要查找startTime + */ + public long calculateDataVolume(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime.subtract(Long128.valueOf(timeWindowNs)); + + rwLock.readLock().lock(); + try { + return calculateDataVolumeFromSortedList(entries, startTime); + } finally { + rwLock.readLock().unlock(); + } + } + + /** + * 从已排序的列表中计算数据量 - 优化版本,只需要startTime + */ + private long calculateDataVolumeFromSortedList(List sortedList, + Long128 startTime) { + if (sortedList.isEmpty()) { + return 0; + } + + // 使用二分查找找到第一个 >= startTime 的元素位置 + int startIndex = findFirstValidIndexFromSorted(sortedList, startTime); + + if (startIndex >= sortedList.size()) { + return 0; + } + + // 计算从startIndex到末尾的所有数据量(因为数据包不会来自未来) + long sum = 0; + for (int i = startIndex; i < sortedList.size(); i++) { + sum += sortedList.get(i).getLength(); + } + + return sum; + } + + /** + * 在已排序列表中找到第一个时间戳 >= startTime 的索引 + */ + private int findFirstValidIndexFromSorted(List sortedList, Long128 startTime) { + int low = 0; + int high = sortedList.size(); + + while (low < high) { + int mid = (low + high) >>> 1; + Long128 midTimestamp = sortedList.get(mid).getTimestamp(); + + if (midTimestamp.compareTo(startTime) < 0) { + low = mid + 1; + } else { + high = mid; + } + } + + return low; + } + + public long calculatePacketCount(long timeWindowNs) { + return calculatePacketCount(clock.getCurrentTimeNanos(), timeWindowNs); + } + + /** + * 高性能包数计算 - 优化:由于数据包不会来自未来,只需要查找startTime + */ + public long calculatePacketCount(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime.subtract(Long128.valueOf(timeWindowNs)); + + rwLock.readLock().lock(); + try { + return calculatePacketCountFromSortedList(entries, startTime); + } finally { + rwLock.readLock().unlock(); + } + } + + /** + * 从已排序的列表中计算包数 - 优化版本,只需要startTime + */ + private long calculatePacketCountFromSortedList(List sortedList, + Long128 startTime) { + if (sortedList.isEmpty()) { + return 0; + } + + int startIndex = findFirstValidIndexFromSorted(sortedList, startTime); + + if (startIndex >= sortedList.size()) { + return 0; + } + + // 计算从startIndex到末尾的所有包数(因为数据包不会来自未来) + return sortedList.size() - startIndex; + } + + public long calculateBandwidth(long timeWindowNs) { + return calculateBandwidth(clock.getCurrentTimeNanos(), timeWindowNs); + } + + /** + * 计算带宽 + */ + public long calculateBandwidth(Long128 currentTime, long timeWindowNs) { + if (timeWindowNs <= 0) { + return 0; + } + + long dataVolume = calculateDataVolume(currentTime, timeWindowNs); + return (long) (dataVolume * 1000000000.0 / timeWindowNs); + } + + public TrafficStats calculateTrafficStats(long timeWindowNs) { + return calculateTrafficStats(clock.getCurrentTimeNanos(), timeWindowNs); + } + + /** + * 计算流量统计信息 - 优化:由于数据包不会来自未来,只需要查找startTime + */ + public TrafficStats calculateTrafficStats(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime.subtract(Long128.valueOf(timeWindowNs)); + + rwLock.readLock().lock(); + try { + return calculateTrafficStatsFromSortedList(entries, startTime, currentTime, timeWindowNs); + } finally { + rwLock.readLock().unlock(); + } + } + + /** + * 从已排序的列表中计算流量统计 - 优化版本 + */ + private TrafficStats calculateTrafficStatsFromSortedList(List sortedList, + Long128 startTime, Long128 currentTime, + long timeWindowNs) { + TrafficStats stats = new TrafficStats(); + stats.timeWindowNs = timeWindowNs; + stats.currentTime = currentTime; + + if (sortedList.isEmpty()) { + return stats; + } + + int startIndex = findFirstValidIndexFromSorted(sortedList, startTime); + + if (startIndex >= sortedList.size()) { + return stats; + } + + // 计算从startIndex到末尾的所有数据(因为数据包不会来自未来) + for (int i = startIndex; i < sortedList.size(); i++) { + TimestampMonitorValue value = sortedList.get(i); + stats.packetCount++; + stats.totalBytes += value.getLength(); + + if (stats.earliestTimestamp.equals(BigInteger.ZERO) || + value.getTimestamp().compareTo(stats.earliestTimestamp) < 0) { + stats.earliestTimestamp = value.getTimestamp(); + } + if (value.getTimestamp().compareTo(stats.latestTimestamp) > 0) { + stats.latestTimestamp = value.getTimestamp(); + } + } + + return stats; + } + + + // Getters + public long getTotalDataSize() { return totalDataSize.sum(); } + public long getTotalPackets() { return totalPackets.sum(); } + public int getEntryCount() { + rwLock.readLock().lock(); + try { + return entries.size(); + } finally { + rwLock.readLock().unlock(); + } + } + + public void reset() { + rwLock.writeLock().lock(); + try { + totalDataSize.reset(); + totalPackets.reset(); + entries.clear(); + } finally { + rwLock.writeLock().unlock(); + } + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(name); + sb.append('\n'); + sb.append(KLALBUtils.convertIBUint(totalDataSize.sum())).append("\t") + .append(KLALBUtils.convertIBUint(calculateBandwidth(Math.min(cleanupThreshold,1000000000L)))).append("/s\t"); + return sb.toString(); + } + + public static void main(String[] args) throws InterruptedException { + AtomicLong along=new AtomicLong(0); + ArrayListTimestampMonitor monitor = new ArrayListTimestampMonitor<>(new HighAccuracyClock(),"Monitor",100,200000000L); + Thread t=new Thread(()->{ + while(true) { + monitor.recordPacket(along.getAndIncrement(), 1000); + } + }); + t.start(); + Timer tx=new Timer(); + tx.scheduleAtFixedRate(new TimerTask() { + + @Override + public void run() { + // 计算带宽 + long testEndTime = System.nanoTime(); + monitor.cleanup(); + // 计算统计信息 + // TrafficStats stats = monitor.calculateTrafficStats(1000000000L); + System.out.println(monitor); + System.out.println(KLALBUtils.convertUintNanoDefalut( System.nanoTime()-testEndTime)); + } + }, 100, 100); + + + + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/monitor/HashMapTimestampMonitor.java b/src/org/kne/cloud/network/monitor/HashMapTimestampMonitor.java new file mode 100644 index 0000000..8997cd0 --- /dev/null +++ b/src/org/kne/cloud/network/monitor/HashMapTimestampMonitor.java @@ -0,0 +1,275 @@ +package org.kne.cloud.network.monitor; + +import java.math.BigInteger; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; +import java.util.stream.Collectors; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.network.klalb.KLALBUtils; +import org.kne.math.Long128; + +public class HashMapTimestampMonitor implements TimestampMonitor { + + + private HighAccuracyClock clock; + +private String name; + + + // 使用LongAdder替代AtomicLong,在高并发下性能更好 + private final LongAdder totalDataSize = new LongAdder(); + private final LongAdder totalPackets = new LongAdder(); + + // 配置参数 + private final int maxRetry; + private final long cleanupThreshold; + + + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public HighAccuracyClock getClock() { + return clock; + } + protected HashMapTimestampMonitor(HighAccuracyClock clock,String name, int maxRetry, long cleanupThreshold) { + super(); + this.clock=clock; + this.name = name; + this.maxRetry = maxRetry; + this.cleanupThreshold = cleanupThreshold; + } +public HashMapTimestampMonitor() { + this(new HighAccuracyClock(),"TimestampMonitor",100, 1000000000L); // 默认最大重试100次,清理阈值1秒 + } + + public HashMapTimestampMonitor(HighAccuracyClock clock,String name) { + this(clock,name,100, 1000000000L); // 默认最大重试100次,清理阈值1秒 + } + private final ConcurrentHashMap, TimestampMonitorValue> entries = + new ConcurrentHashMap<>(); + + private volatile long prev=System.nanoTime(); + + + public boolean recordPacket(K key, int length) { + return recordPacket(key,clock.getCurrentTimeNanos(),length); + } + /** + * 超高性能记录数据包 - 针对路由器优化 + */ + public boolean recordPacket(K key, Long128 timestamp, int length) { + autoCleanup(cleanupThreshold); + // 快速路径:尝试sequence=0 + TimestampMonitorKey monitorKey = new TimestampMonitorKey<>(key, 0); + TimestampMonitorValue monitorValue = new TimestampMonitorValue(monitorKey,timestamp, length); + + if (entries.putIfAbsent(monitorKey, monitorValue) == null) { + totalDataSize.add(length); + totalPackets.increment(); + return true; + } + + // 重试路径(极少执行) + for (int sequence = 0; sequence < maxRetry; sequence++) { + monitorKey = new TimestampMonitorKey<>(key, sequence); + monitorValue = new TimestampMonitorValue(monitorKey,timestamp, length); + if (entries.putIfAbsent(monitorKey, monitorValue) == null) { + totalDataSize.add(length); + totalPackets.increment(); + return true; + } + } + + return false; + } + + private void autoCleanup(long th) { + long curr=System.nanoTime(); + if(curr-prev>th) { + prev=curr; + cleanup(); + } + } + public void cleanup() { + cleanup(clock.getCurrentTimeNanos(),cleanupThreshold); + } + + /** + *清理旧记录 + */ + public void cleanup(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime .subtract(Long128.valueOf( timeWindowNs)); + //System.out.println("clr"); + entries.entrySet().removeIf(entry -> + entry.getValue().getTimestamp() .compareTo( startTime)<0); + prev=System.nanoTime(); + } + /*public void cleanup(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime.subtract(Long128.valueOf(timeWindowNs)); + + // 并行筛选需要删除的键 + List keysToRemove = entries.entrySet() + .parallelStream() + .filter(entry -> entry.getValue().getTimestamp().compareTo(startTime) < 0) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + + // 批量删除(如果entries是ConcurrentHashMap,可以并行删除) + keysToRemove.parallelStream().forEach(entries::remove); + System.out.println("remove:"+keysToRemove.size()); + prev=System.nanoTime(); + }*/ + + public long calculateDataVolume(long timeWindowNs) { + return calculateDataVolume(clock.getCurrentTimeNanos(),timeWindowNs); + } + + /** + * 高性能数据量计算 - 使用并行流 + */ + public long calculateDataVolume(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime .subtract(Long128.valueOf( timeWindowNs)); + + return entries.values().stream() + .filter(value -> (value.getTimestamp() .compareTo( startTime )>=0)&& + (value.getTimestamp().compareTo( currentTime) <=0) ) + .mapToLong(TimestampMonitorValue::getLength) + .sum(); + } + + public long calculatePacketCount(long timeWindowNs) { + return calculatePacketCount(clock.getCurrentTimeNanos(),timeWindowNs); + } + + /** + * 高性能包数计算 - 使用并行流 + * 计算从n纳秒前到现在的时间窗口内传输的数据包数量 + */ + public long calculatePacketCount(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime .subtract(Long128.valueOf( timeWindowNs)); + + return entries.values().parallelStream() + .filter(value -> (value.getTimestamp() .compareTo( startTime )>=0)&& + (value.getTimestamp().compareTo( currentTime) <=0) ) + .count(); + } + + public long calculateBandwidth(long timeWindowNs) { + return calculateBandwidth(clock.getCurrentTimeNanos(),timeWindowNs); + } + + /** + * 计算带宽 - 添加单位转换 + */ + public long calculateBandwidth(Long128 currentTime, long timeWindowNs) { + if (timeWindowNs <= 0) { + return 0; + } + + long dataVolume = calculateDataVolume(currentTime, timeWindowNs); + // System.out.println(dataVolume); + return (long) (dataVolume*1000000000.0/timeWindowNs); + } + + public TrafficStats calculateTrafficStats(long timeWindowNs) { + return calculateTrafficStats(clock.getCurrentTimeNanos(),timeWindowNs); + } + /** + * 计算包数并同时获取带宽信息 + */ + public TrafficStats calculateTrafficStats(Long128 currentTime, long timeWindowNs) { + Long128 startTime = currentTime .subtract(Long128.valueOf( timeWindowNs)); + + TrafficStats stats = entries.values().parallelStream() + .filter(value -> (value.getTimestamp() .compareTo( startTime )>=0)&& + (value.getTimestamp().compareTo( currentTime) <=0) ) + .collect( + TrafficStats::new, + (ts, value) -> { + ts.packetCount++; + ts.totalBytes += value.getLength(); + if (ts.earliestTimestamp .equals(Long128.ZERO) || (value.getTimestamp() .compareTo( ts.earliestTimestamp)<0)) { + ts.earliestTimestamp = value.getTimestamp(); + } + if (value.getTimestamp() .compareTo( ts.latestTimestamp)>0) { + ts.latestTimestamp = value.getTimestamp(); + } + }, + (ts1, ts2) -> { + ts1.packetCount += ts2.packetCount; + ts1.totalBytes += ts2.totalBytes; + ts1.earliestTimestamp = ts1.earliestTimestamp.min( ts2.earliestTimestamp); + ts1.latestTimestamp = ts1.latestTimestamp.max( ts2.latestTimestamp); + } + ); + + stats.timeWindowNs = timeWindowNs; + stats.currentTime = currentTime; + return stats; + } + + + // Getters + public long getTotalDataSize() { return totalDataSize.sum(); } + public long getTotalPackets() { return totalPackets.sum(); } + public int getEntryCount() { return entries.size(); } + + + public void reset() { + totalDataSize.reset(); + totalPackets.reset(); + entries.clear(); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(name); + sb.append('\n'); + sb.append(KLALBUtils.convertIBUint(totalDataSize.sum())).append("\t") + .append(KLALBUtils.convertIBUint(calculateBandwidth(Math.min(cleanupThreshold,1000000000L)))).append("/s\t"); + return sb.toString(); + } + public static void main(String[] args) throws InterruptedException { + HighAccuracyClock clk=new HighAccuracyClock(); + HashMapTimestampMonitor monitor = new HashMapTimestampMonitor<>(clk,"Monitor",100,200000000L); + Thread t=new Thread(()->{ + long l=0; + while(true) { + monitor.recordPacket(l++, 1000); + } + }); + t.start(); + Timer tx=new Timer(); + tx.scheduleAtFixedRate(new TimerTask() { + + @Override + public void run() { + // 计算带宽 + long testEndTime = System.nanoTime(); + monitor.cleanup(); + // 计算统计信息 + // TrafficStats stats = monitor.calculateTrafficStats(1000000000L); + System.out.println(monitor); + System.out.println(KLALBUtils.convertUintNanoDefalut( System.nanoTime()-testEndTime)+monitor.entries.size()); + } + }, 100, 100); + + + + } + + +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/monitor/MonitorDataImpl.java b/src/org/kne/cloud/network/monitor/MonitorDataImpl.java index 53331f7..cc5c56d 100644 --- a/src/org/kne/cloud/network/monitor/MonitorDataImpl.java +++ b/src/org/kne/cloud/network/monitor/MonitorDataImpl.java @@ -1,7 +1,5 @@ package org.kne.cloud.network.monitor; -import static org.kne.cloud.network.klalb.KLALBUtils.bytesUnit; - import java.util.Timer; import java.util.TimerTask; import java.util.function.Consumer; diff --git a/src/org/kne/cloud/network/monitor/NanoTimeSeries.java b/src/org/kne/cloud/network/monitor/NanoTimeSeries.java deleted file mode 100644 index 2f63a33..0000000 --- a/src/org/kne/cloud/network/monitor/NanoTimeSeries.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.kne.cloud.network.monitor; - -public class NanoTimeSeries { - -} diff --git a/src/org/kne/cloud/network/monitor/SpeedAndTrafficAndDelayMonitorDataImpl.java b/src/org/kne/cloud/network/monitor/SpeedAndTrafficAndDelayMonitorDataImpl.java index e8a3294..289d72b 100644 --- a/src/org/kne/cloud/network/monitor/SpeedAndTrafficAndDelayMonitorDataImpl.java +++ b/src/org/kne/cloud/network/monitor/SpeedAndTrafficAndDelayMonitorDataImpl.java @@ -1,24 +1,26 @@ package org.kne.cloud.network.monitor; +import org.kne.cloud.network.klalb.KLALBUtils; + public class SpeedAndTrafficAndDelayMonitorDataImpl extends SpeedAndTrafficMonitorDataImpl implements SpeedAndTrafficMonitorData,DelayMonitorData{ - private volatile long outDelay; + private volatile long outDelay=Long.MAX_VALUE/1024; private volatile long outDelayMin=Long.MAX_VALUE; private volatile long outDelayAvg=Long.MAX_VALUE; private long outDelayOld; private volatile long outJitter; - private volatile long inDelay; + private volatile long inDelay=Long.MAX_VALUE/1024; private volatile long inDelayMin=Long.MAX_VALUE; private volatile long inDelayAvg=Long.MAX_VALUE; private long inDelayOld; private volatile long inJitter; - private volatile long latency; + private volatile long latency=Long.MAX_VALUE/1024; private volatile long latencyMin=Long.MAX_VALUE; private volatile long latencyAvg=Long.MAX_VALUE; private long latencyOld; @@ -170,7 +172,7 @@ public class SpeedAndTrafficAndDelayMonitorDataImpl extends SpeedAndTrafficMonit @Override public String toString() { StringBuilder sb=new StringBuilder(super.toString()); - sb.append(String.format("%.1f", outDelay/1000000.0) ).append("ms").append("\t").append(String.format("%.1f", inDelay/1000000.0) ).append("ms").append("\t").append(String.format("%.1f", outJitter/1000000.0) ).append("ms\t").append(String.format("%.1f", inJitter/1000000.0) ).append("ms\t"); + sb.append(KLALBUtils.convertUintNanoDefalut( outDelay) ).append("s").append("\t").append(KLALBUtils.convertUintNanoDefalut( inDelay) ).append("s").append("\t").append(KLALBUtils.convertUintNanoDefalut( outJitter) ).append("s\t").append(KLALBUtils.convertUintNanoDefalut( inJitter) ).append("s\t"); return sb.toString(); } diff --git a/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorData.java b/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorData.java index 917c355..b2a1e11 100644 --- a/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorData.java +++ b/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorData.java @@ -1,15 +1,16 @@ package org.kne.cloud.network.monitor; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; public interface SpeedAndTrafficMonitorData extends MonitorData{ public long getInTraffic(); public long getOutTraffic(); -public AtomicLong getInTrafficAL(); +public LongAdder getInTrafficAL(); -public AtomicLong getOutTrafficAL(); +public LongAdder getOutTrafficAL(); public long getInSpeed(); @@ -21,9 +22,9 @@ public long getInPPS(); public long getOutPPS(); -public AtomicLong getInPacketCounterAL(); +public LongAdder getInPacketCounterAL(); -public AtomicLong getOutPacketCounterAL(); +public LongAdder getOutPacketCounterAL(); public long getInPacketCounter(); diff --git a/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorDataImpl.java b/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorDataImpl.java index 8cda996..212341e 100644 --- a/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorDataImpl.java +++ b/src/org/kne/cloud/network/monitor/SpeedAndTrafficMonitorDataImpl.java @@ -1,9 +1,10 @@ package org.kne.cloud.network.monitor; -import static org.kne.cloud.network.klalb.KLALBUtils.bytesUnit; - import java.util.TimerTask; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; + +import org.kne.cloud.network.klalb.KLALBUtils; public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements SpeedAndTrafficMonitorData { @@ -11,8 +12,8 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S private long updatetime1=System.nanoTime(); private long updatetime2=System.nanoTime(); - private volatile AtomicLong inTraffic=new AtomicLong(); - private volatile AtomicLong outTraffic=new AtomicLong(); + private volatile LongAdder inTraffic=new LongAdder(); + private volatile LongAdder outTraffic=new LongAdder(); private long inTrafficOld=0; @@ -43,7 +44,7 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S } protected void createTask() { - getTimer().scheduleAtFixedRate(tmt, 0, 50); + getTimer().scheduleAtFixedRate(tmt, 0, 20); } protected void createTask1() { @@ -61,18 +62,18 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S } public long getInTraffic() { - return inTraffic.get(); + return inTraffic.sum(); } public long getOutTraffic() { - return outTraffic.get(); + return outTraffic.sum(); } - public AtomicLong getInTrafficAL() { + public LongAdder getInTrafficAL() { return inTraffic; } - public AtomicLong getOutTrafficAL() { + public LongAdder getOutTrafficAL() { return outTraffic; } @@ -121,25 +122,29 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S long d=System.nanoTime()-updatetime; if(d!=0) { if(inTraffic!=null) { - long i=inTraffic.get()-inTrafficOld; - inTrafficOld =inTraffic.get(); + long inTrafficSum=inTraffic.sum(); + long i=inTrafficSum-inTrafficOld; + inTrafficOld =inTrafficSum; inSpeed= (long) (i*1000000000.0/d); } if(outTraffic!=null) { - long o=outTraffic.get()-outTrafficOld; - outTrafficOld =outTraffic.get(); + long outTrafficSum=outTraffic.sum(); + long o=outTrafficSum-outTrafficOld; + outTrafficOld =outTrafficSum; outSpeed= (long) (o*1000000000.0/d); } if(inCounter!=null) { - long i=inCounter.get()-inCounterOld; - inCounterOld =inCounter.get(); + long inCounterSum=inCounter.sum(); + long i=inCounterSum-inCounterOld; + inCounterOld =inCounterSum; inPPS= (long) (i*1000000000.0/d); } if(outCounter!=null) { - long i=outCounter.get()-outCounterOld; - outCounterOld =outCounter.get(); + long outCounterSum=outCounter.sum(); + long i=outCounterSum-outCounterOld; + outCounterOld =outCounterSum; outPPS= (long) (i*1000000000.0/d); } } @@ -180,26 +185,30 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S long d=System.nanoTime()-updatetime1; if(d!=0) { if(inTraffic!=null) { - long i=inTraffic.get()-inTrafficOld1; - inTrafficOld1 =inTraffic.get(); + long inTrafficSum=inTraffic.sum(); + long i=inTrafficSum-inTrafficOld1; + inTrafficOld1 =inTrafficSum; inSpeedAvg= (long) (i*1000000000.0/d); } if(outTraffic!=null) { - long o=outTraffic.get()-outTrafficOld1; - outTrafficOld1 =outTraffic.get(); + long outTrafficSum=outTraffic.sum(); + long o=outTrafficSum-outTrafficOld1; + outTrafficOld1 =outTrafficSum; outSpeedAvg= (long) (o*1000000000.0/d); } if(inCounter!=null) { - long i=inCounter.get()-inCounterOld1; - inCounterOld1 =inCounter.get(); + long inCounterSum=inCounter.sum(); + long i=inCounterSum-inCounterOld1; + inCounterOld1 =inCounterSum; inPPSAvg= (long) (i*1000000000.0/d); } if(outCounter!=null) { - long o=outCounter.get()-outCounterOld1; - outCounterOld1 =outCounter.get(); + long outCounterSum=outCounter.sum(); + long o=outCounterSum-outCounterOld1; + outCounterOld1 =outCounterSum; outPPSAvg= (long) (o*1000000000.0/d); } } @@ -216,28 +225,32 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S long d=System.nanoTime()-updatetime2; if(d!=0) { if(inTraffic!=null) { - long i=inTraffic.get()-inTrafficOld2; - inTrafficOld2 =inTraffic.get(); + long inTrafficSum=inTraffic.sum(); + long i=inTrafficSum-inTrafficOld2; + inTrafficOld2 =inTrafficSum; inSpeedAvg2= (long) (i*1000000000.0/d); } if(outTraffic!=null) { - long o=outTraffic.get()-outTrafficOld2; - outTrafficOld2 =outTraffic.get(); + long outTrafficSum=outTraffic.sum(); + long o=outTrafficSum-outTrafficOld2; + outTrafficOld2 =outTrafficSum; outSpeedAvg2= (long) (o*1000000000.0/d); } if(inCounter!=null) { - long i=inCounter.get()-inCounterOld2; - inCounterOld2 =inCounter.get(); + long inCounterSum=inCounter.sum(); + long i=inCounterSum-inCounterOld2; + inCounterOld2 =inCounterSum; inPPSAvg2= (long) (i*1000000000.0/d); } if(outCounter!=null) { - long o=outCounter.get()-outCounterOld2; - outCounterOld2 =outCounter.get(); + long outCounterSum=outCounter.sum(); + long o=outCounterSum-outCounterOld2; + outCounterOld2 =outCounterSum; outPPSAvg2= (long) (o*1000000000.0/d); } } @@ -275,7 +288,7 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S public String toString() { StringBuilder sb=new StringBuilder(super.toString()); sb.append('\t'); - sb.append(bytesUnit(outTraffic.get())).append("\t").append(bytesUnit(inTraffic.get())).append("\t").append(bytesUnit(outSpeed)).append("/s\t").append(bytesUnit(inSpeed)).append("/s\t"); + sb.append(KLALBUtils. convertIBUint(outTraffic.sum())).append("\t").append(KLALBUtils.convertIBUint(inTraffic.sum())).append("\t").append(KLALBUtils.convertIBUint(outSpeed)).append("/s\t").append(KLALBUtils.convertIBUint(inSpeed)).append("/s\t"); /*if(getState()==OFFLINE) { sb.append((coolingTime-(System.currentTimeMillis()-mls))/1000L); @@ -298,8 +311,8 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S - private volatile AtomicLong inCounter=new AtomicLong(); - private volatile AtomicLong outCounter=new AtomicLong(); + private volatile LongAdder inCounter=new LongAdder(); + private volatile LongAdder outCounter=new LongAdder(); private long inCounterOld; private long outCounterOld; @@ -333,23 +346,23 @@ public class SpeedAndTrafficMonitorDataImpl extends MonitorDataImpl implements S } @Override - public AtomicLong getInPacketCounterAL() { + public LongAdder getInPacketCounterAL() { return inCounter; } @Override - public AtomicLong getOutPacketCounterAL() { + public LongAdder getOutPacketCounterAL() { return outCounter; } @Override public long getInPacketCounter() { - return inCounter.get(); + return inCounter.sum(); } @Override public long getOutPacketCounter() { - return outCounter.get(); + return outCounter.sum(); } public double getOutPPSMax2() { diff --git a/src/org/kne/cloud/network/monitor/TimestampMonitor.java b/src/org/kne/cloud/network/monitor/TimestampMonitor.java new file mode 100644 index 0000000..2d667d0 --- /dev/null +++ b/src/org/kne/cloud/network/monitor/TimestampMonitor.java @@ -0,0 +1,156 @@ +package org.kne.cloud.network.monitor; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.math.Long128; + +/** + * 时间戳监控器接口 + * 提供高性能的数据包监控和流量统计功能 + */ +public interface TimestampMonitor { + + // ==================== 配置相关方法 ==================== + + /** + * 获取监控器名称 + */ + String getName(); + + /** + * 设置监控器名称 + */ + void setName(String name); + + /** + * 获取时钟源 + */ + HighAccuracyClock getClock(); + + // ==================== 数据记录方法 ==================== + + /** + * 记录数据包(使用当前时间) + * @param key 数据包标识 + * @param length 数据包长度 + * @return 是否记录成功 + */ + boolean recordPacket(K key, int length); + + /** + * 记录数据包(使用指定时间戳) + * @param key 数据包标识 + * @param timestamp 时间戳 + * @param length 数据包长度 + * @return 是否记录成功 + */ + boolean recordPacket(K key, Long128 timestamp, int length); + + // ==================== 清理维护方法 ==================== + + /** + * 执行清理操作(使用当前时间) + */ + void cleanup(); + + /** + * 执行清理操作(使用指定时间) + * @param currentTime 当前时间 + * @param timeWindowNs 时间窗口(纳秒) + */ + void cleanup(Long128 currentTime, long timeWindowNs); + + // ==================== 统计查询方法 ==================== + + /** + * 计算数据量(使用当前时间) + * @param timeWindowNs 时间窗口(纳秒) + * @return 数据量(字节) + */ + long calculateDataVolume(long timeWindowNs); + + /** + * 计算数据量(使用指定时间) + * @param currentTime 当前时间 + * @param timeWindowNs 时间窗口(纳秒) + * @return 数据量(字节) + */ + long calculateDataVolume(Long128 currentTime, long timeWindowNs); + + /** + * 计算数据包数量(使用当前时间) + * @param timeWindowNs 时间窗口(纳秒) + * @return 数据包数量 + */ + long calculatePacketCount(long timeWindowNs); + + /** + * 计算数据包数量(使用指定时间) + * @param currentTime 当前时间 + * @param timeWindowNs 时间窗口(纳秒) + * @return 数据包数量 + */ + long calculatePacketCount(Long128 currentTime, long timeWindowNs); + + /** + * 计算带宽(使用当前时间) + * @param timeWindowNs 时间窗口(纳秒) + * @return 带宽(字节/秒) + */ + long calculateBandwidth(long timeWindowNs); + + /** + * 计算带宽(使用指定时间) + * @param currentTime 当前时间 + * @param timeWindowNs 时间窗口(纳秒) + * @return 带宽(字节/秒) + */ + long calculateBandwidth(Long128 currentTime, long timeWindowNs); + + /** + * 计算流量统计信息(使用当前时间) + * @param timeWindowNs 时间窗口(纳秒) + * @return 流量统计信息 + */ + TrafficStats calculateTrafficStats(long timeWindowNs); + + /** + * 计算流量统计信息(使用指定时间) + * @param currentTime 当前时间 + * @param timeWindowNs 时间窗口(纳秒) + * @return 流量统计信息 + */ + TrafficStats calculateTrafficStats(Long128 currentTime, long timeWindowNs); + + // ==================== 全局统计方法 ==================== + + /** + * 获取总数据量(从启动开始) + * @return 总数据量(字节) + */ + long getTotalDataSize(); + + /** + * 获取总数据包数量(从启动开始) + * @return 总数据包数量 + */ + long getTotalPackets(); + + /** + * 获取当前条目数量 + * @return 条目数量 + */ + int getEntryCount(); + + // ==================== 管理控制方法 ==================== + + /** + * 重置监控器(清空所有数据) + */ + void reset(); + + /** + * 获取字符串表示 + * @return 监控器状态字符串 + */ + String toString(); +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/monitor/TimestampMonitorKey.java b/src/org/kne/cloud/network/monitor/TimestampMonitorKey.java new file mode 100644 index 0000000..41f49ee --- /dev/null +++ b/src/org/kne/cloud/network/monitor/TimestampMonitorKey.java @@ -0,0 +1,31 @@ +package org.kne.cloud.network.monitor; + public class TimestampMonitorKey { + private final K key; + private final long sequence; + + public TimestampMonitorKey(K key, long sequence) { + this.key = key; + this.sequence = sequence; + } + + public K getKey() { return key; } + public long getSequence() { return sequence; } + + @Override + public int hashCode() { + return 31 * key.hashCode() + (int) (sequence ^ (sequence >>> 32)); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (!(obj instanceof TimestampMonitorKey)) return false; + TimestampMonitorKey other = (TimestampMonitorKey) obj; + return key.equals(other.key) && sequence == other.sequence; + } + + @Override + public String toString() { + return "TimestampMonitorKey [key=" + key + ", sequence=" + sequence + "]"; + } + } \ No newline at end of file diff --git a/src/org/kne/cloud/network/monitor/TimestampMonitorValue.java b/src/org/kne/cloud/network/monitor/TimestampMonitorValue.java new file mode 100644 index 0000000..71aa017 --- /dev/null +++ b/src/org/kne/cloud/network/monitor/TimestampMonitorValue.java @@ -0,0 +1,60 @@ +package org.kne.cloud.network.monitor; + +import java.math.BigInteger; + +import org.kne.math.Long128; + +public class TimestampMonitorValue implements Comparable { + private final Long128 timestamp; + private final int length; + private final TimestampMonitorKey key; + + public TimestampMonitorValue(TimestampMonitorKey key, Long128 timestamp, int length) { + this.key = key; + this.timestamp = timestamp; + this.length = length; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + length; + result = prime * result + ((timestamp == null) ? 0 : timestamp.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + TimestampMonitorValue other = (TimestampMonitorValue) obj; + if (length != other.length) + return false; + if (timestamp == null) { + if (other.timestamp != null) + return false; + } else if (!timestamp.equals(other.timestamp)) + return false; + return true; + } + + @Override + public String toString() { + return "TimestampMonitorValue [timestamp=" + timestamp + ", length=" + length + "]"; + } + + public Long128 getTimestamp() { return timestamp; } + public int getLength() { return length; } + public TimestampMonitorKey getKey() { return key; } + + @Override + public int compareTo(TimestampMonitorValue other) { + return this.timestamp.compareTo(other.timestamp); + } + } + \ No newline at end of file diff --git a/src/org/kne/cloud/network/monitor/TrafficStats.java b/src/org/kne/cloud/network/monitor/TrafficStats.java new file mode 100644 index 0000000..3e17f4c --- /dev/null +++ b/src/org/kne/cloud/network/monitor/TrafficStats.java @@ -0,0 +1,46 @@ +package org.kne.cloud.network.monitor; + +import org.kne.math.Long128; + +/** + * 流量统计信息类 + */ + public class TrafficStats { + public long packetCount; + public long totalBytes; + public Long128 earliestTimestamp; + public Long128 latestTimestamp; + public long timeWindowNs; + public Long128 currentTime; + + public TrafficStats() { + this.packetCount = 0; + this.totalBytes = 0; + this.earliestTimestamp =Long128.ZERO; + this.latestTimestamp = Long128.ZERO; + this.timeWindowNs = 0; + this.currentTime = Long128.ZERO; + } + + public long getPacketsPerSecond() { + return (long) (timeWindowNs > 0 ? (packetCount * 1e9) / timeWindowNs : 0.0); + } + + public long getAveragePacketSize() { + return (long) (packetCount > 0 ? (double) totalBytes / packetCount : 0.0); + } + + public long getBandwidth() { + return (long) (timeWindowNs > 0 ? (totalBytes* 1e9) / timeWindowNs : 0.0); + } + + @Override + public String toString() { + return "TrafficStats [packetCount=" + packetCount + ", totalBytes=" + totalBytes + ", timeWindowNs=" + + timeWindowNs + ", getPacketsPerSecond()=" + getPacketsPerSecond() + ", getAveragePacketSize()=" + + getAveragePacketSize() + ", getBandwidth()=" + getBandwidth() + "]"; + } + + + } + \ No newline at end of file diff --git a/src/org/kne/cloud/network/ntp/NTPContext.java b/src/org/kne/cloud/network/ntp/NTPContext.java new file mode 100644 index 0000000..910894e --- /dev/null +++ b/src/org/kne/cloud/network/ntp/NTPContext.java @@ -0,0 +1,429 @@ +package org.kne.cloud.network.ntp; + +import java.io.Closeable; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.InetSocketAddress; +import java.security.Timestamp; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; + +import org.fusesource.jansi.io.AnsiOutputStream.ZeroWidthSupplier; +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.clock.NTPTimestamps; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ntp.NTPv4Protocol.NTPPeer; +import org.kne.math.Long128; + + +public class NTPContext implements Closeable, AutoCloseable { + private HighAccuracyClock clock; + private static final boolean debug = true; + private static final int REQUEST_COUNT = 10; + + private BigInteger systemFrequencyOffset = NTPTimestamps.nanosToNtp128BitTimeInterval(BigInteger.valueOf(5000)); + private BigInteger localPrecision = NTPTimestamps.nanosToNtp128BitTimeInterval(BigInteger.valueOf(1000)); + private static final BigInteger adjustThreshold = BigInteger.valueOf(2000000L); + + private int minStratum = 16; + private volatile PeerInfo currentClock = new PeerInfo(); + + private volatile boolean closed = false; + private Runnable send = new Runnable() { + @Override + public void run() { + while (!closed) { + try { + Map> mlp = new HashMap<>(); + ios.forEach((v) -> { + mlp.put(v, v.getPeersWillSend()); + }); + for (int i = 0; i < REQUEST_COUNT; i++) { + Set>> mlps = mlp.entrySet(); + for (Iterator>> iterator = mlps.iterator(); iterator + .hasNext();) { + Entry> object = iterator.next(); + List val = object.getValue(); + for (NTPPeer perr : val) { + try { + object.getKey().request(perr); + } catch (IOException e) { + if (debug) + e.printStackTrace(); + } + } + + } + + Thread.sleep(100); + } + Thread.sleep(1000); + + if (!mlp.isEmpty()) + mergeAndApply(); + + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + }; + + public NTPContext(HighAccuracyClock clock) { + this.clock = clock; + Thread ts = new Thread(send); + ts.setName("NTPv4 Send Thread"); + ts.start(); + } + + public void syncToSystem() { + clock.syncToClock(new HighAccuracyClock()); + minStratum = 15; + currentClock.stratum = Math.min(currentClock.stratum, minStratum); + currentClock.leapIndicator = 0; + } + + public int getMinStratum() { + return minStratum; + } + + public void setMinStratum(int minStratum) { + this.minStratum = minStratum; + } + + public int getStratum() { + return currentClock.stratum; + } + + public HighAccuracyClock getClock() { + return clock; + } + + private ConcurrentHashMap> recvmap = new ConcurrentHashMap>(); + + protected void putPacket(NTPv4Packet nv4, MultipurposeSocketAddress inetSocketAddress) { + checkIP(); + List newv = new Vector(); + List oldv = recvmap.putIfAbsent(inetSocketAddress, newv); + if (oldv == null) { + oldv = newv; + } + + synchronized (oldv) { + oldv.add(nv4); + while (oldv.size() > 8) { + oldv.remove(0); + } + } + } + + private void checkIP() { + Set>> ens = recvmap.entrySet(); + for (Iterator>> iterator = ens.iterator(); iterator + .hasNext();) { + Entry> entry = (Entry>) iterator + .next(); + AtomicBoolean ab = new AtomicBoolean(false); + ios.forEach((x) -> { + if (!ab.get()) + if (x.findPeer(entry.getKey()) != null) { + ab.set(true); + return; + } + }); + if (!ab.get()) { + iterator.remove(); + } + } + } + + private class PeerInfo implements Comparable { + private MultipurposeSocketAddress address; + private int leapIndicator = 3; + private int stratum = 16; + private int referenceIdentifier; + private int pollInterval; + private byte precision; + private long rootDelay = Integer.MAX_VALUE; + private long rootDispersion = Integer.MAX_VALUE; + private BigInteger referenceTimestamp = BigInteger.ZERO; + private BigInteger uploadDelay; + private BigInteger downloadDelay; + private BigInteger rtt; + + @Override + public String toString() { + return "PeerInfo [address=" + address + ", leapIndicator=" + leapIndicator + ", stratum=" + stratum + + ", referenceIdentifier=" + referenceIdentifier + ", pollInterval=" + pollInterval + ", precision=" + + precision + ", rootDelay=" + rootDelay + ", rootDispersion=" + rootDispersion + + ", referenceTimestamp=" + referenceTimestamp + ", uploadDelay=" + uploadDelay + ", downloadDelay=" + + downloadDelay + "]"; + } + + private long getRootDistance() { + return rootDelay / 2 + rootDispersion; + } + + @Override + public int compareTo(PeerInfo o) { + return Long.compare(getRootDistance(), o.getRootDistance()); + } + + public BigInteger getCurrentSelfDispersion128() { + BigInteger vk = (clock.getCurrentTimeNTP128().subtract(referenceTimestamp)).multiply(systemFrequencyOffset) + .divide(BigInteger.TWO.pow(64)); + BigInteger vkl; + if (vk.signum() < 0) { + vkl = BigInteger.ZERO; + } else { + vkl = vk; + } + return vkl; + } + + public long getCurrentRootDispersion() { + BigInteger vkl = getCurrentSelfDispersion128().shiftRight(16 + 32); + long rez = rootDispersion + vkl.longValue(); + if (rez > Integer.MAX_VALUE) { + rez = Integer.MAX_VALUE; + } + return rez; + } + + public BigInteger getAdj() { + return NTPTimestamps.ntp128BitToNanosInterval(uploadDelay.subtract(downloadDelay).shiftRight(1)); + } + } + + public void mergeAndApply() { + List peerInfo = mergeResponses(); + selectAndApply(peerInfo); + } + + private AtomicLong prevAdjustTime = new AtomicLong(System.nanoTime()); + private volatile BigInteger deltaRemaining; + private long avgAdj=0; + private void selectAndApply(List peerInfo) { + Collections.sort(peerInfo); + if(debug) + System.out.println(peerInfo); + if (!peerInfo.isEmpty()) { + PeerInfo pix = peerInfo.get(0); + currentClock = pix; + int i; + int m = Math.min(peerInfo.size(), 3); + BigInteger bi = BigInteger.ZERO; + for (i = 0; i < m; i++) { + PeerInfo pi = peerInfo.get(i); + BigInteger adjt = pi.getAdj(); + bi = bi.add(adjt); + } + BigInteger adj = bi.divide(BigInteger.valueOf(i)); + avgAdj=(avgAdj*7+adj.abs().longValue())/8; + BigInteger adjustment; + if (adj.abs().compareTo(adjustThreshold) > 0) { + adjustment = new BigDecimal(adj).multiply(BigDecimal.valueOf(0.5)).toBigInteger(); + } else { + adjustment = new BigDecimal(adj).multiply(BigDecimal.valueOf(0.0625)).toBigInteger(); + if (deltaRemaining != null) { + long curr = System.nanoTime(); + long old = prevAdjustTime.getAndSet(curr); + BigInteger fadj = adjustment.multiply(BigInteger.valueOf(TimeUnit.SECONDS.toNanos(1))) + .divide(BigInteger.valueOf(curr - old)); + BigInteger fadjustment = new BigDecimal(fadj).multiply(BigDecimal.valueOf(0.015625/4)).toBigInteger(); + clock.adjustFrequency(fadjustment.longValue()); + if(debug) + System.out.println("fadj:" + fadjustment + " f:" + clock.getFrequency()); + } + deltaRemaining = adj.subtract(adjustment); + } + clock.adjustClock(Long128.valueOf( adjustment)); + if(debug) + System.out.println("delta:" + adjustment + " deltaRemaining:" + deltaRemaining); + } + } + + private List mergeResponses() { + List peerInfo = new ArrayList(); + Set>> ens = recvmap.entrySet(); + for (Iterator>> iterator = ens.iterator(); iterator + .hasNext();) { + Entry> entry = (Entry>) iterator + .next(); + + List newv = entry.getValue(); + PeerInfo pi = null; + for (NTPv4Packet pack : newv) { + int li = pack.getLeapIndicator(); + if (li == 3) { + continue; + } + int stratum = pack.getStratum(); + if (stratum == 0) { + stratum = 16; + } + int mode = pack.getMode(); + switch (mode) { + case NTPv4Packet.NTP_SERVER: + stratum += 1; + break; + case NTPv4Packet.NTP_SYMMETRIC_PASSIVE: + if (stratum < minStratum) + stratum += 1; + + break; + + } + if (stratum >= 16) { + continue; + } + if (pi == null) { + pi = new PeerInfo(); + pi.address = entry.getKey(); + } + pi.leapIndicator = pack.getLeapIndicator(); + pi.stratum = stratum; + pi.referenceIdentifier = pack.getReferenceIdentifier(); + pi.pollInterval = pack.getPollInterval(); + pi.precision = pack.getPrecision(); + pi.rootDelay = pack.getRootDelay();// (1/65536.0*1000000000) + pi.rootDispersion = pack.getRootDispersion(); + pi.referenceTimestamp = pack.getReferenceTimestamp128(); + BigInteger uploadD = pack.getReceiveTimestamp128().subtract(pack.getOriginateTimestamp128()); + BigInteger downloadD = pack.getDestinationTimestamp128().subtract(pack.getTransmitTimestamp128()); + BigInteger rtt = uploadD.add(downloadD); + if (pi.uploadDelay == null) { + pi.uploadDelay = uploadD; + } else { + if (pi.uploadDelay.compareTo(uploadD) > 0) { + pi.uploadDelay = uploadD; + } + } + if (pi.downloadDelay == null) { + pi.downloadDelay = downloadD; + } else { + if (pi.downloadDelay.compareTo(downloadD) > 0) { + pi.downloadDelay = downloadD; + } + } + if (pi.rtt == null) { + pi.rtt = rtt; + } else { + if (pi.rtt.compareTo(rtt) > 0) { + pi.rtt = rtt; + } + } + } + if (pi != null) { + + long ndl = pi.rootDelay + (pi.rtt).shiftRight(32 + 16).longValue(); + // System.out.println(pi.rtt+" "+pi.rootDelay+" "+ndl); + pi.rootDelay = Math.min(ndl, Integer.MAX_VALUE); + long ndsp = pi.rootDispersion + Math.max(localPrecision.shiftRight(16 + 32).longValue(), 1); + pi.rootDispersion = Math.min(ndsp, Integer.MAX_VALUE); + peerInfo.add(pi); + } + } + return peerInfo; + } + + @Override + public String toString() { + return "NTPContext [clock=" + clock + ", systemFrequencyOffset=" + systemFrequencyOffset + ", minStratum=" + + minStratum + ", leapIndicator=" + currentClock.leapIndicator + ", stratum=" + currentClock.stratum + + ", referenceIdentifier=" + currentClock.referenceIdentifier + ", pollInterval=" + + currentClock.pollInterval + ", localPrecision=" + localPrecision + ", rootDelay=" + + currentClock.rootDelay + ", rootDispersion=" + currentClock.rootDispersion + ", referenceTimestamp=" + + NTPTimestamps.ntp128ToString(currentClock.referenceTimestamp) + "]"; + } + + public BigInteger getSystemFrequencyOffset() { + return systemFrequencyOffset; + } + + public void setSystemFrequencyOffset(BigInteger systemFrequencyOffset) { + this.systemFrequencyOffset = systemFrequencyOffset; + } + + public BigInteger getLocalPrecision() { + return localPrecision; + } + + public void setLocalPrecision(BigInteger localPrecision) { + this.localPrecision = localPrecision; + } + + public int getLeapIndicator() { + return currentClock.leapIndicator; + } + + public int getReferenceIdentifier() { + return currentClock.referenceIdentifier; + } + + public int getPollInterval() { + return currentClock.pollInterval; + } + + public long getRootDelay() { + return currentClock.rootDelay; + } + + public long getRootDispersion() { + return currentClock.rootDispersion; + } + + public BigInteger getReferenceTimestamp() { + return currentClock.referenceTimestamp; + } + + public BigInteger getReferenceTimestamp64() { + return NTPTimestamps.ntp128To64(currentClock.referenceTimestamp); + } + + public BigInteger getCurrentSelfDispersion128() { + + return currentClock.getCurrentSelfDispersion128(); + } + + public long getCurrentRootDispersion() { + + return currentClock.getCurrentRootDispersion(); + } + + private static Set ios = Collections.synchronizedSet(new HashSet<>()); + + public void registerIO(NTPv4Protocol ntPv4Protocol) { + ios.add(ntPv4Protocol); + } + + public void unregisterIO(NTPv4Protocol ntPv4Protocol) { + ios.remove(ntPv4Protocol); + } + + public boolean isClosed() { + return closed; + } + + @Override + public void close() throws IOException { + closed = true; + } + +} diff --git a/src/org/kne/cloud/network/ntp/NTPv4Packet.java b/src/org/kne/cloud/network/ntp/NTPv4Packet.java new file mode 100644 index 0000000..be7a8c7 --- /dev/null +++ b/src/org/kne/cloud/network/ntp/NTPv4Packet.java @@ -0,0 +1,513 @@ +package org.kne.cloud.network.ntp; + +import java.io.IOException; +import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.util.ArrayList; +import java.util.List; + +import org.kne.cloud.clock.AdjustedNanoClock; +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.clock.NTPTimestamps; +import org.kne.cloud.network.NetworkPacket; +import org.kne.io.KNEChannels; + +public class NTPv4Packet extends NetworkPacket { + public static final int NTP_VERSION_NUMBER = 4; + public static final int NTP_DEFAULT_PORT = 123; + + public static final int NTP_SYMMETRIC_ACTIVE = 1; + + public static final int NTP_SYMMETRIC_PASSIVE = 2; + + public static final int NTP_CLIENT = 3; + + public static final int NTP_SERVER = 4; + + + public static final int BASE_HEADER_LENGTH = 48; // 基本头部长度 + public static final int AUTH_FIELD_LENGTH = 20; // 认证字段长度 + private static final BigInteger TWO_POW_64 = BigInteger.TWO.pow(64); + + private ByteBuffer header = NetworkPacket.bufferAllocator.allocate(BASE_HEADER_LENGTH); + private List extensionFields = new ArrayList<>(); + private AuthenticationField authField; + + + private BigInteger destinationTimeStamp; + private HighAccuracyClock clock; + + public NTPv4Packet(HighAccuracyClock clock) { + initializeHeader(); + this.clock=clock; + } + + private void initializeHeader() { + // 设置默认值:版本4,模式3(客户端) + header.put((byte) (0x23)); // LI=0, VN=4, Mode=3 + header.put((byte) 0); // Stratum + header.put((byte) 0); // Poll + header.put((byte) 0); // Precision + + // 根延迟、根分散、参考标识符初始为0 + for (int i = 4; i < 16; i++) { + header.put((byte) 0); + } + + // 时间戳字段初始为0 + for (int i = 16; i < BASE_HEADER_LENGTH; i++) { + header.put((byte) 0); + } + + header.flip(); + } + + @Override + public long getTotalLength() { + long length = BASE_HEADER_LENGTH; + + // 添加扩展字段长度 + for (ExtensionField ext : extensionFields) { + length += ext.getLength(); + } + + // 添加认证字段长度 + if (authField != null) { + length += AUTH_FIELD_LENGTH; + } + + return length; + } + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 写入基本头部 + dto.write(header.slice(0, header.limit())); + + // 写入扩展字段 + for (ExtensionField ext : extensionFields) { + ext.writeToChannel(dto); + } + + // 写入认证字段 + if (authField != null) { + authField.writeToChannel(dto); + } + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + destinationTimeStamp=clock.getCurrentTimeNTP128(); + // 读取基本头部 + header.clear().limit(BASE_HEADER_LENGTH); + KNEChannels.readFully(din, header); + header.flip(); + + // 计算剩余长度 + long remaining = length - BASE_HEADER_LENGTH; + + // 读取扩展字段(如果有) + extensionFields.clear(); + while (remaining > 0) { + // 检查是否是认证字段(认证字段有固定格式) + if (remaining >= AUTH_FIELD_LENGTH) { + // 这里简化处理,实际应该根据协议判断 + break; + } + + ExtensionField ext = new ExtensionField(); + ext.readFromChannel(din, remaining); + extensionFields.add(ext); + remaining -= ext.getLength(); + } + + // 读取认证字段(如果有) + if (remaining >= AUTH_FIELD_LENGTH) { + authField = new AuthenticationField(); + authField.readFromChannel(din, AUTH_FIELD_LENGTH); + } + } + + @Override + protected boolean needEndPosition() { + return true; + } + + // ================== NTP 头部字段访问方法 ================== + + public int getLeapIndicator() { + return (header.get(0) & 0xC0) >> 6; + } + + public void setLeapIndicator(int li) { + byte value = header.get(0); + value = (byte) ((value & 0x3F) | ((li & 0x03) << 6)); + header.put(0, value); + } + + public int getVersionNumber() { + return (header.get(0) & 0x38) >> 3; + } + + public void setVersionNumber(int vn) { + byte value = header.get(0); + value = (byte) ((value & 0xC7) | ((vn & 0x07) << 3)); + header.put(0, value); + } + + public int getMode() { + return header.get(0) & 0x07; + } + + public void setMode(int mode) { + byte value = header.get(0); + value = (byte) ((value & 0xF8) | (mode & 0x07)); + header.put(0, value); + } + + public int getStratum() { + return header.get(1) & 0xFF; + } + + public void setStratum(int stratum) { + header.put(1, (byte) stratum); + } + + public int getPollInterval() { + return header.get(2); + } + + public void setPollInterval(int poll) { + header.put(2, (byte) poll); + } + + public byte getPrecision() { + return header.get(3); + } + + public void setPrecision(byte precision) { + header.put(3, precision); + } + + public int getRootDelay() { + return header.getInt(4); + } + + public void setRootDelay(int rootDelay) { + header.putInt(4, rootDelay); + } + + public int getRootDispersion() { + return header.getInt(8); + } + + public void setRootDispersion(int rootDispersion) { + header.putInt(8, rootDispersion); + } + + public int getReferenceIdentifier() { + return header.getInt(12); + } + + public void setReferenceIdentifier(int refId) { + header.putInt(12, refId); + } + + // ================== 时间戳字段访问方法(64位格式) ================== + + /** + * 获取 Reference Timestamp (64位) + */ + public long getReferenceTimestamp() { + return header.getLong(16); + } + + /** + * 设置 Reference Timestamp (64位) + */ + public void setReferenceTimestamp(long timestamp) { + header.putLong(16, timestamp); + } + + /** + * 获取 Originate Timestamp (64位) + */ + public long getOriginateTimestamp() { + return header.getLong(24); + } + + /** + * 设置 Originate Timestamp (64位) + */ + public void setOriginateTimestamp(long timestamp) { + header.putLong(24, timestamp); + } + + /** + * 获取 Receive Timestamp (64位) + */ + public long getReceiveTimestamp() { + return header.getLong(32); + } + + /** + * 设置 Receive Timestamp (64位) + */ + public void setReceiveTimestamp(long timestamp) { + header.putLong(32, timestamp); + } + + /** + * 获取 Transmit Timestamp (64位) + */ + public long getTransmitTimestamp() { + return header.getLong(40); + } + + /** + * 设置 Transmit Timestamp (64位) + */ + public void setTransmitTimestamp(long timestamp) { + header.putLong(40, timestamp); + } + + + + public void setReferenceTimestamp64(BigInteger longValue) { + setReferenceTimestamp(longValue.longValue()); + } + + public void setOriginateTimestamp64(BigInteger originateTimestamp) { + setOriginateTimestamp(originateTimestamp.longValue()); + } + + + public void setReceiveTimestamp64(BigInteger longValue) { + setReceiveTimestamp(longValue.longValue()); + } + + + public void setTransmitTimestamp64(BigInteger longValue) { + setTransmitTimestamp(longValue.longValue()); + } + + public BigInteger getReferenceTimestamp64() { + BigInteger rez=BigInteger.valueOf(getReferenceTimestamp()); + if(rez.signum()<0) { + rez=rez.add(TWO_POW_64); + } + return rez; + } + + public BigInteger getOriginateTimestamp64() { + BigInteger rez=BigInteger.valueOf(getOriginateTimestamp()); + if(rez.signum()<0) { + rez=rez.add(TWO_POW_64); + } + return rez; + } + public BigInteger getReceiveTimestamp64() { + BigInteger rez=BigInteger.valueOf(getReceiveTimestamp()); + if(rez.signum()<0) { + rez=rez.add(TWO_POW_64); + } + return rez; + } + public BigInteger getTransmitTimestamp64() { + BigInteger rez=BigInteger.valueOf(getTransmitTimestamp()); + if(rez.signum()<0) { + rez=rez.add(TWO_POW_64); + } + return rez; + } + + + // ================== 扩展字段方法 ================== + + public List getExtensionFields() { + return extensionFields; + } + + public void addExtensionField(ExtensionField field) { + extensionFields.add(field); + } + + public void clearExtensionFields() { + extensionFields.clear(); + } + + // ================== 认证字段方法 ================== + + public AuthenticationField getAuthField() { + return authField; + } + + public void setAuthField(AuthenticationField authField) { + this.authField = authField; + } + + public boolean hasAuthentication() { + return authField != null; + } + + // ================== 工具方法 ================== + + @Override + public String toString() { + return "NTPv4Packet [getLeapIndicator()=" + getLeapIndicator() + ", getVersionNumber()=" + getVersionNumber() + + ", getMode()=" + getMode() + ", getStratum()=" + getStratum() + ", getPollInterval()=" + + getPollInterval() + ", getPrecision()=" + getPrecision() + ", getRootDelay()=" + getRootDelay() + + ", getRootDispersion()=" + getRootDispersion() + ", getReferenceIdentifier()=" + + getReferenceIdentifier() + ", getReferenceTimestamp()=" +NTPTimestamps.ntp64ToString( getReferenceTimestamp64()) + + ", getOriginateTimestamp()=" + NTPTimestamps.ntp64ToString(getOriginateTimestamp64()) + ", getReceiveTimestamp()=" + + NTPTimestamps.ntp64ToString(getReceiveTimestamp64()) + ", getTransmitTimestamp()=" + NTPTimestamps.ntp64ToString(getTransmitTimestamp64()) + "]"; + } + + + + public BigInteger getDestinationTimestamp128() { + return destinationTimeStamp; + } + + + + + + // ================== 内部类:扩展字段 ================== + + public static class ExtensionField { + private ByteBuffer data; + + public ExtensionField() { + data = NetworkPacket.bufferAllocator.allocate(0); + } + + public ExtensionField(byte[] extensionData) { + data = NetworkPacket.bufferAllocator.allocate(extensionData.length); + data.put(extensionData); + data.flip(); + } + + public long getLength() { + return data.limit() + 4; // 数据长度 + 长度字段(4字节) + } + + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 写入长度字段 + ByteBuffer lengthBuffer = NetworkPacket.bufferAllocator.allocate(4); + lengthBuffer.putInt(data.limit()); + lengthBuffer.flip(); + dto.write(lengthBuffer); + + // 写入数据 + dto.write(data.slice(0, data.limit())); + } + + public void readFromChannel(ReadableByteChannel din, long maxLength) throws IOException { + // 读取长度字段 + ByteBuffer lengthBuffer = NetworkPacket.bufferAllocator.allocate(4); + KNEChannels.readFully(din, lengthBuffer); + lengthBuffer.flip(); + int length = lengthBuffer.getInt(); + + // 读取数据 + if (length > 0 && length <= maxLength - 4) { + data = NetworkPacket.bufferAllocator.allocate(length); + KNEChannels.readFully(din, data); + data.flip(); + } + } + + public ByteBuffer getData() { + return data; + } + + public void setData(ByteBuffer data) { + this.data = data; + } + } + + // ================== 内部类:认证字段 ================== + + public static class AuthenticationField extends NetworkPacket{ + private int keyIdentifier; + private ByteBuffer digest; + + public AuthenticationField() { + digest = NetworkPacket.bufferAllocator.allocate(16); // MD5摘要长度 + } + + public long getTotalLength() { + return AUTH_FIELD_LENGTH; // 固定20字节 + } + + public void writeToChannel(WritableByteChannel dto) throws IOException { + ByteBuffer buffer = NetworkPacket.bufferAllocator.allocate(AUTH_FIELD_LENGTH); + buffer.putInt(keyIdentifier); + + ByteBuffer digestCopy = digest.duplicate(); + digestCopy.position(0); + while (digestCopy.hasRemaining()) { + buffer.put(digestCopy.get()); + } + + buffer.flip(); + dto.write(buffer); + } + + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + ByteBuffer buffer = NetworkPacket.bufferAllocator.allocate(AUTH_FIELD_LENGTH); + KNEChannels.readFully(din, buffer); + buffer.flip(); + + keyIdentifier = buffer.getInt(); + + digest = NetworkPacket.bufferAllocator.allocate(16); + while (buffer.hasRemaining() && digest.hasRemaining()) { + digest.put(buffer.get()); + } + digest.flip(); + } + + public int getKeyIdentifier() { + return keyIdentifier; + } + + public void setKeyIdentifier(int keyIdentifier) { + this.keyIdentifier = keyIdentifier; + } + + public ByteBuffer getDigest() { + return digest; + } + + public void setDigest(ByteBuffer digest) { + this.digest = digest; + } + + @Override + protected boolean needEndPosition() { + return true; + } + } + + public BigInteger getReceiveTimestamp128() { + return NTPTimestamps.inferNtp64To128(getReceiveTimestamp64(),clock.getCurrentTimeNTP128()); + } + + public BigInteger getOriginateTimestamp128() { + return NTPTimestamps.inferNtp64To128(getOriginateTimestamp64(),clock.getCurrentTimeNTP128()); + } + + public BigInteger getTransmitTimestamp128() { + return NTPTimestamps.inferNtp64To128(getTransmitTimestamp64(),clock.getCurrentTimeNTP128()); + } + + public BigInteger getReferenceTimestamp128() { + return NTPTimestamps.inferNtp64To128(getReferenceTimestamp64(),clock.getCurrentTimeNTP128()); + } + + +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ntp/NTPv4Protocol.java b/src/org/kne/cloud/network/ntp/NTPv4Protocol.java new file mode 100644 index 0000000..4524f73 --- /dev/null +++ b/src/org/kne/cloud/network/ntp/NTPv4Protocol.java @@ -0,0 +1,408 @@ +package org.kne.cloud.network.ntp; + +import java.io.Closeable; +import java.io.IOException; +import java.math.BigInteger; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.net.UnknownHostException; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.clock.NTPTimestamps; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.io.KNEChannels; + +public class NTPv4Protocol implements Closeable, AutoCloseable { + private static final boolean showPacket = false; + public static final int NTP_DEFAULT_PORT = 123; + private static final long DEFAULT_POLL_INTERVAL = 2000000000L; + private static final long REQUEST_TIMEOUT = 10000000000L; + private static final long EPHEMERAL_TIMEOUT = 60000000000L; + + public static class NTPPeer { + private MultipurposeSocketAddress address; + private boolean isEphemeral;// ephemeral + private volatile long ephemeralUpdateTime = System.nanoTime(); + private volatile long pollInterval = DEFAULT_POLL_INTERVAL; + private volatile long pollUpdateTime = System.nanoTime() - pollInterval; + private volatile int requestMode; + private volatile long peerPollInterval = pollInterval; + + private boolean checkPollInterval() { + long curr = System.nanoTime(); + if (curr - pollUpdateTime > Math.min(peerPollInterval, pollInterval)) { + pollUpdateTime = curr; + return true; + } else { + return false; + } + } + + private boolean checkEphemeralTimeout() { + if (!isEphemeral) { + return false; + } + long curr = System.nanoTime(); + return curr - ephemeralUpdateTime > EPHEMERAL_TIMEOUT; + } + + private void resetEphemeralTimeout() { + ephemeralUpdateTime = System.nanoTime(); + } + + public long getPollInterval() { + return pollInterval; + } + + public void setPollInterval(long pollInterval) { + this.pollInterval = pollInterval; + } + + public NTPPeer(MultipurposeSocketAddress address, int requestMode) { + this(address, requestMode, false); + } + + protected NTPPeer(MultipurposeSocketAddress address, int requestMode, boolean isEphemeral) { + super(); + checkRequestMode(requestMode); + this.address = address; + this.isEphemeral = isEphemeral; + this.requestMode = requestMode; + } + + private void checkRequestMode(int requestMode2) { + if (requestMode2 != NTPv4Packet.NTP_CLIENT && requestMode2 != NTPv4Packet.NTP_SYMMETRIC_ACTIVE) { + throw new IllegalArgumentException( + "request mode must be NTPv4Packet.NTP_CLIEN or NTPv4Packet.NTP_SYMMETRIC_ACTIVE"); + } + } + + public NTPPeer(String hostport, int requestMode) { + this(new MultipurposeSocketAddress(hostport), requestMode); + } + + public MultipurposeSocketAddress getAddress() { + return address; + } + + private boolean isEphemeral() { + return isEphemeral; + } + + @Override + public String toString() { + return "NTPPeer [address=" + address + ", isEphemeral=" + isEphemeral + ", ephemeralUpdateTime=" + + ephemeralUpdateTime + "]"; + } + + @Override + public int hashCode() { + return Objects.hash(address); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + NTPPeer other = (NTPPeer) obj; + return Objects.equals(address, other.address); + } + + private void setPeerPollInterval(long peerPollInterval) { + this.peerPollInterval = peerPollInterval; + } + + } + + private static class CheckListItem { + private NTPPeer peer; + private BigInteger timeStamp; + private long createTime = System.nanoTime(); + + private CheckListItem(BigInteger timeStamp, NTPPeer peer) { + this.timeStamp = timeStamp; + this.peer = peer; + } + + private boolean checkTimeout() { + return System.nanoTime() - createTime > REQUEST_TIMEOUT; + } + } + + private Set peers = Collections.synchronizedSet(new HashSet<>()); + private Set ephemeralPeers = Collections.synchronizedSet(new HashSet<>()); + + private ReentrantLock checkLock = new ReentrantLock(); + private List checkList = new ArrayList<>(); + + private NTPContext context; + private DatagramSocket dgs; + private MultipurposeSocketAddress bind; + + public NTPv4Protocol(NTPContext context) throws UnknownHostException, IOException { + this(context, new MultipurposeSocketAddress("UDP", "::0", NTP_DEFAULT_PORT)); + } + + public NTPv4Protocol(NTPContext context, MultipurposeSocketAddress bind) throws UnknownHostException, IOException { + this.bind = bind; + this.context = context; + dgs = bind.listenDatagramSocket(); + context.registerIO(this); + Thread tr = new Thread(recv); + tr.setName("NTPv4 Receive Thread"); + tr.start(); + } + + private void setNTPInformation(NTPv4Packet nv4, NTPPeer peer) { + if (peer != null) { + long interval = peer.getPollInterval(); + int pi = (int) log(interval / 1000000000L, 2); + nv4.setPollInterval(pi); + } else { + long interval = DEFAULT_POLL_INTERVAL; + int pi = (int) log(interval / 1000000000L, 2); + nv4.setPollInterval(pi); + } + nv4.setVersionNumber(NTPv4Packet.NTP_VERSION_NUMBER); + nv4.setLeapIndicator(context.getLeapIndicator()); + int stratum = context.getStratum(); + if (stratum == 16) { + stratum = 0; + } + nv4.setStratum(stratum); + BigInteger precision = context.getLocalPrecision(); + byte b = (byte) Math.ceil(log(precision.doubleValue() / (Math.pow(2, 64)), 2)); + nv4.setPrecision(b); + nv4.setRootDelay((int) context.getRootDelay()); + nv4.setRootDispersion((int) context.getCurrentRootDispersion()); + nv4.setReferenceTimestamp64(context.getReferenceTimestamp64()); + nv4.setTransmitTimestamp64(context.getClock().getCurrentTimeNTP64()); + } + + private void setNTPInformation(NTPv4Packet nv4, NTPv4Packet request, NTPPeer peer) { + nv4.setOriginateTimestamp(request.getTransmitTimestamp()); + nv4.setReceiveTimestamp64(NTPTimestamps.ntp128To64(request.getDestinationTimestamp128())); + setNTPInformation(nv4, peer); + } + + private static double log(double value, double base) { + + return Math.log(value) / Math.log(base); + + } + + public void request(NTPPeer peer) throws IOException { + NTPv4Packet nv4 = new NTPv4Packet(context.getClock()); + nv4.setMode(peer.requestMode); + setNTPInformation(nv4, peer); + putOriginTimestamp(nv4, peer); + peer.address.getInetAddress(); + sendNTPPacket(nv4, peer.address.getSocketAddress()); + } + + private void putOriginTimestamp(NTPv4Packet nv4, NTPPeer peer) { + checkLock.lock(); + try { + removeTimeoutTimestamp(); + checkList.add(new CheckListItem(nv4.getTransmitTimestamp128(), peer)); + } finally { + checkLock.unlock(); + } + } + + private void removeTimeoutTimestamp() { + for (Iterator iterator = checkList.iterator(); iterator.hasNext();) { + CheckListItem bigInteger = (CheckListItem) iterator.next(); + if (bigInteger.checkTimeout()) { + if (showPacket) + System.out.println("timeout:" + bigInteger.timeStamp); + iterator.remove(); + } + } + } + + private void sendNTPPacket(NTPv4Packet nv4, SocketAddress target) throws IOException { + ByteBuffer bbf = ByteBuffer.allocate(65535); + nv4.writeToChannel(KNEChannels.newWritableChannel(bbf)); + bbf.flip(); + DatagramPacket dp = new DatagramPacket(bbf.array(), bbf.limit()); + dp.setSocketAddress(target); + dgs.send(dp); + if (showPacket) + System.out.println("NTPv4 TX:" + target + " " + nv4); + } + + private NTPPeer checkOriginTimestamp(NTPv4Packet nv4) { + checkLock.lock(); + try { + BigInteger ori = nv4.getOriginateTimestamp128(); + removeTimeoutTimestamp(); + for (Iterator iterator = checkList.iterator(); iterator.hasNext();) { + CheckListItem item = (CheckListItem) iterator.next(); + if (item.timeStamp.equals(ori)) { + iterator.remove(); + return item.peer; + } + } + } finally { + checkLock.unlock(); + } + return null; + } + + NTPPeer findPeer(MultipurposeSocketAddress addr) { + Object[] objs = peers.toArray(); + for (int i = 0; i < objs.length; i++) { + NTPPeer np = (NTPPeer) objs[i]; + if (np.getAddress().equals2(addr)) { + return np; + } + } + objs = ephemeralPeers.toArray(); + for (int i = 0; i < objs.length; i++) { + NTPPeer np = (NTPPeer) objs[i]; + if (np.getAddress().equals2(addr)) { + return np; + } + } + return null; + } + + private Runnable recv = new Runnable() { + @Override + public void run() { + try { + while (!dgs.isClosed()) { + AtomicReference isa = new AtomicReference<>(); + NTPv4Packet nv4 = receiveNTPPacket(isa); + MultipurposeSocketAddress mpsafrom = new MultipurposeSocketAddress(bind.getType(), isa.get()); + switch (nv4.getMode()) { + case NTPv4Packet.NTP_SYMMETRIC_ACTIVE: + NTPv4Packet nv4r = new NTPv4Packet(context.getClock()); + nv4r.setMode(NTPv4Packet.NTP_SYMMETRIC_PASSIVE); + setNTPInformation(nv4r, nv4, findPeer(mpsafrom)); + sendNTPPacket(nv4r, isa.get()); + ephemeralPeers.add(new NTPPeer(mpsafrom, NTPv4Packet.NTP_SYMMETRIC_ACTIVE, true)); + break; + case NTPv4Packet.NTP_SYMMETRIC_PASSIVE: + NTPPeer npr = checkOriginTimestamp(nv4); + if (npr != null) { + npr.resetEphemeralTimeout(); + npr.setPeerPollInterval((1L << nv4.getPollInterval()) * 1000000000); + context.putPacket(nv4, mpsafrom); + } else { + } + break; + case NTPv4Packet.NTP_CLIENT: + NTPv4Packet nv4s = new NTPv4Packet(context.getClock()); + nv4s.setMode(NTPv4Packet.NTP_SERVER); + setNTPInformation(nv4s, nv4, findPeer(mpsafrom)); + sendNTPPacket(nv4s, isa.get()); + break; + case NTPv4Packet.NTP_SERVER: + NTPPeer nprx = checkOriginTimestamp(nv4); + if (nprx != null) { + nprx.resetEphemeralTimeout(); + nprx.setPeerPollInterval((1L << nv4.getPollInterval()) * 1000000000); + context.putPacket(nv4, mpsafrom); + } else { + } + break; + } + + } + } catch (IOException e) { + e.printStackTrace(); + } + + } + + }; + + protected void sendReqPackets() throws IOException { + List sends = getPeersWillSend(); + for (NTPPeer npr : sends) { + request(npr); + } + + } + + protected List getPeersWillSend() { + List sends = new ArrayList<>(); + peers.forEach((pr) -> { + if (pr.checkPollInterval()) { + sends.add(pr); + } + }); + ephemeralPeers.removeIf((pr) -> { + return pr.checkEphemeralTimeout(); + }); + ephemeralPeers.forEach((pr) -> { + if (pr.checkPollInterval()) { + if (!peers.contains(pr)) { + sends.add(pr); + } + } + }); + return sends; + } + + private NTPv4Packet receiveNTPPacket(AtomicReference isa) throws IOException { + ByteBuffer bbf = ByteBuffer.allocate(65535); + DatagramPacket dp = new DatagramPacket(bbf.array(), bbf.limit()); + dgs.receive(dp); + isa.set((InetSocketAddress) dp.getSocketAddress()); + NTPv4Packet nv4 = new NTPv4Packet(context.getClock()); + nv4.readFromChannel(KNEChannels.newReadableChannel(bbf), dp.getLength()); + if (showPacket) + System.out.println("NTPv4 RX:" + isa.get() + " " + nv4); + return nv4; + } + + public Set getPeers() { + return peers; + } + + @Override + public void close() throws IOException { + dgs.close(); + context.unregisterIO(this); + } + + public boolean isClosed() { + return dgs.isClosed(); + } + + public static void main(String[] args) throws IOException, InterruptedException { + HighAccuracyClock hac = new HighAccuracyClock(); + NTPContext context = new NTPContext(hac); + System.out.println(context); + NTPv4Protocol nvc = new NTPv4Protocol(context, new MultipurposeSocketAddress("{UDP}0.0.0.0:123"));// 106.55.184.199 + nvc.getPeers().add(new NTPPeer("{UDP}106.55.184.199:123", NTPv4Packet.NTP_CLIENT)); + nvc.getPeers().add(new NTPPeer("{UDP}time.windows.com:123", NTPv4Packet.NTP_CLIENT)); + nvc.getPeers().add(new NTPPeer("{UDP}127.0.0.1:123", NTPv4Packet.NTP_SYMMETRIC_ACTIVE)); + /* + * for (int i = 0; i < 10000; i++) { Thread.sleep(1000); + * System.out.println(context.getCurrentSelfDispersion128()); + * System.out.println(context); } + */ + } +} diff --git a/src/org/kne/cloud/network/ntp/TestNTP1.java b/src/org/kne/cloud/network/ntp/TestNTP1.java new file mode 100644 index 0000000..6e4429a --- /dev/null +++ b/src/org/kne/cloud/network/ntp/TestNTP1.java @@ -0,0 +1,19 @@ +package org.kne.cloud.network.ntp; + +import java.io.IOException; +import java.net.UnknownHostException; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ntp.NTPv4Protocol.NTPPeer; + +public class TestNTP1 { + public static void main(String[] args) throws UnknownHostException, IOException { + HighAccuracyClock hac = new HighAccuracyClock(); + NTPContext context = new NTPContext(hac); + context.syncToSystem(); + System.out.println(context); + NTPv4Protocol nvc = new NTPv4Protocol(context, new MultipurposeSocketAddress("{UDP}0.0.0.0:123"));// 106.55.184.199 + //nvc.getPeers().add(new NTPPeer("{UDP}106.55.184.199:123", NTPv4Packet.NTP_CLIENT)); + } +} diff --git a/src/org/kne/cloud/network/ntp/TestNTP2.java b/src/org/kne/cloud/network/ntp/TestNTP2.java new file mode 100644 index 0000000..ad8616a --- /dev/null +++ b/src/org/kne/cloud/network/ntp/TestNTP2.java @@ -0,0 +1,20 @@ +package org.kne.cloud.network.ntp; + +import java.io.IOException; +import java.net.UnknownHostException; + +import org.kne.cloud.clock.HighAccuracyClock; +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ntp.NTPv4Protocol.NTPPeer; + +public class TestNTP2 { + public static void main(String[] args) throws UnknownHostException, IOException { + HighAccuracyClock hac = new HighAccuracyClock(); + NTPContext context = new NTPContext(hac); + context.syncToSystem(); + System.out.println(context); + NTPv4Protocol nvc = new NTPv4Protocol(context, new MultipurposeSocketAddress("{UDP}0.0.0.0:0"));// 106.55.184.199 + nvc.getPeers().add(new NTPPeer("{UDP}127.0.0.1:123", NTPv4Packet.NTP_SYMMETRIC_ACTIVE)); + + } +} diff --git a/src/org/kne/cloud/network/perf/Kperf.java b/src/org/kne/cloud/network/perf/Kperf.java index c241053..b947e3b 100644 --- a/src/org/kne/cloud/network/perf/Kperf.java +++ b/src/org/kne/cloud/network/perf/Kperf.java @@ -32,7 +32,7 @@ import org.kne.cloud.network.monitor.QueueingMonitorDataImpl; public class Kperf implements Runnable{ - + private KperfReports reports; private ConcurrentLinkedQueue IsendDequeList = new ConcurrentLinkedQueue(); @@ -70,6 +70,18 @@ public class Kperf implements Runnable{ + public KperfReports getReports() { + return reports; + } + public void setReports(KperfReports reports) { + this.reports = reports; + } + + + + + + private SpeedLimiter test = new SpeedLimiter(MIN_SPEED,10000000L); private static long MIN_SPEED=64*1024L; @@ -77,54 +89,72 @@ public class Kperf implements Runnable{ private long congressSpeed = 0; private double loadPercent = 1.01; + + KLALBPacket testPacket=null; + + private long starttime=System.nanoTime(); + long totaltime=1000; + long usedtime=0; //kperf {KLALB_Stream}[2486:1:f189:7589:f1f7:6f5e:b2eb:1]:4564 //kperf {KLALB_Stream}[2486:1::8888]:4564 @Override public void run() { Thread tc = ThreadTool.makeVDaemonThreadIfSupport("测速控制线程", () -> { final int wtimes=5; + totaltime=(20*1000*1+20*1000*4+wtimes*1000*5)*1000000L; + starttime=System.nanoTime(); System.out.println("测速开始!"); try { long startTime; - /*System.out.println("测试1/4:延迟测试"); + System.out.println("测试1/5:延迟测试"); test.setLimitspeed(0); startTime=System.nanoTime(); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); System.out.printf("上传延迟:%.3fms 下载延迟:%.3fms\n", monitor.getOutDelay()/1000000.0,monitor.getInDelay()/1000000.0); Thread.sleep(1000); + updateUsedTime(); } System.out.printf("上传延迟 最小:%.3fms 平均:%.3fms 抖动:%.3fms\n",monitor.getOutDelayMin()/1000000.0,monitor.getOutDelayAvg()/1000000.0,monitor.getOutJitter()/1000000.0); System.out.printf("下载延迟 最小:%.3fms 平均:%.3fms 抖动:%.3fms\n",monitor.getInDelayMin()/1000000.0,monitor.getInDelayAvg()/1000000.0,monitor.getInJitter()/1000000.0); - + if(reports!=null) { + monitor.setOutDelay(monitor.getOutDelayAvg()); + monitor.setInDelay(monitor.getInDelayAvg()); + } System.out.println("等待时间"+wtimes+"s"); - Thread.sleep(wtimes*1000); + Thread.sleep(wtimes*1000); + -*/ startTime=System.nanoTime(); if(targetAddress!=null) { - System.out.println("测试2/4:下载带宽测试"); + System.out.println("测试2/5:下载带宽测试"); test.setLimitspeed(0); testPacket=new TESTNPacket(60000); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("下载带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getInSpeedAvg())); + System.out.printf("下载带宽:%s/s\n", KLALBUtils.convertIBUint(monitor.getInSpeedAvg())); Thread.sleep(1000); } - System.out.printf("下载带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.bytesUnit(monitor.getInSpeedAvg2()),KLALBUtils.bytesUnit(monitor.getInSpeedMax2())); + System.out.printf("下载带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.convertIBUint(monitor.getInSpeedAvg2()),KLALBUtils.convertIBUint(monitor.getInSpeedMax2())); + if(reports!=null) { + reports.downloadSpeedFinish(monitor.getInSpeedAvg2()); + } }else { - System.out.println("测试2/4:上传带宽测试"); + System.out.println("测试2/5:上传带宽测试"); test.setLimitspeed(1000L*1024L*1024L*1024L); testPacket=new TESTNPacket(60000); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("上传带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getOutSpeedAvg())); + System.out.printf("上传带宽:%s/s\n", KLALBUtils.convertIBUint(monitor.getOutSpeedAvg())); Thread.sleep(1000); } - System.out.printf("上传带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.bytesUnit(monitor.getOutSpeedAvg2()),KLALBUtils.bytesUnit(monitor.getOutSpeedMax2())); + System.out.printf("上传带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.convertIBUint(monitor.getOutSpeedAvg2()),KLALBUtils.convertIBUint(monitor.getOutSpeedMax2())); + if(reports!=null) { + reports.uploadSpeedFinish(monitor.getOutSpeedAvg2()); + } } System.out.println("等待时间"+wtimes+"s"); Thread.sleep(wtimes*1000); @@ -133,26 +163,31 @@ public class Kperf implements Runnable{ startTime=System.nanoTime(); if(targetAddress!=null) { - System.out.println("测试3/4:上传带宽测试"); + System.out.println("测试3/5:上传带宽测试"); test.setLimitspeed(1000L*1024L*1024L*1024L); testPacket=new TESTNPacket(60000); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("上传带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getOutSpeedAvg())); + System.out.printf("上传带宽:%s/s\n", KLALBUtils.convertIBUint(monitor.getOutSpeedAvg())); Thread.sleep(1000); } - System.out.printf("上传带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.bytesUnit(monitor.getOutSpeedAvg2()),KLALBUtils.bytesUnit(monitor.getOutSpeedMax2())); - + System.out.printf("上传带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.convertIBUint(monitor.getOutSpeedAvg2()),KLALBUtils.convertIBUint(monitor.getOutSpeedMax2())); + if(reports!=null) { + reports.uploadSpeedFinish(monitor.getOutSpeedAvg2()); + } }else { - System.out.println("测试3/4:下载带宽测试"); + System.out.println("测试3/5:下载带宽测试"); test.setLimitspeed(0); testPacket=new TESTNPacket(60000); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("下载带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getInSpeedAvg())); + System.out.printf("下载带宽:%s/s\n", KLALBUtils.convertIBUint(monitor.getInSpeedAvg())); Thread.sleep(1000); } - System.out.printf("下载带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.bytesUnit(monitor.getInSpeedAvg2()),KLALBUtils.bytesUnit(monitor.getInSpeedMax2())); + System.out.printf("下载带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.convertIBUint(monitor.getInSpeedAvg2()),KLALBUtils.convertIBUint(monitor.getInSpeedMax2())); + if(reports!=null) { + reports.downloadSpeedFinish(monitor.getInSpeedAvg2()); + } } System.out.println("等待时间"+wtimes+"s"); @@ -160,59 +195,72 @@ public class Kperf implements Runnable{ startTime=System.nanoTime(); if(targetAddress!=null) { - System.out.println("测试2/4:下载包转发率测试"); + System.out.println("测试4/5:下载包转发率测试"); test.setLimitspeed(0); testPacket=new TEST1Packet(); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getInPPS())); + System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.convertUintDefalut(monitor.getInPPS())); Thread.sleep(1000); } + if(reports!=null) { + reports.downloadPPSFinish(monitor.getInPPSAvg()); + } }else { - System.out.println("测试2/4:上传包转发率测试"); + System.out.println("测试4/5:上传包转发率测试"); test.setLimitspeed(1000L*1024L*1024L*1024L); testPacket=new TEST1Packet(); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getOutPPS())); + System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.convertUintDefalut(monitor.getOutPPS())); Thread.sleep(1000); } - //System.out.printf("上传带宽 平均:%s/s 最大:%s/s\n",KLALBUtils.bytesUnit(monitor.getOutSpeedAvg2()),KLALBUtils.bytesUnit(monitor.getOutSpeedMax2())); + if(reports!=null) { + reports.uploadPPSFinish(monitor.getOutPPSAvg()); + } } System.out.println("等待时间"+wtimes+"s"); Thread.sleep(wtimes*1000); startTime=System.nanoTime(); if(targetAddress!=null) { - System.out.println("测试3/4:上传包转发率测试"); + System.out.println("测试5/5:上传包转发率测试"); test.setLimitspeed(1000L*1024L*1024L*1024L); testPacket=new TEST1Packet(); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getOutPPS())); + System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.convertUintDefalut(monitor.getOutPPS())); Thread.sleep(1000); } - + + if(reports!=null) { + reports.uploadPPSFinish(monitor.getOutPPSAvg()); + } }else { - System.out.println("测试3/4:下载包转发率测试"); + System.out.println("测试5/5:下载包转发率测试"); test.setLimitspeed(0); testPacket=new TEST1Packet(); - for (int i = 0; i < 30; i++) { + for (int i = 0; i < 20; i++) { System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0); - System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getInPPS())); + System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.convertUintDefalut(monitor.getInPPS())); Thread.sleep(1000); } + if(reports!=null) { + reports.downloadPPSFinish(monitor.getInPPSAvg()); + } } System.out.println("等待时间"+wtimes+"s"); Thread.sleep(wtimes*1000); - System.out.println("测速结束!"); } catch (InterruptedException e) { - System.out.println("测速被中断!"); + //System.out.println("测速被中断!"); }finally { close(); + if(reports!=null) + reports.testFinish(); + System.out.println("测速结束!"); } }); try { @@ -233,7 +281,7 @@ public class Kperf implements Runnable{ // TimeDebugger tdb=new TimeDebugger(); // tdb.putTime("start"); if(checkBandwidthReportTime()) { - writePacketToKPL(new BWINFPacket(monitor.getOutSpeedAvg2(), monitor.getInSpeedAvg2())); + writePacketToKPL(new BWINFPacket(monitor.getOutSpeedAvg(), monitor.getInSpeedAvg())); } if (checkPingTimeSleep()) { writePacketToKPL(new PINGPacket(System.nanoTime())); @@ -246,7 +294,7 @@ public class Kperf implements Runnable{ }else { KLALBPacket testp=testPacket; - if (testp!=null&&test.checkTransmit(testp.getLength())) { + if (testp!=null&&test.checkTransmit(testp.getTotalLength())) { writePacketToKPL(testp); @@ -339,8 +387,11 @@ public class Kperf implements Runnable{ //double load = 1 - monitor.getOutDelayMin() / (double) monitor.getOutDelay(); loadPercent =Math.max( 1.2,0.4); } - + LockSupport.unpark(tlock); + updateUsedTime() ; + if(reports!=null) + reports.updateDial(monitor); break; case KLALBPacket.BWINF: BWINFPacket bwi = (BWINFPacket) kpp; @@ -375,6 +426,18 @@ public class Kperf implements Runnable{ tc.interrupt(); } } + private void updateUsedTime() { + usedtime=System.nanoTime()-starttime; + //System.out.println(usedtime+" "+totaltime); + if(reports!=null) + reports.testProcess(usedtime/(double)totaltime); + } + + + + + + private volatile long time = System.nanoTime(); private volatile long pingInterval = 10000000L; private volatile long pingIntervalSleep = 200000000L; @@ -450,17 +513,17 @@ public class Kperf implements Runnable{ } if (packet != null) { packet.putTimePassport("received"); - long length=packet.getLength(); - monitor.getInTrafficAL().addAndGet(length); - monitor.getInPacketCounterAL().incrementAndGet(); + long length=packet.getTotalLength(); + monitor.getInTrafficAL().add(length); + monitor.getInPacketCounterAL().add(1); } return packet; } private void writePacketToKPL(KLALBPacket packet) throws IOException { - long length=packet.getLength(); - monitor.getOutTrafficAL().addAndGet(length); - monitor.getOutPacketCounterAL().incrementAndGet(); + long length=packet.getTotalLength(); + monitor.getOutTrafficAL().add(length); + monitor.getOutPacketCounterAL().add(1); link.writeKLALBPacket(packet); link.flush(); packet.putTimePassport("sended"); diff --git a/src/org/kne/cloud/network/perf/KperfReports.java b/src/org/kne/cloud/network/perf/KperfReports.java new file mode 100644 index 0000000..ba87e45 --- /dev/null +++ b/src/org/kne/cloud/network/perf/KperfReports.java @@ -0,0 +1,15 @@ +package org.kne.cloud.network.perf; + +import org.kne.cloud.network.monitor.QueueingMonitorDataImpl; + +public interface KperfReports { + public void testProcess(double d); + public void testFinish(); + public void updateDial(QueueingMonitorDataImpl mdt); + public void uploadSpeedFinish(long uploadSpeed); + public void downloadSpeedFinish(long downloadSpeed); + public void uploadPPSFinish(long uploadPPS); + public void downloadPPSFinish(long downloadPPS); + public void uploadDelayFinish(long uploadDelay); + public void downloadDelayFinish(long downloadDelay); +} diff --git a/src/org/kne/cloud/network/perf/TEST1Packet.java b/src/org/kne/cloud/network/perf/TEST1Packet.java index 0315b13..4ab50d1 100644 --- a/src/org/kne/cloud/network/perf/TEST1Packet.java +++ b/src/org/kne/cloud/network/perf/TEST1Packet.java @@ -12,7 +12,7 @@ public class TEST1Packet extends KLALBPacket { private static final int HEADER_LENGTH=1; @Override - public long getLength() { + public long getTotalLength() { return HEADER_LENGTH; } diff --git a/src/org/kne/cloud/network/perf/TESTNPacket.java b/src/org/kne/cloud/network/perf/TESTNPacket.java index 252dd8c..a18d94e 100644 --- a/src/org/kne/cloud/network/perf/TESTNPacket.java +++ b/src/org/kne/cloud/network/perf/TESTNPacket.java @@ -10,6 +10,7 @@ import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; +import org.kne.cloud.network.ByteBufferAllocator; import org.kne.cloud.network.NetworkPacket; import org.kne.cloud.network.klalb.KLALBPacket; @@ -19,7 +20,7 @@ public class TESTNPacket extends KLALBPacket { private ByteBuffer dataBuffer;//=NetworkPacket.databufferpool_65535.borrow(); @Override - public long getLength() { + public long getTotalLength() { return HEADER_LENGTH+dataBuffer.limit(); } @@ -27,7 +28,7 @@ public class TESTNPacket extends KLALBPacket { public TESTNPacket(int limit) { super(TESTN,HEADER_LENGTH); //dataBuffer.limit(limit); - dataBuffer=ByteBuffer.allocate(limit); + dataBuffer=NetworkPacket.bufferAllocator.allocate(limit); } @@ -49,9 +50,7 @@ public class TESTNPacket extends KLALBPacket { public void readFromChannel(ReadableByteChannel din) throws IOException { super.readFromChannel(din); int limit=klalbHeader.getChar(1); - //dataBuffer.clear(); - //dataBuffer.limit(limit); - dataBuffer=ByteBuffer.allocate(limit); + dataBuffer=NetworkPacket.bufferAllocator.allocate(limit); while(dataBuffer.hasRemaining()){ if(din.read(dataBuffer)==-1) { throw new EOFException(); diff --git a/src/org/kne/cloud/network/srv6/IPv6SegmentRoutingTLV.java b/src/org/kne/cloud/network/srv6/IPv6SegmentRoutingTLV.java index 42a8f30..9d4c47c 100644 --- a/src/org/kne/cloud/network/srv6/IPv6SegmentRoutingTLV.java +++ b/src/org/kne/cloud/network/srv6/IPv6SegmentRoutingTLV.java @@ -7,68 +7,38 @@ import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.TLV; import org.kne.cloud.network.klalb.KLALBPacket; -public class IPv6SegmentRoutingTLV extends NetworkPacket { +public class IPv6SegmentRoutingTLV extends TLV { public static final int PAD1=0; public static final int PADN=4; public static final int HMAC=5; public static final int SEQS=7; public static final int ACKSEQS=8; - private int headerLength=2; - - public int getHeaderLength() { - return headerLength; - } - - private boolean isDefault; - - protected volatile ByteBuffer header; - - private ByteBuffer data; public IPv6SegmentRoutingTLV(ByteBuffer header ) { this(header,true); } - public ByteBuffer getData() { - return data; - } + public IPv6SegmentRoutingTLV(ByteBuffer header ,boolean isDefault ) { - super(); - this.header = header; - this.isDefault=isDefault; - if(getType()==PAD1) - headerLength=1; - if(isDefault&&(headerLength>1)) { - data=ByteBuffer.allocate(512); - } + super(header,isDefault); + } public IPv6SegmentRoutingTLV(int type) { this(type,true); } public IPv6SegmentRoutingTLV(int type,boolean isDefault) { - super(); - this.header=ByteBuffer.allocate(2); - this.isDefault=isDefault; - header.put((byte) type); - if(type==PAD1) { - headerLength=1; - } - if(isDefault&&(headerLength>1)) { - data=ByteBuffer.allocate(512); - } + super(type,isDefault); + } - @Override - public long getLength() { - return headerLength+(isDefault?data.limit():0); - } public static IPv6SegmentRoutingTLV readIPv6SegmentRoutingTLVFromChannel(ReadableByteChannel din) throws IOException { - ByteBuffer bbf= ByteBuffer.allocate(2); + ByteBuffer bbf= NetworkPacket.bufferAllocator.allocate(2); bbf.limit(1); while (bbf.hasRemaining()) { if (din.read(bbf) == -1) { @@ -103,65 +73,5 @@ public class IPv6SegmentRoutingTLV extends NetworkPacket { public static void writeIPv6SegmentRoutingTLVToChannel(WritableByteChannel dto,IPv6SegmentRoutingTLV tlv) throws IOException { tlv.writeToChannel(dto); } - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - if(isDefault&&(headerLength>1)) { - setDataLength(data.limit()); - } - header.limit(headerLength); - dto.write(header.slice(0,header.limit())); - if(isDefault&&(headerLength>1)) { - dto.write(data.slice(0, data.limit())); - } - } - @Override - public void readFromChannel(ReadableByteChannel din, long length) throws IOException { - header.limit(1); - while (header.hasRemaining()) { - if (din.read(header) == -1) { - throw new EOFException(); - } - } - if(headerLength>1) { - header.limit(2); - while (header.hasRemaining()) { - if (din.read(header) == -1) { - throw new EOFException(); - } - } - } - header.flip(); - - if(isDefault&&(headerLength>1)) { - data.clear(); - data.limit(getDataLength()); - while(data.hasRemaining()){ - if(din.read(data)==-1) { - throw new EOFException(); - } - } - data.flip(); - } - } - - @Override - protected boolean needEndPosition() { - return false; - } - - public int getType() { - return header.get(0)&0xff; - } - public void setType(int type) { - header.put(0,(byte) type); - } - - public int getDataLength() { - return header.get(1)&0xff; - } - - public void setDataLength(int dataLength) { - header.put(1,(byte) dataLength); - } } diff --git a/src/org/kne/cloud/network/srv6/JsonDataPacket.java b/src/org/kne/cloud/network/srv6/JsonDataPacket.java new file mode 100644 index 0000000..88d33b4 --- /dev/null +++ b/src/org/kne/cloud/network/srv6/JsonDataPacket.java @@ -0,0 +1,118 @@ +package org.kne.cloud.network.srv6; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.EOFException; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.io.Serializable; +import java.net.Inet6Address; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.Inet6AddressGroup; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class JsonDataPacket extends KLALBRoutingProtocolPacket implements Serializable{ + + private Object userCallback; + + + public Object getUserCallback() { + return userCallback; + } + + public void setUserCallback(Object userCallback) { + this.userCallback = userCallback; + } + + @Override + protected long getHeaderSize() { + return HEADER_LENGTH; + } + + private String data; + + private static final int HEADER_LENGTH=3; + + private static Gson gson; + static{ + GsonBuilder gb=new GsonBuilder(); + MultipurposeSocketAddress.registerToGsonBuilder(gb); + gson=gb.create(); + } + + public String getData() { + return data; + } + + public KLALBRoutingProtocolJsonData getDecodedData() { + return gson.fromJson(data,KLALBRoutingProtocolJsonData.class ); + } + + public JsonDataPacket(String data) { + super(JSON_DATA); + this.data=data; + } + + public JsonDataPacket(KLALBRoutingProtocolJsonData data) { + this(gson.toJson(data)); + } + + + public JsonDataPacket(ByteBuffer bb) { + super(bb); + } + + + @Override + public String toString() { + return "JsonDATA "+getData(); + } + + + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + byte[]bta=data.getBytes(Charset.forName("UTF-8")); + getHeader().putChar(1,(char) bta.length); + super.writeToChannel(dto); + dto.write(ByteBuffer.wrap(bta)); + } + + @Override + public void readFromChannel(ReadableByteChannel din) throws IOException { + super.readFromChannel(din); + int lth=getHeader().getChar(1); + byte[]b=new byte[lth]; + ByteBuffer wp= ByteBuffer.wrap(b); + while(wp.hasRemaining()){ + if(din.read(wp)==-1) { + throw new EOFException(); + } + } + data=new String(b, Charset.forName("UTF-8")); + } + + @Override + public long getTotalLength() { + return HEADER_LENGTH+data.getBytes(Charset.forName("UTF-8")).length; + } + + +} diff --git a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocol.java b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocol.java index c401711..19bd7f5 100644 --- a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocol.java +++ b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocol.java @@ -27,8 +27,12 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.locks.ReentrantLock; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import org.kne.cloud.network.ByteBufferAllocator; import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.ipv6.Inet6AddressGroup; import org.kne.cloud.network.ipv6.Neighbor; @@ -69,7 +73,7 @@ public class KLALBRoutingProtocol extends Thread{ public static final long HOTSOPT_TIMEOUT = 1000000000; - public static final int HOTSOPT_REPORT_INTERVAL = 50000000; + public static final int HOTSOPT_REPORT_INTERVAL = 1000000; private SRv6Router router; public SRv6Router getRouter() { return router; @@ -83,15 +87,27 @@ public class KLALBRoutingProtocol extends Thread{ private long floodTimer=System.nanoTime(); private long floodTimer2=System.nanoTime(); private long requestTimer=System.nanoTime(); - KLALBVirtualRawSocket ds = null; + private KLALBVirtualRawSocket ds = null; + private ReentrantLock sendLock=new ReentrantLock(); + + private Set>receivers=new CopyOnWriteArraySet>(); + + public void addReceiver(BiConsumer rec) { + receivers.add(rec); + } + + public void removeReceiver(BiConsumer rec) { + receivers.remove(rec); + } + @Override public void run() { Thread.currentThread().setName("KLALB路由协议接收线程"); getSelfRouterInfo(); try{ - ds=new KLALBVirtualRawSocket(router,router.getLocator().getAddress(), DEFAULT_PROTOCOL_NUMBER); + ds=new KLALBVirtualRawSocket(router.getinLoopback(),router.getLocator().getAddress(), DEFAULT_PROTOCOL_NUMBER); new Thread(()->{ - Thread.currentThread().setName("KLALB路由协议接收线程"); + Thread.currentThread().setName("KLALB路由协议发送线程"); while(true) { try { @@ -115,25 +131,29 @@ public class KLALBRoutingProtocol extends Thread{ }*/ long cur=System.nanoTime(); - if(cur-floodTimer>60000000000L) { + if(cur-floodTimer>20000000000L) { if(debug) System.out.println("update60"); floodTimer=cur; - floodPacket(ds, null, new RouterInfoPacket(selfRouterInfo,true,-1)); + floodPacket( null, new RouterInfoPacket(selfRouterInfo,true,-1)); } if(cur-floodTimer2>1000000000L) { if(debug) System.out.println("update1"); floodTimer2=cur; - floodPacket(ds, null, new RouterInfoPacket(selfRouterInfo,true,router.getASN())); + floodPacket(null, new RouterInfoPacket(selfRouterInfo,true,router.getASN())); } //Set requestSet=new HashSet<>(); for (Iterator> iterator = netmap.entrySet().iterator(); iterator.hasNext();) { Entry type = (Entry) iterator.next(); RouterInfo val=type.getValue(); - if(val.checkTimeOut()) { + long timeout=30000000000L; + if(val.getAsn()==router.getASN()) { + timeout=2000000000L; + } + if(val.checkTimeOut(timeout)) { iterator.remove(); noticeUpdate(); } @@ -197,21 +217,20 @@ public class KLALBRoutingProtocol extends Thread{ while(true) { try { - byte[]ca=new byte[65535]; + byte[]ca=ByteBufferAllocator.allocateArray(65535); DatagramPacket dgp=new DatagramPacket(ca, ca.length); ds.receive(dgp); //System.out.println(Arrays.toString( Arrays.copyOf( dgp.getData(),dgp.getLength()))); ByteArrayInputStream bi=new ByteArrayInputStream(dgp.getData(),0,dgp.getLength()); KLALBRoutingProtocolPacket kp=KLALBRoutingProtocolPacket.readKLALBPacketFromChannel(Channels.newChannel(bi)); - //System.out.println(kp); switch(kp.getType()) { case KLALBRoutingProtocolPacket.RINFO_REQ: RouterInfo rifr=netmap.get(router.getLocator().getAddress()); if(debug) System.out.println("get Request from:"+dgp.getSocketAddress()); if(rifr!=null) { - writePacket(ds, new RouterInfoPacket( rifr,false,-1), dgp.getSocketAddress()); + writePacket( new RouterInfoPacket( rifr,false,-1), dgp.getSocketAddress()); if(debug) System.out.println("response router info:"+rifr); }else { @@ -233,7 +252,7 @@ public class KLALBRoutingProtocol extends Thread{ netmap.put(rif.getLocator().getAddress(), rif); noticeUpdate(); if(rifp.isFlood()) { - floodPacket(ds, dgp.getSocketAddress(), rifp); + floodPacket( dgp.getSocketAddress(), rifp); } @@ -244,6 +263,10 @@ public class KLALBRoutingProtocol extends Thread{ } computeShortestPathIfUpdated(); break; + case KLALBRoutingProtocolPacket.JSON_DATA: + JsonDataPacket data=(JsonDataPacket) kp; + receivers.forEach((v)->{v.accept(dgp.getSocketAddress(),data);}); + break; default: break; } @@ -260,43 +283,44 @@ public class KLALBRoutingProtocol extends Thread{ } } - private void floodPacket(KLALBVirtualRawSocket ds2,SocketAddress except,RouterInfoPacket rifp) throws IOException { + private void floodPacket(SocketAddress except,RouterInfoPacket rifp) throws IOException { long asn=rifp.getASN(); - Listlinks=router.getLinkTabel(); - Object[] nls=links.toArray(); - for(int i=0;ineis=nl.getNeighborsInfo(); - for (Iterator iteratorx = neis.iterator(); iteratorx.hasNext();) { - Neighbor addresses = (Neighbor) iteratorx.next(); + Listln= router.getNeighbors(); + for(Neighbor addresses :ln) { + if(addresses.getLocator()==null) + continue; InetSocketAddress isa=new InetSocketAddress(addresses.getLocator().getAddress(),DEFAULT_PORT); if(!isa.equals(except)) { if(asn==-1) { - writePacket(ds2, rifp, isa); + writePacket( rifp, isa); }else{ RouterInfo nif= netmap.get(isa.getAddress()); if(nif!=null&&nif.getAsn()==asn) { - writePacket(ds2, rifp, isa); + writePacket( rifp, isa); } } } - } - } } } - private void writePacket(KLALBVirtualRawSocket ds2,KLALBRoutingProtocolPacket pkt,SocketAddress dest) throws IOException { + public void sendJsonPacketToAddress(JsonDataPacket pkt,SocketAddress dest) throws IOException { + writePacket(pkt,dest); + } + + private void writePacket(KLALBRoutingProtocolPacket pkt,SocketAddress dest) throws IOException { ByteArrayOutputStream bos=new ByteArrayOutputStream(65535); KLALBRoutingProtocolPacket.writeKLALBPacketToChannel(Channels.newChannel(bos),pkt); byte[]to=bos.toByteArray(); DatagramPacket dgpx=new DatagramPacket(to,to.length); dgpx.setSocketAddress(dest); + sendLock.lock(); try { - ds2.send(dgpx); + ds.send(dgpx); }catch(BindException e) { e.printStackTrace(); System.err.println("Cannot assign:"+dest); + }finally { + sendLock.unlock(); } } @@ -550,7 +574,7 @@ public class KLALBRoutingProtocol extends Thread{ } } } - NeighborInfo ni=new NeighborInfo(nl.getAddressGroup(),addresses.getAddress(),addresses.getLocator(),updelay ,downdelay,updelayMin ,downdelayMin ,uploadspeed ,downloadspeed,uploadspeedmax ,downloadspeedmax); + NeighborInfo ni=new NeighborInfo(nl.getAddressGroups().get(0),addresses.getAddress(),addresses.getLocator(),updelay ,downdelay,updelayMin ,downdelayMin ,uploadspeed ,downloadspeed,uploadspeedmax ,downloadspeedmax); ni.setContext(addresses); ri.getNeighborAddresses().add(ni); @@ -624,9 +648,9 @@ public class KLALBRoutingProtocol extends Thread{ hat.refreshTimeout(); } if(hat.checkReportTime()) { - System.out.println("hotspot address:"+sourceAddress); + //System.out.println("hotspot address:"+sourceAddress); try { - writePacket(ds, new RouterInfoPacket( netmap.get(router.getLocator().getAddress()),false,-1), new InetSocketAddress(sourceAddress, DEFAULT_PORT)); + writePacket( new RouterInfoPacket( netmap.get(router.getLocator().getAddress()),false,-1), new InetSocketAddress(sourceAddress, DEFAULT_PORT)); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIClient.java b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIClient.java new file mode 100644 index 0000000..c33a556 --- /dev/null +++ b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIClient.java @@ -0,0 +1,105 @@ +package org.kne.cloud.network.srv6; + +import java.io.IOException; +import java.lang.ref.Cleaner; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ThreadTool; +import org.kne.cloud.network.congress.ECNCongressAlgorithm; +import org.kne.cloud.network.congress.EmptyCongressAlgorithm; +import org.kne.cloud.network.congress.SendPacketSlidingWindow; +import org.kne.opencl64.Releaser; + +public class KLALBRoutingProtocolAPIClient { + private KLALBRoutingProtocol routingProtocol; + private SendPacketSlidingWindow window = new SendPacketSlidingWindow( + new EmptyCongressAlgorithm(3000000000L), 1024 * 1024); + + private static final Cleaner clr = Cleaner.create(); + + private BiConsumer rec = (addr, data) -> { + KLALBRoutingProtocolJsonData dataobj = data.getDecodedData(); + InetSocketAddress addrs = (InetSocketAddress) addr; + UUID ruid = dataobj.getUuid(); + JsonDataPacket relate = null; + //System.out.println(ruid + " " + window.getSendmap()); + switch (dataobj.getType()) { + case KLALBRoutingProtocolJsonData.OPEN_LINES_RESP: + + if ((relate = window.ack(ruid)) != null) { + List connects = (List) dataobj.getData(); + List connectsm = new ArrayList(connects.size()); + for (Object open : connects) { + if (open instanceof MultipurposeSocketAddress) { + connectsm.add((MultipurposeSocketAddress) open); + } else { + connectsm.add(new MultipurposeSocketAddress((String) open)); + + } + } + ((Consumer>) relate.getUserCallback()).accept(connectsm); + } + break; + } + + }; + + public KLALBRoutingProtocolAPIClient(KLALBRoutingProtocol routingProtocol) { + this.routingProtocol = routingProtocol; + routingProtocol.addReceiver(rec); + this.releaser = new KLALBRoutingProtocolAPIClientReleaser(this.routingProtocol, rec, window); + clr.register(this, releaser); + } + + public void requestOpenLines(SocketAddress addr, Consumer> callback) + throws IOException { + UUID suid = UUID.randomUUID(); + KLALBRoutingProtocolJsonData json = new KLALBRoutingProtocolJsonData( + KLALBRoutingProtocolJsonData.OPEN_LINES_REQ, suid, null); + JsonDataPacket packet = new JsonDataPacket(json); + packet.setUserCallback(callback); + window.put(suid, packet); + routingProtocol.sendJsonPacketToAddress(packet, addr); + + } + + public KLALBRoutingProtocol getRoutingProtocol() { + return routingProtocol; + } + + private KLALBRoutingProtocolAPIClientReleaser releaser; + + public void close() { + releaser.run(); + } + + public boolean isClosed() { + return releaser.isReleased(); + } +} + +class KLALBRoutingProtocolAPIClientReleaser extends Releaser> { + + private KLALBRoutingProtocol routingProtocol; + private SendPacketSlidingWindow window; + + public KLALBRoutingProtocolAPIClientReleaser(KLALBRoutingProtocol routingProtocol, + BiConsumer resource, SendPacketSlidingWindow window) { + super(resource); + this.routingProtocol = routingProtocol; + this.window = window; + } + + @Override + protected void release(BiConsumer resource) { + window.close(); + routingProtocol.removeReceiver(resource); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIServer.java b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIServer.java new file mode 100644 index 0000000..7336d19 --- /dev/null +++ b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolAPIServer.java @@ -0,0 +1,81 @@ +package org.kne.cloud.network.srv6; + +import java.io.IOException; +import java.lang.ref.Cleaner; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.util.ArrayList; +import java.util.UUID; +import java.util.function.BiConsumer; + +import org.kne.cloud.network.MultipurposeSocketAddress; +import org.kne.cloud.network.ThreadTool; +import org.kne.cloud.network.congress.SendPacketSlidingWindow; +import org.kne.cloud.network.klalb.KLALBController; +import org.kne.opencl64.Releaser; + +public class KLALBRoutingProtocolAPIServer { + private KLALBController controller; + private KLALBRoutingProtocol routingProtocol; + + + private static final Cleaner clr=Cleaner.create(); + + private BiConsumer rec=(addr,data)->{ + try { + KLALBRoutingProtocolJsonData dataobj= data.getDecodedData(); + InetSocketAddress addrs=(InetSocketAddress) addr; + switch(dataobj.getType()){ + case KLALBRoutingProtocolJsonData.OPEN_LINES_REQ: + KLALBRoutingProtocolJsonData json=new KLALBRoutingProtocolJsonData(KLALBRoutingProtocolJsonData.OPEN_LINES_RESP,dataobj.getUuid(),controller.getSelflineTable()); + routingProtocol.sendJsonPacketToAddress(new JsonDataPacket(json),addr); + break; + } + } catch (IOException e) { + e.printStackTrace(); + } + }; + + public KLALBRoutingProtocolAPIServer(KLALBRoutingProtocol routingProtocol,KLALBController controller) { + this.controller=controller; + this.routingProtocol=routingProtocol; + routingProtocol.addReceiver(rec); + this.releaser=new KLALBRoutingProtocolAPIServerReleaser(this.routingProtocol,rec); + clr.register(this, releaser); + } + + public KLALBController getController() { + return controller; + } + + public KLALBRoutingProtocol getRoutingProtocol() { + return routingProtocol; + } + + +private KLALBRoutingProtocolAPIServerReleaser releaser; + + public void close() { + releaser.run(); + } + + + public boolean isClosed() { + return releaser.isReleased(); + } + +} +class KLALBRoutingProtocolAPIServerReleaser extends Releaser>{ + + private KLALBRoutingProtocol routingProtocol; + + public KLALBRoutingProtocolAPIServerReleaser(KLALBRoutingProtocol routingProtocol,BiConsumer resource) { + super(resource); + this.routingProtocol=routingProtocol; + } + + @Override + protected void release(BiConsumer resource) { + routingProtocol.removeReceiver(resource); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolJsonData.java b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolJsonData.java new file mode 100644 index 0000000..f2e8e44 --- /dev/null +++ b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolJsonData.java @@ -0,0 +1,66 @@ +package org.kne.cloud.network.srv6; + +import java.util.UUID; + +public class KLALBRoutingProtocolJsonData { + public static final String OPEN_LINES_REQ="openlinesreq"; + public static final String OPEN_LINES_RESP="openlinesresp"; + private String type; + private UUID uuid; + private Object data; + public String getType() { + return type; + } + public Object getData() { + return data; + } + public UUID getUuid() { + return uuid; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((data == null) ? 0 : data.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + KLALBRoutingProtocolJsonData other = (KLALBRoutingProtocolJsonData) obj; + if (data == null) { + if (other.data != null) + return false; + } else if (!data.equals(other.data)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + if (uuid == null) { + if (other.uuid != null) + return false; + } else if (!uuid.equals(other.uuid)) + return false; + return true; + } + public KLALBRoutingProtocolJsonData(String type, UUID uuid, Object data) { + super(); + this.type = type; + this.uuid = uuid; + this.data = data; + } + @Override + public String toString() { + return "KLALBRoutingProtocolJsonData [type=" + type + ", uuid=" + uuid + ", data=" + data + "]"; + } + +} diff --git a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolPacket.java b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolPacket.java index 6b24daa..6986878 100644 --- a/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolPacket.java +++ b/src/org/kne/cloud/network/srv6/KLALBRoutingProtocolPacket.java @@ -17,6 +17,7 @@ import org.kne.cloud.network.NetworkPacket; public abstract class KLALBRoutingProtocolPacket extends NetworkPacket { public static final int RINFO_REQ=0; public static final int RINFO=1; + public static final int JSON_DATA=2; private static final int HEADER_CAPACITY = 32; @@ -79,7 +80,7 @@ public abstract class KLALBRoutingProtocolPacket extends NetworkPacket { public long getRcvtime() { return rcvtime; } - public long getLength() { + public long getTotalLength() { return getHeaderSize(); } @@ -116,6 +117,10 @@ public abstract class KLALBRoutingProtocolPacket extends NetworkPacket { klp=new RouterInfoPacket(bb); klp.readFromChannel(in); return klp; + case JSON_DATA: + klp=new JsonDataPacket(bb); + klp.readFromChannel(in); + return klp; } //throw new StreamCorruptedException("unknown package type:"+type); System.err.println("ignore unknown KLALBRoutingProtocolPacket type:"+type); diff --git a/src/org/kne/cloud/network/srv6/PADNSegmentRoutingTLV.java b/src/org/kne/cloud/network/srv6/PADNSegmentRoutingTLV.java index 22fcd83..e36ec93 100644 --- a/src/org/kne/cloud/network/srv6/PADNSegmentRoutingTLV.java +++ b/src/org/kne/cloud/network/srv6/PADNSegmentRoutingTLV.java @@ -16,17 +16,4 @@ public class PADNSegmentRoutingTLV extends IPv6SegmentRoutingTLV { getData().limit(dataLength); } - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - - super.writeToChannel(dto); - - } - - @Override - public void readFromChannel(ReadableByteChannel din, long length) throws IOException { - super.readFromChannel(din, length); - - } - } diff --git a/src/org/kne/cloud/network/srv6/PacketConsumer.java b/src/org/kne/cloud/network/srv6/PacketConsumer.java index a18ba96..12055c4 100644 --- a/src/org/kne/cloud/network/srv6/PacketConsumer.java +++ b/src/org/kne/cloud/network/srv6/PacketConsumer.java @@ -6,5 +6,5 @@ import org.kne.cloud.network.ipv6.IPv6Packet; import org.pcap4j.packet.IpV6Packet; public interface PacketConsumer { - public void accept(IPv6Packet packx)throws IOException; + public boolean accept(IPv6Packet packx)throws IOException; } diff --git a/src/org/kne/cloud/network/srv6/RouterInfo.java b/src/org/kne/cloud/network/srv6/RouterInfo.java index fc1a9a7..6993df1 100644 --- a/src/org/kne/cloud/network/srv6/RouterInfo.java +++ b/src/org/kne/cloud/network/srv6/RouterInfo.java @@ -67,7 +67,7 @@ public class RouterInfo implements Serializable{ return createTime; } private static final long INFO_UPDATETIME=10000000000L; - private static final long INFO_TIMEOUT=120000000000L; + private static final long INFO_TIMEOUT=60000000000L; private long putTime=System.nanoTime(); public boolean checkUpdateTime() { return System.nanoTime()-putTime>INFO_UPDATETIME; @@ -77,6 +77,10 @@ public class RouterInfo implements Serializable{ return System.nanoTime()-putTime>INFO_TIMEOUT; } + public boolean checkTimeOut(long timeout) { + return System.nanoTime()-putTime>timeout; + } + @Override public String toString() { return "RINFO [locator=" + locator + ", neighborAddresses=" + neighborAddresses + ", putTime=" + putTime @@ -123,4 +127,5 @@ public class RouterInfo implements Serializable{ } } + } diff --git a/src/org/kne/cloud/network/srv6/RouterInfoPacket.java b/src/org/kne/cloud/network/srv6/RouterInfoPacket.java index 719df6a..e1d125d 100644 --- a/src/org/kne/cloud/network/srv6/RouterInfoPacket.java +++ b/src/org/kne/cloud/network/srv6/RouterInfoPacket.java @@ -52,8 +52,8 @@ public class RouterInfoPacket extends KLALBRoutingProtocolPacket implements Seri return super.getHeaderSize()+9; } @Override - public long getLength() { - return super.getLength(); + public long getTotalLength() { + return super.getTotalLength(); } public void setRinfo(RouterInfo rinfo) { this.rinfo = rinfo; diff --git a/src/org/kne/cloud/network/srv6/SRv6PacketReorder.java b/src/org/kne/cloud/network/srv6/SRv6PacketReorder.java index c46f395..68c6345 100644 --- a/src/org/kne/cloud/network/srv6/SRv6PacketReorder.java +++ b/src/org/kne/cloud/network/srv6/SRv6PacketReorder.java @@ -25,6 +25,7 @@ public class SRv6PacketReorder { private class PacketTimeEntry{ private IPv6Packet packet; + private boolean accepted=false; private long addTime; public PacketTimeEntry(IPv6Packet packet) { super(); @@ -59,10 +60,20 @@ public class SRv6PacketReorder { //System.out.println("Ord:"+i6p.getFlowLabel()+" "+seqptr.get()); seqptr.getAndIncrement(); orderTime=System.nanoTime(); - if(packetConsumer!=null) { + if(packetConsumer!=null&&(!i6p.accepted)) { + i6p.accepted=true; packetConsumer.accept(i6p.packet); } }else { + for(int i=1;i<5;i++) { + PacketTimeEntry i6px=map.get(seqptr.get()+i); + if(i6px!=null) { + if(packetConsumer!=null&&(!i6px.accepted)) { + i6px.accepted=true; + packetConsumer.accept(i6px.packet); + } + } + } break; } } diff --git a/src/org/kne/cloud/network/srv6/SRv6Router.java b/src/org/kne/cloud/network/srv6/SRv6Router.java index 0118131..a33f58d 100644 --- a/src/org/kne/cloud/network/srv6/SRv6Router.java +++ b/src/org/kne/cloud/network/srv6/SRv6Router.java @@ -2,13 +2,10 @@ package org.kne.cloud.network.srv6; import java.io.IOException; import java.net.Inet6Address; -import java.net.InetAddress; -import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.security.SecureRandom; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -17,306 +14,211 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.Executor; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ThreadLocalRandom; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Consumer; import org.kne.cloud.network.NetworkPacket; -import org.kne.cloud.network.ipv6.FlowSession; +import org.kne.cloud.network.ipv6.ICMPv6TimeExceededPacket; +import org.kne.cloud.network.ipv6.IPv6HopByHopTLV; +import org.kne.cloud.network.ipv6.IPv6LinkStateListener; import org.kne.cloud.network.ipv6.IPv6NetworkLink; import org.kne.cloud.network.ipv6.IPv6Packet; -import org.kne.cloud.network.ipv6.IPv6Packet.IPv6DestinationHeader; -import org.kne.cloud.network.ipv6.IPv6Packet.IPv6ExtHeader; +import org.kne.cloud.network.ipv6.IPv6Packet.IPv6HopByHopHeader; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; -import org.kne.cloud.network.ipv6.IPv6Packet.IPv6RoutingHeader; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6SegmentRoutingHeader; -import org.kne.cloud.network.ipv6.IPv6TUNLoopbackNetworkLink; +import org.kne.cloud.network.ipv6.IPv6RouteTableKey; import org.kne.cloud.network.ipv6.Inet6AddressGroup; +import org.kne.cloud.network.ipv6.LoopbackIPv6NetworkLink; import org.kne.cloud.network.ipv6.Neighbor; +import org.kne.cloud.network.ipv6.PadNHopByHopTLV; import org.kne.cloud.network.ipv6.RouteItem; -import org.kne.cloud.network.klalb.BindableKLALBPacketConsumer; -import org.kne.cloud.network.klalb.KLALBController; -import org.kne.cloud.network.klalb.KLALBRemoteLine; -import org.kne.cloud.network.monitor.MonitorData; -import org.kne.cloud.network.monitor.SpeedAndTrafficAndDelayMonitorDataImpl; -import org.kne.cloud.network.tun.TUNNetworkDevice; -import org.kne.concurrent.HighPerformanceExecutor; import org.kne.io.KNEChannels; import org.pcap4j.packet.IcmpV6CommonPacket; import org.pcap4j.packet.IcmpV6TimeExceededPacket; import org.pcap4j.packet.IllegalRawDataException; -import org.pcap4j.packet.IpV6ExtRoutingPacket; -import org.pcap4j.packet.IpV6ExtRoutingPacket.IpV6ExtRoutingHeader; +import org.pcap4j.packet.IpV6ExtHopByHopOptionsPacket.IpV6ExtHopByHopOptionsHeader; import org.pcap4j.packet.IpV6Packet; -import org.pcap4j.packet.IpV6Packet.Builder; -import org.pcap4j.packet.IpV6RoutingSourceRouteData; -import org.pcap4j.packet.IpV6SimpleFlowLabel; -import org.pcap4j.packet.IpV6SimpleTrafficClass; -import org.pcap4j.packet.Packet; -import org.pcap4j.packet.Packet.Header; -import org.pcap4j.packet.TcpPacket; -import org.pcap4j.packet.TcpPacket.TcpHeader; -import org.pcap4j.packet.UnknownPacket; import org.pcap4j.packet.namednumber.IcmpV6Code; import org.pcap4j.packet.namednumber.IcmpV6Type; import org.pcap4j.packet.namednumber.IpNumber; -import org.pcap4j.packet.namednumber.IpV6RoutingType; -import org.pcap4j.packet.namednumber.IpVersion; - -import com.google.gson.internal.Pair; +// SRv6路由器主类,实现IPv6段路由功能 public class SRv6Router { - private static final boolean debug = false; + private static final boolean debug = false; // 调试模式开关 - public static final int MTU = 16384; + // public static final int MTU = 16384; + public static final int MTU = 16384; // 最大传输单元 + public static final int MAX_REROUTE_COUNT = 2;// 1 // 最大重路由次数 - public static final int MAX_REROUTE_COUNT=2;//1 + private static final Inet6Address LOOPBACK_ADDRESS = getLoopbackAddress(); // 环回地址 + private static final Inet6Address ANY_LOCAL_ADDRESS = getAnyLocalAddress(); // 任意本地地址 + + private static final int IPv6_BITS = 128; // IPv6地址位数 - public static final IpV6RoutingType SRH_HEADER = new IpV6RoutingType((byte) 4, "SRH Header"); - // private Listlinks=new ArrayList<>(); + // 获取环回地址 ::1 + private static Inet6Address getLoopbackAddress() { + try { + return (Inet6Address) Inet6Address.getByName("::1"); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + return null; + } - private List routeTabel = new ArrayList<>(); + // 获取任意本地地址 ::0 + private static Inet6Address getAnyLocalAddress() { + try { + return (Inet6Address) Inet6Address.getByName("::0"); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + return null; + } - private List linkTabel = new CopyOnWriteArrayList<>(); + private List routeTabel = new ArrayList<>(); // 路由表 + + private List linkTabel = new CopyOnWriteArrayList<>(); // 网络链路表,线程安全 public List getLinkTabel() { return linkTabel; } - // private ConcurrentHashMapswis=new - // ConcurrentHashMap<>(); - - private final LoopbackIPv6NetworkLink inLoopBack = new LoopbackIPv6NetworkLink(); - //private final LoopbackIPv6NetworkLink inLoopBackSRv6; - private final LoopbackIPv6NetworkLink hostLoopBack ; - - private class LoopbackIPv6NetworkLink implements IPv6NetworkLink { - private Inet6AddressGroup loopbackAddress; - - public LoopbackIPv6NetworkLink() { - super(); - try { - this.loopbackAddress=new Inet6AddressGroup( (Inet6Address) Inet6Address.getByName("::1"),128); - } catch (UnknownHostException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); - } - } - - public LoopbackIPv6NetworkLink(Inet6Address loopbackAddress) { - super(); - this.loopbackAddress = new Inet6AddressGroup(loopbackAddress,128); - } - - public Consumer getReceiveConsumer() { - return receiveConsumer; - } - - private Consumer receiveConsumer; - - @Override - public void sendPacket(IPv6Packet pack, Inet6Address next) throws IOException { - PacketConsumer pcm; - if ((pcm = protocolNumberRegister.get(pack.getPayload().getProtocolNumber())) != null) { - pcm.accept(pack); - - return; - } - } - - @Override - public boolean isLoopBack() { - return true; - } - - @Override - public List getNeighborsInfo() { - List hs = new ArrayList<>(); - return hs; - } - - @Override - public boolean isCongress(IPv6Packet iPv6Packet,double scale) { - return false; - } - - @Override - public String getName() { - return "inLoopBack"; - } - - @Override - public boolean isUp() { - return true; - } - - @Override - public boolean canSend(IPv6Packet iPv6Packet) { - //System.out.println(iPv6Packet.getPayload().getProtocolNumber()); - return protocolNumberRegister.containsKey(iPv6Packet.getPayload().getProtocolNumber()); - } - - @Override - public void setReceiveConsumer(Consumer con) { - this.receiveConsumer = con; - } - - @Override - public Inet6AddressGroup getAddressGroup() { - return loopbackAddress; - } - - @Override - public void setRerouteConsumer(Consumer rerouteConsumer) { - // TODO 自动生成的方法存根 - - } - - @Override - public List getRouteItems() { - List rlist=new ArrayList<>(); - - rlist.add(new RouteItem(new Inet6AddressGroup(this.getAddressGroup().getAddress(), 128), - this.getAddressGroup().getAddress(), this, "Direct", 0, 0, null, "D",true)); - - for (Iterator iteratorx = getNeighborsInfo() - .iterator(); iteratorx.hasNext();) { - Neighbor addresses = (Neighbor) iteratorx.next(); - RouteItem ri = new RouteItem(new Inet6AddressGroup(addresses.getAddress().getAddress(), 128), addresses.getAddress().getAddress(), - this, "Direct", 0, 128, addresses.getMonitor(), "D",false); - rlist.add(ri); - - RouteItem ris = new RouteItem(addresses.getLocator(), (Inet6Address) addresses.getLocator().getAddress(), - this, "KLALB SRv6", 13, 128, addresses.getMonitor(), "D",false); - rlist.add(ris); - - } - return rlist; - } - - @Override - public boolean isReachSpeedLimit(IPv6Packet iPv6Packet) { - return false; - } - - - }; + // 环回网络链路 + private final LoopbackIPv6NetworkLink inLoopBack ; + // 获取路由表 public List getRouteTabel() { return routeTabel; } + // 获取当前路由表 public List getCurrentRouteTabel() { - return routeTabel0; + return routeTable0; } - + // 默认重路由处理器 private Consumer defaultReroute = new Consumer() { @Override public void accept(IPv6Packet t) { - //HighPerformanceExecutor.defaultExecutor.execute(() -> { - routePacket(t,true); - t.putTimePassport("rerouted"); - //}); + // HighPerformanceExecutor.defaultExecutor.execute(() -> { + routePacket(t, true); // 执行重路由 + t.putTimePassport("rerouted"); // 标记重路由时间点 + // }); } }; + + // 默认接收处理器 private Consumer defaultReceive = new Consumer() { @Override public void accept(IPv6Packet t) { - //HighPerformanceExecutor.defaultExecutor.execute(() -> { - routePacket(t); - t.putTimePassport("routed"); - //}); + // HighPerformanceExecutor.defaultExecutor.execute(() -> { + routePacket(t); // 执行路由 + t.putTimePassport("routed"); // 标记路由时间点 + // }); } }; + + // SRH接收处理器 private Consumer srhReceive = new Consumer() { @Override public void accept(IPv6Packet t) { - //HighPerformanceExecutor.defaultExecutor.execute(() -> { - insertSRHandRoutePacket(t); - //}); + // HighPerformanceExecutor.defaultExecutor.execute(() -> { + insertSRHandRoutePacket(t); // 插入SRH并路由数据包 + // }); } }; + + private volatile UUID suid = UUID.randomUUID(); // 会话唯一标识 + + // 链路状态监听器实现 + private class LinkListener implements IPv6LinkStateListener{ + + @Override + public void onOnlineStateUpdate(IPv6NetworkLink link) { + srListeners.forEach((v)->{v.onLinkChanged(SRv6Router.this,link);}); // 通知所有监听器链路状态变化 + } + + @Override + public void onAddressUpdate(IPv6NetworkLink link) { + srListeners.forEach((v)->{v.onLinkChanged(SRv6Router.this,link);}); // 通知所有监听器地址更新 + } + + @Override + public void onLocatorUpdate(IPv6NetworkLink link) { + srListeners.forEach((v)->{v.onLinkChanged(SRv6Router.this,link);}); // 通知所有监听器定位器更新 + } + + } + private IPv6LinkStateListener listener=new LinkListener(); // 链路状态监听器实例 - private volatile UUID suid=UUID.randomUUID(); + private Set srListeners=new CopyOnWriteArraySet(); // SRv6路由器监听器集合 + + // 添加SRv6路由器监听器 + public void addSRv6RouterListener(SRv6RouterListener listener) { + srListeners.add(listener); + } + + // 移除SRv6路由器监听器 + public void removeSRv6RouterListener(SRv6RouterListener listener) { + srListeners.remove(listener); + } + + // 更新路由表 public void updateRouteTabel() { List routeTabel0x = new ArrayList<>(); - + + // 遍历所有网络链路,收集路由信息 for (Iterator iterator = linkTabel.iterator(); iterator.hasNext();) { IPv6NetworkLink nlink = (IPv6NetworkLink) iterator.next(); - /*if (nlink.isLoopBack()) { - if (nlink instanceof IPv6TUNLoopbackNetworkLink) { - routeTabel0x.add(new RouteItem(new Inet6AddressGroup(nlink.getAddressGroup().getAddress(), 128), - nlink.getAddressGroup().getAddress(), nlink, "Direct", 0, 1, null, "D")); - - } else { - routeTabel0x.add(new RouteItem(new Inet6AddressGroup(nlink.getAddressGroup().getAddress(), 128), - nlink.getAddressGroup().getAddress(), nlink, "Direct", 0, 0, null, "D")); - - } - } - for (Iterator iteratorx = nlink.getNeighborsInfo() - .iterator(); iteratorx.hasNext();) { - Neighbor addresses = (Neighbor) iteratorx.next(); - RouteItem ri = new RouteItem(new Inet6AddressGroup(addresses.getAddress().getAddress(), 128), addresses.getAddress().getAddress(), - nlink, "Direct", 0, 128, addresses.getMonitor(), "D"); - routeTabel0x.add(ri); - - RouteItem ris = new RouteItem(addresses.getLocator(), (Inet6Address) addresses.getLocator().getAddress(), - nlink, "KLALB SRv6", 13, 128, addresses.getMonitor(), "D"); - routeTabel0x.add(ris); - - }*/ - - Listroutes=nlink.getRouteItems(); - routeTabel0x.addAll(routes); + List routes = nlink.getRouteItems(); // 获取链路的路由项 + routeTabel0x.addAll(routes); // 添加到路由表 - if (nlink instanceof IPv6TUNLoopbackNetworkLink) { - - nlink.setReceiveConsumer(srhReceive); - } else { - nlink.setReceiveConsumer(defaultReceive); - } - nlink.setRerouteConsumer(defaultReroute); + nlink.addIPv6LinkStateListener(listener); // 添加链路状态监听器 + nlink.setReceiveConsumer(srhReceive); // 设置接收处理器 + nlink.setRerouteConsumer(defaultReroute); // 设置重路由处理器 + nlink.setCongressCondition(congressLock, congressCondition); // 设置拥塞条件 } - /*List routeTabel1x=new ArrayList<>(routeTabel0x.size()); + // 预处理和排序路由项 + for (Iterator iterator = routeTabel0x.iterator(); iterator.hasNext();) { + RouteItem routeItem = (RouteItem) iterator.next(); + routeItem.preSort(); // 预排序 + } + Collections.sort(routeTabel0x); // 排序路由表 - routeTabel0x.addAll(routeTabel); - for (Iterator iterator = routeTabel0x.iterator(); iterator.hasNext();) { - RouteItem routeItem = (RouteItem) iterator.next(); - routeTabel1x.add((RouteItem) routeItem.clone()); - }*/ - for (Iterator iterator = routeTabel0x.iterator(); iterator.hasNext();) { - RouteItem routeItem = (RouteItem) iterator.next(); - routeItem.preSort(); - + // 构建前缀长度索引的路由表 + ArrayList>> routeTabel1x=new ArrayList>>(IPv6_BITS+1); + for (int i = 0; i < IPv6_BITS+1; i++) { + routeTabel1x.add(new HashMap>()); } - Collections.sort(routeTabel0x); - routeTabel0 = routeTabel0x; - suid=UUID.randomUUID(); + + // 按前缀长度组织路由表 + for (RouteItem item: routeTabel0x) { + Inet6AddressGroup iag= item.getDestination(); + Map> map= routeTabel1x.get(iag.getPrefixLength()); + Listnewlist=new ArrayList(); + Listoldlist=map.putIfAbsent(new IPv6RouteTableKey( iag.getAddress()), newlist); + if(oldlist==null) { + oldlist=newlist; + } + oldlist.add(item); + } + //System.out.println(routeTabel1x); + routeTable0 = routeTabel0x; // 更新平面路由表 + routeTabel1=routeTabel1x; // 更新索引路由表 + suid = UUID.randomUUID(); // 更新会话ID } - private Inet6AddressGroup locator; - private long asn=new SecureRandom().nextLong(1,Long.MAX_VALUE); - /* - * public List getLinks() { return links; } - */ - - - + private Inet6AddressGroup locator; // SRv6定位器 + private long asn = new SecureRandom().nextLong(1, Long.MAX_VALUE); // 自治系统号 public Inet6AddressGroup getLocator() { return locator; @@ -330,439 +232,414 @@ public class SRv6Router { this.asn = asn; } + // 设置定位器并更新路由表 public void setLocator(Inet6AddressGroup locator) { this.locator = locator; updateRouteTabel(); } - - //private ConcurrentHashMap swist = new ConcurrentHashMap<>(); - + // 插入SRH并路由数据包 public void insertSRHandRoutePacket(IPv6Packet ipp) { - insertSRH(ipp); - ipp.putTimePassport("SRH inserted"); - routePacket(ipp); - ipp.putTimePassport("routed"); + insertSRH(ipp); // 插入段路由头 + ipp.putTimePassport("SRH inserted"); // 标记SRH插入时间点 + routePacket(ipp); // 路由数据包 + ipp.putTimePassport("routed"); // 标记路由时间点 } - - - public void insertSRH(IPv6Packet ipp) { - if(ipp.getSRHHeader()!=null) { - throw new IllegalStateException("packet already has SRH!"); - } + + // 插入段路由头 + public boolean insertSRH(IPv6Packet ipp) { + // 如果已有SRH,返回false + if (ipp.getSRHHeader() != null) { + return false; + } + // 如果KLALB路由协议可用,创建段列表 if (klalbRouteProtol != null) { List segs = klalbRouteProtol.createSegmentList(ipp.getDestinationAddress()); // System.out.println(segs); if (segs != null && (!segs.isEmpty())) { - + IPv6HopByHopHeader hbh=new IPv6HopByHopHeader(); + hbh.getTlvs().add(new PadNHopByHopTLV(4)); + ipp.getHeaders().add(hbh); // 添加Hop头 + // 创建SRH头 IPv6SegmentRoutingHeader irh = new IPv6SegmentRoutingHeader(segs); - - //System.out.println(ipp.getFlowLabel()); - ThreadLocalRandom tlr=ThreadLocalRandom.current(); - //System.out.println(ipp.getFlowSeqMark()); - irh.getTlvs().add(new SEQSSegmentRoutingTLV(ipp.getFlowSeqMark(),new UUID(suid.getMostSignificantBits()^tlr.nextLong(),suid.getMostSignificantBits()^tlr.nextLong()),ipp.isPromise(),ipp.getFlowSeqMark()!=-1)); - - ipp.getHeaders().add(irh); - - ipp.setDestinationAddress(segs.get(segs.size() - 1)); - + + // System.out.println(ipp.getFlowLabel()); + ThreadLocalRandom tlr = ThreadLocalRandom.current(); + // System.out.println(ipp.getFlowSeqMark()); + // 添加序列号TLV + irh.getTlvs() + .add(new SEQSSegmentRoutingTLV(ipp.getFlowSeqMark(), + new UUID(suid.getMostSignificantBits() ^ tlr.nextLong(), + suid.getMostSignificantBits() ^ tlr.nextLong()), + ipp.isPromise(), ipp.getFlowSeqMark() != -1)); + + ipp.getHeaders().add(irh); // 添加SRH头 + + ipp.setDestinationAddress(segs.get(segs.size() - 1)); // 更新目的地址为最后一个段 + + return true; } } - } - - - private volatile List routeTabel0 = new ArrayList<>(); - - // private ReentrantReadWriteLock routelock=new ReentrantReadWriteLock(); - - - //路由数据包 - public void routePacket(IPv6Packet iPv6Packet) { - routePacket(iPv6Packet ,false); - } - //路由数据包 - public void routePacket(IPv6Packet iPv6Packet, boolean reroute) { - // routelock.readLock().lock(); - // try { - // System.out.println("路由表:"+routeTabel0); - StringBuilder dbg=null; - if (debug) { - dbg=new StringBuilder(); - } - try { - int hop = iPv6Packet.getHopLimit();//检查TTL值,只有大于0才会被转发,否则丢弃 - if (hop > 0) { - // List mached=new ArrayList<>(); - // RouteItem pri=null; - - - //按延迟顺序从小到大匹配路由表 - if(searchTableAndFoward(iPv6Packet, reroute, dbg)) { - //匹配到路由表,返回 - return ; - } - - - if (debug) - dbg.append("noroute\n"); - //System.out.println("找不到路由表:"+iPv6Packet.getSourceAddress().getHostAddress()+" -> "+iPv6Packet.getDestinationAddress().getHostAddress()); - - //未找到合适的路由表或路由表对应的链路down,使用FRR保护创建备用路由表 - IPv6SegmentRoutingHeader srh=iPv6Packet.getSRHHeader(); - if(srh!=null) { - System.out.println("原SRH:"+srh); - int segmentsLeft=srh.getSegmentsLeft(); - if(segmentsLeft>0) { - srh.getAddresses().remove(segmentsLeft); - segmentsLeft--; - } - List repairSegments= klalbRouteProtol.createSegmentList(srh.getAddresses().get(segmentsLeft)); - if(repairSegments ==null||repairSegments.isEmpty()) { - System.out.println("FRR保护失败"); - return; - } - repairSegments.remove(0); - srh.getAddresses().addAll(segmentsLeft+1, repairSegments); - segmentsLeft+=repairSegments.size(); - srh.setSegmentsLeft(segmentsLeft); - iPv6Packet.setDestinationAddress(srh.getAddresses().get(segmentsLeft)); - }else { - return; - } - System.out.println("FRR修复SRH:"+srh); - if(searchTableAndFoward(iPv6Packet, reroute, dbg)) { - return ; - } - - - } else { - IcmpV6TimeExceededPacket.Builder icmpte = new IcmpV6TimeExceededPacket.Builder(); - ByteBuffer IPv6data = NetworkPacket.bufferAllocator.allocate(65535); - iPv6Packet.writeToChannel(KNEChannels.newWritableChannel(IPv6data)); - byte[] raw = new byte[IPv6data.remaining()]; - IPv6data.get(0, raw); - icmpte.payload(IpV6Packet.newPacket(raw, 0, raw.length)); - - IcmpV6CommonPacket.Builder icbd = new IcmpV6CommonPacket.Builder(); - icbd.type(IcmpV6Type.TIME_EXCEEDED); - icbd.code(IcmpV6Code.HOP_LIMIT_EXCEEDED); - icbd.srcAddr(locator.getAddress()); - icbd.dstAddr(iPv6Packet.getSourceAddress()); - icbd.correctChecksumAtBuild(true); - icbd.payloadBuilder(icmpte); - - IPv6Packet icmpv = new IPv6Packet(); - icmpv.setSourceAddress(locator.getAddress()); - icmpv.setDestinationAddress(iPv6Packet.getSourceAddress()); - icmpv.setTrafficClass(iPv6Packet.getTrafficClass()); - icmpv.setVersion(6); - icmpv.setFlowLabel(0); - icmpv.setHopLimit(255); - IPv6Payload ipl = new IPv6Payload(IpNumber.ICMPV6.value()); - ipl.getData().put(icbd.build().getRawData()); - ipl.getData().flip(); - icmpv.setPayload(ipl); - insertSRHandRoutePacket(icmpv); - } - } catch (Exception e) { - e.printStackTrace(); - }finally { - if(debug) { - System.out.println(dbg.toString()); - } - } - // }finally { - // routelock.readLock().unlock(); - // } - } - - private boolean searchTableAndFoward(IPv6Packet iPv6Packet, boolean reroute, StringBuilder dbg) - throws IllegalRawDataException, IOException { - byte[] ia = new byte[16]; - iPv6Packet.getRawDestinationAddress(ia); - if (debug) { - dbg.append("----------------------------------------\n"); - dbg.append("packet:" + iPv6Packet.getSourceAddress().getHostAddress() + " -> " - + iPv6Packet.getDestinationAddress().getHostAddress()+"\n"); - } - - boolean routeFound=false; - - RouteItem prevr=null; - List routes=new ArrayList<>(); - //遍历路由表 - for (RouteItem tri: routeTabel0) { - if(!tri.checkMatch(ia)) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("unmatched.\n"); - } - //跳过前缀与掩码不符合要求的路由表条目 - continue; - } - if (!tri.getDestlink().canSend(iPv6Packet)) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("linkrefused.\n"); - } - //跳过不能转发这种数据包的链路 - continue; - } - if (!tri.getDestlink().isUp()) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("linkdown.\n"); - } - //跳过断开连接的链路 - continue; - } - routeFound=true; - if(prevr!=null) { - if(!tri.ECMPequals(prevr)) { - //执行流量整形负载均衡调度算法 - if(routingLoadBalance(iPv6Packet, reroute, dbg, routes)) { - return routeFound; - } - routes.clear(); - } - } - //将等价路由加入负载均衡列表 - routes.add(tri); - - prevr=tri; - - - - } - routingLoadBalance(iPv6Packet, reroute, dbg, routes); - return routeFound; - } - - private boolean routingLoadBalance(IPv6Packet iPv6Packet, boolean reroute, StringBuilder dbg, List routes) - throws IllegalRawDataException, IOException { - - double cscale=1.0; - if(iPv6Packet.getPayload().getProtocolNumber()==6) { - cscale=15.0; - } - - boolean retry=false; - long start=System.nanoTime(); - do { - retry=false; - //遍历可用于负载均衡调度的路由表 - for (RouteItem tri: routes) { - if (!tri.getDestlink().isUp()) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("linkdown.\n"); - } - //跳过断开的链路 - continue; - } - if (tri.getDestlink().isCongress(iPv6Packet,cscale)) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("congress.\n"); - } - //跳过缓冲区拥塞的链路 - continue; - } - - if (tri.getDestlink().isReachSpeedLimit(iPv6Packet)) { - retry=true; - if (debug) { - dbg.append(tri+"\n"); - dbg.append("reachspeedlimit.\n"); - } - //跳过达到流量整形速度限制的链路(若仅超过流量整形速度限制,可多次重试) - continue; - } - - if (debug) { - dbg.append(tri+"\n"); - dbg.append("matched.\n"); - } - //链路可用,处理并转发数据包 - processPacket(iPv6Packet, tri,reroute); - return true; - - } - if(retry) { - if(System.nanoTime()-start>1000000L) { - break; - } - /*try { - Thread.sleep(1); - } catch (InterruptedException e) { - e.printStackTrace(); - }*/ - Thread.yield(); - //短暂挂起当前线程,待链路速度未超限时重试发送数据包 - } - }while((!routes.isEmpty())&&retry); - if (debug) { - dbg.append("miss.\n"); - } - //负载均衡未匹配成功,若数据包支持ECN,打上拥塞标记位 - if(iPv6Packet.isEnableECN()) { - iPv6Packet.markCE(); - if (debug) { - dbg.append("ECN enabled.\n"); - } - } - - for (RouteItem tri: routes) { - - if (!tri.getDestlink().isUp()) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("linkdown.\n"); - } - continue; - } - if (tri.getDestlink().isCongress(iPv6Packet,25.0)) { - if (debug) { - dbg.append(tri+"\n"); - dbg.append("congress.\n"); - } - //缓冲区留部分余量避免丢包 - continue; - } - processPacket(iPv6Packet, tri,reroute); - return true; - } - //仍未成功发送,丢弃数据包 return false; } - private void processPacket(IPv6Packet iPv6Packet, RouteItem ri, boolean reroute) throws IllegalRawDataException, IOException { - int hop = iPv6Packet.getHopLimit(); - - if (ri.getDestlink().isLoopBack()) { - IPv6SegmentRoutingHeader srhh =iPv6Packet. getSRHHeader(); - if (srhh != null) { - processSRv6Packet(iPv6Packet, ri, srhh,reroute); - } else { - ri.getDestlink().sendPacket(iPv6Packet, ri.getNexthop()); - } - } else { - if(iPv6Packet.getRerouteCounter().getAndIncrement()>=MAX_REROUTE_COUNT) { - - //System.out.println("reroute count >=2"); - return; - } - - if(!reroute) { - // if(!iPv6Packet.isTTLdecreased()) { - hop--; - /* iPv6Packet.setTTLdecreased(true); - }else { - System.out.print("ttl err"); - }*/ - } - // System.out.println(ipp.getHeader().getSrcAddr()+"->"+ipp.getHeader().getDstAddr()+" - // "+(hop+1)+"->"+hop); - if (hop > 0) { - - iPv6Packet.setHopLimit(hop); - ri.getDestlink().sendPacket(iPv6Packet, ri.getNexthop()); - } else { - IcmpV6TimeExceededPacket.Builder icmpte = new IcmpV6TimeExceededPacket.Builder(); - ByteBuffer IPv6data = NetworkPacket.bufferAllocator.allocate(65535); - iPv6Packet.writeToChannel(KNEChannels.newWritableChannel(IPv6data)); - byte[] raw = new byte[IPv6data.remaining()]; - IPv6data.get(0, raw); - icmpte.payload(IpV6Packet.newPacket(raw, 0, raw.length)); + private volatile List routeTable0 = new ArrayList<>(); // 当前路由表 - IcmpV6CommonPacket.Builder icbd = new IcmpV6CommonPacket.Builder(); - icbd.type(IcmpV6Type.TIME_EXCEEDED); - icbd.code(IcmpV6Code.HOP_LIMIT_EXCEEDED); - icbd.srcAddr(locator.getAddress()); - icbd.dstAddr(iPv6Packet.getSourceAddress()); - icbd.correctChecksumAtBuild(true); - icbd.payloadBuilder(icmpte); - - IPv6Packet icmpv = new IPv6Packet(); - icmpv.setSourceAddress(locator.getAddress()); - icmpv.setDestinationAddress(iPv6Packet.getSourceAddress()); - icmpv.setTrafficClass(iPv6Packet.getTrafficClass()); - icmpv.setVersion(6); - icmpv.setFlowLabel(0); - icmpv.setHopLimit(255); - IPv6Payload ipl = new IPv6Payload(IpNumber.ICMPV6.value()); - ipl.getData().put(icbd.build().getRawData()); - ipl.getData().flip(); - icmpv.setPayload(ipl); - insertSRHandRoutePacket(icmpv); - } + // 前缀长度索引的路由表 + private volatile ArrayList>> routeTabel1=new ArrayList>>(IPv6_BITS+1); + { + // 初始化索引路由表 + for (int i = 0; i < IPv6_BITS+1; i++) { + routeTabel1.add(new HashMap>()); } - } - private void processSRv6Packet(IPv6Packet iPv6Packet, RouteItem ri, IPv6SegmentRoutingHeader srhh, boolean reroute) + // 路由数据包(默认非重路由) + private void routePacket(IPv6Packet iPv6Packet) { + routePacket(iPv6Packet, false); + } + + // 路由数据包主方法 + private void routePacket(IPv6Packet iPv6Packet, boolean reroute) { + StringBuilder dbg = null; + if (debug) { + dbg = new StringBuilder(); // 调试信息 + } + try { + int hop = iPv6Packet.getHopLimit(); // 获取跳数限制 + if (hop > 0) { // 检查TTL值,只有大于0才会被转发 + // 搜索匹配的路由表项 + ListsearchResult=searchTable(iPv6Packet, reroute, dbg); + if (!searchResult.isEmpty()) { + // 匹配到路由表,执行负载均衡路由 + routingLoadBalance(iPv6Packet, reroute, dbg, searchResult); + return; + } + + if (debug) + dbg.append("noroute\n"); + + // 未找到路由,尝试FRR(快速重路由)保护 + IPv6SegmentRoutingHeader srh = iPv6Packet.getSRHHeader(); + if (srh != null) { + System.out.println("原SRH:" + srh); + int segmentsLeft = srh.getSegmentsLeft(); + if (segmentsLeft > 0) { + srh.getAddresses().remove(segmentsLeft); // 移除当前故障段 + segmentsLeft--; + } + // 创建修复段列表 + List repairSegments = klalbRouteProtol + .createSegmentList(srh.getAddresses().get(segmentsLeft)); + if (repairSegments == null || repairSegments.isEmpty()) { + System.out.println("FRR保护失败"); + return; + } + repairSegments.remove(0); // 移除第一个段(当前节点) + srh.getAddresses().addAll(segmentsLeft + 1, repairSegments); // 添加修复段 + segmentsLeft += repairSegments.size(); // 更新剩余段数 + srh.setSegmentsLeft(segmentsLeft); + iPv6Packet.setDestinationAddress(srh.getAddresses().get(segmentsLeft)); // 更新目的地址 + } else { + return; + } + System.out.println("FRR修复SRH:" + srh); + // 重新搜索路由表 + ListsearchResult2=searchTable(iPv6Packet, reroute, dbg); + if (!searchResult2.isEmpty()) { + routingLoadBalance(iPv6Packet, reroute, dbg, searchResult2); + return; + } + + } else { + // TTL超时,发送ICMP超时消息 + sendTTLExceedPacket(iPv6Packet); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (debug) { + System.out.println(dbg.toString()); // 输出调试信息 + } + } + } + + // 搜索路由表找到匹配的路由项 + private List searchTable(IPv6Packet iPv6Packet, boolean reroute, StringBuilder dbg) throws IllegalRawDataException, IOException { - - if (srhh.getSegmentsLeft() <= 0) { - ri.getDestlink().sendPacket(iPv6Packet, ri.getNexthop()); - } else { - if(reroute) { - - }else { - int newSL = srhh.getSegmentsLeft() - 1; - srhh.setSegmentsLeft(newSL); - iPv6Packet.setDestinationAddress(srhh.getAddresses().get(newSL)); - } - if(iPv6Packet.getPayload().getProtocolNumber()!=KLALBRoutingProtocol.DEFAULT_PROTOCOL_NUMBER) - klalbRouteProtol.putHotspotAddress(iPv6Packet.getSourceAddress()); - routePacket(iPv6Packet,reroute); + if (debug) { + dbg.append("----------------------------------------\n"); + dbg.append("packet:" + iPv6Packet.getSourceAddress().getHostAddress() + " -> " + + iPv6Packet.getDestinationAddress().getHostAddress() + "\n"); } + + List table = null; + IPv6RouteTableKey rk6= iPv6Packet.getDestinationRouteTableKey(); + // 最长前缀匹配搜索 + for(int i=128;i>=0;i--) { + rk6.applyMask(i); // 应用掩码 + table=routeTabel1.get(i).get(rk6); // 查找匹配的路由表 + if(table!=null) { + break; // 找到匹配 + } + } + + RouteItem prevr = null; + List routes = new ArrayList<>(); + + if(table ==null) { + return routes; // 无匹配路由 + } + + // 遍历路由表,筛选可用路由 + for (RouteItem tri : table) { + if (!tri.getDestlink().isUp()) { // 检查链路状态 + if (debug) { + dbg.append(tri + "\n"); + dbg.append("linkdown.\n"); + } + continue; // 跳过断开连接的链路 + } + if (debug) { + dbg.append(tri + "\n"); + dbg.append("matched.\n"); + } + // 检查ECMP(等价多路径)条件 + if (prevr != null) { + if (!tri.ECMPequals(prevr)) { + return routes; // 非ECMP路由,返回当前结果 + } + } + routes.add(tri); // 添加到可用路由列表 + prevr = tri; + } + return routes; } + + private ReentrantLock congressLock=new ReentrantLock(); // 拥塞锁 + private Condition congressCondition=congressLock.newCondition(); // 拥塞条件 + + // 负载均衡路由 + private boolean routingLoadBalance(IPv6Packet iPv6Packet, boolean reroute, StringBuilder dbg, + List routes) throws IllegalRawDataException, IOException { + + double cscale = 1.0; // 拥塞检测比例因子 + if (iPv6Packet.getPayload().getProtocolNumber() == 6) { // TCP协议 + cscale = 15.0; // TCP使用更高的拥塞检测阈值 + } + + if(iPv6Packet.getPreviousLink()!=null) { + List prev=new ArrayList<>(); + for (Iterator iterator = routes.iterator(); iterator.hasNext();) { + RouteItem routeItem = (RouteItem) iterator.next(); + if(routeItem.getDestlink().equals(iPv6Packet.getPreviousLink())) { + prev.add(routeItem); + iterator.remove(); + } + } + routes.addAll(prev); + } + for(double i=1;i<10;i+=0.1) { + if(loadBalance(iPv6Packet,reroute,dbg,routes,cscale*i,i==1)) { + return true; + } + + if (iPv6Packet.isEnableECN()) { // 启用ECN + iPv6Packet.markCE(); // 标记拥塞 + if (debug) { + dbg.append("ECN enabled.\n"); + } + } + } + System.out.println("Send failed:"+iPv6Packet); + if (debug) { + dbg.append("miss.\n"); // 路由失败 + } + return false; // 路由失败 + } + private boolean loadBalance(IPv6Packet iPv6Packet, boolean reroute, StringBuilder dbg, List routes, + double cscale, boolean checkSpeedLimit) throws IllegalRawDataException, IOException { + // 遍历可用路由进行负载均衡 + for (RouteItem tri : routes) { + IPv6NetworkLink link = tri.getDestlink(); + if (!link.isUp()) { // 检查链路状态 + if (debug) { + dbg.append(tri + "\n"); + dbg.append("linkdown.\n"); + } + continue; // 跳过断开链路 + } + if (link.isCongress(iPv6Packet, cscale)) { // 检查拥塞 + if (debug) { + dbg.append(tri + "\n"); + dbg.append("congress.\n"); + } + continue; // 跳过拥塞链路 + } + + if (link.isReachSpeedLimit(iPv6Packet)&&checkSpeedLimit) { // 检查速度限制 + if (debug) { + dbg.append(tri + "\n"); + dbg.append("reachspeedlimit.\n"); + } + continue; // 跳过达到限速的链路 + } + + if (debug) { + dbg.append(tri + "\n"); + dbg.append("matched.\n"); + } + // 找到可用链路,处理数据包 + processPacket(iPv6Packet, tri, reroute); + return true; + } + return false; + } + + // 处理数据包转发 + private void processPacket(IPv6Packet iPv6Packet, RouteItem ri, boolean reroute) + throws IllegalRawDataException, IOException { + int hop = iPv6Packet.getHopLimit(); + + if (ri.getDestlink().isLoopBack()) { // 环回链路处理 + IPv6SegmentRoutingHeader srhh = iPv6Packet.getSRHHeader(); + if (srhh != null) { + processSRv6Packet(iPv6Packet, ri, srhh, reroute); // SRv6特殊处理 + } else { + sendPacketToRouteItem(iPv6Packet, ri); + } + } else { // 普通链路处理 + // 检查重路由计数 + if (iPv6Packet.getRerouteCounter().getAndIncrement() >= MAX_REROUTE_COUNT) { + return; // 超过最大重路由次数,丢弃 + } + + if (!reroute) { + hop--; // 减少TTL(非重路由时) + } + + if (hop > 0) { // TTL有效 + iPv6Packet.setHopLimit(hop); // 更新TTL + sendPacketToRouteItem(iPv6Packet, ri); // 发送数据包 + } else { + sendTTLExceedPacket(iPv6Packet); // TTL超时 + } + } + } + + private void sendPacketToRouteItem(IPv6Packet iPv6Packet, RouteItem ri) throws IOException { + IPv6NetworkLink oldLink=iPv6Packet.getPreviousLink(); + /*if(oldLink!=null) { + System.out.println("重传:"+!oldLink.equals(ri.getDestlink())); + }*/ + //System.out.println(iPv6Packet.getHeaders()); + iPv6Packet.setPreviousLink(ri.getDestlink()); + ri.getDestlink().sendPacket(iPv6Packet, ri.getNexthop()); + } + + // 发送ICMP TTL超时消息 + private void sendTTLExceedPacket(IPv6Packet iPv6Packet) throws IOException, IllegalRawDataException { + // 构建IPv6数据包封装ICMP消息 + IPv6Packet icmpv = new IPv6Packet(); + icmpv.setSourceAddress(locator.getAddress()); + icmpv.setDestinationAddress(iPv6Packet.getSourceAddress()); + icmpv.setTrafficClass(iPv6Packet.getTrafficClass()); + icmpv.setVersion(6); + icmpv.setFlowLabel(0); + icmpv.setHopLimit(255); // ICMP消息TTL设为最大值 + ICMPv6TimeExceededPacket ipl = ICMPv6TimeExceededPacket.createHopLimitExceeded(iPv6Packet); + ipl.setParent(icmpv); + ipl.updateChecksum(); + icmpv.setPayload(ipl); + insertSRHandRoutePacket(icmpv); // 插入SRH并路由ICMP消息 + } + + // 处理SRv6数据包 + private void processSRv6Packet(IPv6Packet iPv6Packet, RouteItem ri, IPv6SegmentRoutingHeader srhh, boolean reroute) + throws IllegalRawDataException, IOException { + + if (srhh.getSegmentsLeft() <= 0) { // 所有段已处理完毕 + sendPacketToRouteItem(iPv6Packet, ri); + } else { + if (reroute) { + // 重路由处理 + } else { + // 正常SRv6处理:移动到下一个段 + int newSL = srhh.getSegmentsLeft() - 1; + srhh.setSegmentsLeft(newSL); // 更新剩余段数 + iPv6Packet.setDestinationAddress(srhh.getAddresses().get(newSL)); // 更新目的地址 + } + // 记录热点地址(用于流量工程) + if (iPv6Packet.getPayload().getProtocolNumber() != KLALBRoutingProtocol.DEFAULT_PROTOCOL_NUMBER) + klalbRouteProtol.putHotspotAddress(iPv6Packet.getSourceAddress()); + routePacket(iPv6Packet, reroute); // 继续路由 + } + } + + // 构造函数 public SRv6Router(Inet6AddressGroup hostAddress) { super(); this.locator = hostAddress; - //this.inLoopBackSRv6=new LoopbackIPv6NetworkLink(locator.getAddress()); - this.hostLoopBack= new LoopbackIPv6NetworkLink(hostAddress.getAddress()); - linkTabel.add(inLoopBack); - //linkTabel.add(inLoopBackSRv6); - linkTabel.add(hostLoopBack); + // 创建环回链路 + this.inLoopBack = new LoopbackIPv6NetworkLink(List.of(new Inet6AddressGroup(LOOPBACK_ADDRESS, 128) ,hostAddress),this); + linkTabel.add(inLoopBack); // 添加到链路表 } - /*public SRv6Router() { - super(); - linkTabel.add(inLoopBack); - }*/ - - private KLALBRoutingProtocol klalbRouteProtol = null; + private KLALBRoutingProtocol klalbRouteProtol = null; // KLALB路由协议实例 + // 启动KLALB路由协议 public void runKLALBRouteProtocol() { if (klalbRouteProtol != null) throw new IllegalStateException("KLALB routing protocol is already running!"); klalbRouteProtol = new KLALBRoutingProtocol(this); - klalbRouteProtol.start(); + klalbRouteProtol.start(); // 启动协议 } public KLALBRoutingProtocol getKlalbRouteProtol() { return klalbRouteProtol; } - private Map protocolNumberRegister = new ConcurrentHashMap<>(256*2); - - public Map getProtocolNumberRegister() { - return protocolNumberRegister; + public LoopbackIPv6NetworkLink getinLoopback() { + return inLoopBack; } - - /*public void putProtocolNumberPacketAndInsertSRHAsync(IPv6Packet pkt) { - // inLoopBack.getReceiveConsumer().accept(pkt); - srhReceive.accept(pkt); + // 获取邻居信息 + public List getNeighbors() { + List result=new ArrayList<>(); + Listlinks=getLinkTabel(); + Object[] nls=links.toArray(); + for(int i=0;ineis=nl.getNeighborsInfo(); + for (Iterator iteratorx = neis.iterator(); iteratorx.hasNext();) { + Neighbor addresses = (Neighbor) iteratorx.next(); + result.add(addresses); // 添加邻居信息 + } + } + } + return result; } - public void putProtocolNumberPacketAsync(IPv6Packet pkt) { - // inLoopBack.getReceiveConsumer().accept(pkt); - defaultReceive.accept(pkt); - }*/ -} + // 获取所有定位器 + public Set getLocators() { + Set result=new HashSet<>(); + Listlinks=getLinkTabel(); + Object[] nls=links.toArray(); + for(int i=0;ineis=nl.getNeighborsInfo(); + for (Iterator iteratorx = neis.iterator(); iteratorx.hasNext();) { + Neighbor addresses = (Neighbor) iteratorx.next(); + if(addresses.getLocator()!=null) + result.add(addresses.getLocator()); // 添加邻居定位器 + } + } + } + return result; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/srv6/SRv6RouterListener.java b/src/org/kne/cloud/network/srv6/SRv6RouterListener.java new file mode 100644 index 0000000..5679a6b --- /dev/null +++ b/src/org/kne/cloud/network/srv6/SRv6RouterListener.java @@ -0,0 +1,7 @@ +package org.kne.cloud.network.srv6; + +import org.kne.cloud.network.ipv6.IPv6NetworkLink; + +public interface SRv6RouterListener { + public void onLinkChanged(SRv6Router router,IPv6NetworkLink link) ; +} diff --git a/src/org/kne/cloud/network/tcp/TCPOptionTLV.java b/src/org/kne/cloud/network/tcp/TCPOptionTLV.java index a57e5a9..87fff9a 100644 --- a/src/org/kne/cloud/network/tcp/TCPOptionTLV.java +++ b/src/org/kne/cloud/network/tcp/TCPOptionTLV.java @@ -7,161 +7,251 @@ import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import org.kne.cloud.network.NetworkPacket; -import org.kne.cloud.network.klalb.KLALBPacket; +import org.kne.cloud.network.ipv6.TLV; -public class TCPOptionTLV extends NetworkPacket { - public static final int PAD1=0; - public static final int PADN=4; - public static final int HMAC=5; - public static final int SEQS=7; - public static final int ACKSEQS=8; - - private int headerLength=2; - - public int getHeaderLength() { - return headerLength; - } - - private boolean isDefault; - - protected volatile ByteBuffer header; - - private ByteBuffer data; - - public TCPOptionTLV(ByteBuffer header ) { - this(header,true); - } - - public ByteBuffer getData() { - return data; - } - - public TCPOptionTLV(ByteBuffer header ,boolean isDefault ) { - super(); - this.header = header; - this.isDefault=isDefault; - if(getType()==PAD1) - headerLength=1; - if(isDefault&&(headerLength>1)) { - data=ByteBuffer.allocate(512); - } - } - public TCPOptionTLV(int type) { - this(type,true); - } - public TCPOptionTLV(int type,boolean isDefault) { - super(); - this.header=ByteBuffer.allocate(2); - this.isDefault=isDefault; - header.put((byte) type); - if(type==PAD1) { - headerLength=1; - } - if(isDefault&&(headerLength>1)) { - data=ByteBuffer.allocate(512); - } - } - - @Override - public long getLength() { - return headerLength+(isDefault?data.limit():0); - } - - public static TCPOptionTLV readIPv6SegmentRoutingTLVFromChannel(ReadableByteChannel din) throws IOException { - ByteBuffer bbf= ByteBuffer.allocate(2); - bbf.limit(1); - while (bbf.hasRemaining()) { - if (din.read(bbf) == -1) { - return null; - } - } - int type=bbf.get(0)&0xff; - TCPOptionTLV rtlv; - switch(type) { - /*case PAD1: - rtlv=new PAD1SegmentRoutingTLV(bbf); - rtlv.readFromChannel(din); - return rtlv; - case PADN: - rtlv=new PADNSegmentRoutingTLV(bbf); - rtlv.readFromChannel(din); - return rtlv; - case SEQS: - rtlv=new SEQSSegmentRoutingTLV(bbf); - rtlv.readFromChannel(din); - return rtlv; - case ACKSEQS: - rtlv=new ACKSEQSSegmentRoutingTLV(bbf); - rtlv.readFromChannel(din); - return rtlv;*/ - default: - rtlv=new TCPOptionTLV(bbf); - rtlv.readFromChannel(din); - return rtlv; - } - } - public static void writeIPv6SegmentRoutingTLVToChannel(WritableByteChannel dto,TCPOptionTLV tlv) throws IOException { - tlv.writeToChannel(dto); - } - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - if(isDefault&&(headerLength>1)) { - setDataLength(data.limit()); - } - header.limit(headerLength); - dto.write(header.slice(0,header.limit())); - if(isDefault&&(headerLength>1)) { - dto.write(data.slice(0, data.limit())); - } - } - - @Override - public void readFromChannel(ReadableByteChannel din, long length) throws IOException { - header.limit(1); - while (header.hasRemaining()) { - if (din.read(header) == -1) { - throw new EOFException(); - } - } - if(headerLength>1) { - header.limit(2); - while (header.hasRemaining()) { - if (din.read(header) == -1) { - throw new EOFException(); - } - } - } - header.flip(); - - if(isDefault&&(headerLength>1)) { - data.clear(); - data.limit(getDataLength()); - while(data.hasRemaining()){ - if(din.read(data)==-1) { - throw new EOFException(); - } - } - data.flip(); - } - } - - @Override - protected boolean needEndPosition() { - return false; - } - - public int getType() { - return header.get(0)&0xff; - } - public void setType(int type) { - header.put(0,(byte) type); - } - - public int getDataLength() { - return header.get(1)&0xff; - } - - public void setDataLength(int dataLength) { - header.put(1,(byte) dataLength); - } +/** + * TCP选项TLV基类 + * 遵循RFC 793和后续扩展的TCP选项格式 + */ +public class TCPOptionTLV extends TLV { + + /** + * 构造函数 - 从ByteBuffer创建 + */ + public TCPOptionTLV(ByteBuffer header, boolean isDefault) { + super(header, isDefault); + } + + /** + * 构造函数 - 指定类型创建 + */ + public TCPOptionTLV(int type, boolean isDefault) { + super(type, isDefault); + } + + /** + * 从通道读取TCP选项TLV + */ + public static TCPOptionTLV readTCPOptionTLVFromChannel(ReadableByteChannel din) throws IOException { + ByteBuffer typeBuffer = NetworkPacket.bufferAllocator.allocate(1); + typeBuffer.limit(1); + while (typeBuffer.hasRemaining()) { + if (din.read(typeBuffer) == -1) { + return null; + } + } + typeBuffer.flip(); + int type = typeBuffer.get(0) & 0xff; + + TCPOptionTLV tcpOption; + switch(type) { + case TCPEndOption.END_OF_OPTION_LIST: + tcpOption = new TCPEndOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + case TCPNopOption.NO_OPERATION: + tcpOption = new TCPNopOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + case TCPMssOption.MAXIMUM_SEGMENT_SIZE: + tcpOption = new TCPMssOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + case TCPWindowScaleOption.WINDOW_SCALE: + tcpOption = new TCPWindowScaleOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + case TCPSackPermittedOption.SACK_PERMITTED: + tcpOption = new TCPSackPermittedOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + case TCPTimestampOption.TIMESTAMP: + tcpOption = new TCPTimestampOption(typeBuffer); + tcpOption.readFromChannel(din, 0); + return tcpOption; + default: + // 未知选项类型,按通用选项处理 + tcpOption = new TCPOptionTLV(typeBuffer, true); + tcpOption.readFromChannel(din, 0); + return tcpOption; + } + } + + /** + * 写入TCP选项TLV到通道 + */ + public static void writeTCPOptionTLVToChannel(WritableByteChannel dto, TCPOptionTLV tlv) throws IOException { + tlv.writeToChannel(dto); + } + + } + +/** + * End of Option List TCP选项 + */ +class TCPEndOption extends TCPOptionTLV { + public static final int END_OF_OPTION_LIST = 0; + + public TCPEndOption(ByteBuffer header) { + super(header, false); + setHeaderLength(1); // 单字节选项 + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + // 单字节选项,不需要读取额外数据 + } + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 只写入类型字节 + header.limit(1); + dto.write(header.slice(0, 1)); + } + + @Override + public long getTotalLength() { + return 1; + } +} + +/** + * No-Operation TCP选项 + */ +class TCPNopOption extends TCPOptionTLV { + public static final int NO_OPERATION = 1; + + public TCPNopOption(ByteBuffer header) { + super(header, false); + setHeaderLength(1); // 单字节选项 + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + // 单字节选项,不需要读取额外数据 + } + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 只写入类型字节 + header.limit(1); + dto.write(header.slice(0, 1)); + } + + @Override + public long getTotalLength() { + return 1; + } +} + +/** + * Maximum Segment Size TCP选项 + */ +class TCPMssOption extends TCPOptionTLV { + public static final int MAXIMUM_SEGMENT_SIZE = 2; + + public TCPMssOption(ByteBuffer header) { + super(header, true); + } + + public TCPMssOption(int mss) { + super(MAXIMUM_SEGMENT_SIZE, true); + setDataLength(2); + ByteBuffer dataBuffer = NetworkPacket.bufferAllocator.allocate(2); + dataBuffer.putShort((short) mss); + dataBuffer.flip(); + getData().put(dataBuffer); + } + + public int getMssValue() { + if (getData() != null && getData().remaining() >= 2) { + ByteBuffer duplicate = getData().duplicate(); + return duplicate.getShort() & 0xFFFF; + } + return 0; + } +} + +/** + * Window Scale TCP选项 + */ +class TCPWindowScaleOption extends TCPOptionTLV { + public static final int WINDOW_SCALE = 3; + + public TCPWindowScaleOption(ByteBuffer header) { + super(header, true); + } + + public TCPWindowScaleOption(int scaleFactor) { + super(WINDOW_SCALE, true); + setDataLength(1); + ByteBuffer dataBuffer = NetworkPacket.bufferAllocator.allocate(1); + dataBuffer.put((byte) scaleFactor); + dataBuffer.flip(); + getData().put(dataBuffer); + } + + public int getScaleFactor() { + if (getData() != null && getData().remaining() >= 1) { + ByteBuffer duplicate = getData().duplicate(); + return duplicate.get() & 0xFF; + } + return 0; + } +} + +/** + * SACK Permitted TCP选项 + */ +class TCPSackPermittedOption extends TCPOptionTLV { + public static final int SACK_PERMITTED = 4; + + public TCPSackPermittedOption(ByteBuffer header) { + super(header, true); + setDataLength(0); // 无数据部分 + } + + public TCPSackPermittedOption() { + super(SACK_PERMITTED, true); + setDataLength(0); // 无数据部分 + } +} + +/** + * Timestamp TCP选项 + */ +class TCPTimestampOption extends TCPOptionTLV { + public static final int TIMESTAMP = 8; + + public TCPTimestampOption(ByteBuffer header) { + super(header, true); + } + + public TCPTimestampOption(int tsValue, int tsEchoReply) { + super(TIMESTAMP, true); + setDataLength(8); + ByteBuffer dataBuffer = NetworkPacket.bufferAllocator.allocate(8); + dataBuffer.putInt(tsValue); + dataBuffer.putInt(tsEchoReply); + dataBuffer.flip(); + getData().put(dataBuffer); + } + + public long getTimestampValue() { + if (getData() != null && getData().remaining() >= 8) { + ByteBuffer duplicate = getData().duplicate(); + return duplicate.getInt() & 0xFFFFFFFFL; + } + return 0; + } + + public long getTimestampEchoReply() { + if (getData() != null && getData().remaining() >= 8) { + ByteBuffer duplicate = getData().duplicate(); + duplicate.position(4); + return duplicate.getInt() & 0xFFFFFFFFL; + } + return 0; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/tcp/TCPPacket.java b/src/org/kne/cloud/network/tcp/TCPPacket.java index 81967b4..63f1132 100644 --- a/src/org/kne/cloud/network/tcp/TCPPacket.java +++ b/src/org/kne/cloud/network/tcp/TCPPacket.java @@ -1,191 +1,476 @@ package org.kne.cloud.network.tcp; +import java.io.EOFException; +import java.io.IOException; import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; import java.util.ArrayList; import java.util.List; import org.kne.cloud.network.NetworkPacket; import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; -public class TCPPacket extends IPv6Payload{ - private ByteBuffer header=NetworkPacket.bufferAllocator.allocate(20); - - private Listoptions=new ArrayList(); - - public TCPPacket() { - super(6,false); - } - - public int getSrcPort() { - return header.getChar(0); - } - - public void setSrcPort(int srcPort) { - header.putChar(0, (char) srcPort); - } - - public int getDstPort() { - return header.getChar(2); - } - - public void setDstPort(int dstPort) { - header.putChar(2, (char) dstPort); - } - - public long getSeqNumber() { - return header.getInt(4)&0xffffffff; - } - - public void setSeqNumber(long seqNumber) { - header.putInt(4,(int) seqNumber); - } - - public long getAckNumber() { - return header.getInt(8)&0xffffffff; - } - - public void setAckNumber(long ackNumber) { - header.putInt(8,(int) ackNumber); - } - - public int getHeaderLength() { - return (header.get(12)>>>4)&0b1111; - } - - public void setHeaderLength(int headerLength) { - header.put(12, (byte) ((header.get(12)&0b00001111)|((headerLength&0b1111)<<4))); - } - - - public boolean isNS() { - return (header.get(12)&1)!=0; - } - - public void setNS(boolean ns) { - if(ns) { - header.put(12,(byte) (header.get(12)|0b00000001)); - }else { - header.put(12,(byte) (header.get(12)&0b11111110)); - } - } - - public boolean isCWR() { - return (header.get(13)&0b10000000)!=0; - } - - public void setCWR(boolean cwr) { - if(cwr) { - header.put(13,(byte) (header.get(13)|0b10000000)); - }else { - header.put(13,(byte) (header.get(13)&0b01111111)); - } - } - - public boolean isECE() { - return (header.get(13)&0b01000000)!=0; - } - - public void setECE(boolean ece) { - if(ece) { - header.put(13,(byte) (header.get(13)|0b01000000)); - }else { - header.put(13,(byte) (header.get(13)&0b10111111)); - } - } - - public boolean isURG() { - return (header.get(13)&0b00100000)!=0; - } - - public void setURG(boolean urg) { - if(urg) { - header.put(13,(byte) (header.get(13)|0b00100000)); - }else { - header.put(13,(byte) (header.get(13)&0b11011111)); - } - } - - public boolean isACK() { - return (header.get(13)&0b00010000)!=0; - } - - public void setACK(boolean ack) { - if(ack) { - header.put(13,(byte) (header.get(13)|0b00010000)); - }else { - header.put(13,(byte) (header.get(13)&0b11101111)); - } - } - - public boolean isPSH() { - return (header.get(13)&0b00001000)!=0; - } - - public void setPSH(boolean psh) { - if(psh) { - header.put(13,(byte) (header.get(13)|0b00001000)); - }else { - header.put(13,(byte) (header.get(13)&0b11110111)); - } - } - - public boolean isRST() { - return (header.get(13)&0b00000100)!=0; - } - - public void setRST(boolean psh) { - if(psh) { - header.put(13,(byte) (header.get(13)|0b00000100)); - }else { - header.put(13,(byte) (header.get(13)&0b11111011)); - } - } - - public boolean isSYN() { - return (header.get(13)&0b00000010)!=0; - } - - public void setSYN(boolean syn) { - if(syn) { - header.put(13,(byte) (header.get(13)|0b00000010)); - }else { - header.put(13,(byte) (header.get(13)&0b11111101)); - } - } - - public boolean isFIN() { - return (header.get(13)&0b00000001)!=0; - } - - public void setFIN(boolean fin) { - if(fin) { - header.put(13,(byte) (header.get(13)|0b00000001)); - }else { - header.put(13,(byte) (header.get(13)&0b11111110)); - } - } - - public int getWindowSize() { - return header.getChar(14); - } - - public void setWindowSize(int windowSize) { - header.putChar(14,(char) windowSize); - } - - public int getCheckSum() { - return header.getChar(16); - } - - public void setCheckSum(int checkSum) { - header.putChar(16,(char) checkSum); - } - - public int getUrgentPointer() { - return header.getChar(18); - } - - public void setUrgentPointer(int urgentPointer) { - header.putChar(18,(char) urgentPointer); - } -} +public class TCPPacket extends IPv6Payload { + public static final int TCP_PROTOCOL_NUMBER = 6; + + // TCP头部常量 + private static final int TCP_HEADER_MIN_LENGTH = 20; + private static final int TCP_OPTIONS_MAX_LENGTH = 40; + + // TCP标志位掩码 + private static final int FLAG_NS = 0x100; + private static final int FLAG_CWR = 0x80; + private static final int FLAG_ECE = 0x40; + private static final int FLAG_URG = 0x20; + private static final int FLAG_ACK = 0x10; + private static final int FLAG_PSH = 0x08; + private static final int FLAG_RST = 0x04; + private static final int FLAG_SYN = 0x02; + private static final int FLAG_FIN = 0x01; + + private ByteBuffer header = NetworkPacket.bufferAllocator.allocate(TCP_HEADER_MIN_LENGTH); + private List options = new ArrayList<>(); + + public TCPPacket() { + super(TCP_PROTOCOL_NUMBER, false); + // 设置默认数据偏移量(头部长度) + setDataOffset(5); // 5 * 4 = 20字节 + } + + // ==================== 端口相关方法 ==================== + + public int getSrcPort() { + return header.getShort(0) & 0xFFFF; + } + + public void setSrcPort(int srcPort) { + if (srcPort < 0 || srcPort > 65535) { + throw new IllegalArgumentException("Source port must be between 0 and 65535"); + } + header.putShort(0, (short) srcPort); + } + + public int getDstPort() { + return header.getShort(2) & 0xFFFF; + } + + public void setDstPort(int dstPort) { + if (dstPort < 0 || dstPort > 65535) { + throw new IllegalArgumentException("Destination port must be between 0 and 65535"); + } + header.putShort(2, (short) dstPort); + } + + // ==================== 序列号相关方法 ==================== + + public long getSeqNumber() { + return header.getInt(4) & 0xFFFFFFFFL; + } + + public void setSeqNumber(long seqNumber) { + if (seqNumber < 0 || seqNumber > 0xFFFFFFFFL) { + throw new IllegalArgumentException("Sequence number must be between 0 and 2^32-1"); + } + header.putInt(4, (int) seqNumber); + } + + public long getAckNumber() { + return header.getInt(8) & 0xFFFFFFFFL; + } + + public void setAckNumber(long ackNumber) { + if (ackNumber < 0 || ackNumber > 0xFFFFFFFFL) { + throw new IllegalArgumentException("Acknowledgment number must be between 0 and 2^32-1"); + } + header.putInt(8, (int) ackNumber); + } + + // ==================== 数据偏移和保留位 ==================== + + public int getDataOffset() { + return (header.get(12) >>> 4) & 0x0F; + } + + public void setDataOffset(int dataOffset) { + if (dataOffset < 5 || dataOffset > 15) { + throw new IllegalArgumentException("Data offset must be between 5 and 15"); + } + header.put(12, (byte) ((header.get(12) & 0x0F) | ((dataOffset & 0x0F) << 4))); + } + + public boolean isNS() { + return (header.get(12) & 0x01) != 0; + } + + public void setNS(boolean ns) { + if (ns) { + header.put(12, (byte) (header.get(12) | 0x01)); + } else { + header.put(12, (byte) (header.get(12) & 0xFE)); + } + } + + // ==================== 标志位方法 ==================== + + public int getFlags() { + return header.get(13) & 0xFF; + } + + public void setFlags(int flags) { + header.put(13, (byte) flags); + } + + public boolean isCWR() { + return (getFlags() & FLAG_CWR) != 0; + } + + public void setCWR(boolean cwr) { + setFlag(FLAG_CWR, cwr); + } + + public boolean isECE() { + return (getFlags() & FLAG_ECE) != 0; + } + + public void setECE(boolean ece) { + setFlag(FLAG_ECE, ece); + } + + public boolean isURG() { + return (getFlags() & FLAG_URG) != 0; + } + + public void setURG(boolean urg) { + setFlag(FLAG_URG, urg); + } + + public boolean isACK() { + return (getFlags() & FLAG_ACK) != 0; + } + + public void setACK(boolean ack) { + setFlag(FLAG_ACK, ack); + } + + public boolean isPSH() { + return (getFlags() & FLAG_PSH) != 0; + } + + public void setPSH(boolean psh) { + setFlag(FLAG_PSH, psh); + } + + public boolean isRST() { + return (getFlags() & FLAG_RST) != 0; + } + + public void setRST(boolean rst) { + setFlag(FLAG_RST, rst); + } + + public boolean isSYN() { + return (getFlags() & FLAG_SYN) != 0; + } + + public void setSYN(boolean syn) { + setFlag(FLAG_SYN, syn); + } + + public boolean isFIN() { + return (getFlags() & FLAG_FIN) != 0; + } + + public void setFIN(boolean fin) { + setFlag(FLAG_FIN, fin); + } + + private void setFlag(int flag, boolean set) { + int flags = getFlags(); + if (set) { + flags |= flag; + } else { + flags &= ~flag; + } + setFlags(flags); + } + + // ==================== 窗口大小 ==================== + + public int getWindowSize() { + return header.getShort(14) & 0xFFFF; + } + + public void setWindowSize(int windowSize) { + if (windowSize < 0 || windowSize > 65535) { + throw new IllegalArgumentException("Window size must be between 0 and 65535"); + } + header.putShort(14, (short) windowSize); + } + + // ==================== 校验和 ==================== + + public int getChecksum() { + return header.getShort(16) & 0xFFFF; + } + + public void setChecksum(int checksum) { + header.putShort(16, (short) checksum); + } + + // ==================== 紧急指针 ==================== + + public int getUrgentPointer() { + return header.getShort(18) & 0xFFFF; + } + + public void setUrgentPointer(int urgentPointer) { + if (urgentPointer < 0 || urgentPointer > 65535) { + throw new IllegalArgumentException("Urgent pointer must be between 0 and 65535"); + } + header.putShort(18, (short) urgentPointer); + } + + // ==================== 选项处理 ==================== + + public List getOptions() { + return new ArrayList<>(options); + } + + public void addOption(TCPOptionTLV option) { + options.add(option); + } + + public void removeOption(TCPOptionTLV option) { + options.remove(option); + } + + public TCPOptionTLV findOptionByType(int type) { + for (TCPOptionTLV option : options) { + if (option.getType() == type) { + return option; + } + } + return null; + } + + /** + * 添加MSS选项 + */ + public void addMssOption(int mss) { + addOption(new TCPMssOption(mss)); + } + + /** + * 获取MSS值 + */ + public int getMssValue() { + TCPMssOption mssOption = (TCPMssOption) findOptionByType(TCPMssOption.MAXIMUM_SEGMENT_SIZE); + return mssOption != null ? mssOption.getMssValue() : 0; + } + + /** + * 添加窗口缩放选项 + */ + public void addWindowScaleOption(int scaleFactor) { + addOption(new TCPWindowScaleOption(scaleFactor)); + } + + /** + * 获取窗口缩放因子 + */ + public int getWindowScaleValue() { + TCPWindowScaleOption scaleOption = (TCPWindowScaleOption) findOptionByType(TCPWindowScaleOption.WINDOW_SCALE); + return scaleOption != null ? scaleOption.getScaleFactor() : 0; + } + + /** + * 添加SACK允许选项 + */ + public void addSackPermittedOption() { + addOption(new TCPSackPermittedOption()); + } + + /** + * 添加时间戳选项 + */ + public void addTimestampOption(int tsValue, int tsEchoReply) { + addOption(new TCPTimestampOption(tsValue, tsEchoReply)); + } + + /** + * 获取时间戳值 + */ + public long getTimestampValue() { + TCPTimestampOption tsOption = (TCPTimestampOption) findOptionByType(TCPTimestampOption.TIMESTAMP); + return tsOption != null ? tsOption.getTimestampValue() : 0; + } + + /** + * 获取时间戳回显值 + */ + public long getTimestampEchoReply() { + TCPTimestampOption tsOption = (TCPTimestampOption) findOptionByType(TCPTimestampOption.TIMESTAMP); + return tsOption != null ? tsOption.getTimestampEchoReply() : 0; + } + + // ==================== 数据部分处理 ==================== + + @Override + public long getTotalLength() { + int headerLength = TCP_HEADER_MIN_LENGTH + calculateOptionsLength(); + return headerLength + (getData() != null ? getData().limit() : 0); + } + + public int getPayloadLength() { + return getData() != null ? getData().limit() : 0; + } + + // ==================== 网络读写方法 ==================== + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 写入TCP基本头部(20字节) + header.position(0); + header.limit(TCP_HEADER_MIN_LENGTH); + dto.write(header); + + // 写入TCP选项 + for (TCPOptionTLV option : options) { + TCPOptionTLV.writeTCPOptionTLVToChannel(dto, option); + } + + // 写入选项填充(如果需要) + int optionsLength = calculateOptionsLength(); + int paddingNeeded = (4 - (optionsLength % 4)) % 4; + for (int i = 0; i < paddingNeeded; i++) { + ByteBuffer nop = ByteBuffer.allocate(1); + nop.put((byte) TCPNopOption.NO_OPERATION); + nop.flip(); + dto.write(nop); + } + + // 写入TCP数据负载 + if (getData() != null && getData().limit() > 0) { + getData().position(0); + dto.write(getData()); + } + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + // 读取TCP基本头部(20字节) + header.clear(); + header.limit(TCP_HEADER_MIN_LENGTH); + while (header.hasRemaining()) { + if (din.read(header) == -1) { + throw new EOFException(); + } + } + header.flip(); + + // 计算TCP头部总长度和选项长度 + int headerLength = getDataOffset() * 4; + int optionsLength = headerLength - TCP_HEADER_MIN_LENGTH; + + if (headerLength < TCP_HEADER_MIN_LENGTH || headerLength > (TCP_HEADER_MIN_LENGTH + TCP_OPTIONS_MAX_LENGTH)) { + throw new IOException("Invalid TCP header length: " + headerLength); + } + + // 读取TCP选项 + options.clear(); + if (optionsLength > 0) { + readOptionsFromChannel(din, optionsLength); + } + + // 读取TCP数据负载 + int payloadLength = (int) length - headerLength; + if (payloadLength > 0) { + if (getData() == null) { + // setData(NetworkPacket.bufferAllocator.allocate(payloadLength)); + } + getData().clear(); + getData().limit(payloadLength); + while (getData().hasRemaining()) { + if (din.read(getData()) == -1) { + throw new EOFException(); + } + } + getData().flip(); + } + } + + /** + * 从通道读取TCP选项 + */ + private void readOptionsFromChannel(ReadableByteChannel din, int optionsLength) throws IOException { + int bytesRead = 0; + + while (bytesRead < optionsLength) { + TCPOptionTLV option = TCPOptionTLV.readTCPOptionTLVFromChannel(din); + if (option == null) { + break; + } + + bytesRead += option.getTotalLength(); + options.add(option); + + // 如果遇到End选项,停止读取 + if (option.getType() == TCPEndOption.END_OF_OPTION_LIST) { + break; + } + } + + // 跳过剩余的选项字节(如果有) + int remaining = optionsLength - bytesRead; + if (remaining > 0) { + ByteBuffer skipBuffer = NetworkPacket.bufferAllocator.allocate(remaining); + skipBuffer.limit(remaining); + while (skipBuffer.hasRemaining()) { + if (din.read(skipBuffer) == -1) { + throw new EOFException(); + } + } + } + } + + // ==================== 辅助方法 ==================== + + private int calculateOptionsLength() { + int total = 0; + for (TCPOptionTLV option : options) { + total += (int) option.getTotalLength(); + } + return total; + } + + // ==================== 工具方法 ==================== + + @Override + public String toString() { + return String.format( + "TCPPacket[srcPort=%d, dstPort=%d, seq=%d, ack=%d, flags=%s, window=%d, options=%d, payload=%d bytes]", + getSrcPort(), getDstPort(), getSeqNumber(), getAckNumber(), getFlagsString(), + getWindowSize(), options.size(), getPayloadLength() + ); + } + + private String getFlagsString() { + StringBuilder sb = new StringBuilder(); + if (isFIN()) sb.append("FIN "); + if (isSYN()) sb.append("SYN "); + if (isRST()) sb.append("RST "); + if (isPSH()) sb.append("PSH "); + if (isACK()) sb.append("ACK "); + if (isURG()) sb.append("URG "); + if (isECE()) sb.append("ECE "); + if (isCWR()) sb.append("CWR "); + if (isNS()) sb.append("NS "); + return sb.toString().trim(); + } + + @Override + protected boolean needEndPosition() { + return true; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/tcp/UDPPacket.java b/src/org/kne/cloud/network/tcp/UDPPacket.java new file mode 100644 index 0000000..78caff0 --- /dev/null +++ b/src/org/kne/cloud/network/tcp/UDPPacket.java @@ -0,0 +1,218 @@ +package org.kne.cloud.network.tcp; + +import java.io.EOFException; +import java.io.IOException; +import java.net.Inet6Address; +import java.net.UnknownHostException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.util.Arrays; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.IPv6Packet; +import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; +import org.kne.cloud.network.klalb.PortPacket; +import org.kne.io.KNEChannels; + +public class UDPPacket extends IPv6Payload implements PortPacket { + public static final int UDP_PROTOCOL_NUMBER = 17; + public static final int UDP_HEADER_LENGTH = 8; // UDP头部固定8字节 + + private ByteBuffer header = NetworkPacket.bufferAllocator.allocate(UDP_HEADER_LENGTH); + private ByteBuffer data; + + public UDPPacket() { + super(UDP_PROTOCOL_NUMBER, false); + } + + public UDPPacket(int srcPort,int dstPort) { + super(UDP_PROTOCOL_NUMBER, false); + header.putChar((char) srcPort); + header.putChar((char) dstPort); + data = NetworkPacket.bufferAllocator.allocate(65535); + + } + + @Override + public long getTotalLength() { + return data.limit()+UDP_HEADER_LENGTH; + } + + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + setUDPLength(getDataLength() + UDP_HEADER_LENGTH); // 设置总长度(头+数据) + dto.write(header.slice(0, UDP_HEADER_LENGTH)); + dto.write(data.slice(0, data.limit())); + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + header.clear().limit(UDP_HEADER_LENGTH); + KNEChannels.readFully(din, header); + + // 读取数据部分(总长度减去头部长度) + int totalLength = getUDPLength(); + int dataLength = totalLength - UDP_HEADER_LENGTH; + + if (dataLength < 0) { + throw new IOException("Invalid UDP packet: total length < header length"); + } + + data = NetworkPacket.bufferAllocator.allocate(dataLength); + KNEChannels.readFully(din, data); + data.flip(); + } + + @Override + protected boolean needEndPosition() { + return false; + } + + public int getSrcPort() { + return header.getChar(0); + } + + public void setSrcPort(int srcPort) { + header.putChar(0, (char) srcPort); + } + + public int getDstPort() { + return header.getChar(2); + } + + public void setDstPort(int dstPort) { + header.putChar(2, (char) dstPort); + } + + /** + * 获取UDP数据包总长度(头部+数据) + */ + public int getUDPLength() { + return header.getChar(4); + } + + /** + * 设置UDP数据包总长度(头部+数据) + */ + public void setUDPLength(int totalLength) { + header.putChar(4, (char) totalLength); + } + + /** + * 获取数据部分长度(不包含头部) + */ + public int getDataLength() { + return data != null ? data.limit() : 0; + } + + public int getChecksum() { + return header.getChar(6); + } + + public void setChecksum(int checksum) { + header.putChar(6, (char) checksum); + } + + public ByteBuffer getData() { + return data; + } + + public int calculateChecksum() { + if (getParent() == null) { + throw new IllegalStateException("Parent IPv6 packet required for checksum calculation"); + } + + // 保存原始校验和值 + int originalChecksum = getChecksum(); + + try { + // 临时将校验和字段设为0 + setChecksum(0); + + long sum = 0; + + // IPv6伪首部 + byte[] srcAddr = new byte[16], dstAddr = new byte[16]; + getParent().getRawSourceAddress(srcAddr); + getParent().getRawDestinationAddress(dstAddr); + + for (int i = 0; i < 16; i += 2) { + sum += ((srcAddr[i] & 0xFF) << 8) | (srcAddr[i + 1] & 0xFF); + sum += ((dstAddr[i] & 0xFF) << 8) | (dstAddr[i + 1] & 0xFF); + } + + // 使用总长度(头部+数据) + int totalLength = getUDPLength(); + sum += (totalLength >>> 16) + totalLength; + sum += UDP_PROTOCOL_NUMBER; + + // UDP首部(此时校验和字段为0) + ByteBuffer headerCopy = header.duplicate(); + headerCopy.position(0).limit(UDP_HEADER_LENGTH); + while (headerCopy.remaining() >= 2) { + sum += headerCopy.getChar(); + } + + // UDP数据 + if (data != null && data.limit() > 0) { + ByteBuffer dataCopy = data.duplicate(); + dataCopy.position(0); + + while (dataCopy.remaining() >= 2) { + sum += dataCopy.getChar(); + } + + if (dataCopy.remaining() == 1) { + sum += (dataCopy.get() & 0xFF) << 8; + } + } + + // 折叠进位并取反 + while ((sum >> 16) != 0) { + sum = (sum & 0xFFFF) + (sum >> 16); + } + + int checksum = (int) (~sum & 0xFFFF); + return checksum == 0 ? 0xFFFF : checksum; + + } finally { + // 恢复原始校验和值 + setChecksum(originalChecksum); + } + } + + public void updateChecksum() { + setChecksum(calculateChecksum()); + } + + public boolean verifyChecksum() { + int storedChecksum = getChecksum(); + return storedChecksum == 0 || storedChecksum == calculateChecksum(); + } + + @Override + public String toString() { + byte[] b = new byte[Math.min(data.limit(), 10)]; + data.get(0, b); + return "UDP " + getSrcPort() + "->" + getDstPort() + " [Total:" + getUDPLength() + + ", Data:" + getDataLength() + "] " + Arrays.toString(b); + } + public static void main(String[] args) throws UnknownHostException { + UDPPacket udp=new UDPPacket(1234,1234); + udp.getData().put((byte) 234); + udp.getData().flip(); + IPv6Packet ipv=new IPv6Packet(); + ipv.setSourceAddress((Inet6Address) Inet6Address.getByName("::1")); + ipv.setDestinationAddress((Inet6Address) Inet6Address.getByName("::2")); + udp.setParent(ipv); + System.out.println(udp.calculateChecksum()); + udp.setChecksum(1); + System.out.println(udp.verifyChecksum()); + udp.updateChecksum(); + System.out.println(udp.verifyChecksum()); + } + + +} \ No newline at end of file diff --git a/src/org/kne/io/KNEChannels.java b/src/org/kne/io/KNEChannels.java index 2256589..0af9eb9 100644 --- a/src/org/kne/io/KNEChannels.java +++ b/src/org/kne/io/KNEChannels.java @@ -2,6 +2,7 @@ package org.kne.io; import java.io.EOFException; import java.io.IOException; +import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.nio.channels.SocketChannel; @@ -33,7 +34,11 @@ public class KNEChannels { int opos=src.position(); //System.out.println(bbf+" "+src); //FastLib .bufferPut(bbf,src); + try { bbf.put(src); + }catch(BufferOverflowException e) { + throw new IOException(src.toString()+" "+bbf.toString(), e); + } return src.position()-opos; } }

~P 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 literal 0 HcmV?d00001 diff --git a/src/assets/speedtest.png b/src/assets/speedtest.png new file mode 100644 index 0000000000000000000000000000000000000000..68199e26f9deb89f14ddd86cc19ec2e0a8c3fe48 GIT binary patch literal 6626 zcmbW43p~^9+rWPqZ8V02=`fQ+Wz1n>p*4hZSdw&5n;A2kE#_Fsm~~LmQ<7s_dYDq_ zNFGF#%DI-7Ls3E`Iv}TdfAc&~pa1`T|L^<%yni42T)+GNUe|Ts_jO(Owf&Bfyj
QBot#LKKCVQRyNi>J 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 literal 0 HcmV?d00001 diff --git a/src/assets/speedtest3.png b/src/assets/speedtest3.png new file mode 100644 index 0000000000000000000000000000000000000000..643e639c6cbc2e0ec1253c88c413d45a072721ee GIT binary patch literal 18038 zcmch8Wmug}tl+_2i#rDj#ogVZ<={{#?(XgsiaQi2THLL8aVcJ)xLYYu+}-x2pX}Ye zcjeh1%X5G^BbiK+$t0OfxRQbl8Zr?w2n0ftla*8ffuO9Oe-Yt<8jd;44d5TFxfnzY z1o{$-a&HI+0wK#;N=PUEN8sc-u zUs7z|gTPefhy$2fxtIwc!w;C)qP@Xk$Qn4fSQ)bF-vXzRWi!KmX1{7O7mEmc7pbnp zdq}=iRPXC`bZ~Gtd)K<1v3)=4IffB{g-sK`m1_m!QwbL2pCgY|l>Ii?766Say9P^v zxi#Ev4%Z6;9m9Bf__s{$T%y7`pMFoL_Vp zaU)JN!<&@AkbcjvD)Ew(gGoQJcl_B;$dezC65Y{2d1rw8gh%q-~4uU0r^J67zd2Ap_@g`8|p-bN*RP}64CVI8Ed~UV&`*@5MjuT0rGQNNGLBsiMb27wQI;uRHD7oF(=tPz zW-rcmaOD?bO+YzCN_=A+Mx0{8-C)nJMjZa$u%GfsxzsB8AF*F^nTl+}7JOzGPt7h> z9x2J1LM#pA|NKtQHrq{!MK!eK1*dD;%aL?EiQ#;vyy+ilmgbgM7A!k1%}C2ZWKtj8u1L+?&C1Qe&5N#MyTX&kd!9Q;7eg25 zJImuT7q;hl7x=qJGe_g(Jgl6E+;N09Y`n(D-{XvbTYs`_8bAK9UW_$t(H#HHB5zzS zkG6^CFw}g5%L8B7tlXZ&sGM`fbje!K(8!W~G5=eB@2_^ck&o7CX3gVulP=%C4=^s3 z&y^4E$M8*OSZ5iw&$lk#M+X;3W%Ry|@&;_=Yp|woMvG#;-KBWEbPg z&86J0_**-p!&&ZvT3lLjKD@!7uv2P8HiIa{l~@QAH;e2bq%TfCqz5ZXwdY3XDt~Eg zdM%i+m8p?*$-6AzD{*TPqA2a!$AP4%!r&QCnDCYA45A@9vr;}b?>NuI_c7yRMxF|q zWpW+EENkPdMny9QhD5Yqo?Es<#EGFpSHGxkoX-|;^XgP8mC*6zS&A7vvnmz8`P@x3k`LxAVD>YTu&NX>xoveX7q+0N(B31F-nb~wznoT?`k0*SG zErx57AC!J-s;Hk@c`lvCs02+E6i6@xzU53R`8YUiS9$*Kt1+%&l8O3}Rm!xshCe-i zl76{Ed2!`+wRF?g&$kNt(>@oTwhId@uN#LB_GI_+_w35Av^uI@w^@lz{|Gros~|p! z-XzwyeZAt6<7IUbGg3D)Gy=nA$aSFoy`g;ZG>1Fy(ks(ncUa@0qO7rfo@QaDW7*yN z3_XYxS77Dn<9=&BgU4IzHYwi=yNScVDj^Z@&X^n*0_dWU!P=-pzQU9_u(KHeKjzjH==mU>23Q~et+ z5cgy~87BBUT+5mAY_o-O+KzrlR%FcWxbaL}6Fma>E zq$n#>K}2XOb;VLTAbf|6W@SO3 z0m(sD%NYbh|MvU~mBfHf3Qu^=7fNw%z3l|p$ zeijyYcXwuY4rY5Na~3u}J^%na3p+a#(1Xd@)6T`vgUQaB>K_P_rq0GrmJTkK_I4D{ z5Dks&U0sC00IGkj!Penluy)RW(+Qv$i-(~D3mY@*^P2v2G%^0SpM$HD&7a9lj9E-= zOl?i=T%3WvZ2$Iku&{Trceb$qUx5C%`G1%Ipe+RQ?;QUnF1EJ+PT}k#$|*FX3cr=wk1rW^Zrv52uv=L79S`gPE1$)muwD z6MJ`Oy8kf1RMODJR0s@kjf;tumx+yCjg5<+lZ&5&je(VypOy8mt`K_@OEb^^+?D&e zD?9K1&=rsw6GIon|6^wpV}3JxCtE{c!Irj$=B6wTcIIG;f62%%VQ*va1WXKI$MGNQ z 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 literal 0 HcmV?d00001 diff --git a/src/klalb_en_US.properties b/src/klalb_en_US.properties index f965e39..7a7dfac 100644 --- a/src/klalb_en_US.properties +++ b/src/klalb_en_US.properties @@ -19,6 +19,8 @@ uploadspeed=Upload speed downloadspeed=Download speed uploadpps=Upload PPS downloadpps=Download PPS +uploaddelay=Upload delay +downloaddelay=Download delay copy=Copy onlinedevices=Online devices monitor=Monitor @@ -37,6 +39,7 @@ invaildtcplisten=TCP listen:Invaild Input invaildudplisten=UDP listen:Invaild Input invaildopenlinetable=Open line table:Invaild Input invaildconnectlinetable=Connect line table:Invaild Input +invaildntpservertable=NTP server addresses:Invaild Input unknown=Unknown viewlinemonitor=View line monitor copylineaddress=Copy line address @@ -44,4 +47,33 @@ copyvirtualaddress=Copy virtual address tryreconnect=Try reconnect forcedisconnect=Force disconnect removeline=Remove line - +time=Time +speermonitor=Speed monitor +delaymonitor=Delay monitor +speed=Speed +delay=Delay +virtualnetsettings=Virtual network settings +tunnelnetsettings=Tunnel network settings +linksettings=Link settings +klalbperf=KLALB-perf Speedtest tool +speedtest=Network speed test +starttest=Start test +testreport=Test report +invaildinput=Invaild input +stoptest=Stop test +bandwidth=Bandwidth +nodeinf=Node information +selectinterface=Select network interface +add=Add +edit=Edit +remove=Remove +networkinterfaceexcept=Network interface except +cancel=Cancel +ok=Ok +currenttime=Current time +timesyncsettings=Time sync settings +ntpservers=NTP server addresses +nodeinfo=Node information +basicinfo=Basic info +overview=Overview +timerange=Time range \ No newline at end of file diff --git a/src/klalb_zh_CN.properties b/src/klalb_zh_CN.properties index 6cd332b..9219d94 100644 --- a/src/klalb_zh_CN.properties +++ b/src/klalb_zh_CN.properties @@ -19,6 +19,8 @@ uploadspeed=上传速度 downloadspeed=下载速度 uploadpps=上传包转发率 downloadpps=下载包转发率 +uploaddelay=上传延迟 +downloaddelay=下载延迟 copy=复制 onlinedevices=在线设备 monitor=监视器 @@ -37,6 +39,7 @@ invaildtcplisten=TCP监听端口:非法输入 invaildudplisten=UDP监听端口:非法输入 invaildopenlinetable=开放线路列表:非法输入 invaildconnectlinetable=自动连接线路列表:非法输入 +invaildntpservertable==NTP授时服务器地址:非法输入 unknown=未知 viewlinemonitor=打开链路监视器 copylineaddress=复制链路地址 @@ -44,4 +47,33 @@ copyvirtualaddress=复制虚拟地址 tryreconnect=立即尝试重连 forcedisconnect=强制断开连接 removeline=强制断开连接并移除 - +time=时间 +speermonitor=速度监视器 +delaymonitor=延迟监视器 +speed=速度 +delay=延迟 +virtualnetsettings=虚拟网络设置 +tunnelnetsettings=隧道网络设置 +linksettings=链路设置 +klalbperf=KLALB-perf测速工具 +speedtest=网速测试 +starttest=开始测试 +testreport=测速报告 +invaildinput=非法输入 +stoptest=停止测试 +bandwidth=带宽 +nodeinf=节点信息 +selectinterface=选择网卡 +add=添加 +edit=编辑 +remove=移除 +networkinterfaceexcept=网卡排除列表 +cancel=取消 +ok=确定 +currenttime=当前时间 +timesyncsettings=时钟同步设置 +ntpservers=NTP授时服务器地址 +nodeinfo=节点信息 +basicinfo=基本信息 +overview=概览 +timerange=时间范围 \ No newline at end of file diff --git a/src/org/kne/cloud/clock/HighAccuracyClock.java b/src/org/kne/cloud/clock/HighAccuracyClock.java new file mode 100644 index 0000000..3e392d6 --- /dev/null +++ b/src/org/kne/cloud/clock/HighAccuracyClock.java @@ -0,0 +1,249 @@ +package org.kne.cloud.clock; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.ReentrantLock; + +import org.kne.math.Long128; + +public class HighAccuracyClock { + + + private final long initialCPUNanoTime; + private final Long128 initialSystemNanoTime; + private volatile AtomicLong baseCPUNanoTime=new AtomicLong(); + private volatile Long128 baseSystemNanoTime; + + private volatile long frequency=1000000000;//1000015000 + + private ReentrantLock lock=new ReentrantLock(); + + private static final Long128 NANOS_PER_MILLIS = Long128.valueOf(TimeUnit.MILLISECONDS.toNanos(1)); + + + private static final Long128 NANOS_PER_SECONDS = Long128.valueOf(TimeUnit.SECONDS.toNanos(1)); + + + public HighAccuracyClock() { + this.initialSystemNanoTime =Long128.valueOf( System.currentTimeMillis() ).multiply(NANOS_PER_MILLIS); + this.initialCPUNanoTime = System.nanoTime(); + this.baseSystemNanoTime=initialSystemNanoTime; + this.baseCPUNanoTime.set(initialCPUNanoTime); + } + + public long getFrequency() { + return frequency; + } + + public void setFrequency(long frequency) { + lock.lock(); + try { + long curr=System.nanoTime(); + long nanoela=curr-baseCPUNanoTime.getAndSet(curr); + baseSystemNanoTime=baseSystemNanoTime.add( Long128.valueOf(nanoela).multiply(this.frequency).divide(NANOS_PER_SECONDS)); + this.frequency = frequency; + }finally { + lock.unlock(); + } + } + + + public void adjustFrequency(long fdelta) { + lock.lock(); + try { + compact(); + this.frequency = frequency+fdelta; + }finally { + lock.unlock(); + } + } + + + private void compact() { + lock.lock(); + try { + long curr=System.nanoTime(); + long nanoela=curr-baseCPUNanoTime.getAndSet(curr); + baseSystemNanoTime=baseSystemNanoTime.add(Long128.valueOf(nanoela).multiply(this.frequency).divide(NANOS_PER_SECONDS)); + }finally { + lock.unlock(); + } + } + + /** + * 获取从1970-01-01开始的当前时间(纳秒精度) + */ + public Long128 getCurrentTimeNanos() { + Long128 mul=Long128.valueOf(System.nanoTime()-baseCPUNanoTime.get()).multiply(frequency); + if(mul.getHigh()!=0) { + compact(); + mul=Long128.valueOf(System.nanoTime()-baseCPUNanoTime.get()).multiply(frequency); + } + return mul.divide(NANOS_PER_SECONDS).add(baseSystemNanoTime); + } + + /** + * 获取从1970-01-01开始的当前时间(毫秒精度) + */ + public long getCurrentTimeMillis() { + return getCurrentTimeNanos().divide(NANOS_PER_MILLIS).longValue(); + } + + /** + * 获取 NTPv4 128 位时间戳 + */ + public BigInteger getCurrentTimeNTP128() { + return NTPTimestamps.nanosToNtp128BitTimestamp(getCurrentTimeNanos()); + } + + /** + * 获取 NTPv4 64 位时间戳 + */ + public BigInteger getCurrentTimeNTP64() { + return NTPTimestamps.ntp128To64(getCurrentTimeNTP128()); + } + + /** + * 获取时钟创建以来经过的时间(纳秒) + */ + public long getElapsedNanos() { + return System.nanoTime() - initialCPUNanoTime; + } + + // ================== 修复的时间同步方法 ================== + + /** + * 强制同步到指定时间(正确版本) + * @param targetNanos 目标时间(从1970年开始的纳秒数) + */ + public void syncToTime(Long128 targetNanos) { + lock.lock(); + try { + baseCPUNanoTime.set( System.nanoTime()); + baseSystemNanoTime=targetNanos; + }finally { + lock.unlock(); + } + } + + /** + * 基于参考时钟进行同步(更安全的方法) + * @param referenceClock 参考时钟 + */ + public void syncToClock(HighAccuracyClock referenceClock) { + syncToClock(referenceClock,BigInteger.ZERO); + } + + + /** + * 基于参考时钟进行同步(更安全的方法) + * @param referenceClock 参考时钟 + * @param delta 网络延迟(纳秒),可选 + */ + public void syncToClock(HighAccuracyClock referenceClock, BigInteger delta) { + if (delta == null) { + delta = BigInteger.ZERO; + } + lock.lock(); + try { + baseCPUNanoTime.set( System.nanoTime()); + baseSystemNanoTime=referenceClock.getCurrentTimeNanos(); + }finally { + lock.unlock(); + } + } + + /** + * 基于NTP时间戳同步 + * @param ntp128Timestamp NTP 128位时间戳 + */ + public void syncToNTPTime(BigInteger ntp128Timestamp) { + Long128 targetNanos = NTPTimestamps.ntp128BitToNanosTimestamp(ntp128Timestamp); + syncToTime(targetNanos); + } + + + + /** + * 调整时钟(用于时间同步) + * @param delta 要调整的纳秒数(正数调快,负数调慢) + */ + public void adjustClock(Long128 delta) { + lock.lock(); + try { + baseSystemNanoTime = baseSystemNanoTime.add(delta); + }finally { + lock.unlock(); + } + } + + /** + * 调整时钟(用于时间同步) + * @param delta 要调整的纳秒数(正数调快,负数调慢) + */ + public void adjustClock(Long128 delta, double adjPercent) { + BigInteger adjustment=new BigDecimal(delta.toBigInteger()).multiply(BigDecimal.valueOf( adjPercent)).toBigInteger(); + lock.lock(); + try { + baseSystemNanoTime = baseSystemNanoTime.add(Long128 .valueOf(adjustment)); + }finally { + lock.unlock(); + } + } + + + + /** + * 获取时钟偏差(当前时间与真实时间的差异) + */ + public Long128 getClockError(Long128 referenceTime) { + return getCurrentTimeNanos().subtract(referenceTime); + } + + /** + * 检查时钟是否同步(误差在允许范围内) + */ + public boolean isSynchronized(Long128 referenceTime, Long128 tolerance) { + Long128 error = getClockError(referenceTime).abs(); + return error.compareTo(tolerance) <= 0; + } + + + // ================== toString 方法 ================== + + + + /** + * 转换为详细格式的字符串(包含纳秒) + */ + public String toString() { + Long128 nanos = getCurrentTimeNanos(); + return NTPTimestamps.nanosSince1970ToString(nanos); + } + + public long getInitialCPUNanoTime() { + return initialCPUNanoTime; + } + + public Long128 getInitialSystemNanoTime() { + return initialSystemNanoTime; + } + + + + public static void main(String[] args) throws InterruptedException { + HighAccuracyClock hac=new HighAccuracyClock(); + while(true) { + System.out.println(hac.getCurrentTimeNanos()); + Thread.sleep(1000); + } + } + + +} \ No newline at end of file diff --git a/src/org/kne/cloud/clock/NTPTimestamps.java b/src/org/kne/cloud/clock/NTPTimestamps.java new file mode 100644 index 0000000..2227a60 --- /dev/null +++ b/src/org/kne/cloud/clock/NTPTimestamps.java @@ -0,0 +1,367 @@ +package org.kne.cloud.clock; + +import java.math.BigInteger; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; + +import org.kne.math.Long128; + +public class NTPTimestamps { + + // 常量定义 + public static final BigInteger NANOS_PER_SECOND = BigInteger.valueOf(1_000_000_000L); + public static final BigInteger NANOS_PER_MILLIS = BigInteger.valueOf(1_000_000L); + + // NTP 纪元 (1900) 和 Unix 纪元 (1970) 之间的纳秒差 + public static final BigInteger NTP_EPOCH_OFFSET_NS = BigInteger.valueOf(2208988800L) + .multiply(NANOS_PER_SECOND); + + // 2^64 值,用于单位转换 + public static final BigInteger TWO_POW_64 = BigInteger.ONE.shiftLeft(64); + + // 2^32 值,用于 64 位时间戳处理 + public static final BigInteger TWO_POW_32 = BigInteger.ONE.shiftLeft(32); + + // 掩码常量 + public static final BigInteger MASK_32_BIT = new BigInteger("FFFFFFFF", 16); + public static final BigInteger MASK_64_BIT = new BigInteger("FFFFFFFFFFFFFFFF", 16); + + // ================== 核心转换方法 ================== + // 2^32 秒,约 136.192 年,一个 NTP 纪元的长度 + public static final BigInteger SECONDS_PER_ERA = BigInteger.valueOf(0x100000000L); + + public static BigInteger inferNtp64To128(long remote64Bit,BigInteger local128Bit ) { + return inferNtp64To128(toUnsignedBigInteger(remote64Bit),local128Bit); + } + + + /** + * 根据本地 128 位时间戳和网络 64 位时间戳,推断并补全纪元信息 + * + * @param remote64Bit 从网络接收的 64 位 NTP 时间戳 + * @param local128Bit 本地已知的 128 位 NTP 时间戳 + * @return 推断出的完整 128 位 NTP 时间戳 + */ + public static BigInteger inferNtp64To128(BigInteger remote64Bit,BigInteger local128Bit ) { + // 1. 从本地 128 位时间戳中提取纪元号和 64 位时间戳部分 + BigInteger localEra = NTPTimestamps.getEraNumber(local128Bit); + BigInteger local64Bit = NTPTimestamps.getNtp64Timestamp(local128Bit); + + // 3. 计算本地和远程 64 位时间戳的差异 + BigInteger difference = remote64Bit.subtract(local64Bit); + + // 4. 判断纪元关系并推断远程时间戳的纪元 + BigInteger remoteEra; + + // 如果差异很大(超过半个纪元),可能需要调整纪元 + BigInteger halfEra = BigInteger.valueOf(Long.MAX_VALUE); + + if (difference.compareTo(halfEra) > 0) { + // 远程时间戳比本地小很多,可能属于上一个纪元 + remoteEra = localEra.subtract(BigInteger.ONE); + } else if (difference.compareTo(halfEra.negate()) < 0) { + // 远程时间戳比本地大很多,可能属于下一个纪元 + remoteEra = localEra.add(BigInteger.ONE); + } else { + // 差异不大,属于同一个纪元 + remoteEra = localEra; + } + + // 5. 组合纪元号和 64 位时间戳,得到完整的 128 位时间戳 + return NTPTimestamps.ntp64To128(remote64Bit, remoteEra); + } + /** + * 将从1970年开始的纳秒数转换为 NTPv4 128 位时间戳 + * 128位时间戳表示从1900年1月1日起经过的 2⁻⁶⁴ 秒的数量 + */ + public static BigInteger nanosToNtp128BitTimestamp(Long128 nanosSince1970) { + // 1. 计算从 1900 年开始的总纳秒数 + BigInteger totalNanosFrom1900 = nanosSince1970.toBigInteger().add(NTP_EPOCH_OFFSET_NS); + + // 2. 将纳秒转换为 2⁻⁶⁴ 秒单位 + return totalNanosFrom1900.multiply(TWO_POW_64).divide(NANOS_PER_SECOND); + } + + /** + * 从 NTPv4 128 位时间戳转换回从1970年开始的纳秒数 + */ + public static Long128 ntp128BitToNanosTimestamp(BigInteger ntp128Timestamp) { + // 1. 将 2⁻⁶⁴ 秒单位转换回纳秒 + BigInteger totalNanosFrom1900 = ntp128Timestamp.multiply(NANOS_PER_SECOND).divide(TWO_POW_64); + + // 2. 计算从 1970 年开始的总纳秒数 + return Long128.valueOf( totalNanosFrom1900.subtract(NTP_EPOCH_OFFSET_NS)); + } + + + public static BigInteger nanosToNtp128BitTimeInterval(BigInteger nanos) { + // 2. 将纳秒转换为 2⁻⁶⁴ 秒单位 + return nanos.multiply(TWO_POW_64).divide(NANOS_PER_SECOND); + } + + + public static BigInteger ntp128BitToNanosInterval(BigInteger ntp128Timestamp) { + // 1. 将 2⁻⁶⁴ 秒单位转换回纳秒 + BigInteger totalNanosFrom1900 = ntp128Timestamp.multiply(NANOS_PER_SECOND).divide(TWO_POW_64); + + return totalNanosFrom1900; + } + + + // ================== 128位 ↔ 64位 转换 ================== + + /** + * 将 NTP 128 位时间戳转换为 NTP 64 位时间戳 + * 64位时间戳就是128位时间戳的中间64位 + */ + public static BigInteger ntp128To64(BigInteger ntp128Timestamp) { + return ntp128Timestamp.shiftRight(32).and(MASK_64_BIT); + } + + /** + * 将 NTP 64 位时间戳转换为 NTP 128 位时间戳 + * 64位时间戳放在128位时间戳的中间64位,高32位Era和低32位分数为0 + */ + public static BigInteger ntp64To128(BigInteger ntp64Timestamp) { + return ntp64Timestamp.and(MASK_64_BIT).shiftLeft(32); + } + + /** + * 将 NTP 64 位时间戳转换为 NTP 128 位时间戳(指定Era Number) + */ + public static BigInteger ntp64To128(BigInteger ntp64Timestamp, BigInteger eraNumber) { + return eraNumber.and(MASK_32_BIT).shiftLeft(96) + .or(ntp64Timestamp.and(MASK_64_BIT).shiftLeft(32)); + } + + /** + * 从 NTP 128 位时间戳中提取 Era Number(高32位) + */ + public static BigInteger getEraNumber(BigInteger ntp128Timestamp) { + return ntp128Timestamp.shiftRight(96).and(MASK_32_BIT); + } + + /** + * 从 NTP 128 位时间戳中提取 64 位时间戳(中间64位) + */ + public static BigInteger getNtp64Timestamp(BigInteger ntp128Timestamp) { + return ntp128Timestamp.shiftRight(32).and(MASK_64_BIT); + } + + /** + * 从 NTP 128 位时间戳中提取分数部分(低32位) + */ + public static BigInteger getFraction(BigInteger ntp128Timestamp) { + return ntp128Timestamp.and(MASK_32_BIT); + } + + // ================== 工具方法 ================== + + /** + * 从毫秒和纳秒偏移构造 BigInteger 纳秒 + */ + public static Long128 toNanosSince1970(long unixTimeMillis, long nanosOffset) { + return Long128.valueOf(unixTimeMillis) + .multiply(Long128.valueOf( NANOS_PER_MILLIS)) + .add(Long128.valueOf(nanosOffset)); + } + + /** + * 从 BigInteger 纳秒提取毫秒和纳秒偏移 + */ + public static long[] toMillisAndNanos(Long128 nanosSince1970) { + Long128[] millisAndNanos = nanosSince1970.divideAndRemainder(Long128.valueOf( NANOS_PER_MILLIS)); + return new long[]{millisAndNanos[0].longValue(), millisAndNanos[1].longValue()}; + } + + /** + * 计算两个 128 位时间戳之间的时间差(纳秒) + */ + public static BigInteger calculateTimeDifference(BigInteger timestamp1, BigInteger timestamp2) { + BigInteger diff = timestamp2.subtract(timestamp1); + return diff.multiply(NANOS_PER_SECOND).divide(TWO_POW_64); + } + + + + /** + * 将 64 位 NTP 时间戳分解为秒数和分数 + */ + public static BigInteger[] parseNtp64Timestamp(BigInteger ntp64Timestamp) { + BigInteger seconds = ntp64Timestamp.shiftRight(32).and(MASK_32_BIT); + BigInteger fraction = ntp64Timestamp.and(MASK_32_BIT); + return new BigInteger[]{seconds, fraction}; + } + + /** + * 从秒数和分数构建 64 位 NTP 时间戳 + */ + public static BigInteger buildNtp64Timestamp(BigInteger seconds, BigInteger fraction) { + return seconds.and(MASK_32_BIT).shiftLeft(32).or(fraction.and(MASK_32_BIT)); + } + + // ================== 测试代码 ================== + + public static void main(String[] args) { + System.out.println("=== NTPv4 128位/64位时间戳转换测试 ==="); + + // 测试当前时间 + testCurrentTime(); + + // 测试 128位 ↔ 64位 转换 + test128To64Conversion(); + + // 测试 Era Number 处理 + testEraNumberHandling(); + + // 测试边界值 + testBoundaryValues(); + } + + private static void testCurrentTime() { + System.out.println("\n=== 当前时间测试 ==="); + + Long128 nanosSince1970 = toNanosSince1970(System.currentTimeMillis(), 123456); + BigInteger ntp128 = nanosToNtp128BitTimestamp(nanosSince1970); + BigInteger ntp64 = ntp128To64(ntp128); + + System.out.println("从1970年开始的纳秒数: " + nanosSince1970); + System.out.println("NTP 128-bit: 0x" + ntp128.toString(16).toUpperCase()); + System.out.println("NTP 64-bit: 0x" + ntp64.toString(16).toUpperCase()); + + // 反向转换验证 + BigInteger recovered128 = ntp64To128(ntp64); + Long128 recoveredNanos = ntp128BitToNanosTimestamp(recovered128); + + System.out.println("恢复的纳秒数: " + recoveredNanos); + System.out.println("转换正确: " + (nanosSince1970.equals(recoveredNanos) ? "✅" : "❌")); + } + + private static void test128To64Conversion() { + System.out.println("\n=== 128位 ↔ 64位 转换测试 ==="); + + // 创建一个测试用的 128 位时间戳 + BigInteger test128 = new BigInteger("EC652B7E912F00B81234567890ABCDEF", 16); + + BigInteger ntp64 = ntp128To64(test128); + BigInteger recovered128 = ntp64To128(ntp64); + + System.out.println("原始128位: 0x" + test128.toString(16).toUpperCase()); + System.out.println("转换64位: 0x" + ntp64.toString(16).toUpperCase()); + System.out.println("恢复128位: 0x" + recovered128.toString(16).toUpperCase()); + + // 验证中间64位相同 + BigInteger original64Part = getNtp64Timestamp(test128); + System.out.println("转换正确: " + (original64Part.equals(ntp64) ? "✅" : "❌")); + } + + private static void testEraNumberHandling() { + System.out.println("\n=== Era Number 处理测试 ==="); + + BigInteger ntp64 = new BigInteger("EC652B7E912F00B8", 16); + BigInteger eraNumber = new BigInteger("1", 16); // Era 1 + + BigInteger ntp128WithEra = ntp64To128(ntp64, eraNumber); + BigInteger extractedEra = getEraNumber(ntp128WithEra); + BigInteger extracted64 = getNtp64Timestamp(ntp128WithEra); + + System.out.println("设置 Era: 0x" + eraNumber.toString(16).toUpperCase()); + System.out.println("提取 Era: 0x" + extractedEra.toString(16).toUpperCase()); + System.out.println("提取 64位: 0x" + extracted64.toString(16).toUpperCase()); + System.out.println("128位值: 0x" + ntp128WithEra.toString(16).toUpperCase()); + System.out.println("Era 正确: " + (eraNumber.equals(extractedEra) ? "✅" : "❌")); + System.out.println("64位正确: " + (ntp64.equals(extracted64) ? "✅" : "❌")); + } + + private static void testBoundaryValues() { + System.out.println("\n=== 边界值测试 ==="); + + // 测试最大值 + BigInteger max64 = MASK_64_BIT; // 0xFFFFFFFFFFFFFFFF + BigInteger max128 = ntp64To128(max64); + BigInteger recovered64 = ntp128To64(max128); + + System.out.println("最大64位: 0x" + max64.toString(16).toUpperCase()); + System.out.println("转换128位: 0x" + max128.toString(16).toUpperCase()); + System.out.println("恢复64位: 0x" + recovered64.toString(16).toUpperCase()); + System.out.println("最大值转换正确: " + (max64.equals(recovered64) ? "✅" : "❌")); + + // 测试 Era Number 边界 + BigInteger maxEra = MASK_32_BIT; // 0xFFFFFFFF + BigInteger test64 = new BigInteger("1234567890ABCDEF", 16); + BigInteger ntp128MaxEra = ntp64To128(test64, maxEra); + BigInteger extractedMaxEra = getEraNumber(ntp128MaxEra); + + System.out.println("最大Era转换正确: " + (maxEra.equals(extractedMaxEra) ? "✅" : "❌")); + } + + /** + * 生成时间序列测试 + */ + public static void testTimeSeries() { + System.out.println("\n=== 时间序列测试 ==="); + + Long128 startNanos = toNanosSince1970(System.currentTimeMillis(), 0); + BigInteger start128 = nanosToNtp128BitTimestamp(startNanos); + + for (int i = 0; i < 5; i++) { + Long128 offsetNanos = Long128.valueOf(i).multiply(Long128.valueOf( NANOS_PER_SECOND).divide(Long128.valueOf(10))); + Long128 currentNanos = startNanos.add(offsetNanos); + BigInteger current128 = nanosToNtp128BitTimestamp(currentNanos); + BigInteger current64 = ntp128To64(current128); + + long[] time = toMillisAndNanos(currentNanos); + System.out.printf("时间: %d ms + %d ns -> 64位: %s -> 128位: %s%n", + time[0], time[1], + current64.toString(16).toUpperCase(), + current128.toString(16).toUpperCase()); + } + } + + + // 日期时间格式化器 + private static final DateTimeFormatter DEFAULT_FORMATTER = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + private static final DateTimeFormatter DETAILED_FORMATTER = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.n"); + public static String nanosSince1970ToString(Long128 nanos) { + Long128 millis = nanos.divide(Long128.valueOf(1_000_000)); + Long128 nanosPart = nanos.mod(Long128.valueOf(1_000_000)); + + Instant instant = Instant.ofEpochMilli(millis.longValue()); + LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + + return String.format("%s.%06d", + DEFAULT_FORMATTER.format(dateTime), + nanosPart.longValue()); + } + + /** + * 将 128 位时间戳转换为可读字符串 + */ + public static String ntp128ToString(BigInteger ntp128Timestamp) { + Long128 nanosSince1970 = ntp128BitToNanosTimestamp(ntp128Timestamp); + return nanosSince1970ToString(nanosSince1970); + } + + /** + * 将 64 位时间戳转换为可读字符串 + */ + public static String ntp64ToString(BigInteger ntp64Timestamp) { + Long128 nanosSince1970 = ntp128BitToNanosTimestamp(ntp64To128( ntp64Timestamp)); + return nanosSince1970ToString(nanosSince1970); + } + + public static BigInteger toUnsignedBigInteger(long unsignedLong) { + if (unsignedLong >= 0) { + return BigInteger.valueOf(unsignedLong); + } else { + // 对于负数,通过添加 2^64 来转换为无符号表示 + return BigInteger.valueOf(unsignedLong & 0x7FFFFFFFFFFFFFFFL) + .setBit(63); + } + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/klalb/uitool/ListSettingItem.java b/src/org/kne/cloud/klalb/uitool/ListSettingItem.java index 2aa3fc7..395c32e 100644 --- a/src/org/kne/cloud/klalb/uitool/ListSettingItem.java +++ b/src/org/kne/cloud/klalb/uitool/ListSettingItem.java @@ -7,6 +7,8 @@ import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; +import java.net.NetworkInterface; +import java.util.List; import java.util.function.Consumer; import java.util.function.Supplier; @@ -63,6 +65,8 @@ public abstract class ListSettingItem extends SettingItem { jbt3x.setIcon(new ImageIcon(ImageIO .read(ListSettingItem.class.getResourceAsStream("/assets/add.png")).getScaledInstance(dss.width-2, dss.height-2, Image.SCALE_SMOOTH))); } catch (IOException e) { e.printStackTrace(); + }catch (IllegalArgumentException e) { + e.printStackTrace(); } jbt3x.setSize(dss); jbt3x.setPreferredSize(dss); @@ -70,8 +74,9 @@ public abstract class ListSettingItem extends SettingItem { @Override public void actionPerformed(ActionEvent e) { - T x=createEmpty(); - runEdit(x); + List x=createEmpty(); + if(x!=null&&!x.isEmpty()) + runEdit(x.get(0)); } }); JButton jbedit=new JButton(); @@ -80,6 +85,8 @@ public abstract class ListSettingItem extends SettingItem { jbedit.setIcon(new ImageIcon(ImageIO .read(ListSettingItem.class.getResourceAsStream("/assets/edit-fill.png")).getScaledInstance(dss.width-2, dss.height-2, Image.SCALE_SMOOTH))); } catch (IOException e) { e.printStackTrace(); + }catch (IllegalArgumentException e) { + e.printStackTrace(); } jbedit.setSize(dss); jbedit.setPreferredSize(dss); @@ -99,6 +106,8 @@ public abstract class ListSettingItem extends SettingItem { jbt4x.setIcon(new ImageIcon(ImageIO .read(ListSettingItem.class.getResourceAsStream("/assets/delete-bin-fill.png")).getScaledInstance(dss.width-2, dss.height-2, Image.SCALE_SMOOTH))); } catch (IOException e) { e.printStackTrace(); + }catch (IllegalArgumentException e) { + e.printStackTrace(); } jbt4x.setSize(dss); jbt4x.setPreferredSize(dss); @@ -125,7 +134,7 @@ public abstract class ListSettingItem extends SettingItem { jp.add(jbt4x); } abstract protected void runEdit(T val) ; -abstract protected T createEmpty() ; +abstract protected List createEmpty() ; public void doAdd(T v) { boolean b=true; for (int i = 0; i < list.getModel().getSize(); i++) { diff --git a/src/org/kne/cloud/network/BufferedArena.java b/src/org/kne/cloud/network/BufferedArena.java new file mode 100644 index 0000000..a3a72a2 --- /dev/null +++ b/src/org/kne/cloud/network/BufferedArena.java @@ -0,0 +1,177 @@ +package org.kne.cloud.network; + +import java.lang.foreign.Arena; +import java.lang.foreign.MemorySegment; +import java.lang.foreign.MemorySegment.Scope; +import java.lang.ref.PhantomReference; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.nio.ByteBuffer; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; + +public class BufferedArena implements Arena{ + private static long blockSize=10*1024L*1024L; + private volatile PreAlloc buffer; + private static ReferenceQueue refq=new ReferenceQueue<>(); + private static MemorySegmentPool msp=new MemorySegmentPool(1000, blockSize,true); + + public static long getBlockSize() { + return blockSize; + } + + + + public static void setBlockSize(long blockSizex) { + blockSize = blockSizex; + } + + + + private ReentrantLock lock=new ReentrantLock(); + + private class PreAlloc{ + private MemorySegment segment; + private AtomicLong pos=new AtomicLong(0); + private AtomicLong refs=new AtomicLong(0); + public MemorySegment getSegment() { + return segment; + } + public AtomicLong getPos() { + return pos; + } + public PreAlloc(MemorySegment segment) { + super(); + this.segment = segment; + } + public long byteSize() { + return segment.byteSize(); + } + public AtomicLong getRefs() { + return refs; + } + + } + + private void allocateNew(long blockSize2) { + lock.lock(); + try { + //buffer=Arena.ofAuto().allocate(blockSize); + MemorySegment raw=msp.borrow(); + buffer=new PreAlloc(raw); + + }finally { + lock.unlock(); + } + } + + + + static { + Thread t= new Thread(()->{ + while(true) { + try { + Reference ref; + ref = refq.remove(); + if(ref!=null) { + ref.clear(); + } + } catch (InterruptedException e) { + // TODO 自动生成的 catch 块 + e.printStackTrace(); + } + } + }); + t.setDaemon(true); + t.setPriority(Thread.MAX_PRIORITY-1); + t.start(); + } + + + + public BufferedArena() { + super(); + allocateNew(blockSize); + } + + @Override + public MemorySegment allocate(long byteSize, long byteAlignment) { + if(byteSize>blockSize) + throw new IndexOutOfBoundsException("byteSize can't large than buffer block"); + long pos; + PreAlloc bufferx; + do{ + bufferx=this.buffer; + pos=bufferx.getPos().getAndAdd(byteSize); + if(pos+byteSize>bufferx.byteSize()) { + allocateNew(blockSize); + }else { + break; + } + }while(true); + bufferx.getRefs().incrementAndGet(); + MemorySegment sliced=bufferx.getSegment().asSlice(pos, byteSize); + new MemorySegmentPhantomReference(sliced, refq, bufferx, msp); + return sliced; + + } + + @Override + public Scope scope() { + return Arena.ofAuto().scope(); + } + + @Override + public void close() { + Arena.ofAuto().close(); + } + public static BufferedArena ofBuffered() { + return new BufferedArena(); + } + +private class MemorySegmentPhantomReference extends PhantomReference{ + + private static AtomicReference first=new AtomicReference<>(null); + + private AtomicReference next=new AtomicReference<>(null); + private AtomicReference prev=new AtomicReference<>(null); + + private PreAlloc father; + private MemorySegmentPool pool; + + public MemorySegmentPhantomReference(MemorySegment referent, ReferenceQueue q,PreAlloc bufferx,MemorySegmentPool pool) { + super(referent, q); + this.father=bufferx; + this.pool=pool; + insert(); + } + + private void insert() { + MemorySegmentPhantomReference refn= first.getAndSet(this); + if(refn!=null) { + next.set(refn); + refn.prev.set(this); + } + } + + private void remove() { + MemorySegmentPhantomReference prevn= prev.getAndSet(null); + MemorySegmentPhantomReference nextn=next.getAndSet(null); + if(prevn!=null) + prevn.next.set(nextn); + if(nextn!=null) + nextn.prev.set(prevn); + } + + @Override + public void clear() { + if(father.getRefs().decrementAndGet()<=0) { + if(buffer!=father) + pool.back(father.getSegment()); + } + remove(); + super.clear(); + } + } +} diff --git a/src/org/kne/cloud/network/BufferedChannel.java b/src/org/kne/cloud/network/BufferedChannel.java new file mode 100644 index 0000000..b9440fd --- /dev/null +++ b/src/org/kne/cloud/network/BufferedChannel.java @@ -0,0 +1,445 @@ +package org.kne.cloud.network; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.ReentrantLock; + +/** + * 修复的BufferedChannel,解决Socket关闭时的数据一致性问题 + */ +public class BufferedChannel implements ReadableByteChannel, WritableByteChannel, ScatteringByteChannel, GatheringByteChannel { + private final ReadableByteChannel inputChannel; + private final WritableByteChannel outputChannel; + private final ByteBuffer readBuffer; + private final ByteBuffer writeBuffer; + + private final ReentrantLock readLock = new ReentrantLock(); + private final ReentrantLock writeLock = new ReentrantLock(); + + private final AtomicBoolean closed = new AtomicBoolean(false); + private final AtomicBoolean inputShutdown = new AtomicBoolean(false); + private final AtomicBoolean outputShutdown = new AtomicBoolean(false); + + public BufferedChannel(ReadableByteChannel channel, int bufferSize) { + this(channel, null, bufferSize); + } + + public BufferedChannel(WritableByteChannel channel, int bufferSize) { + this(null, channel, bufferSize); + } + + public BufferedChannel(ReadableByteChannel inputChannel, WritableByteChannel outputChannel, int bufferSize) { + this.inputChannel = inputChannel; + this.outputChannel = outputChannel; + this.readBuffer = ByteBuffer.allocateDirect(bufferSize); + this.writeBuffer = ByteBuffer.allocateDirect(bufferSize); + + // 更安全的初始化 + this.readBuffer.limit(0); // 明确设置为空 + this.writeBuffer.clear(); + } + + @Override + public int read(ByteBuffer dst) throws IOException { + if (closed.get() || inputShutdown.get()) { + throw new ClosedChannelException(); + } + + readLock.lock(); + try { + // 检查底层通道是否仍然打开 + if (inputChannel != null && !inputChannel.isOpen()) { + inputShutdown.set(true); + return handleInputShutdown(); + } + + int totalRead = 0; + boolean eofEncountered = false; + + while (dst.hasRemaining() && !eofEncountered) { + // 如果读缓冲区有数据,先从中读取 + if (readBuffer.hasRemaining()) { + int bytesToCopy = Math.min(readBuffer.remaining(), dst.remaining()); + + // 使用绝对位置操作,避免修改缓冲区状态 + int oldlimit=readBuffer.limit(); + readBuffer.limit(readBuffer.position()+bytesToCopy); + dst.put(readBuffer); + readBuffer.limit(oldlimit); + + totalRead += bytesToCopy; + continue; + } + + // 读缓冲区空了,需要重新填充 + readBuffer.clear(); + int bytesRead; + try { + bytesRead = inputChannel.read(readBuffer); + } catch (IOException e) { + // 读取时发生IO异常,标记为关闭 + inputShutdown.set(true); + throw e; + } + + if (bytesRead == -1) { + // 到达EOF + inputShutdown.set(true); + eofEncountered = true; + } else if (bytesRead == 0) { + // 没有数据可用,可能是非阻塞模式 + break; + } else { + readBuffer.flip(); + } + } + + // 如果遇到EOF且没有读取到任何数据,返回-1 + if (eofEncountered && totalRead == 0) { + return -1; + } + + return totalRead; + + } finally { + readLock.unlock(); + } + } + + /** + * 处理输入关闭的情况 + */ + private int handleInputShutdown() throws IOException { + // 如果读缓冲区还有剩余数据,先返回这些数据 + if (readBuffer.hasRemaining()) { + return readBuffer.remaining(); + } + return -1; + } + + @Override + public long read(ByteBuffer[] dsts) throws IOException { + return read(dsts, 0, dsts.length); + } + + @Override + public long read(ByteBuffer[] dsts, int offset, int length) throws IOException { + if (closed.get() || inputShutdown.get()) { + throw new ClosedChannelException(); + } + + long totalRead = 0; + for (int i = offset; i < offset + length; i++) { + ByteBuffer dst = dsts[i]; + if (dst == null) { + throw new NullPointerException("Destination buffer is null"); + } + + int bytesRead = read(dst); + if (bytesRead == -1) { + // 只有在没有读取任何数据时才返回-1 + return totalRead > 0 ? totalRead : -1; + } + totalRead += bytesRead; + } + + return totalRead; + } + + @Override + public int write(ByteBuffer src) throws IOException { + if (closed.get() || outputShutdown.get()) { + throw new ClosedChannelException(); + } + + writeLock.lock(); + try { + // 检查底层通道是否仍然打开 + if (outputChannel != null && !outputChannel.isOpen()) { + outputShutdown.set(true); + throw new ClosedChannelException(); + } + + int totalWritten = 0; + + while (src.hasRemaining()) { + // 如果写缓冲区有空间,先填充 + if (writeBuffer.hasRemaining()) { + int bytesToCopy = Math.min(writeBuffer.remaining(), src.remaining()); + int oldlimit= src.limit(); + src.limit(src.position()+bytesToCopy); + writeBuffer.put(src); + src.limit(oldlimit); + + totalWritten += bytesToCopy; + } + + // 如果写缓冲区满了或者源数据还很多,刷新缓冲区 + if (!writeBuffer.hasRemaining() ) { + try { + flushInternal(); + } catch (IOException e) { + outputShutdown.set(true); + throw e; + } + } + } + return totalWritten; + + } finally { + writeLock.unlock(); + } + } + + @Override + public long write(ByteBuffer[] srcs) throws IOException { + return write(srcs, 0, srcs.length); + } + + @Override + public long write(ByteBuffer[] srcs, int offset, int length) throws IOException { + if (closed.get() || outputShutdown.get()) { + throw new ClosedChannelException(); + } + + long totalWritten = 0; + for (int i = offset; i < offset + length; i++) { + ByteBuffer src = srcs[i]; + if (src == null) { + throw new NullPointerException("Source buffer is null"); + } + + int bytesWritten = write(src); + totalWritten += bytesWritten; + } + + return totalWritten; + } + + /** + * 安全的刷新方法 + */ + public void flush() throws IOException { + if (closed.get()) { + throw new ClosedChannelException(); + } + + if (outputChannel == null || outputShutdown.get()) { + return; + } + + writeLock.lock(); + try { + flushInternal(); + } catch (IOException e) { + outputShutdown.set(true); + throw e; + } finally { + writeLock.unlock(); + } + } + + /** + * 内部刷新方法,假设已经持有writeLock + */ + private void flushInternal() throws IOException { + if (writeBuffer.position() > 0) { + writeBuffer.flip(); + + try { + while (writeBuffer.hasRemaining()) { + int written = outputChannel.write(writeBuffer); + // System.out.println("发送"+written); + if (written == 0) { + // 可能遇到阻塞或关闭 + if (!outputChannel.isOpen()) { + outputShutdown.set(true); + throw new ClosedChannelException(); + } + // 给其他操作机会 + Thread.yield(); + } + } + } finally { + // 无论发生什么,确保写缓冲区处于可写状态 + writeBuffer.clear(); + } + } + } + + /** + * 安全的关闭方法 + */ + @Override + public void close() throws IOException { + if (!closed.compareAndSet(false, true)) { + return; // 已经关闭 + } + + IOException exception = null; + + // 先刷新输出缓冲区 + if (outputChannel != null && !outputShutdown.get()) { + writeLock.lock(); + try { + if (writeBuffer.position() > 0) { + try { + flushInternal(); + } catch (IOException e) { + exception = e; + } + } + } finally { + writeLock.unlock(); + } + } + + // 关闭底层通道 + try { + if (inputChannel != null) { + inputChannel.close(); + } + } catch (IOException e) { + if (exception == null) { + exception = e; + } else { + exception.addSuppressed(e); + } + } + + try { + if (outputChannel != null) { + outputChannel.close(); + } + } catch (IOException e) { + if (exception == null) { + exception = e; + } else { + exception.addSuppressed(e); + } + } + + // 清理缓冲区状态 + readLock.lock(); + try { + readBuffer.clear(); + readBuffer.limit(0); // 标记为已清空 + } finally { + readLock.unlock(); + } + + writeLock.lock(); + try { + writeBuffer.clear(); + } finally { + writeLock.unlock(); + } + + // 设置关闭状态 + inputShutdown.set(true); + outputShutdown.set(true); + + if (exception != null) { + throw exception; + } + } + + /** + * 优雅关闭 - 只关闭输入或输出 + */ + public void shutdownInput() throws IOException { + inputShutdown.set(true); + readLock.lock(); + try { + readBuffer.clear(); + readBuffer.limit(0); + } finally { + readLock.unlock(); + } + + if (inputChannel instanceof SocketChannel) { + ((SocketChannel) inputChannel).shutdownInput(); + } + } + + public void shutdownOutput() throws IOException { + outputShutdown.set(true); + writeLock.lock(); + try { + if (writeBuffer.position() > 0) { + flushInternal(); + } + } finally { + writeLock.unlock(); + } + + if (outputChannel instanceof SocketChannel) { + ((SocketChannel) outputChannel).shutdownOutput(); + } + } + + @Override + public boolean isOpen() { + return !closed.get() && + (inputChannel == null || inputChannel.isOpen()) && + (outputChannel == null || outputChannel.isOpen()); + } + + /** + * 检查是否还有可读数据(包括缓冲区中的) + */ + public boolean hasRemaining() throws IOException { + if (closed.get() || inputShutdown.get()) { + return false; + } + + readLock.lock(); + try { + return readBuffer.hasRemaining() || + (inputChannel != null && inputChannel.isOpen()); + } finally { + readLock.unlock(); + } + } + + /** + * 获取缓冲区状态信息(用于调试) + */ + public String getBufferState() { + readLock.lock(); + writeLock.lock(); + try { + return String.format( + "ReadBuffer[pos=%d, lim=%d, cap=%d], WriteBuffer[pos=%d, lim=%d, cap=%d], " + + "closed=%b, inputShutdown=%b, outputShutdown=%b", + readBuffer.position(), readBuffer.limit(), readBuffer.capacity(), + writeBuffer.position(), writeBuffer.limit(), writeBuffer.capacity(), + closed.get(), inputShutdown.get(), outputShutdown.get() + ); + } finally { + writeLock.unlock(); + readLock.unlock(); + } + } + + // 其他方法保持不变... + public int available() throws IOException { + if (closed.get() || inputShutdown.get()) { + return 0; + } + + readLock.lock(); + try { + return readBuffer.remaining(); + } finally { + readLock.unlock(); + } + } + + public long skip(long n) throws IOException { + // 实现保持不变... + return 0; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ByteBufferAllocator.java b/src/org/kne/cloud/network/ByteBufferAllocator.java index bdb6017..6fb5734 100644 --- a/src/org/kne/cloud/network/ByteBufferAllocator.java +++ b/src/org/kne/cloud/network/ByteBufferAllocator.java @@ -1,5 +1,8 @@ package org.kne.cloud.network; +import java.lang.foreign.Arena; +import java.lang.foreign.MemorySegment; +import java.lang.foreign.SegmentAllocator; import java.lang.ref.Cleaner; import java.lang.ref.PhantomReference; import java.lang.ref.Reference; @@ -18,66 +21,41 @@ import org.kne.debug.TimeDebugger; import jdk.internal.misc.Unsafe; public class ByteBufferAllocator { - private List bbfps=new ArrayList<>(); - - private ByteBufferPool[]bbfpsarr; - - - private ReferenceQueue refq=new ReferenceQueue<>(); - private boolean isDirect; - - public ByteBufferAllocator(boolean isDirect) { - this.isDirect=isDirect; - int i=1; - int maxi=0; - int mps=16; - for (int j = 0; j < 18; j++) { - int count=100; - mps+=count; - bbfps.add(new ByteBufferPool(mps, i,isDirect)); - maxi=i; - i<<=1; - } - bbfpsarr=new ByteBufferPool[maxi]; - for (int j = 0; j < bbfpsarr.length; j++) { - bbfpsarr[j]=getByteBufferPool(j); - } - - Thread t= new Thread(()->{ + static Thread t; + static { + t=new Thread(()->{ while(true) { + System.gc(); try { - Reference ref; - ref = refq.remove(); - if(ref!=null) { - ref.clear(); - } + Thread.sleep(1000); } catch (InterruptedException e) { - // TODO 自动生成的 catch 块 - e.printStackTrace(); } } - }); + }); + t.setDaemon(true); t.setPriority(Thread.MAX_PRIORITY-1); t.start(); } - public ByteBuffer allocate(int capacity) { - if(true) { - return allocateHeap(capacity); - } - //new Exception().printStackTrace(); - ByteBufferPool bbfp=bbfpsarr[capacity]; - ByteBuffer bbf=null; - try { - bbf=bbfp.borrow(); - }catch(OutOfMemoryError err) { - System.gc(); - Thread.yield(); - bbf=bbfp.borrow(); - } - ByteBuffer bbfs=bbf.slice(0, capacity); + + public ByteBufferAllocator(boolean isDirect) { - new ByteBufferPhantomReference(bbfs,refq,bbf,bbfp); - return bbfs; + } + public ByteBuffer allocate(int capacity) { + //if(capacity<1024) + return allocateHeap(capacity); + //return allocateNative(capacity); + + + } + //private Arena ar=BufferedArena.ofBuffered(); + private Arena ara=Arena.ofAuto(); + public ByteBuffer allocateNative(int capacity) { + //return ((jdk.internal.foreign.ArenaImpl)Arena.ofAuto()).allocateNoInit(capacity,1).asByteBuffer(); + + ByteBuffer buf=Arena.ofAuto().allocate(capacity).asByteBuffer(); + if(buf.capacity()!=capacity) + throw new InternalError(); + return buf; } private static jdk.internal.misc.Unsafe usf; private static Method meth; @@ -97,30 +75,23 @@ public class ByteBufferAllocator { } } - private static ByteBuffer allocateHeap(int capacity) { - //return ByteBuffer.wrap((byte[]) usf.allocateUninitializedArray(byte.class, capacity)); + public static byte[] allocateArray(int capacity) { if(usf!=null&&meth!=null) { - try { - return ByteBuffer.wrap((byte[]) usf.allocateUninitializedArray(byte.class, capacity)); - } catch (Exception e) { - return ByteBuffer.wrap(new byte[capacity]); - } - }else { - return ByteBuffer.wrap(new byte[capacity]); - } - } - - - private ByteBufferPool getByteBufferPool(int capacity) { - int elen=0; - for (int i = 0; i < bbfps.size(); i++) { - ByteBufferPool bfp=bbfps.get(i); - if(capacity<=(elen= bfp.getLength())) { - return bfp; + try { + return (byte[]) usf.allocateUninitializedArray(byte.class, capacity); + } catch (Exception e) { + return new byte[capacity]; + } + }else { + return new byte[capacity]; } - } - throw new RuntimeException("capacity:"+capacity+">"+elen); } + + public static ByteBuffer allocateHeap(int capacity) { + return ByteBuffer.wrap((byte[])allocateArray(capacity)) ; + } + + private static class ByteBufferPhantomReference extends PhantomReference{ private static AtomicReference first=new AtomicReference<>(null); diff --git a/src/org/kne/cloud/network/DatagramServerSocket.java b/src/org/kne/cloud/network/DatagramServerSocket.java index 0b5286f..888d68e 100644 --- a/src/org/kne/cloud/network/DatagramServerSocket.java +++ b/src/org/kne/cloud/network/DatagramServerSocket.java @@ -39,7 +39,7 @@ public class DatagramServerSocket implements java.io.Closeable{ private final Object stateLock = new Object(); private BlockingQueue recs; private InetSocketAddress bindpoint; - + @@ -150,7 +150,7 @@ public class DatagramServerSocket implements java.io.Closeable{ @Override public void run() { try { - while(true) { + while(!closed) { byte[]data=dataarraypool.borrow(); DatagramPacket dp=new DatagramPacket(data,data.length); datagramSocket.receive(dp); @@ -179,6 +179,10 @@ public class DatagramServerSocket implements java.io.Closeable{ public void removeClient(SubDatagramSocket subDatagramSocket) { clients.remove(subDatagramSocket.getRemoteSocketAddress()); } + + public void close() { + datagramSocket.close(); + } } public DatagramSocket accept()throws IOException{ @@ -341,6 +345,10 @@ public class DatagramServerSocket implements java.io.Closeable{ @Override public void close() { closed=true; + for (Iterator iterator = skts.iterator(); iterator.hasNext();) { + DatagramDistributor datagramSocket = (DatagramDistributor) iterator.next(); + datagramSocket.close(); + } } public SocketAddress getLocalSocketAddress() { diff --git a/src/org/kne/cloud/network/MemorySegmentPool.java b/src/org/kne/cloud/network/MemorySegmentPool.java new file mode 100644 index 0000000..ebec1ef --- /dev/null +++ b/src/org/kne/cloud/network/MemorySegmentPool.java @@ -0,0 +1,83 @@ +package org.kne.cloud.network; + +import java.lang.foreign.Arena; +import java.lang.foreign.MemorySegment; +import java.nio.ByteBuffer; +import java.util.Queue; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReferenceArray; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import org.kne.concurrent.SpinLock; +import org.kne.debug.TimeDebugger; + + +public class MemorySegmentPool { + private AtomicReferenceArray< MemorySegment> rec; + private volatile AtomicInteger pos=new AtomicInteger( 0); + //private Lock lock=new SpinLock(); + + private int maxcount; + private long length; + private int mcj; + private boolean direct; + public MemorySegmentPool(int maxcount, long length,boolean direct) { + super(); + this.maxcount = maxcount; + this.length = length; + this.direct=direct; + rec=new AtomicReferenceArray(maxcount); + mcj= rec.length()-1; + } + public MemorySegmentPool(int maxcount, int length) { + this(maxcount, length, true); + } + public void back(MemorySegment b) { + if(b.byteSize()!=length) + throw new IllegalArgumentException("wrong length"); + + + if(pos.get()<=mcj) { + int d=pos.getAndIncrement(); + if(d>mcj) + d=mcj; + if(d<0) + d=0; + rec.compareAndSet(d,null,b); + } + + } + public MemorySegment borrow() { + MemorySegment b=null; + + if(pos.get()>0) { + int d=pos.decrementAndGet(); + if(d>mcj) + d=mcj; + if(d<0) + d=0; + b=rec.getAndSet(d,null); + } + + if(b==null) { + ByteBufferAllocator.t.interrupt(); + if(direct) { + b=((jdk.internal.foreign.ArenaImpl)Arena.ofAuto()).allocateNoInit(length,1); + System.out.println(length); + }else { + b=MemorySegment.ofArray(new byte[(int) length]); + } + } + return b; + } + public int getMaxCount() { + return maxcount; + } + public long getLength() { + return length; + } + +} diff --git a/src/org/kne/cloud/network/MultipurposeSocketAddress.java b/src/org/kne/cloud/network/MultipurposeSocketAddress.java index 5d411d0..9d444e0 100644 --- a/src/org/kne/cloud/network/MultipurposeSocketAddress.java +++ b/src/org/kne/cloud/network/MultipurposeSocketAddress.java @@ -99,6 +99,31 @@ public class MultipurposeSocketAddress implements Serializable{ return Objects.equals(host, other.host) && port == other.port && Objects.equals(ps, other.ps) && Objects.equals(type, other.type); } + + public boolean equals2(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + MultipurposeSocketAddress other = (MultipurposeSocketAddress) obj; + InetAddress addra=null; + try { + addra = InetAddress.getByName(host); + } catch (UnknownHostException e) { + } + InetAddress addrb=null; + try { + addrb = InetAddress.getByName(other.host); + } catch (UnknownHostException e) { + } + boolean hostequals=Objects.equals(addra, addrb); + + return hostequals && port == other.port && Objects.equals(ps, other.ps) + && Objects.equals(type, other.type); + } + public MultipurposeSocketAddress(String host2, int port2) { this("TCP", host2, port2); } @@ -116,6 +141,8 @@ public class MultipurposeSocketAddress implements Serializable{ port=remoteSocketAddress.getPort(); this.type=type; } + + public String getHost() { return host; } @@ -125,6 +152,11 @@ public class MultipurposeSocketAddress implements Serializable{ public String getType() { return type; } + + public InetSocketAddress getSocketAddress() { + return new InetSocketAddress(host, port); + } + @Override public String toString() { StringBuilder sb=new StringBuilder(); @@ -367,6 +399,23 @@ public class MultipurposeSocketAddress implements Serializable{ } return dgd; } + public DatagramSocket listenDatagramSocket() throws UnknownHostException, IOException { + DatagramSocketFactory dgs=socketTypeRegister.get(type).getDatagramSocketFactory(); + System.out.println(dgs); + if(dgs==null) { + throw new UnsupportedOperationException("DatagramSocket Unsupported"); + } + DatagramSocket dgd=dgs.createSocket(); + try { + dgd.bind(new InetSocketAddress(host, port)); + }catch(Exception e) { + dgd.close(); + System.gc(); + throw e; + } + return dgd; + } + public DatagramServerSocket listenDatagramServerSocket() throws UnknownHostException, IOException { DatagramServerSocketFactory srf=socketTypeRegister.get(type).getDatagramServerSocketFactory(); if(srf==null) { @@ -430,4 +479,5 @@ public class MultipurposeSocketAddress implements Serializable{ gsonBuilder.registerTypeAdapter(MultipurposeSocketAddress.class, getDefaultJsonDeserializer()); gsonBuilder.registerTypeAdapter(MultipurposeSocketAddress.class, getDefaultJsonSerializer()); } + } diff --git a/src/org/kne/cloud/network/NetworkPacket.java b/src/org/kne/cloud/network/NetworkPacket.java index db1b668..89ca105 100644 --- a/src/org/kne/cloud/network/NetworkPacket.java +++ b/src/org/kne/cloud/network/NetworkPacket.java @@ -50,7 +50,7 @@ public abstract class NetworkPacket implements Comparable{ - public abstract long getLength(); + public abstract long getTotalLength(); public long getPriority() { return priority; diff --git a/src/org/kne/cloud/network/SpeedLimiter.java b/src/org/kne/cloud/network/SpeedLimiter.java index 56d52ba..51d5f32 100644 --- a/src/org/kne/cloud/network/SpeedLimiter.java +++ b/src/org/kne/cloud/network/SpeedLimiter.java @@ -11,7 +11,7 @@ public class SpeedLimiter { return hitlimit; } private volatile long limitspeed=1024*1024; - private long brustTime=1000000L; + private long brustTime=2000000L; private volatile boolean hitlimit=false; public long getLimitspeed() { return limitspeed; @@ -43,7 +43,8 @@ public class SpeedLimiter { private AtomicLong waitingtime=new AtomicLong(); @Override public String toString() { - return "SpeedLimiter [limitspeed=" + limitspeed + "]"; + return "SpeedLimiter [limitspeed=" + limitspeed + ", brustTime=" + brustTime + ", hitlimit=" + hitlimit + + ", ltime=" + ltime + ", waitingtime=" + waitingtime + "]"; } public void forceTransmit(long datasize) { long limitspeedx=limitspeed; @@ -60,7 +61,7 @@ public class SpeedLimiter { } }); - waitingtime.addAndGet(datasize*1000000000L/limitspeedx); + waitingtime.addAndGet((long) (datasize*1000000000.0/limitspeedx)); } } //用系统计时器的时刻相减得到经过的时间,与数据包除以限速值得到的应消耗的时间做对比,若时间还未到达发送下一个数据包的时机,则返回false @@ -83,17 +84,18 @@ public class SpeedLimiter { }); if(nv<=brustTime) { - waitingtime.addAndGet(datasize*1000000000L/limitspeedx); - //System.out.println(limitspeed); return true; }else { return false; } } public void transmit(long datasize) { + long limitspeedx=limitspeed; while(!checkTransmit(datasize)) { - LockSupport.parkNanos(100000); + //LockSupport.parkNanos(100000); + Thread.yield(); } + waitingtime.addAndGet((long) (datasize*1000000000.0/limitspeedx)); } } diff --git a/src/org/kne/cloud/network/VirtualDatagramSocket.java b/src/org/kne/cloud/network/VirtualDatagramSocket.java new file mode 100644 index 0000000..024385e --- /dev/null +++ b/src/org/kne/cloud/network/VirtualDatagramSocket.java @@ -0,0 +1,18 @@ +package org.kne.cloud.network; + +import java.net.DatagramSocket; +import java.net.SocketException; + +public class VirtualDatagramSocket extends DatagramSocket { + private VirtualDatagramSocketImpl virtualImpl; + + protected VirtualDatagramSocketImpl getVirtualImpl() { + return virtualImpl; + } + + public VirtualDatagramSocket(VirtualDatagramSocketImpl si) throws SocketException { + super(si); + this.virtualImpl=si; + } + +} diff --git a/src/org/kne/cloud/network/VirtualDatagramSocketImpl.java b/src/org/kne/cloud/network/VirtualDatagramSocketImpl.java new file mode 100644 index 0000000..ddc1543 --- /dev/null +++ b/src/org/kne/cloud/network/VirtualDatagramSocketImpl.java @@ -0,0 +1,7 @@ +package org.kne.cloud.network; + +import java.net.DatagramSocketImpl; + +public abstract class VirtualDatagramSocketImpl extends DatagramSocketImpl{ + +} diff --git a/src/org/kne/cloud/network/congress/BBRCongressAlgorithm.java b/src/org/kne/cloud/network/congress/BBRCongressAlgorithm.java new file mode 100644 index 0000000..c2a5a02 --- /dev/null +++ b/src/org/kne/cloud/network/congress/BBRCongressAlgorithm.java @@ -0,0 +1,131 @@ +package org.kne.cloud.network.congress; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class BBRCongressAlgorithm implements CongressAlgorithm { + + private static final long BURST_TIME = 2000000L; + private static final long BIAS = 2000000L; + private static long MIN_SPEED = 128 * 1024L; + private static long MIN_WINDOW = 16384; + + private Consumer windowControlConsumer; + private BiConsumer speedControlConsumer; + + private AtomicBoolean firstUpdate = new AtomicBoolean(true); + private long MIN_RTTVAR = 50000000L; + private volatile long RTTMin = 1000000000L; + private volatile long RTTVar = 1000000000L; + private volatile long RTTAvg = 1000000000L; + private volatile long RTTAvg2 = 1000000000L; + private volatile long RTTTotal = 0; + private volatile long RTTCount = 0; + private volatile long RTO = 1000000000L; + + + private volatile long window=MIN_WINDOW; + private volatile long speed=MIN_SPEED; + private volatile long maxwindow=99999999999L; + private long congressSpeed=MIN_SPEED; + private double MAX_GAIN=1.02;//2.8853900817779 + private double MIN_GAIN=0.9; + private double windowGain=MAX_GAIN; + private double speedGain=MAX_GAIN; + @Override + public void reset() { + window = MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + speed = MIN_SPEED; + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + windowGain=MAX_GAIN; + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + this.windowControlConsumer = windowControlConsumer; + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + this.speedControlConsumer = speedControlConsumer; + } + + private long RTTstartTime = System.nanoTime(); + private long bandwidth; + @Override + public synchronized void putAck(long packetSize, long latencyns, boolean ecn) { + if (latencyns <= RTTMin) { + RTTMin = latencyns; + } else { + RTTMin = (RTTMin * 99999 + latencyns) / 100000; + } + if (firstUpdate.compareAndSet(true, false)) { + RTTAvg = latencyns; + RTTVar = latencyns / 2; + RTTAvg2 = latencyns; + } else { + RTTVar = (RTTVar * 3 + Math.abs(RTTAvg - latencyns)) / 4; + RTTAvg = (RTTAvg * 7 + latencyns) / 8; + } + RTO = RTTAvg + Math.max(MIN_RTTVAR, RTTVar * 4);// RTTVar*4 + + RTTTotal += latencyns; + RTTCount++; + long curr=System.nanoTime(); + if(curr-RTTstartTime>RTTAvg2) { + if(RTTCount>0) { + RTTAvg2=(RTTAvg2+RTTTotal/RTTCount)/2; + RTTTotal=0; + RTTCount=0; + } + + RTTstartTime=curr; + + if (bandwidth >= congressSpeed) { + congressSpeed = bandwidth; + //congressSpeed = (congressSpeed + bandwidth) / 2; + } else { + congressSpeed = (congressSpeed * 199 + bandwidth) / 200; + } + speed=MIN_SPEED+(long) (congressSpeed * speedGain) ; + window= (Math.max(MIN_SPEED,(long) (congressSpeed*windowGain ))*(RTTMin+1000000L)/1000000000L)+MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + } + + } + + @Override + public void putLoss(long packetSize, long lossns, int losscounter) { + + } + + @Override + public long getRTO() { + return RTO; + } + + @Override + public void setCurrentWindowUsed(long used) { + + } + + @Override + public void setCurrentBandwidth(long bandwidth) { + this.bandwidth=bandwidth; + + //System.out.println(gain); + //System.out.println(bandwidth+" "+congressSpeed+" "+window); + } + +} diff --git a/src/org/kne/cloud/network/congress/BBRVegasCongressAlgorithm.java b/src/org/kne/cloud/network/congress/BBRVegasCongressAlgorithm.java new file mode 100644 index 0000000..ca84762 --- /dev/null +++ b/src/org/kne/cloud/network/congress/BBRVegasCongressAlgorithm.java @@ -0,0 +1,150 @@ +package org.kne.cloud.network.congress; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class BBRVegasCongressAlgorithm implements CongressAlgorithm { + + private static final long BURST_TIME = 2000000L; + private static final long BIAS = 2000000L; + private static long MIN_SPEED = 128 * 1024L; + private static long MIN_WINDOW = 8192; + + private Consumer windowControlConsumer; + private BiConsumer speedControlConsumer; + + private AtomicBoolean firstUpdate = new AtomicBoolean(true); + private long MIN_RTTVAR = 50000000L; + private volatile long RTTMin = 1000000000L; + private volatile long RTTVar = 1000000000L; + private volatile long RTTAvg = 1000000000L; + private volatile long RTTAvg2 = 1000000000L; + private volatile long RTTTotal = 0; + private volatile long RTTCount = 0; + private volatile long RTO = 1000000000L; + + + private volatile long window=MIN_WINDOW; + private volatile long speed=MIN_SPEED; + private volatile long maxwindow=99999999999L; + private long congressSpeed=MIN_SPEED; + private double MAX_GAIN=2.8853900817779;//2.8853900817779 + private double MIN_GAIN=1.1; + private double gain=MAX_GAIN; + @Override + public void reset() { + window = MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + speed = MIN_SPEED; + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + gain=MAX_GAIN; + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + this.windowControlConsumer = windowControlConsumer; + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + this.speedControlConsumer = speedControlConsumer; + } + + private long RTTstartTime = System.nanoTime(); + @Override + public synchronized void putAck(long packetSize, long latencyns, boolean ecn) { + if (latencyns <= RTTMin) { + RTTMin = latencyns; + } else { + RTTMin = (RTTMin * 99999 + latencyns) / 100000; + } + if (firstUpdate.compareAndSet(true, false)) { + RTTAvg = latencyns; + RTTVar = latencyns / 2; + RTTAvg2 = latencyns; + } else { + RTTVar = (RTTVar * 3 + Math.abs(RTTAvg - latencyns)) / 4; + RTTAvg = (RTTAvg * 7 + latencyns) / 8; + } + RTO = RTTAvg + Math.max(MIN_RTTVAR, RTTVar * 4);// RTTVar*4 + + RTTTotal += latencyns; + RTTCount++; + long curr=System.nanoTime(); + if(curr-RTTstartTime>RTTMin) { + if(RTTCount>0) { + RTTAvg2=(RTTAvg2+RTTTotal/RTTCount)/2; + RTTTotal=0; + RTTCount=0; + } + long RTTAvg2x=Math.max(RTTAvg2-BIAS,RTTMin); + double excepted=window/(double)RTTMin; + double actual=window/(double)RTTAvg2x; + double diff=(excepted-actual)*RTTMin; + if(diff>65536*3+3) { + gain-=0.0005; + } + if(diff<65536*3+1) { + gain+=0.0005; + } + if(gain>=MAX_GAIN){ + gain=MAX_GAIN; + //System.out.println("window:"+window); + } + if(gain= congressSpeed) { + congressSpeed = (congressSpeed * 49 + bandwidth) / 50; + } else { + congressSpeed = (congressSpeed *2 + bandwidth) / 3; + }*/ + if (bandwidth >= congressSpeed) { + //congressSpeed = bandwidth; + congressSpeed = (congressSpeed + bandwidth) / 2; + } else { + congressSpeed = (congressSpeed * 49 + bandwidth) / 50; + } + speed=Math.max(MIN_SPEED,(long) (congressSpeed * gain)) ; + window=Math.max( (Math.max(MIN_SPEED,(long) (congressSpeed*gain ))*Math.max(2000000L,RTTMin)/1000000000L),MIN_WINDOW); + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + //System.out.println(gain); + //System.out.println(bandwidth+" "+congressSpeed+" "+window); + } + +} diff --git a/src/org/kne/cloud/network/congress/CongressAlgorithm.java b/src/org/kne/cloud/network/congress/CongressAlgorithm.java new file mode 100644 index 0000000..8156cc1 --- /dev/null +++ b/src/org/kne/cloud/network/congress/CongressAlgorithm.java @@ -0,0 +1,16 @@ +package org.kne.cloud.network.congress; + +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public interface CongressAlgorithm { + public void reset(); + public void setWindowControlConsumer(ConsumerwindowControlConsumer); + public void setSpeedControlConsumer(BiConsumerspeedControlConsumer); + public void putAck(long packetSize,long latencyns,boolean ecn); + public void putLoss(long packetSize,long lossns,int losscounter); + public void setCurrentWindowUsed(long maxwindow); + public void setCurrentBandwidth(long bandwidth); + public long getRTO(); + +} diff --git a/src/org/kne/cloud/network/congress/ECNCongressAlgorithm.java b/src/org/kne/cloud/network/congress/ECNCongressAlgorithm.java new file mode 100644 index 0000000..441a17e --- /dev/null +++ b/src/org/kne/cloud/network/congress/ECNCongressAlgorithm.java @@ -0,0 +1,170 @@ +package org.kne.cloud.network.congress; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class ECNCongressAlgorithm implements CongressAlgorithm { + + private static final long BURST_TIME = 2000000L; + private static final long BIAS = 2000000L; + private static long MIN_SPEED = 64 * 1024L; + private static long MIN_WINDOW = 16384; + + private Consumer windowControlConsumer; + private BiConsumer speedControlConsumer; + + private AtomicBoolean firstUpdate = new AtomicBoolean(true); + private long MIN_RTTVAR = 50000000L; + private volatile long RTTMin = 1000000000L; + private volatile long RTTVar = 1000000000L; + private volatile long RTTAvg = 1000000000L; + private volatile long RTTAvg2 = 1000000000L; + private double ECNAvg2 = 0L; + private double alpha=0; + private volatile AtomicLong RTTTotal = new AtomicLong(0); + private volatile AtomicLong ECNSize = new AtomicLong(0); + private volatile AtomicLong TotalSize = new AtomicLong(0); + private volatile AtomicLong RTTCount = new AtomicLong(0); + private volatile long RTO = 1000000000L; + + + private volatile long window=MIN_WINDOW; + private volatile long windowUsed=MIN_WINDOW; + private volatile long congressWindowSize=MIN_WINDOW; + private volatile long speed=MIN_SPEED; + private long congressSpeed=MIN_SPEED; + + private long RTTstartTime = System.nanoTime(); + private long bandwidth=MIN_SPEED; + private double MAX_GAIN=1.2;//2.8853900817779 + private double MIN_GAIN=1.2; + private double gain=MAX_GAIN; + + private ReentrantLock lock=new ReentrantLock(); + @Override + public void reset() { + window = MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + speed = MIN_SPEED; + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + gain=MAX_GAIN; + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + this.windowControlConsumer = windowControlConsumer; + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + this.speedControlConsumer = speedControlConsumer; + } + + @Override + public synchronized void putAck(long packetSize, long latencyns, boolean ecn) { + if (latencyns <= RTTMin) { + RTTMin = latencyns; + } else { + RTTMin = (RTTMin * 99999 + latencyns) / 100000; + } + if (firstUpdate.compareAndSet(true, false)) { + RTTAvg = latencyns; + RTTVar = latencyns / 2; + RTTAvg2 = latencyns; + } else { + RTTVar = (RTTVar * 3 + Math.abs(RTTAvg - latencyns)) / 4; + RTTAvg = (RTTAvg * 7 + latencyns) / 8; + } + RTO = RTTAvg + Math.max(MIN_RTTVAR, RTTVar * 4);// RTTVar*4 + + RTTTotal .addAndGet( latencyns); + if(ecn) { + ECNSize.addAndGet(packetSize); + } + TotalSize.addAndGet(packetSize); + RTTCount.incrementAndGet(); + + + long curr=System.nanoTime(); + if(curr-RTTstartTime>RTTAvg2) { + RTTstartTime=curr; + lock.lock(); + try { + if(RTTCount.get()>0) { + long count=RTTCount.getAndSet(0); + RTTAvg2=RTTTotal.getAndSet(0)/count; + ECNAvg2=ECNSize.getAndSet(0)/(double)TotalSize.getAndSet(0); + alpha=(alpha*15+ECNAvg2)/16; + //System.out.println(alpha); + } + if(ECNAvg2>0.5) { + gain=MIN_GAIN; + if(congressWindowSize>MIN_WINDOW) { + congressWindowSize=Math.max(MIN_WINDOW,(long) (congressWindowSize*(1-alpha/5))); + updateWindowSize(); + } + }else if(ECNAvg2>0.05){ + if(windowUsed*3L>=congressWindowSize) { + congressWindowSize+=100; + updateWindowSize(); + } + }else { + if(windowUsed*3L>=congressWindowSize) { + congressWindowSize+=4000; + updateWindowSize(); + } + } + + if (bandwidth >= congressSpeed) { + congressSpeed = bandwidth; + } else { + congressSpeed = (congressSpeed * 99 + bandwidth) / 100; + } + speed=Math.max(MIN_SPEED,(long) (congressSpeed * gain)) ; + + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + }finally { + lock.unlock(); + } + } + //System.out.println(speed+" "+window); + + } + + private void updateWindowSize() { + window=Math.max( congressWindowSize,MIN_WINDOW); + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + } + + @Override + public void putLoss(long packetSize, long lossns, int losscounter) { + + } + + @Override + public long getRTO() { + return RTO; + } + + @Override + public void setCurrentWindowUsed(long used) { + this.windowUsed=used; + } + + @Override + public void setCurrentBandwidth(long bandwidth) { + this.bandwidth=bandwidth; + } + +} diff --git a/src/org/kne/cloud/network/congress/EmptyCongressAlgorithm.java b/src/org/kne/cloud/network/congress/EmptyCongressAlgorithm.java new file mode 100644 index 0000000..a346351 --- /dev/null +++ b/src/org/kne/cloud/network/congress/EmptyCongressAlgorithm.java @@ -0,0 +1,66 @@ +package org.kne.cloud.network.congress; + +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class EmptyCongressAlgorithm implements CongressAlgorithm{ + + private long timeout; + + @Override + public void reset() { + // TODO 自动生成的方法存根 + + } + + public long getTimeout() { + return timeout; + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + // TODO 自动生成的方法存根 + + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + // TODO 自动生成的方法存根 + + } + + @Override + public void putAck(long packetSize, long latencyns, boolean ecn) { + // TODO 自动生成的方法存根 + + } + + @Override + public void putLoss(long packetSize, long lossns, int losscounter) { + // TODO 自动生成的方法存根 + + } + + @Override + public void setCurrentWindowUsed(long maxwindow) { + // TODO 自动生成的方法存根 + + } + + @Override + public void setCurrentBandwidth(long bandwidth) { + // TODO 自动生成的方法存根 + + } + + public EmptyCongressAlgorithm(long timeout) { + super(); + this.timeout = timeout; + } + + @Override + public long getRTO() { + return timeout; + } + +} diff --git a/src/org/kne/cloud/network/congress/LARCCongressAlgorithm.java b/src/org/kne/cloud/network/congress/LARCCongressAlgorithm.java new file mode 100644 index 0000000..5269b6b --- /dev/null +++ b/src/org/kne/cloud/network/congress/LARCCongressAlgorithm.java @@ -0,0 +1,138 @@ +package org.kne.cloud.network.congress; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class LARCCongressAlgorithm implements CongressAlgorithm { + + private static final long BURST_TIME = 1000000L; + private static final long BIAS = 1000000L; + private static long MIN_SPEED = 64 * 1024L; + private static long MIN_WINDOW = 16384; + + private Consumer windowControlConsumer; + private BiConsumer speedControlConsumer; + + private AtomicBoolean firstUpdate = new AtomicBoolean(true); + private long MIN_RTTVAR = 10000000L; + private volatile long RTTMin = 1000000000L; + private volatile long RTTVar = 1000000000L; + private volatile long RTTAvg = 1000000000L; + private volatile long RTTAvg2 = 1000000000L; + private volatile long RTTTotal = 0; + private volatile long RTTCount = 0; + private volatile long RTO = 1000000000L; + + + private volatile long window=MIN_WINDOW; + private volatile long speed=MIN_SPEED; + private volatile long maxwindow=99999999999L; + private long congressSpeed=MIN_SPEED; + private double MAX_GAIN=1.1;//2.8853900817779 + private double MIN_GAIN=0.95; + private double windowGain=1.5; + private double speedGain=4;//MAX_GAIN + @Override + public void reset() { + window = MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + speed = MIN_SPEED; + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + windowGain=MAX_GAIN; + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + this.windowControlConsumer = windowControlConsumer; + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + this.speedControlConsumer = speedControlConsumer; + } + + private long RTTstartTime = System.nanoTime(); + private long bandwidth; + @Override + public synchronized void putAck(long packetSize, long latencyns, boolean ecn) { + if (latencyns <= RTTMin) { + RTTMin = latencyns; + } else { + RTTMin = (RTTMin * 99999 + latencyns) / 100000; + } + if (firstUpdate.compareAndSet(true, false)) { + RTTAvg = latencyns; + RTTVar = latencyns / 2; + RTTAvg2 = latencyns; + } else { + RTTVar = (RTTVar * 3 + Math.abs(RTTAvg - latencyns)) / 4; + RTTAvg = (RTTAvg * 7 + latencyns) / 8; + } + RTO = RTTAvg + Math.max(MIN_RTTVAR, RTTVar * 4);// RTTVar*4 + + RTTTotal += latencyns; + RTTCount++; + /*double rate=latencyns/(double)(RTTMin+BIAS); + if(rate>2) { + windowGain=MIN_GAIN; + }else if(rate<1.2){ + windowGain=MAX_GAIN; + + }*/ + long curr=System.nanoTime(); + if(curr-RTTstartTime>RTTAvg2) { + if(RTTCount>0) { + RTTAvg2=(RTTAvg2+RTTTotal/RTTCount)/2; + RTTTotal=0; + RTTCount=0; + } + + RTTstartTime=curr; + + if (bandwidth >= congressSpeed) { + congressSpeed = bandwidth; + //congressSpeed = (congressSpeed + bandwidth) / 2; + } else { + congressSpeed = (congressSpeed * 199 + bandwidth) / 200; + } + speed=(long) (congressSpeed * speedGain)+MIN_SPEED ; + window= ((long) (congressSpeed*windowGain )*(RTTMin+BIAS)/1000000000L)+MIN_WINDOW; + if (windowControlConsumer != null) { + windowControlConsumer.accept(window); + } + if (speedControlConsumer != null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + } + + } + + @Override + public void putLoss(long packetSize, long lossns, int losscounter) { + + } + + @Override + public long getRTO() { + return RTO; + } + + @Override + public void setCurrentWindowUsed(long used) { + + } + + @Override + public void setCurrentBandwidth(long bandwidth) { + this.bandwidth=bandwidth; + + //System.out.println(gain); + //System.out.println(bandwidth+" "+congressSpeed+" "+window); + } + +} diff --git a/src/org/kne/cloud/network/congress/MessageBatcher.java b/src/org/kne/cloud/network/congress/MessageBatcher.java new file mode 100644 index 0000000..274438b --- /dev/null +++ b/src/org/kne/cloud/network/congress/MessageBatcher.java @@ -0,0 +1,190 @@ +package org.kne.cloud.network.congress; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.LockSupport; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Consumer; + +/** + * 网络消息批量发送器,用于减少小包数量,降低网络性能开销 + * @param 消息类型 + */ +public class MessageBatcher implements Runnable{ + private ArrayList messageList; + private ReentrantLock lock=new ReentrantLock(); + private final int batchSize; + private final long maxDelay; + private Consumer> consumer; + private final Thread batchThread; + private final AtomicBoolean running; + private long firstTime; + + /** + * 构造函数 + * @param batchSize 批量大小,当消息达到此数量时触发发送 + * @param maxDelayMillis 最大延迟时间(毫秒),即使消息数量不足也会触发发送 + */ + public MessageBatcher(int batchSize, long maxDelay) { + this.batchSize = batchSize; + this.maxDelay = maxDelay; + this.running = new AtomicBoolean(true); + + // 创建并启动批量处理线程 + this.batchThread = new Thread(this); + this.batchThread.setDaemon(true); + this.batchThread.start(); + } + + /** + * 设置消息消费者回调函数 + * @param consumer 消费者回调 + */ + public void setConsumer(Consumer> consumer) { + this.consumer = consumer; + } + + /** + * 添加消息到批量处理器 + * @param message 消息对象 + */ + public void putMessage(T message) { + if (message != null) { + lock.lock(); + try { + if(messageList==null) { + messageList=new ArrayList(batchSize); + firstTime=System.nanoTime(); + } + messageList.add(message); + check(false); + }finally { + lock.unlock(); + } + } + } + + + /** + * 批量添加消息 + * @param messages 消息列表 + */ + public void putMessages(List messages) { + for(T message :messages) { + putMessage(message); + } + } + + + private void check(boolean force) { + if(messageList==null) + return; + long currTime=System.nanoTime(); + if(messageList.size()>=batchSize||(currTime-firstTime)>maxDelay||force) { + if(consumer!=null) { + try { + consumer.accept(messageList); + }catch(Exception e) { + e.printStackTrace(); + } + } + messageList=null; + } + } + + /** + * 停止批量处理器 + */ + public void close() { + running.set(false); + LockSupport.unpark(batchThread); + // 确保所有消息都被发送 + flush(); + } + + /** + * 批量处理消息的核心方法 + */ + public void run() { + while(running.get()) { + lock.lock(); + try { + check(false); + }finally { + lock.unlock(); + } + // 更精确的等待策略 + long sleepTimeNanos = calculateSleepTime(); + if (sleepTimeNanos > 0) { + LockSupport.parkNanos(sleepTimeNanos); + } else { + // 避免忙等待 + LockSupport.parkNanos(1_000_000L); // 1ms + } + } + } + + /** + * 计算需要等待的时间 + * @return 等待时间(纳秒) + */ + private long calculateSleepTime() { + lock.lock(); + try { + if (messageList == null || messageList.isEmpty()) { + return 10_000_000L; // 10ms + } + + long elapsed = System.nanoTime() - firstTime; + long remaining = maxDelay - elapsed; + + if (remaining <= 0) { + return 0; // 立即处理 + } + + // 返回剩余时间或10ms中的较小值 + return Math.min(remaining, 10_000_000L); + } finally { + lock.unlock(); + } + } + + public int getBatchSize() { + return batchSize; + } + + public long getMaxDelay() { + return maxDelay; + } + + public void flush() { + lock.lock(); + try { + check(true); + }finally { + lock.unlock(); + } + } + + public int getQueueSize() { + List cmessageList =messageList; + if(cmessageList==null) + return 0; + return cmessageList.size(); + } + public static void main(String[] args) throws InterruptedException { + MessageBatchermes=new MessageBatcher<>(10, 1000000L); + mes.setConsumer((x)->{System.out.println(x);}); + int n=0; + for(;;){ + mes.putMessage(n++); + mes.putMessage(n++); + mes.putMessage(n++); + mes.putMessage(n++); + Thread.sleep(1); + } + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/klalb/ReceiveSlidingWindow.java b/src/org/kne/cloud/network/congress/ReceiveByteSlidingWindow.java similarity index 85% rename from src/org/kne/cloud/network/klalb/ReceiveSlidingWindow.java rename to src/org/kne/cloud/network/congress/ReceiveByteSlidingWindow.java index 59bb764..ccb793a 100644 --- a/src/org/kne/cloud/network/klalb/ReceiveSlidingWindow.java +++ b/src/org/kne/cloud/network/congress/ReceiveByteSlidingWindow.java @@ -1,11 +1,11 @@ -package org.kne.cloud.network.klalb; +package org.kne.cloud.network.congress; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReferenceArray; -public class ReceiveSlidingWindow { +public class ReceiveByteSlidingWindow { private AtomicReferenceArray array; private AtomicInteger windowSize =new AtomicInteger(); private AtomicLong windowPosition=new AtomicLong(); @@ -26,7 +26,7 @@ public class ReceiveSlidingWindow { this.windowPosition.set(windowPosition); } - public ReceiveSlidingWindow(int capacity){ + public ReceiveByteSlidingWindow(int capacity){ array=new AtomicReferenceArray(capacity); } diff --git a/src/org/kne/cloud/network/klalb/SendSlidingWindow.java b/src/org/kne/cloud/network/congress/SendByteSlidingWindow.java similarity index 88% rename from src/org/kne/cloud/network/klalb/SendSlidingWindow.java rename to src/org/kne/cloud/network/congress/SendByteSlidingWindow.java index 6595164..0f56e50 100644 --- a/src/org/kne/cloud/network/klalb/SendSlidingWindow.java +++ b/src/org/kne/cloud/network/congress/SendByteSlidingWindow.java @@ -1,4 +1,4 @@ -package org.kne.cloud.network.klalb; +package org.kne.cloud.network.congress; import java.util.Iterator; import java.util.Objects; @@ -6,7 +6,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReferenceArray; -public class SendSlidingWindow implements Iterable{ +public class SendByteSlidingWindow implements Iterable{ private Object[] array; private volatile int windowSize ; private volatile long windowPosition; @@ -27,7 +27,7 @@ public class SendSlidingWindow implements Iterable{ this.windowPosition=windowPosition; } - public SendSlidingWindow(int capacity,int windowSize){ + public SendByteSlidingWindow(int capacity,int windowSize){ if(windowSize>capacity) { throw new IllegalArgumentException("windowSize>capacity!"); } diff --git a/src/org/kne/cloud/network/congress/SendPacketSlidingWindow.java b/src/org/kne/cloud/network/congress/SendPacketSlidingWindow.java new file mode 100644 index 0000000..ade50ab --- /dev/null +++ b/src/org/kne/cloud/network/congress/SendPacketSlidingWindow.java @@ -0,0 +1,203 @@ +package org.kne.cloud.network.congress; + +import java.io.Closeable; +import java.io.IOException; +import java.net.SocketException; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; +import java.util.UUID; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.function.Consumer; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.IPv6Packet; +import org.kne.cloud.network.klalb.SendItem; + +public class SendPacketSlidingWindow implements Closeable,AutoCloseable{ + private Map> sendMap= new ConcurrentHashMap<>(1024,0.2f); + //private AtomicInteger sendmapWindowUsed=new AtomicInteger(0); + private LongAdder sendmapWindowUsed=new LongAdder(); + + private int headerCalibrate=0; + public void setHeaderCalibrate(int headerCalibrate) { + this.headerCalibrate = headerCalibrate; + } + + private CongressAlgorithm algorithm; + + private Consumer resendConsumer; + private Consumer closingConsumer; + private volatile boolean closed=false; + private ResendChecker checker=new ResendChecker(); + private AtomicLong windowSize = new AtomicLong(); + + + private Lock lock; + + private Condition condition; + + public SendPacketSlidingWindow(CongressAlgorithm algorithm, long windowSize) { + super(); + this.algorithm = algorithm; + this.windowSize .set( windowSize); + Thread t=new Thread(checker); + t.start(); + } + + public SendPacketSlidingWindow(CongressAlgorithm algorithm, long windowSize,int headerCalibrate) { + this(algorithm,windowSize); + this.headerCalibrate=headerCalibrate; + } + + public long getWindowSize() { + return windowSize.get(); + } + + public void setWindowSize(long windowSize) { + this.windowSize.set(windowSize); + } + + public Consumer getResendConsumer() { + return resendConsumer; + } + + public void setResendConsumer(Consumer resendConsumer) { + this.resendConsumer = resendConsumer; + } + + public Consumer getClosingConsumer() { + return closingConsumer; + } + + public void setClosingConsumer(Consumer closingConsumer) { + this.closingConsumer = closingConsumer; + } + + public long getSendmapWindowUsed() { + return sendmapWindowUsed.sum(); + } + + public int getHeaderCalibrate() { + return headerCalibrate; + } + + public CongressAlgorithm getAlgorithm() { + return algorithm; + } + + + public boolean isCongress(IPv6Packet iPv6Packet,double scale) { + boolean congress=sendmapWindowUsed.sum()>windowSize.get()*scale; + return congress; + + } + + public void put(K sequence,V packet) throws SocketException { + if(closed) { + throw new SocketException("sliding window closed!"); + } + SendItem newitem=new SendItem( packet); + SendItem old= sendMap.put(sequence,newitem); + if(old!=null) { + sendmapWindowUsed.add( -(old.getPacketLength()+headerCalibrate)); + } + sendmapWindowUsed.add( (newitem.getPacketLength()+headerCalibrate)); + long newWindow=sendmapWindowUsed.sum(); + algorithm.setCurrentWindowUsed(newWindow); + } + + public V ack(K sequence) { + SendItem ipv6; + if((ipv6=sendMap.remove(sequence))!=null) { + sendmapWindowUsed.add( -(ipv6.getPacketLength()+headerCalibrate)); + long newWindow= sendmapWindowUsed.sum(); + algorithm.setCurrentWindowUsed(newWindow); + long RTTC=System.nanoTime()-ipv6.getSendtime(); + algorithm.putAck(ipv6.getPacketLength(), RTTC, false); + //System.out.println("remove:"+aseq.getSequence()+" "+sendMap.size()); + Lock lockx=lock; + if(lockx!=null) { + lockx.lock(); + try { + Condition cds=condition; + if(cds!=null) { + cds.signalAll(); + } + }finally { + lockx.unlock(); + } + } + return ipv6.getPacket(); + }else { + // System.out.println("miss:"+aseq.getSequence()+" "+sendMap.size()); + return null; + } + } + + private class ResendChecker implements Runnable{ + + @Override + public void run() { + while(!closed) { + + Collection>vals= sendMap.values(); + for (Iterator> iterator = vals.iterator(); iterator.hasNext();) { + SendItem sitm = (SendItem) iterator.next(); + if(System.nanoTime() -sitm.getSendtime()>algorithm.getRTO()) { + iterator.remove(); + sendmapWindowUsed.add((int) -(sitm.getPacketLength()+headerCalibrate)); + long newWindow=sendmapWindowUsed.sum(); + algorithm.setCurrentWindowUsed(newWindow); + //if(!kplink.isStream()) + V pktr=sitm.getPacket(); + pktr.setPriority(pktr.getPriority()-1); + if(resendConsumer!=null) + resendConsumer.accept(pktr); + //System.out.println("reroute"); + } + } + + + + try { + Thread.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + // 清理资源 + if (closingConsumer != null) { + for (SendItem item : sendMap.values()) { + closingConsumer.accept(item.getPacket()); + } + } + sendMap.clear(); + sendmapWindowUsed.reset(); + } + } + public boolean isClosed() { + return closed; + } + + @Override + public void close() { + closed=true; + } + + public void setCongressCondition(Lock lock2, Condition condition2) { + this.lock=lock2; + this.condition=condition2; + } + + public Map> getSendmap() { + return sendMap; + } + +} diff --git a/src/org/kne/cloud/network/congress/VegasCongressAlgorithm.java b/src/org/kne/cloud/network/congress/VegasCongressAlgorithm.java new file mode 100644 index 0000000..7227c65 --- /dev/null +++ b/src/org/kne/cloud/network/congress/VegasCongressAlgorithm.java @@ -0,0 +1,132 @@ +package org.kne.cloud.network.congress; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class VegasCongressAlgorithm implements CongressAlgorithm { + + private static final long BURST_TIME = 1000000L; + private static final long BIAS = 1000000L; + private static long MIN_SPEED=256*1024L; + private static long MIN_WINDOW=4096L; + + private Consumer windowControlConsumer; + private BiConsumer speedControlConsumer; + + private AtomicBoolean firstUpdate=new AtomicBoolean(true); + private long MIN_RTTVAR=30000000L; + private volatile long RTTMin=1000000000L; + private volatile long RTTVar=1000000000L; + private volatile long RTTAvg=1000000000L; + private volatile long RTTAvg2=1000000000L; + private volatile long RTTTotal=0; + private volatile long RTTCount=0; + private volatile long RTO=1000000000L; + + private volatile long window=MIN_WINDOW; + private volatile long speed=MIN_SPEED; + private volatile long maxwindow=99999999999L; + @Override + public void reset() { + window=MIN_WINDOW; + if(windowControlConsumer!=null) { + windowControlConsumer.accept(window); + } + speed=MIN_SPEED; + if(speedControlConsumer!=null) { + speedControlConsumer.accept(speed, BURST_TIME); + } + } + + @Override + public void setWindowControlConsumer(Consumer windowControlConsumer) { + this.windowControlConsumer=windowControlConsumer; + } + + @Override + public void setSpeedControlConsumer(BiConsumer speedControlConsumer) { + this.speedControlConsumer=speedControlConsumer; + } + private long RTTstartTime=System.nanoTime(); + @Override + public synchronized void putAck(long packetSize, long latencyns, boolean ecn) { + if(latencyns<=RTTMin) { + RTTMin=latencyns; + }else { + RTTMin= (RTTMin*9999+latencyns)/10000; + } + if(firstUpdate.compareAndSet(true, false)) { + RTTAvg=latencyns; + RTTVar=latencyns/2; + RTTAvg2=latencyns; + }else { + RTTVar=(RTTVar*3+Math.abs(RTTAvg-latencyns))/4; + RTTAvg= (RTTAvg*7+latencyns)/8; + } + RTO=RTTAvg+Math.max(MIN_RTTVAR, RTTVar*4);//RTTVar*4 + + RTTTotal+=latencyns; + RTTCount++; + + long curr=System.nanoTime(); + if(curr-RTTstartTime>RTTMin) { + if(RTTCount>0) { + RTTAvg2=(RTTAvg2+RTTTotal/RTTCount)/2; + RTTTotal=0; + RTTCount=0; + } + double excepted=window/(double)(Math.max( BIAS,RTTMin)); + double actual=window/(double)(RTTAvg2); + double diff=(excepted-actual)*(Math.max( BIAS,RTTMin)); + //System.out.println("diff:"+diff); + if(diff>65536*3) { + window-=512; + } + if(diff<65536*2) { + window+=512; + } + if(window>=maxwindow){ + window=maxwindow; + //System.out.println("window:"+window); + } + if(window listeners = new CopyOnWriteArraySet<>(); + + @Override + public void addIPv6LinkStateListener(IPv6LinkStateListener listener) { + listeners.add(listener); + } + + @Override + public void removeIPv6LinkStateListener(IPv6LinkStateListener listener) { + listeners.remove(listener); + + } + + public void onOnlineStateUpdate() { + listeners.forEach((v) -> { + v.onOnlineStateUpdate(this); + }); + } + public void onLocatorUpdate() { + listeners.forEach((v) -> { + v.onLocatorUpdate(this); + }); + } + + public void onAddressUpdate() { + listeners.forEach((v) -> { + v.onAddressUpdate(this); + }); + } +} diff --git a/src/org/kne/cloud/network/ipv6/ICMPv6EchoPacket.java b/src/org/kne/cloud/network/ipv6/ICMPv6EchoPacket.java new file mode 100644 index 0000000..2d3de03 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/ICMPv6EchoPacket.java @@ -0,0 +1,85 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.IPv6Packet; +import org.kne.io.KNEChannels; + +public class ICMPv6EchoPacket extends ICMPv6Packet { + private static final int ECHO_HEADER_LENGTH = 4; // 标识符(2) + 序列号(2) + + public ICMPv6EchoPacket(boolean isRequest,int sequenceNumber,int identifier) { + super(isRequest ? TYPE_ECHO_REQUEST : TYPE_ECHO_REPLY, 0); + setSequenceNumber(sequenceNumber); + setIdentifier(identifier); + } + + + /** + * 获取标识符 + */ + public int getIdentifier() { + return getHeader().getChar(4); + } + + /** + * 设置标识符 + */ + public void setIdentifier(int identifier) { + getHeader().putChar(4, (char) identifier); + } + + /** + * 获取序列号 + */ + public int getSequenceNumber() { + return getHeader().getChar(6); + } + + /** + * 设置序列号 + */ + public void setSequenceNumber(int sequenceNumber) { + getHeader().putChar(6, (char) sequenceNumber); + } + + + /** + * 创建Ping请求包 + */ + public static ICMPv6EchoPacket createPingRequest(int identifier, int sequenceNumber, byte[] payload) { + ICMPv6EchoPacket packet = new ICMPv6EchoPacket(true,identifier,sequenceNumber); + if (payload != null && payload.length > 0) { + packet.getData().put(payload); + packet.getData().flip(); + } + return packet; + } + + /** + * 创建Ping回复包(基于请求包) + */ + public static ICMPv6EchoPacket createPingReply(ICMPv6EchoPacket request) { + ICMPv6EchoPacket reply = new ICMPv6EchoPacket(false,request.getIdentifier(),request.getSequenceNumber()); + // 复制数据 + if (request.getData() != null && request.getData().limit() > 0) { + ByteBuffer src = request.getData().duplicate(); + src.position(0); + reply.getData().put(src); + reply.getData().flip(); + } + + return reply; + } + + @Override + public String toString() { + String typeStr = getType() == TYPE_ECHO_REQUEST ? "Echo Request" : "Echo Reply"; + return String.format("ICMPv6 %s [ID:%d, Seq:%d, Data:%d bytes]", + typeStr, getIdentifier(), getSequenceNumber(), getDataLength()); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/ICMPv6Packet.java b/src/org/kne/cloud/network/ipv6/ICMPv6Packet.java new file mode 100644 index 0000000..9ea27f4 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/ICMPv6Packet.java @@ -0,0 +1,284 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.util.Arrays; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.cloud.network.ipv6.IPv6Packet; +import org.kne.cloud.network.ipv6.IPv6Packet.IPv6Payload; +import org.kne.io.KNEChannels; + +public class ICMPv6Packet extends IPv6Payload { + public static final int ICMPv6_PROTOCOL_NUMBER = 58; + public static final int ICMPv6_HEADER_LENGTH = 8; // ICMPv6基础头部固定8字节 + + // ICMPv6类型常量 + public static final int TYPE_DESTINATION_UNREACHABLE = 1; + public static final int TYPE_PACKET_TOO_BIG = 2; + public static final int TYPE_TIME_EXCEEDED = 3; + public static final int TYPE_PARAMETER_PROBLEM = 4; + public static final int TYPE_ECHO_REQUEST = 128; + public static final int TYPE_ECHO_REPLY = 129; + + private ByteBuffer header = NetworkPacket.bufferAllocator.allocate(ICMPv6_HEADER_LENGTH); + private ByteBuffer data; + + public ICMPv6Packet() { + super(ICMPv6_PROTOCOL_NUMBER, false); + } + + public ICMPv6Packet(int type, int code) { + super(ICMPv6_PROTOCOL_NUMBER, false); + getHeader().put((byte) type); + getHeader().put((byte) code); + // 校验和字段初始为0,后续计算 + getHeader().putChar((char) 0); + data = NetworkPacket.bufferAllocator.allocate(65535); + } + + @Override + public long getTotalLength() { + return data != null ? data.limit() + ICMPv6_HEADER_LENGTH : ICMPv6_HEADER_LENGTH; + } + + + + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + // 写入头部和数据 + dto.write(getHeader().slice(0, ICMPv6_HEADER_LENGTH)); + if (data != null && data.limit() > 0) { + dto.write(data.slice(0, data.limit())); + } + } + + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + // 读取ICMPv6头部 + getHeader().clear().limit(ICMPv6_HEADER_LENGTH); + KNEChannels.readFully(din, getHeader()); + + // 读取数据部分(总长度减去头部长度) + long dataLength = length - ICMPv6_HEADER_LENGTH; + + if (dataLength < 0) { + throw new IOException("Invalid ICMPv6 packet: total length < header length"); + } + + if (dataLength > 0) { + data = NetworkPacket.bufferAllocator.allocate((int) dataLength); + KNEChannels.readFully(din, data); + data.flip(); + } else { + data = null; + } + } + + @Override + protected boolean needEndPosition() { + return false; + } + + /** + * 获取ICMPv6类型 + */ + public int getType() { + return getHeader().get(0) & 0xFF; + } + + /** + * 设置ICMPv6类型 + */ + public void setType(int type) { + getHeader().put(0, (byte) type); + } + + /** + * 获取ICMPv6代码 + */ + public int getCode() { + return getHeader().get(1) & 0xFF; + } + + /** + * 设置ICMPv6代码 + */ + public void setCode(int code) { + getHeader().put(1, (byte) code); + } + + /** + * 获取校验和 + */ + public int getChecksum() { + return getHeader().getChar(2); + } + + /** + * 设置校验和 + */ + public void setChecksum(int checksum) { + getHeader().putChar(2, (char) checksum); + } + + /** + * 获取消息体(不同类型ICMPv6消息的特定字段) + * 对于Echo请求/回复,这是标识符和序列号 + * 对于错误消息,这是未使用的字段和原始数据包片段 + */ + public int getMessageBody() { + return getHeader().getInt(4); + } + + /** + * 设置消息体 + */ + public void setMessageBody(int messageBody) { + getHeader().putInt(4, messageBody); + } + + /** + * 获取数据部分长度 + */ + public int getDataLength() { + return data != null ? data.limit() : 0; + } + + public ByteBuffer getData() { + return data; + } + + /** + * 计算ICMPv6校验和 + * ICMPv6校验和计算包括IPv6伪首部和整个ICMPv6报文 + */ + public int calculateChecksum() { + if (getParent() == null) { + throw new IllegalStateException("Parent IPv6 packet required for checksum calculation"); + } + + // 保存原始校验和值 + int originalChecksum = getChecksum(); + + try { + // 临时将校验和字段设为0 + setChecksum(0); + + long sum = 0; + + // IPv6伪首部 + byte[] srcAddr = new byte[16], dstAddr = new byte[16]; + getParent().getRawSourceAddress(srcAddr); + getParent().getRawDestinationAddress(dstAddr); + + for (int i = 0; i < 16; i += 2) { + sum += ((srcAddr[i] & 0xFF) << 8) | (srcAddr[i + 1] & 0xFF); + sum += ((dstAddr[i] & 0xFF) << 8) | (dstAddr[i + 1] & 0xFF); + } + + // ICMPv6报文长度 + int totalLength = (int) getTotalLength(); + sum += (totalLength >>> 16) + totalLength; + sum += ICMPv6_PROTOCOL_NUMBER; + + // ICMPv6头部 + ByteBuffer headerCopy = getHeader().duplicate(); + headerCopy.position(0).limit(ICMPv6_HEADER_LENGTH); + while (headerCopy.remaining() >= 2) { + sum += headerCopy.getChar(); + } + + // ICMPv6数据 + if (data != null && data.limit() > 0) { + ByteBuffer dataCopy = data.duplicate(); + dataCopy.position(0); + + while (dataCopy.remaining() >= 2) { + sum += dataCopy.getChar(); + } + + if (dataCopy.remaining() == 1) { + sum += (dataCopy.get() & 0xFF) << 8; + } + } + + // 折叠进位并取反 + while ((sum >> 16) != 0) { + sum = (sum & 0xFFFF) + (sum >> 16); + } + + int checksum = (int) (~sum & 0xFFFF); + return checksum == 0 ? 0xFFFF : checksum; + + } finally { + // 恢复原始校验和值 + setChecksum(originalChecksum); + } + } + + /** + * 更新校验和 + */ + public void updateChecksum() { + setChecksum(calculateChecksum()); + } + + /** + * 验证校验和 + */ + public boolean verifyChecksum() { + int storedChecksum = getChecksum(); + return storedChecksum == 0 || storedChecksum == calculateChecksum(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("ICMPv6 Type:").append(getType()) + .append(" Code:").append(getCode()) + .append(" [Total:").append(getTotalLength()) + .append(", Data:").append(getDataLength()).append("]"); + + if (data != null && data.limit() > 0) { + byte[] b = new byte[Math.min(data.limit(), 10)]; + data.get(0, b); + sb.append(" ").append(Arrays.toString(b)); + } + + return sb.toString(); + } + + + // 测试方法 + public static void main(String[] args) { + // 创建一个Echo Request类型的ICMPv6包 + ICMPv6Packet icmpv6 = new ICMPv6Packet(TYPE_ECHO_REQUEST, 0); + icmpv6.setMessageBody(0x12345678); // 设置标识符和序列号 + + // 添加一些测试数据 + ByteBuffer testData = NetworkPacket.bufferAllocator.allocate(4); + testData.put("test".getBytes()); + testData.flip(); + icmpv6.data = testData; + + // 创建父IPv6包(用于校验和计算) + IPv6Packet ipv6 = new IPv6Packet(); + // 这里需要设置源和目的地址,但为了示例简化 + + icmpv6.setParent(ipv6); + + System.out.println("Original checksum: " + icmpv6.calculateChecksum()); + icmpv6.setChecksum(1); + System.out.println("Checksum verification (should be false): " + icmpv6.verifyChecksum()); + icmpv6.updateChecksum(); + System.out.println("Checksum verification (should be true): " + icmpv6.verifyChecksum()); + System.out.println(icmpv6); + } + + public ByteBuffer getHeader() { + return header; + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/ICMPv6TimeExceededPacket.java b/src/org/kne/cloud/network/ipv6/ICMPv6TimeExceededPacket.java new file mode 100644 index 0000000..f6ddc74 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/ICMPv6TimeExceededPacket.java @@ -0,0 +1,69 @@ +package org.kne.cloud.network.ipv6; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import org.kne.cloud.network.NetworkPacket; +import org.kne.io.KNEChannels; + +public class ICMPv6TimeExceededPacket extends ICMPv6Packet { + private static final int UNUSED_FIELD_LENGTH = 4; // 未使用字段长度 + + // 代码值常量 + public static final int CODE_HOP_LIMIT_EXCEEDED = 0; // 跳数限制超时 + public static final int CODE_FRAGMENT_REASSEMBLY_EXCEEDED = 1; // 分片重组超时 + + public ICMPv6TimeExceededPacket(int code) { + super(TYPE_TIME_EXCEEDED, code); + setUnused(0); + } + + /** + * 获取未使用字段(通常为0) + */ + public int getUnused() { + return getHeader().getInt(4); + } + + /** + * 设置未使用字段(通常设为0) + */ + public void setUnused(int unused) { + getHeader().putInt(4, unused); + } + + + /** + * 创建跳数限制超时包 + */ + public static ICMPv6TimeExceededPacket createHopLimitExceeded(IPv6Packet originalPacket) { + ICMPv6TimeExceededPacket packet = new ICMPv6TimeExceededPacket(CODE_HOP_LIMIT_EXCEEDED); + + // 包含原始数据包的前缀(根据RFC,尽可能包含但不超出最小MTU) + if (originalPacket == null) { + throw new NullPointerException("originalPacket is null!"); + } + // 这里简化处理,实际应该序列化原始包的前1280字节(IPv6最小MTU) + ByteBuffer buffer = NetworkPacket.bufferAllocator.allocate(65536); + buffer.clear(); + try { + originalPacket.writeToChannel(KNEChannels.newWritableChannel(buffer)); + } catch (IOException e) { + e.printStackTrace(); + } + buffer.flip(); + buffer.limit(Math.min(1280, buffer.limit())); + packet.getData().clear(); + packet.getData().put(buffer); + packet.getData().flip(); + return packet; + } + + @Override + public String toString() { + String codeStr = getCode() == CODE_HOP_LIMIT_EXCEEDED ? + "Hop Limit Exceeded" : "Fragment Reassembly Time Exceeded"; + return String.format("ICMPv6 Time Exceeded [%s, OriginalPrefix:%d bytes]", + codeStr, getDataLength()); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/IPv6HopByHopTLV.java b/src/org/kne/cloud/network/ipv6/IPv6HopByHopTLV.java new file mode 100644 index 0000000..9c8e9ad --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/IPv6HopByHopTLV.java @@ -0,0 +1,136 @@ +package org.kne.cloud.network.ipv6; + +import java.io.EOFException; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; + +import org.kne.cloud.network.NetworkPacket; + +public class IPv6HopByHopTLV extends TLV { + public static final int PAD1 = 0; + public static final int PADN = 1; + public static final int JUMBO_PAYLOAD = 0xC2; + public static final int ROUTER_ALERT = 0x05; + + public IPv6HopByHopTLV(ByteBuffer header) { + this(header, true); + } + + public IPv6HopByHopTLV(ByteBuffer header, boolean isDefault) { + super(header, isDefault); + } + + public IPv6HopByHopTLV(int type) { + this(type, true); + } + + public IPv6HopByHopTLV(int type, boolean isDefault) { + super(type, isDefault); + } + + public static IPv6HopByHopTLV readIPv6HopByHopTLVFromChannel(ReadableByteChannel din) throws IOException { + ByteBuffer bbf = NetworkPacket.bufferAllocator.allocate(2); + bbf.limit(1); + while (bbf.hasRemaining()) { + if (din.read(bbf) == -1) { + return null; + } + } + int type = bbf.get(0) & 0xff; + IPv6HopByHopTLV htlv; + + switch(type) { + case PAD1: + // Pad1: 只有类型字段,没有数据部分 + htlv = new Pad1HopByHopTLV(bbf); + htlv.readFromChannel(din, 0); + return htlv; + case PADN: + // PadN: 有数据部分 + htlv = new PadNHopByHopTLV(bbf); + htlv.readFromChannel(din, 0); + return htlv; + case ROUTER_ALERT: + // 路由器告警: 有数据部分 + htlv = new RouterAlertHopByHopTLV(bbf, true); + htlv.readFromChannel(din, 0); + return htlv; + case JUMBO_PAYLOAD: + // 巨型载荷: 有数据部分 + htlv = new JumboPayloadHopByHopTLV(bbf, true); + htlv.readFromChannel(din, 0); + return htlv; + default: + // 未知类型: 假设有数据部分 + htlv = new IPv6HopByHopTLV(bbf, true); + htlv.readFromChannel(din, 0); + return htlv; + } + } + + public static void writeIPv6HopByHopTLVToChannel(WritableByteChannel dto, IPv6HopByHopTLV tlv) throws IOException { + tlv.writeToChannel(dto); + } + + @Override + public String toString() { + return "IPv6HopByHopTLV [getType()=" + getType() + ", getDataLength()=" + getDataLength() + "]"; + } + +} + + + + + +/** + * 路由器告警 TLV - 有数据部分 + */ +class RouterAlertHopByHopTLV extends IPv6HopByHopTLV { + public RouterAlertHopByHopTLV(ByteBuffer header, boolean isDefault) { + super(header, isDefault); // isDefault = true: 有数据部分 + } + + public short getAlertValue() { + if (getData() != null && getData().remaining() >= 2) { + ByteBuffer duplicate = getData().duplicate(); + return duplicate.getShort(); + } + return 0; + } + + public void setAlertValue(short value) { + if (getData() == null) { + // 根据isDefault逻辑,可能需要分配数据缓冲区 + // 这里简化处理 + return; + } + ByteBuffer duplicate = getData().duplicate(); + duplicate.putShort(value); + } +} + +/** + * 巨型载荷 TLV - 有数据部分 + */ +class JumboPayloadHopByHopTLV extends IPv6HopByHopTLV { + public JumboPayloadHopByHopTLV(ByteBuffer header, boolean isDefault) { + super(header, isDefault); // isDefault = true: 有数据部分 + } + + public int getJumboLength() { + if (getData() != null && getData().remaining() >= 4) { + ByteBuffer duplicate = getData().duplicate(); + return duplicate.getInt(); + } + return 0; + } + + public void setJumboLength(int length) { + if (getData() == null) return; + ByteBuffer duplicate = getData().duplicate(); + duplicate.putInt(length); + } +} \ No newline at end of file diff --git a/src/org/kne/cloud/network/ipv6/IPv6LinkStateListener.java b/src/org/kne/cloud/network/ipv6/IPv6LinkStateListener.java new file mode 100644 index 0000000..64fd783 --- /dev/null +++ b/src/org/kne/cloud/network/ipv6/IPv6LinkStateListener.java @@ -0,0 +1,9 @@ +package org.kne.cloud.network.ipv6; + +import java.awt.event.ActionListener; + +public interface IPv6LinkStateListener { + public void onOnlineStateUpdate(IPv6NetworkLink link); + public void onAddressUpdate(IPv6NetworkLink link); + public void onLocatorUpdate(IPv6NetworkLink link); +} diff --git a/src/org/kne/cloud/network/ipv6/IPv6NetworkLink.java b/src/org/kne/cloud/network/ipv6/IPv6NetworkLink.java index b36b885..93f3d51 100644 --- a/src/org/kne/cloud/network/ipv6/IPv6NetworkLink.java +++ b/src/org/kne/cloud/network/ipv6/IPv6NetworkLink.java @@ -3,6 +3,8 @@ package org.kne.cloud.network.ipv6; import java.io.IOException; import java.net.Inet6Address; import java.util.*; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; import java.util.function.Consumer; import org.kne.cloud.network.ipv6.IPv6Packet; @@ -12,7 +14,7 @@ import org.kne.cloud.network.monitor.SpeedAndTrafficAndDelayMonitorDataImpl; public interface IPv6NetworkLink { public boolean isLoopBack(); - public Inet6AddressGroup getAddressGroup(); + public List getAddressGroups(); public List getNeighborsInfo(); public List getRouteItems(); public void sendPacket(IPv6Packet pack, Inet6Address inet6Address) throws IOException; @@ -22,8 +24,10 @@ public interface IPv6NetworkLink { } public String getName(); public boolean isUp(); - public boolean canSend(IPv6Packet iPv6Packet); public void setReceiveConsumer(Consumercon); void setRerouteConsumer(Consumer rerouteConsumer); public boolean isReachSpeedLimit(IPv6Packet iPv6Packet); + public void setCongressCondition(Lock lock,Condition condition); + public void addIPv6LinkStateListener(IPv6LinkStateListener listener); + public void removeIPv6LinkStateListener(IPv6LinkStateListener listener); } diff --git a/src/org/kne/cloud/network/ipv6/IPv6Packet.java b/src/org/kne/cloud/network/ipv6/IPv6Packet.java index f50b8cc..02390e7 100644 --- a/src/org/kne/cloud/network/ipv6/IPv6Packet.java +++ b/src/org/kne/cloud/network/ipv6/IPv6Packet.java @@ -26,858 +26,1325 @@ import org.kne.cloud.network.srv6.SRv6Pad1TLV; import org.kne.cloud.network.srv6.SRv6PadNTLV; import org.kne.cloud.network.srv6.SRv6StreamSequenceTLV; import org.kne.cloud.network.srv6.SRv6TLV; +import org.kne.cloud.network.tcp.UDPPacket; +import org.kne.io.KNEChannels; import org.pcap4j.packet.namednumber.IpNumber; +/** + * IPv6数据包类,继承自NetworkPacket,用于处理IPv6网络数据包 + */ public class IPv6Packet extends NetworkPacket { - - private long flowSeqMark=-1; - - - - public long getFlowSeqMark() { - return flowSeqMark; + + // ==================== IPv6扩展头类型 ==================== + + /** 逐跳选项头 - RFC 8200 */ + public static final int HOP_BY_HOP_OPTIONS = 0; + + /** ICMPv4 - RFC 792 */ + public static final int ICMPv4 = 1; + + /** IGMP - RFC 1112 */ + public static final int IGMP = 2; + + /** IPv4封装 - RFC 2003 */ + public static final int IPv4 = 4; + + /** TCP - RFC 793 */ + public static final int TCP = 6; + + /** EGP - RFC 888 */ + public static final int EGP = 8; + + /** IGP - RFC 891 */ + public static final int IGP = 9; + + /** UDP - RFC 768 */ + public static final int UDP = 17; + + /** IPv6封装 - RFC 2473 */ + public static final int IPv6 = 41; + + /** 路由头 - RFC 8200 */ + public static final int ROUTING = 43; + + /** 分片头 - RFC 8200 */ + public static final int FRAGMENT = 44; + + /** RSVP - RFC 2205 */ + public static final int RSVP = 46; + + /** GRE - RFC 2784 */ + public static final int GRE = 47; + + /** 封装安全载荷 - RFC 4303 */ + public static final int ESP = 50; + + /** 认证头 - RFC 4302 */ + public static final int AH = 51; + + /** ICMPv6 - RFC 4443 */ + public static final int ICMPv6 = 58; + + /** 无下一个头 - RFC 8200 */ + public static final int NO_NEXT_HEADER = 59; + + /** 目的选项头 - RFC 8200 */ + public static final int DESTINATION_OPTIONS = 60; + + /** 移动IPv6 - RFC 6275 */ + public static final int MOBILITY = 135; + + /** Shim6 - RFC 5533 */ + public static final int SHIM6 = 140; + + /** 实验性和测试用途 - RFC 3692 */ + public static final int EXPERIMENTAL_1 = 253; + + /** 实验性和测试用途 - RFC 3692 */ + public static final int EXPERIMENTAL_2 = 254; + + /** 保留 - RFC 8200 */ + public static final int RESERVED = 255; + + // ==================== 上层协议类型 ==================== + + /** OSPF - RFC 2328 */ + public static final int OSPF = 89; + + /** SCTP - RFC 4960 */ + public static final int SCTP = 132; + + /** MPLS in IP - RFC 4023 */ + public static final int MPLS_IN_IP = 137; + + /** MANET协议 - RFC 5498 */ + public static final int MANET = 138; + + // ==================== 特殊用途 ==================== + + /** IPv6选项 - RFC 8200 */ + public static final int IPv6_OPTIONS = 0; + + /** 主机身份协议HIP(HOST_IDENTITY_PROTOCOL) - RFC 5201 */ + public static final int HIP = 139; + + /** 无线接入网协议 - RFC 5845 */ + public static final int WARP = 142; + + // ==================== SRv6相关常量 ==================== + + /** SRv6路由类型 */ + public static final int SRV6_ROUTING_TYPE = 4; + + // ==================== 地址相关常量 ==================== + + /** IPv6地址长度(字节) */ + public static final int IPV6_ADDRESS_LENGTH = 16; + + /** IPv6地址长整型部分数量 */ + public static final int IPV6_ADDRESS_LONGS = 2; + + // ==================== 位操作相关常量 ==================== + + public static final int BIT_MASK_LOW_4_BITS = 0b00001111; + public static final int BIT_MASK_HIGH_4_BITS = 0b11110000; + public static final int BIT_MASK_LOW_8_BITS = 0xFF; + public static final int BIT_MASK_LOW_16_BITS = 0xFFFF; + public static final int BIT_MASK_LOW_32_BITS = 0xFFFFFFFF; + + // ==================== 扩展头对齐常量 ==================== + + public static final int EXT_HEADER_ALIGNMENT = 8; + + // ==================== 工具方法 ==================== + + /** + * 获取Next Header的名称 + */ + public static String getName(int nextHeader) { + switch (nextHeader) { + case HOP_BY_HOP_OPTIONS: return "Hop-by-Hop Options"; + case ICMPv4: return "ICMPv4"; + case IGMP: return "IGMP"; + case IPv4: return "IPv4"; + case TCP: return "TCP"; + case EGP: return "EGP"; + case IGP: return "IGP"; + case UDP: return "UDP"; + case IPv6: return "IPv6"; + case ROUTING: return "Routing Header"; + case FRAGMENT: return "Fragment Header"; + case RSVP: return "RSVP"; + case GRE: return "GRE"; + case ESP: return "Encapsulating Security Payload"; + case AH: return "Authentication Header"; + case ICMPv6: return "ICMPv6"; + case NO_NEXT_HEADER: return "No Next Header"; + case DESTINATION_OPTIONS: return "Destination Options"; + case MOBILITY: return "Mobility Header"; + case HIP: return "Host Identity Protocol"; + case SHIM6: return "Shim6 Protocol"; + case EXPERIMENTAL_1: return "Experimental #1"; + case EXPERIMENTAL_2: return "Experimental #2"; + case RESERVED: return "Reserved"; + case OSPF: return "OSPF"; + case SCTP: return "SCTP"; + case MPLS_IN_IP: return "MPLS in IP"; + case MANET: return "MANET Protocols"; + case WARP: return "WARP"; + default: return "Unknown (" + nextHeader + ")"; + } + } + + /** + * 检查是否为IPv6扩展头 + */ + public static boolean isExtensionHeader(int nextHeader) { + return nextHeader == HOP_BY_HOP_OPTIONS || + nextHeader == ROUTING || + nextHeader == FRAGMENT || + nextHeader == DESTINATION_OPTIONS || + nextHeader == MOBILITY || + nextHeader == HIP || + nextHeader == SHIM6; + } + + /** + * 检查是否为传输层协议 + */ + public static boolean isTransportProtocol(int nextHeader) { + return nextHeader == TCP || + nextHeader == UDP || + nextHeader == SCTP; + } + + /** + * 检查是否为网络层协议 + */ + public static boolean isNetworkProtocol(int nextHeader) { + return nextHeader == IPv4 || + nextHeader == IPv6 || + nextHeader == ICMPv4 || + nextHeader == ICMPv6; + } + + private IPv6NetworkLink previousLink; + + public IPv6NetworkLink getPreviousLink() { + return previousLink; } - public void setFlowSeqMark(long flowSeqMark) { - this.flowSeqMark = flowSeqMark; - } - - - private boolean TTLdecreased=false; - - public boolean isTTLdecreased() { - return TTLdecreased; + public void setPreviousLink(IPv6NetworkLink previousLink) { + this.previousLink = previousLink; } - public void setTTLdecreased(boolean tTLdecreased) { - TTLdecreased = tTLdecreased; + // 流序列标记,用于标识数据包在流中的顺序 + private long flowSeqMark = -1; + + public long getFlowSeqMark() { + return flowSeqMark; + } + + public void setFlowSeqMark(long flowSeqMark) { + this.flowSeqMark = flowSeqMark; + } + + // TTL是否已减少的标志 + private boolean TTLdecreased = false; + + public boolean isTTLdecreased() { + return TTLdecreased; + } + + public void setTTLdecreased(boolean tTLdecreased) { + TTLdecreased = tTLdecreased; + } + + // IPv6头部数据缓冲区 + private volatile ByteBuffer IPv6header; + + // IPv6扩展头部列表 + private volatile List headers = new ArrayList<>(); + + // IPv6负载数据 + private IPv6Payload payload; + + // IPv6头部固定长度 + public static final int IPv6_HEADER_LENGTH = 40; + + // IPv6地址在头部中的偏移量 + private static final int SOURCE_ADDRESS_OFFSET = 8; + private static final int DESTINATION_ADDRESS_OFFSET = 24; + + public IPv6Payload getPayload() { + return payload; + } + + public void setPayload(IPv6Payload payload) { + this.payload = payload; + } + + /** + * 默认构造函数,初始化IPv6头部缓冲区 + */ + public IPv6Packet() { + IPv6header = NetworkPacket.bufferAllocator.allocate(IPv6_HEADER_LENGTH); + IPv6header.limit(IPv6_HEADER_LENGTH); + } + + /** + * 从字节中提取IP版本号 + * @param b 字节数据 + * @return IP版本号 + */ + public static int getIPVersion(byte b) { + return b >>> 4; + } + + /** + * 获取IPv6版本号 + * @return 版本号 + */ + public int getVersion() { + return IPv6header.get(0) >>> 4; + } + + /** + * 设置IPv6版本号 + * @param version 版本号 + */ + public void setVersion(int version) { + IPv6header.put(0, (byte) (IPv6header.get(0) & BIT_MASK_LOW_4_BITS | version << 4)); + } + + /** + * 获取流量类别 + * @return 流量类别 + */ + public int getTrafficClass() { + return (IPv6header.get(0) << 4) & (IPv6header.get(1) >>> 4) & BIT_MASK_LOW_8_BITS; + } + + /** + * 设置流量类别 + * @param trafficClass 流量类别 + */ + public void setTrafficClass(int trafficClass) { + IPv6header.put(0, (byte) (IPv6header.get(0) & BIT_MASK_HIGH_4_BITS | (trafficClass >>> 4))); + IPv6header.put(1, (byte) (IPv6header.get(1) & BIT_MASK_LOW_4_BITS | ((trafficClass & BIT_MASK_LOW_4_BITS) << 4))); + } + + /** + * 检查是否启用ECN(显式拥塞通知) + * @return 是否启用ECN + */ + public boolean isEnableECN() { + return (IPv6header.get(1) & 0b00110000) != 0; + } + + /** + * 启用ECN(显式拥塞通知) + */ + public void enableECN() { + IPv6header.put(1, (byte) ((IPv6header.get(1) & 0b11101111) | 0b00100000)); + } + + /** + * 标记CE(拥塞经历) + */ + public void markCE() { + IPv6header.put(1, (byte) (IPv6header.get(1) | 0b00110000)); + // new Exception().printStackTrace(); + } + + /** + * 检查是否标记了CE(拥塞经历) + * @return 是否标记了CE + */ + public boolean isCE() { + return ((IPv6header.get(1) >>> 4) & 0b11) == 0b11; + } + + /** + * 获取流标签 + * @return 流标签 + */ + public int getFlowLabel() { + return ((IPv6header.get(1) & BIT_MASK_LOW_4_BITS) << 16) | (IPv6header.getShort(2) & BIT_MASK_LOW_16_BITS); + } + + /** + * 设置流标签 + * @param flowLabel 流标签 + */ + public void setFlowLabel(int flowLabel) { + IPv6header.put(1, (byte) (IPv6header.get(1) & BIT_MASK_HIGH_4_BITS | (flowLabel >>> 16))); + IPv6header.putShort(2, (short) flowLabel); + } + + /** + * 获取负载长度 + * @return 负载长度 + */ + public int getPayloadLength() { + return IPv6header.getShort(4) & BIT_MASK_LOW_16_BITS; + } + + /** + * 设置负载长度 + * @param payloadLength 负载长度 + */ + public void setPayloadLength(int payloadLength) { + IPv6header.putShort(4, (short) payloadLength); + } + + /** + * 获取下一个头部协议类型 + * @return 下一个头部协议类型 + */ + public int getNextHeader() { + return IPv6header.get(6) & BIT_MASK_LOW_8_BITS; + } + + /** + * 设置下一个头部协议类型 + * @param nextHeader 下一个头部协议类型 + */ + public void setNextHeader(int nextHeader) { + IPv6header.put(6, (byte) nextHeader); + } + + /** + * 获取跳数限制 + * @return 跳数限制 + */ + public int getHopLimit() { + return IPv6header.get(7) & BIT_MASK_LOW_8_BITS; + } + + /** + * 设置跳数限制 + * @param hopLimit 跳数限制 + */ + public void setHopLimit(int hopLimit) { + IPv6header.put(7, (byte) hopLimit); + } + + /** + * 获取原始源地址字节数组 + * @param sourceAddress 用于存储源地址的字节数组 + */ + public void getRawSourceAddress(byte[] sourceAddress) { + IPv6header.get(SOURCE_ADDRESS_OFFSET, sourceAddress, 0, sourceAddress.length); + } + + /** + * 设置原始源地址字节数组 + * @param sourceAddress 源地址字节数组 + */ + public void setRawSourceAddress(byte[] sourceAddress) { + IPv6header.put(SOURCE_ADDRESS_OFFSET, sourceAddress, 0, sourceAddress.length); + } + + public IPv6RouteTableKey getSourceRouteTableKey() { + long most=IPv6header.getLong(SOURCE_ADDRESS_OFFSET); + long least=IPv6header.getLong(SOURCE_ADDRESS_OFFSET+8); + return new IPv6RouteTableKey(most, least); } - private volatile ByteBuffer IPv6header ; + + /** + * 获取原始目标地址字节数组 + * @param destinationAddress 用于存储目标地址的字节数组 + */ + public void getRawDestinationAddress(byte[] destinationAddress) { + IPv6header.get(DESTINATION_ADDRESS_OFFSET, destinationAddress, 0, destinationAddress.length); - private volatile List headers = new ArrayList<>(); + } - private IPv6Payload payload; + /** + * 设置原始目标地址字节数组 + * @param destinationAddress 目标地址字节数组 + */ + public void setRawDestinationAddress(byte[] destinationAddress) { + IPv6header.put(DESTINATION_ADDRESS_OFFSET, destinationAddress, 0, destinationAddress.length); + } - public static final int IPv6_HEADER_LENGTH = 40; - public IPv6Payload getPayload() { - return payload; + public IPv6RouteTableKey getDestinationRouteTableKey() { + long most=IPv6header.getLong(DESTINATION_ADDRESS_OFFSET); + long least=IPv6header.getLong(DESTINATION_ADDRESS_OFFSET+8); + return new IPv6RouteTableKey(most, least); } + + /** + * 获取源地址 + * @return 源地址 + */ + public Inet6Address getSourceAddress() { + byte[] b = new byte[IPV6_ADDRESS_LENGTH]; + IPv6header.get(SOURCE_ADDRESS_OFFSET, b, 0, b.length); + try { + return (Inet6Address) Inet6Address.getByAddress(b); + } catch (UnknownHostException e) { + return null; + } + } - public void setPayload(IPv6Payload payload) { - this.payload = payload; - } + /** + * 设置源地址 + * @param sourceAddress 源地址 + */ + public void setSourceAddress(Inet6Address sourceAddress) { + byte[] b = sourceAddress.getAddress(); + IPv6header.put(SOURCE_ADDRESS_OFFSET, b, 0, b.length); + } - public IPv6Packet() { - IPv6header = NetworkPacket.bufferAllocator.allocate(40); - IPv6header.limit(IPv6_HEADER_LENGTH); - } + /** + * 获取目标地址 + * @return 目标地址 + */ + public Inet6Address getDestinationAddress() { + byte[] b = new byte[IPV6_ADDRESS_LENGTH]; + IPv6header.get(DESTINATION_ADDRESS_OFFSET, b, 0, b.length); + try { + return (Inet6Address) Inet6Address.getByAddress(b); + } catch (UnknownHostException e) { + return null; + } + } - public static int getIPVersion(byte b) { - return b>>>4; - } - - public int getVersion() { - return IPv6header.get(0) >>> 4; - } + /** + * 设置目标地址 + * @param destinationAddress 目标地址 + */ + public void setDestinationAddress(Inet6Address destinationAddress) { + byte[] b = destinationAddress.getAddress(); + IPv6header.put(DESTINATION_ADDRESS_OFFSET, b, 0, b.length); + } + + + + /** + * 获取流会话信息 + * @return 流会话对象 + */ + public FlowSession getFlowSession() { + return new FlowSession(getSourceAddress(), getDestinationAddress(), getFlowLabel()); + } - public void setVersion(int version) { - IPv6header.put(0, (byte) (IPv6header.get(0) & 0b00001111 | version << 4)); - } + /** + * 计算负载长度 + * @return 负载长度 + */ + private int calcPayloadLength() { + int lth = 0; + for (int i = 0; i < headers.size(); i++) { + lth += headers.get(i).getTotalLength(); + } + lth += payload.getTotalLength(); + return lth; + } - public int getTrafficClass() { - return (IPv6header.get(0) << 4) & (IPv6header.get(1) >>> 4) & 0xff; - } + /** + * 获取数据包总长度 + * @return 数据包总长度 + */ + @Override + public long getTotalLength() { + return calcPayloadLength() + IPv6_HEADER_LENGTH; + } - public void setTrafficClass(int trafficClass) { - IPv6header.put(0, (byte) (IPv6header.get(0) & 0b11110000 | (trafficClass >>> 4))); - IPv6header.put(1, (byte) (IPv6header.get(1) & 0b00001111 | ((trafficClass & 0b00001111) << 4))); - } - - public boolean isEnableECN() { - return (IPv6header.get(1)&0b00110000)!=0; - } - - public void enableECN() { - IPv6header.put(1, (byte) ((IPv6header.get(1)&0b11101111)|0b00100000)); - } - - public void markCE() { - IPv6header.put(1,(byte) (IPv6header.get(1)|0b00110000)); - //new Exception().printStackTrace(); - } - - public boolean isCE() { - return ((IPv6header.get(1)>>>4)&0b11)==0b11; - } - - public int getFlowLabel() { - return ((IPv6header.get(1) & 0b00001111) << 16) | (IPv6header.getShort(2) & 0xffff); - } + /** + * 将数据包写入通道 + * @param dto 可写字节通道 + * @throws IOException 写入异常 + */ + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + if (headers.isEmpty()) { + setNextHeader(payload.getProtocolNumber()); + } else { + setNextHeader(headers.get(0).getProtocolNumber()); + } + setPayloadLength(calcPayloadLength()); + dto.write(IPv6header.slice(0, IPv6header.limit())); + for (int i = 0; i < headers.size(); i++) { + IPv6ExtHeader exth = headers.get(i); + if (i + 1 < headers.size()) { + exth.setNextHeader(headers.get(i + 1).getProtocolNumber()); + } else { + exth.setNextHeader(payload.getProtocolNumber()); + } + exth.writeToChannel(dto); + } + payload.writeToChannel(dto); + } - public void setFlowLabel(int flowLabel) { - IPv6header.put(1, (byte) (IPv6header.get(1) & 0b11110000 | (flowLabel >>> 16))); - IPv6header.putShort(2, (short) flowLabel); - } + /** + * 从通道读取数据包 + * @param din 可读字节通道 + * @param length 数据长度 + * @throws IOException 读取异常 + */ + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + IPv6header.limit(IPv6_HEADER_LENGTH); + IPv6header.position(0); + while (IPv6header.hasRemaining()) { + if (din.read(IPv6header) == -1) { + throw new EOFException(); + } + } + int payloadlength = getPayloadLength(); + int nextheader = getNextHeader(); + loop: while (true) { + IPv6ExtHeader ext; + switch (nextheader) { - public int getPayloadLength() { - return IPv6header.getShort(4) & 0xffff; - } + case HOP_BY_HOP_OPTIONS: // Hop-by-Hop选项头部 + ext = new IPv6HopByHopHeader(); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case DESTINATION_OPTIONS: // 目标选项头部 + ext = new IPv6DestinationHeader(); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case ROUTING: // 路由头部 + ByteBuffer bbf = NetworkPacket.bufferAllocator.allocate(2048); + bbf.limit(4); + while (bbf.hasRemaining()) { + if (din.read(bbf) == -1) { + throw new EOFException(); + } + } - public void setPayloadLength(int payloadLength) { - IPv6header.putShort(4, (short) payloadLength); - } + int routingType = bbf.get(2) & BIT_MASK_LOW_8_BITS; + switch (routingType) { + case SRV6_ROUTING_TYPE: // SRv6路由类型 + ext = new IPv6SegmentRoutingHeader(bbf); + break; + default: // 其他路由类型 + ext = new IPv6RoutingHeader(-1, bbf); + break; + } + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case FRAGMENT: // 分段头部 + ext = new IPv6ExtHeader(nextheader); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case ESP: // ESP头部 + ext = new IPv6ExtHeader(nextheader); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case AH: // AH头部 + ext = new IPv6ExtHeader(nextheader); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + case NO_NEXT_HEADER: // 无下一个头部 + ext = new IPv6ExtHeader(nextheader); + ext.readFromChannel(din, 0); + nextheader = ext.getNextHeader(); + payloadlength -= ext.getTotalLength(); + headers.add(ext); + break; + + case UDP: // UDP协议 + UDPPacket up=new UDPPacket(); + up.setParent(this); + up.readFromChannel(din,payloadlength); + this.payload=up; + break loop; + case KLALBPacket.KLALB_PROTOCOL_NUMBER: // KLALB协议 + KLALBPacket kp = KLALBPacket.readKLALBPacketFromChannel(din); + this.payload = kp; + break loop; + case EXPERIMENTAL_1: // 空负载 + IPv6Payload epld = new IPv6EmptyPayload(); + epld.readFromChannel(din, payloadlength); + this.payload = epld; + break loop; + default: // 其他协议类型 + IPv6Payload pld = new IPv6Payload(nextheader); + pld.readFromChannel(din, payloadlength); + this.payload = pld; + break loop; + } + } - public int getNextHeader() { - return IPv6header.get(6) & 0xff; - } + } - public void setNextHeader(int nextHeader) { - IPv6header.put(6, (byte) nextHeader); - } - public int getHopLimit() { - return IPv6header.get(7) & 0xff; - } + /** + * 转换为字符串表示 + * @return 字符串表示 + */ + @Override + public String toString() { + return "IPv6Packet [getVersion()=" + getVersion() + ", getTrafficClass()=" + getTrafficClass() + + ", getFlowLabel()=" + getFlowLabel() + ", getPayloadLength()=" + getPayloadLength() + + ", getNextHeader()=" + getNextHeader() + ", getHopLimit()=" + getHopLimit() + ", getSourceAddress()=" + + getSourceAddress() + ", getDestinationAddress()=" + getDestinationAddress() + ", getLength()=" + + getTotalLength() + ", headers=" + headers + ", payload=" + payload + "]"; + } - public void setHopLimit(int hopLimit) { - IPv6header.put(7, (byte) hopLimit); - } - - public void getRawSourceAddress(byte[] sourceAddress) { - IPv6header.get(8, sourceAddress, 0, sourceAddress.length); - } + /** + * IPv6负载数据类 + */ + public static class IPv6Payload extends NetworkPacket { + private ByteBuffer data; - public void setRawSourceAddress(byte[] sourceAddress) { - IPv6header.put(8, sourceAddress, 0, sourceAddress.length); - } + private boolean onDefault = true; - public void getRawDestinationAddress(byte[] destinationAddress) { - IPv6header.get(24, destinationAddress, 0,destinationAddress.length); - - } - public void setRawDestinationAddress(byte[] destinationAddress) { - IPv6header.put(24, destinationAddress, 0, destinationAddress.length); - } - - public Inet6Address getSourceAddress() { - byte[] b = new byte[16]; - IPv6header.get(8, b, 0, b.length); - try { - return (Inet6Address) Inet6Address.getByAddress(b); - } catch (UnknownHostException e) { - return null; - } - } + private IPv6Packet parent; + + public ByteBuffer getData() { + return data; + } - public void setSourceAddress(Inet6Address sourceAddress) { - byte[] b = sourceAddress.getAddress(); - IPv6header.put(8, b, 0, b.length); - } + private int protocolNumber; - public Inet6Address getDestinationAddress() { - byte[] b = new byte[16]; - IPv6header.get(24, b, 0, b.length); - try { - return (Inet6Address) Inet6Address.getByAddress(b); - } catch (UnknownHostException e) { - return null; - } - } + public IPv6Payload(int protocolNumber) { + this(protocolNumber, true); + } - public void setDestinationAddress(Inet6Address destinationAddress) { - byte[] b = destinationAddress.getAddress(); - IPv6header.put(24, b, 0, b.length); - } + protected IPv6Payload(int protocolNumber, boolean isonDefault) { + this.protocolNumber = protocolNumber; + this.onDefault = isonDefault; + if (onDefault) + this.data = NetworkPacket.bufferAllocator.allocate(65535); + } - public FlowSession getFlowSession() { - return new FlowSession(getSourceAddress(), getDestinationAddress(), getFlowLabel()); - } - - private int calcPayloadLength() { - int lth=0; - for (int i = 0; i < headers.size(); i++) { - lth+= headers.get(i).getLength(); - } - lth+=payload.getLength(); - return lth; - } - - @Override - public long getLength() { - return calcPayloadLength()+IPv6_HEADER_LENGTH; - } + public int getProtocolNumber() { + return protocolNumber; + } - + public long getTotalLength() { + return data.limit(); + } - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - if(headers.isEmpty()) { - setNextHeader(payload.getProtocolNumber()); - }else { - setNextHeader(headers.get(0).getProtocolNumber()); - } - setPayloadLength(calcPayloadLength()); - dto.write(IPv6header.slice(0, IPv6header.limit())); - for (int i = 0; i < headers.size(); i++) { - IPv6ExtHeader exth=headers.get(i); - if(i+1 tlvs = new ArrayList(); + @Override public String toString() { - return "IPv6ExtHeader [protocolNumber=" + protocolNumber + ", getNextHeader()=" + getNextHeader() - + ", getExtLength()=" + getExtLength() + "]"; + return "IPv6HopByHopHeader [tlvs=" + tlvs + ", getProtocolNumber()=" + getProtocolNumber() + + ", getNextHeader()=" + getNextHeader() + ", getExtLength()=" + getExtLength() + "]"; } - public ByteBuffer getData() { - return data; - } - - public IPv6ExtHeader(int type) { - this(type,true); - } - - protected IPv6ExtHeader(int protocolNumber,boolean isonDefault) { - this.protocolNumber = protocolNumber; - this.onDefault=isonDefault; - if(onDefault) { - this.data=NetworkPacket.bufferAllocator.allocate(2048); - }else { - this.data=NetworkPacket.bufferAllocator.allocate(8); - } - } - - protected IPv6ExtHeader(int protocolNumber,boolean isonDefault,ByteBuffer data) { - this.protocolNumber = protocolNumber; - this.onDefault=isonDefault; - this.data=data; - } + public IPv6HopByHopHeader() { + super(HOP_BY_HOP_OPTIONS,2); + } - public int getProtocolNumber() { - return protocolNumber; - } - public int getNextHeader() { - return data.get(0) & 0xff; - } + public IPv6HopByHopHeader( ByteBuffer data) { + super(HOP_BY_HOP_OPTIONS, 2, data); + } - public void setNextHeader(int nextHeader) { - data.put(0, (byte) nextHeader); - } + @Override + public void writeToChannel(WritableByteChannel dto) throws IOException { + int exl = calcTLVLength(); + if ((exl+2) % EXT_HEADER_ALIGNMENT != 0) { + throw new StreamCorruptedException("extLength % " + EXT_HEADER_ALIGNMENT + " !=0"); + } - public int getExtLength() { - return data.get(1) & 0xff; - } + setExtLength(((exl+2) / EXT_HEADER_ALIGNMENT)-1); + super.writeToChannel(dto); + for (IPv6HopByHopTLV tlv : tlvs) { + IPv6HopByHopTLV.writeIPv6HopByHopTLVToChannel(dto, tlv); + } + } - protected void setExtLength(int extLength) { - data.put(1, (byte) extLength); - } + private int calcTLVLength() { + int tlvsl = 0; + for (IPv6HopByHopTLV tlve : tlvs) { + tlvsl += tlve.getTotalLength(); + } + return tlvsl; + } - public long getLength() { - return data.limit(); - } + @Override + public void readFromChannel(ReadableByteChannel din, long length) throws IOException { + super.readFromChannel(din, length); + int extl = getExtLength(); - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - if(onDefault) { - int ext=(data.limit()-8)/8; - setExtLength(ext); - dto.write(data.slice(0,data.limit())); - }else { - dto.write(data.slice(0,8)); - } - } + // 计算应该读取的总字节数 + int expectedTotalBytes = (extl + 1) * EXT_HEADER_ALIGNMENT; + int tlvBytesToRead = expectedTotalBytes - 2; // 减去基础头的2字节 + + tlvs.clear(); + int bytesRead = 0; + + // 读取直到达到预期的字节数 + while (bytesRead < tlvBytesToRead) { + IPv6HopByHopTLV tlv = IPv6HopByHopTLV.readIPv6HopByHopTLVFromChannel(din); + int tlvLength = (int) tlv.getTotalLength(); + + // 检查是否会超出预期范围 + if (bytesRead + tlvLength > tlvBytesToRead) { + throw new StreamCorruptedException( + String.format("TLV overflow: read %d + %d > %d bytes", + bytesRead, tlvLength, tlvBytesToRead)); + } + + tlvs.add(tlv); + bytesRead += tlvLength; + } + + // 验证实际读取的字节数与预期一致 + if (bytesRead != tlvBytesToRead) { + throw new StreamCorruptedException( + String.format("TLV length mismatch: expected %d, got %d", + tlvBytesToRead, bytesRead)); + } + } - @Override - public void readFromChannel(ReadableByteChannel din, long length) throws IOException { - data.limit(8); - while (data.hasRemaining()) { - if (din.read(data) == -1) { - throw new EOFException(); - } - } - if(onDefault) { - int newLimit=getExtLength()*8+data.limit(); - data.limit(newLimit); - while (data.hasRemaining()) { - if (din.read(data) == -1) { - throw new EOFException(); - } - } - } - } - - @Override - protected boolean needEndPosition() { - return false; - } - - - - - - } - public static class IPv6RoutingHeader extends IPv6ExtHeader{ - @Override - public String toString() { - return "IPv6RoutingHeader [protocolNumber=" + getProtocolNumber() + ", getNextHeader()=" + getNextHeader() - + ", getExtLength()=" + getExtLength()+ ", getRoutingType()="+getRoutingType() + "]"; - } - public IPv6RoutingHeader() { - super(43); - } - public IPv6RoutingHeader(boolean onDefault) { - super(43,onDefault); - } - - public IPv6RoutingHeader( boolean isonDefault, ByteBuffer data) { - super(43, isonDefault, data); - } - public int getRoutingType() { - return getData().get(2)&0xff; - } - public void setRoutingType(int routingTypr) { - getData().put(2, (byte) routingTypr); - } - public int getSegmentsLeft() { - return getData().get(3); - } - public void setSegmentsLeft(int segmentsLeft) { - getData().put(3,(byte) segmentsLeft); - } - } - - public static class IPv6SegmentRoutingHeader extends IPv6RoutingHeader{ - - private final List addresses=new ArrayList(); - private final List tlvs=new ArrayList(); - - - @Override - public String toString() { - return "IPv6SegmentRoutingHeader [addresses=" + addresses + ", tlvs=" + tlvs + ", getLastEntry()=" - + getLastEntry() + ", getFlags()=" + getFlags() + ", getTag()=" + getTag() + ", getAddresses()=" - + getAddresses() + ", getRoutingType()=" + getRoutingType() + ", getSegmentsLeft()=" - + getSegmentsLeft() + ", getProtocolNumber()=" + getProtocolNumber() + ", getNextHeader()=" - + getNextHeader() + ", getExtLength()=" + getExtLength() + "]"; - } - public IPv6SegmentRoutingHeader() { - super(false); - setRoutingType(4); - } - - public IPv6SegmentRoutingHeader(ByteBuffer bbf) { - super(false,bbf); - } - public IPv6SegmentRoutingHeader(List segs) { - this(); - this.addresses.addAll( segs); - int ln=addresses.size()-1; - setLastEntry(ln); - setSegmentsLeft(ln); - } - public int getLastEntry() { - return getData().get(4)&0xff; - } - - public void setLastEntry(int lastEntry) { - getData().put(4, (byte) lastEntry); - } - - public int getFlags() { - return getData().get(5)&0xff; - } - - public void setFlags(int flags) { - getData().put(5,(byte) flags); - } - - public int getTag() { - return getData().getShort(6)&0xffff; - } - - public void setTag(int tag) { - getData().putShort(6,(short) tag); - } - public List getAddresses() { - return addresses; - } - - public List getTlvs() { + @Override + public long getTotalLength() { + return calcTLVLength() + 2; + } + + public List getTlvs() { return tlvs; } - @Override - public void writeToChannel(WritableByteChannel dto) throws IOException { - int exl=calcExtLength(); - if(exl%8!=0) { - throw new StreamCorruptedException("extLength % 8 !=0"); - } - - setExtLength(exl/8); - setLastEntry(addresses.size()-1); - super.writeToChannel(dto); - - for(Inet6Address inet6Address:addresses) { - dto.write(ByteBuffer.wrap(inet6Address.getAddress())); - } - for(IPv6SegmentRoutingTLV tlv:tlvs) { - IPv6SegmentRoutingTLV.writeIPv6SegmentRoutingTLVToChannel(dto, tlv); - } - } - private int calcExtLength() { - int tlvsl=0; - for(IPv6SegmentRoutingTLV tlve:tlvs) { - tlvsl+=tlve.getLength(); - } - return addresses.size()*16+tlvsl; - } - @Override - public void readFromChannel(ReadableByteChannel din, long length) throws IOException { - super.readFromChannel(din, length); - int extl=getExtLength(); - int laste=getLastEntry(); - - int rl=extl*8; - int usdl=0; + } + + /** + * IPv6路由头部类 + */ + public static class IPv6RoutingHeader extends IPv6ExtHeader { + @Override + public String toString() { + return "IPv6RoutingHeader [protocolNumber=" + getProtocolNumber() + ", getNextHeader()=" + getNextHeader() + + ", getExtLength()=" + getExtLength() + ", getRoutingType()=" + getRoutingType() + "]"; + } - //System.out.println("SR length:"+(laste+1)); - addresses.clear(); - ByteBuffer bfr=NetworkPacket.bufferAllocator.allocate(16); - for (int i = 0; i < (laste+1); i++) { - bfr.clear(); - while (bfr.hasRemaining()) { - if (din.read(bfr) == -1) { - throw new EOFException(); - } - } - bfr.flip(); - usdl+=bfr.limit(); - Inet6Address addr=(Inet6Address) Inet6Address.getByAddress(bfr.array()); - //System.out.println("SR:"+addr); - addresses.add(addr); - } - tlvs.clear(); - while(usdl getHeaders() { - return headers; - } - public IPv6SegmentRoutingHeader getSRHHeader() { - IPv6SegmentRoutingHeader srhh = null; - List exhs = headers; - for (int j = 0; j < exhs.size(); j++) { - IPv6ExtHeader exh = exhs.get(j); - if (exh instanceof IPv6SegmentRoutingHeader) { - if (((IPv6SegmentRoutingHeader) exh).getRoutingType() == 4) { - srhh = (IPv6SegmentRoutingHeader) exh; - break; - } - } - } - return srhh; - } - /*public IPv6DestinationHeader insertDestinationHeader(int index,int extLength) { - long ptr; - long lth=extLength*8+8; - if(index==headers.size()) { - ptr=payload.getPointer(); - }else if(index=headers.size()) { - irh.setNextHeader(payload.getType()); - }else { - irh.setNextHeader(headers.get(index).getType()); - } - if(index-1<0) { - setNextHeader(irh.getType()); - }else { - headers.get(index-1).setNextHeader(irh.getType()); - } - headers.add(index, irh); - analyse(); - return irh; - } - public IPv6RoutingHeader insertSRHRoutingHeader(int index,IpV6RoutingSRHData srh) { - long ptr; - long lth=srh.length()+4; - if(index==headers.size()) { - ptr=payload.getPointer(); - }else if(index=headers.size()) { - irh.setNextHeader(payload.getType()); - }else { - irh.setNextHeader(headers.get(index).getType()); - } - if(index-1<0) { - setNextHeader(irh.getType()); - }else { - headers.get(index-1).setNextHeader(irh.getType()); - } - headers.add(index, irh); - irh.setRoutingType(4); - irh.setSegmentsLeft(srh.getLastEntry()); - irh.getData().put(4, srh.getRawData()); - analyse(); - return irh; - }*/ - @Override - protected boolean needEndPosition() { - return false; - } - private AtomicInteger rerouteCounter=new AtomicInteger(0); - public AtomicInteger getRerouteCounter() { - return rerouteCounter; - } - private volatile boolean promise=false; - public void setPromise(boolean b) { - promise=b; - } + public IPv6RoutingHeader() { + super(ROUTING); + } - public boolean isPromise() { - return promise; - } + public IPv6RoutingHeader(int bufferLength) { + super(ROUTING, bufferLength); + } + + public IPv6RoutingHeader(int bufferLength, ByteBuffer data) { + super(ROUTING, bufferLength, data); + } + + public int getRoutingType() { + return getData().get(2) & BIT_MASK_LOW_8_BITS; + } + + public void setRoutingType(int routingTypr) { + getData().put(2, (byte) routingTypr); + } + + public int getSegmentsLeft() { + return getData().get(3); + } + + public void setSegmentsLeft(int segmentsLeft) { + getData().put(3, (byte) segmentsLeft); + } + } + + /** + * IPv6段路由头部类 + */ + /** + * IPv6 Segment Routing Header (SRH) 实现 + * + *